@space-ai/contracts 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +103 -10
  2. package/dist/api/connectors.d.ts +4 -0
  3. package/dist/api/connectors.d.ts.map +1 -0
  4. package/dist/api/connectors.js +12 -0
  5. package/dist/api/connectors.js.map +1 -0
  6. package/dist/api/constants.d.ts +2 -0
  7. package/dist/api/constants.d.ts.map +1 -0
  8. package/dist/api/constants.js +2 -0
  9. package/dist/api/constants.js.map +1 -0
  10. package/dist/api/guardrails.d.ts +5 -0
  11. package/dist/api/guardrails.d.ts.map +1 -0
  12. package/dist/api/guardrails.js +16 -0
  13. package/dist/api/guardrails.js.map +1 -0
  14. package/dist/api/index.d.ts +4 -1
  15. package/dist/api/index.d.ts.map +1 -1
  16. package/dist/api/index.js +4 -1
  17. package/dist/api/index.js.map +1 -1
  18. package/dist/api/users.d.ts +3 -0
  19. package/dist/api/users.d.ts.map +1 -0
  20. package/dist/api/users.js +8 -0
  21. package/dist/api/users.js.map +1 -0
  22. package/dist/core/auth.d.ts +12 -0
  23. package/dist/core/auth.d.ts.map +1 -0
  24. package/dist/core/auth.js +12 -0
  25. package/dist/core/auth.js.map +1 -0
  26. package/dist/core/create-axios-instance.d.ts +4 -0
  27. package/dist/core/create-axios-instance.d.ts.map +1 -0
  28. package/dist/core/create-axios-instance.js +63 -0
  29. package/dist/core/create-axios-instance.js.map +1 -0
  30. package/dist/core/setup-api-client.d.ts.map +1 -1
  31. package/dist/core/setup-api-client.js +5 -5
  32. package/dist/core/setup-api-client.js.map +1 -1
  33. package/dist/index.d.ts +4 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +4 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/types/connectors.d.ts +54 -0
  38. package/dist/types/connectors.d.ts.map +1 -0
  39. package/dist/types/connectors.js +9 -0
  40. package/dist/types/connectors.js.map +1 -0
  41. package/dist/types/guardrails.d.ts +86 -0
  42. package/dist/types/guardrails.d.ts.map +1 -0
  43. package/dist/types/guardrails.js +2 -0
  44. package/dist/types/guardrails.js.map +1 -0
  45. package/dist/types/index.d.ts +3 -1
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/dist/types/index.js +3 -1
  48. package/dist/types/index.js.map +1 -1
  49. package/dist/types/users.d.ts +4 -0
  50. package/dist/types/users.d.ts.map +1 -0
  51. package/dist/types/users.js +2 -0
  52. package/dist/types/users.js.map +1 -0
  53. package/package.json +1 -1
package/README.md CHANGED
@@ -48,9 +48,9 @@ import '@space-ai/contracts/axios';
48
48
  **3.** Используйте функции запросов где угодно:
49
49
 
50
50
  ```typescript
51
- import { getUser } from '@space-ai/contracts';
51
+ import { getConnectors } from '@space-ai/contracts';
52
52
 
53
- const user = await getUser(1);
53
+ const connectors = await getConnectors();
54
54
  ```
55
55
 
56
56
  Axios создаётся с `baseURL: BASE_API_URL`, сохраняется в `window.axios` / `global.axios` и используется всеми API-функциями.
@@ -64,7 +64,9 @@ Axios создаётся с `baseURL: BASE_API_URL`, сохраняется в `
64
64
  | Свойство | Тип | Описание |
65
65
  |----------|-----|----------|
66
66
  | `BASE_API_URL` | `string` | Базовый URL API → `axios.create({ baseURL })` |
67
+ | `API_PREFIX` | `string` | Опциональный префикс (`api` → `{BASE_API_URL}/api`) |
67
68
  | `axios` | `AxiosInstance` | Экземпляр axios (создаётся пакетом) |
69
+ | `CONTRACTS_AUTH` | `AuthProvider` | Провайдер токена (альтернатива `configureAuth`) |
68
70
 
69
71
  Примеры:
70
72
 
@@ -78,6 +80,78 @@ global.BASE_API_URL = 'http://localhost:3000';
78
80
 
79
81
  ---
80
82
 
83
+ ## Инициализация axios и авторизация
84
+
85
+ Пакет создаёт axios как на фронтенде:
86
+
87
+ - `baseURL` из `BASE_API_URL` + опциональный `API_PREFIX`
88
+ - заголовки `Content-Type` / `Accept: application/json`
89
+ - **request interceptor** — подставляет `Authorization: Bearer <token>`
90
+ - **response interceptor** — проверка статуса и проброс ошибок
91
+
92
+ ### Провайдер токена
93
+
94
+ Keycloak, Zustand и прочее остаются в приложении. Пакет не знает про них — вы передаёте `AuthProvider`:
95
+
96
+ ```typescript
97
+ import { configureAuth, setupApiClient } from '@space-ai/contracts';
98
+ import { getAccessToken, updateToken } from '@/api/keycloak';
99
+ import { dispatchLogout, useAuth } from '@/stores/auth';
100
+
101
+ configureAuth({
102
+ getAccessToken: () => getAccessToken() ?? useAuth.getState().token ?? null,
103
+ updateToken: (minValiditySeconds = 30) => updateToken(minValiditySeconds),
104
+ onSessionExpired: () => dispatchLogout(),
105
+ });
106
+
107
+ window.BASE_API_URL = import.meta.env.VITE_API_URL;
108
+ window.API_PREFIX = 'api'; // опционально
109
+
110
+ setupApiClient();
111
+ ```
112
+
113
+ Логика interceptor (как в `src/api/axios.ts` на фронте):
114
+
115
+ 1. `getAccessToken()` — если токена нет, запрос уходит без `Authorization`
116
+ 2. `updateToken(30)` — обновление перед запросом; при ошибке → `onSessionExpired()` и `Session expired`
117
+ 3. повторный `getAccessToken()` — свежий токен в заголовок
118
+
119
+ ### Альтернатива — `global.CONTRACTS_AUTH`
120
+
121
+ ```typescript
122
+ global.CONTRACTS_AUTH = {
123
+ getAccessToken: () => getAccessToken() ?? useAuth.getState().token ?? null,
124
+ updateToken,
125
+ onSessionExpired: dispatchLogout,
126
+ };
127
+ ```
128
+
129
+ ### Полный пример `main.tsx`
130
+
131
+ ```typescript
132
+ import { configureAuth, setupApiClient } from '@space-ai/contracts';
133
+ import { getAccessToken, updateToken } from '@/api/keycloak';
134
+ import { dispatchLogout, useAuth } from '@/stores/auth';
135
+
136
+ configureAuth({
137
+ getAccessToken: () => getAccessToken() ?? useAuth.getState().token ?? null,
138
+ updateToken: (s = 30) => updateToken(s),
139
+ onSessionExpired: dispatchLogout,
140
+ });
141
+
142
+ window.BASE_API_URL = import.meta.env.VITE_API_URL;
143
+ window.API_PREFIX = 'api';
144
+
145
+ setupApiClient();
146
+
147
+ import { createRoot } from 'react-dom/client';
148
+ import App from './App';
149
+
150
+ createRoot(document.getElementById('root')!).render(<App />);
151
+ ```
152
+
153
+ ---
154
+
81
155
  ## Способы инициализации
82
156
 
83
157
  ### Способ 1 — Vite / React (рекомендуется)
@@ -164,7 +238,7 @@ import '@space-ai/contracts/axios';
164
238
 
165
239
  window.BASE_API_URL = import.meta.env.VITE_BASE_API_URL;
166
240
 
167
- // axios создастся при первом вызове getUser(), getProducts() и т.д.
241
+ // axios создастся при первом вызове getConnectors(), getGuardrailsList() и т.д.
168
242
  ```
169
243
 
170
244
  > Для interceptors и baseURL до первого запроса надёжнее **Способ 1** или **Способ 2**.
@@ -197,17 +271,36 @@ initApiClient(api);
197
271
  ## Использование API-функций
198
272
 
199
273
  ```typescript
200
- import { getUser, createUser } from '@space-ai/contracts';
274
+ import {
275
+ getConnectors,
276
+ postConnector,
277
+ getGuardrailsList,
278
+ } from '@space-ai/contracts';
201
279
 
202
- const user = await getUser(42);
280
+ const connectors = await getConnectors();
203
281
 
204
- const created = await createUser({
205
- name: 'Alice',
206
- email: 'alice@example.com',
207
- });
282
+ const guardrails = await getGuardrailsList();
208
283
  ```
209
284
 
210
- Запросы идут на `{BASE_API_URL}/users/42`, `{BASE_API_URL}/users` и т.д.
285
+ Доступные API-функции:
286
+
287
+ - `getConnectors()` — `GET /api/connector{s}`
288
+ - `postConnector(payload)` — `POST /api/connector`
289
+ - `getGuardrailsList()` — `GET /api/guardrails/list`
290
+ - `postGuardrail(payload)` — `POST /api/guardrails`
291
+ - `getGuardrailSubmissions(query?)` — `GET /api/guardrails/submissions`
292
+ - `putUserRoles(userId, data)` — `PUT /api/users/{userId}/roles`
293
+
294
+ Примеры:
295
+
296
+ ```typescript
297
+ import { getConnectors, putUserRoles, type IAssignUserRolesRequest } from '@space-ai/contracts';
298
+
299
+ const connectors = await getConnectors();
300
+
301
+ const body: IAssignUserRolesRequest = { roles: ['admin', 'user'] };
302
+ await putUserRoles('alice@example.com', body);
303
+ ```
211
304
 
212
305
  Прямой доступ к axios (после инициализации):
213
306
 
@@ -0,0 +1,4 @@
1
+ import type { IConnector, ICreateConnector } from '../types/index.js';
2
+ export declare function getConnectors(): Promise<IConnector[]>;
3
+ export declare function postConnector(connector: ICreateConnector): Promise<IConnector>;
4
+ //# sourceMappingURL=connectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../src/api/connectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKtE,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAG3D;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAGpF"}
@@ -0,0 +1,12 @@
1
+ import { getAxios } from '../core/axios-instance.js';
2
+ import { API_PREFIX } from './constants.js';
3
+ const uri = `${API_PREFIX}/connector`;
4
+ export async function getConnectors() {
5
+ const { data } = await getAxios().get(`${uri}s`);
6
+ return data;
7
+ }
8
+ export async function postConnector(connector) {
9
+ const { data } = await getAxios().post(uri, connector);
10
+ return data;
11
+ }
12
+ //# sourceMappingURL=connectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../src/api/connectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,GAAG,GAAG,GAAG,UAAU,YAAY,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,GAAG,CAAe,GAAG,GAAG,GAAG,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAA2B;IAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,IAAI,CAAa,GAAG,EAAE,SAAS,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const API_PREFIX = "api";
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/api/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const API_PREFIX = 'api';
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/api/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { IGuardrailCreateRequest, IGuardrailSubmissionsListResponse, IGuardrailSubmissionsQuery, IGuardrailsListItem, IGuardrailsListResponse } from '../types/index.js';
2
+ export declare function getGuardrailsList(): Promise<IGuardrailsListResponse>;
3
+ export declare function postGuardrail(payload: IGuardrailCreateRequest): Promise<IGuardrailsListItem>;
4
+ export declare function getGuardrailSubmissions(query?: IGuardrailSubmissionsQuery): Promise<IGuardrailSubmissionsListResponse>;
5
+ //# sourceMappingURL=guardrails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../src/api/guardrails.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EACvB,iCAAiC,EACjC,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAK3B,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAG1E;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAG9B;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,CAAC,EAAE,0BAA0B,GACjC,OAAO,CAAC,iCAAiC,CAAC,CAM5C"}
@@ -0,0 +1,16 @@
1
+ import { getAxios } from '../core/axios-instance.js';
2
+ import { API_PREFIX } from './constants.js';
3
+ const uri = `${API_PREFIX}/guardrails`;
4
+ export async function getGuardrailsList() {
5
+ const { data } = await getAxios().get(`${uri}/list`);
6
+ return data;
7
+ }
8
+ export async function postGuardrail(payload) {
9
+ const { data } = await getAxios().post(uri, payload);
10
+ return data;
11
+ }
12
+ export async function getGuardrailSubmissions(query) {
13
+ const { data } = await getAxios().get(`${uri}/submissions`, { params: query });
14
+ return data;
15
+ }
16
+ //# sourceMappingURL=guardrails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../src/api/guardrails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAQrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,GAAG,GAAG,GAAG,UAAU,aAAa,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,GAAG,CAA0B,GAAG,GAAG,OAAO,CAAC,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAgC;IAEhC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,IAAI,CAAsB,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAkC;IAElC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,GAAG,CACnC,GAAG,GAAG,cAAc,EACpB,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,2 +1,5 @@
1
- export {};
1
+ export { API_PREFIX } from './constants.js';
2
+ export { getConnectors, postConnector } from './connectors.js';
3
+ export { getGuardrailsList, getGuardrailSubmissions, postGuardrail, } from './guardrails.js';
4
+ export { putUserRoles } from './users.js';
2
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
package/dist/api/index.js CHANGED
@@ -1,2 +1,5 @@
1
- export {};
1
+ export { API_PREFIX } from './constants.js';
2
+ export { getConnectors, postConnector } from './connectors.js';
3
+ export { getGuardrailsList, getGuardrailSubmissions, postGuardrail, } from './guardrails.js';
4
+ export { putUserRoles } from './users.js';
2
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IAssignUserRolesRequest } from '../types/index.js';
2
+ export declare function putUserRoles(userId: string, data: IAssignUserRolesRequest): Promise<unknown>;
3
+ //# sourceMappingURL=users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/api/users.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAKjE,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAMlB"}
@@ -0,0 +1,8 @@
1
+ import { getAxios } from '../core/axios-instance.js';
2
+ import { API_PREFIX } from './constants.js';
3
+ const usersUri = `${API_PREFIX}/users`;
4
+ export async function putUserRoles(userId, data) {
5
+ const { data: response } = await getAxios().put(`${usersUri}/${encodeURIComponent(userId.trim())}/roles`, data);
6
+ return response;
7
+ }
8
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/api/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,QAAQ,GAAG,GAAG,UAAU,QAAQ,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,IAA6B;IAE7B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,GAAG,CAC7C,GAAG,QAAQ,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EACxD,IAAI,CACL,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export interface AuthProvider {
2
+ /** Текущий access token (Keycloak, store и т.д.) */
3
+ getAccessToken(): string | null | undefined;
4
+ /** Обновить токен, если истекает в течение minValiditySeconds */
5
+ updateToken?(minValiditySeconds?: number): Promise<void>;
6
+ /** Сессия невалидна — logout, редирект и т.д. */
7
+ onSessionExpired?(): void;
8
+ }
9
+ export declare function configureAuth(provider: AuthProvider): void;
10
+ export declare function getAuthProvider(): AuthProvider | undefined;
11
+ export declare function resetAuthProvider(): void;
12
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,cAAc,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,iEAAiE;IACjE,WAAW,CAAC,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,iDAAiD;IACjD,gBAAgB,CAAC,IAAI,IAAI,CAAC;CAC3B;AAID,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAE1D;AAED,wBAAgB,eAAe,IAAI,YAAY,GAAG,SAAS,CAE1D;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -0,0 +1,12 @@
1
+ import { getRuntime } from './runtime.js';
2
+ let authProvider = null;
3
+ export function configureAuth(provider) {
4
+ authProvider = provider;
5
+ }
6
+ export function getAuthProvider() {
7
+ return authProvider ?? getRuntime()?.CONTRACTS_AUTH;
8
+ }
9
+ export function resetAuthProvider() {
10
+ authProvider = null;
11
+ }
12
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAW1C,IAAI,YAAY,GAAwB,IAAI,CAAC;AAE7C,MAAM,UAAU,aAAa,CAAC,QAAsB;IAClD,YAAY,GAAG,QAAQ,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,IAAI,UAAU,EAAE,EAAE,cAAc,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type AxiosInstance } from 'axios';
2
+ export declare function resolveBaseURL(): string | undefined;
3
+ export declare function createConfiguredAxios(baseURL?: string): AxiosInstance;
4
+ //# sourceMappingURL=create-axios-instance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-axios-instance.d.ts","sourceRoot":"","sources":["../../src/core/create-axios-instance.ts"],"names":[],"mappings":"AAAA,OAAc,EACZ,KAAK,aAAa,EAEnB,MAAM,OAAO,CAAC;AAMf,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAUnD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAWrE"}
@@ -0,0 +1,63 @@
1
+ import axios from 'axios';
2
+ import { getAuthProvider } from './auth.js';
3
+ import { getBaseApiUrl, getRuntime } from './runtime.js';
4
+ const INTERCEPTORS_ATTACHED = Symbol('contracts.interceptors');
5
+ export function resolveBaseURL() {
6
+ const base = getBaseApiUrl();
7
+ if (!base)
8
+ return undefined;
9
+ const prefix = getRuntime()?.API_PREFIX;
10
+ if (!prefix)
11
+ return base;
12
+ const normalizedBase = base.replace(/\/$/, '');
13
+ const normalizedPrefix = prefix.replace(/^\//, '').replace(/\/$/, '');
14
+ return `${normalizedBase}/${normalizedPrefix}`;
15
+ }
16
+ export function createConfiguredAxios(baseURL) {
17
+ const instance = axios.create({
18
+ baseURL: baseURL ?? resolveBaseURL(),
19
+ headers: {
20
+ 'Content-Type': 'application/json',
21
+ Accept: 'application/json',
22
+ },
23
+ });
24
+ attachInterceptors(instance);
25
+ return instance;
26
+ }
27
+ function attachInterceptors(instance) {
28
+ const marked = instance;
29
+ if (marked[INTERCEPTORS_ATTACHED])
30
+ return;
31
+ marked[INTERCEPTORS_ATTACHED] = true;
32
+ instance.interceptors.request.use(async (config) => {
33
+ const auth = getAuthProvider();
34
+ if (!auth)
35
+ return config;
36
+ const token = auth.getAccessToken();
37
+ if (!token)
38
+ return config;
39
+ if (auth.updateToken) {
40
+ try {
41
+ await auth.updateToken(30);
42
+ }
43
+ catch {
44
+ auth.onSessionExpired?.();
45
+ return Promise.reject(new Error('Session expired'));
46
+ }
47
+ }
48
+ const fresh = auth.getAccessToken();
49
+ const currentToken = fresh ?? token;
50
+ if (currentToken) {
51
+ config.headers.Authorization = `Bearer ${currentToken}`;
52
+ }
53
+ return config;
54
+ }, (error) => Promise.reject(error));
55
+ instance.interceptors.response.use((res) => {
56
+ if (res.status >= 200 && res.status < 300)
57
+ return res;
58
+ throw new Error(res.data);
59
+ }, (err) => {
60
+ throw new Error(err);
61
+ });
62
+ }
63
+ //# sourceMappingURL=create-axios-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-axios-instance.js","sourceRoot":"","sources":["../../src/core/create-axios-instance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup-api-client.d.ts","sourceRoot":"","sources":["../../src/core/setup-api-client.ts"],"names":[],"mappings":"AAWA,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAgB,cAAc,IAAI,IAAI,CA0BrC"}
1
+ {"version":3,"file":"setup-api-client.d.ts","sourceRoot":"","sources":["../../src/core/setup-api-client.ts"],"names":[],"mappings":"AAaA,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAgB,cAAc,IAAI,IAAI,CAyBrC"}
@@ -1,5 +1,5 @@
1
- import axios from 'axios';
2
- import { getBaseApiUrl, getRuntime, getRuntimeAxios, setRuntimeAxios, } from './runtime.js';
1
+ import { createConfiguredAxios, resolveBaseURL, } from './create-axios-instance.js';
2
+ import { getRuntime, getRuntimeAxios, setRuntimeAxios, } from './runtime.js';
3
3
  import { setStoredAxios } from './state.js';
4
4
  let autoInitEnabled = false;
5
5
  export function enableAutoInit() {
@@ -10,17 +10,17 @@ export function isAutoInitEnabled() {
10
10
  }
11
11
  export function setupApiClient() {
12
12
  const runtime = getRuntime();
13
+ const baseURL = resolveBaseURL();
13
14
  if (!runtime) {
14
- setStoredAxios(axios.create());
15
+ setStoredAxios(createConfiguredAxios(baseURL));
15
16
  return;
16
17
  }
17
- const baseURL = getBaseApiUrl();
18
18
  if (!baseURL) {
19
19
  console.warn('@space-ai/contracts: BASE_API_URL не задан (global / window) — axios создаётся без baseURL');
20
20
  }
21
21
  let instance = getRuntimeAxios();
22
22
  if (!instance) {
23
- instance = axios.create({ baseURL });
23
+ instance = createConfiguredAxios(baseURL);
24
24
  setRuntimeAxios(instance);
25
25
  }
26
26
  else if (baseURL) {
@@ -1 +1 @@
1
- {"version":3,"file":"setup-api-client.js","sourceRoot":"","sources":["../../src/core/setup-api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,UAAU,EACV,eAAe,EACf,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,IAAI,eAAe,GAAG,KAAK,CAAC;AAE5B,MAAM,UAAU,cAAc;IAC5B,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,4FAA4F,CAC7F,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,GAAG,eAAe,EAAE,CAAC;IAEjC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACrC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,QAAQ,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"setup-api-client.js","sourceRoot":"","sources":["../../src/core/setup-api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,IAAI,eAAe,GAAG,KAAK,CAAC;AAE5B,MAAM,UAAU,cAAc;IAC5B,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,4FAA4F,CAC7F,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,GAAG,eAAe,EAAE,CAAC;IAEjC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC1C,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,QAAQ,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,8 @@
1
1
  export { initApiClient } from './core/init.js';
2
2
  export { setupApiClient, enableAutoInit } from './core/setup-api-client.js';
3
3
  export { getAxios, resetAxios } from './core/axios-instance.js';
4
+ export { configureAuth, resetAuthProvider, type AuthProvider, } from './core/auth.js';
5
+ export { createConfiguredAxios, resolveBaseURL, } from './core/create-axios-instance.js';
6
+ export { API_PREFIX, getConnectors, getGuardrailsList, getGuardrailSubmissions, postConnector, postGuardrail, putUserRoles, } from './api/index.js';
7
+ export * from './types/index.js';
4
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,8 @@
1
1
  export { initApiClient } from './core/init.js';
2
2
  export { setupApiClient, enableAutoInit } from './core/setup-api-client.js';
3
3
  export { getAxios, resetAxios } from './core/axios-instance.js';
4
+ export { configureAuth, resetAuthProvider, } from './core/auth.js';
5
+ export { createConfiguredAxios, resolveBaseURL, } from './core/create-axios-instance.js';
6
+ export { API_PREFIX, getConnectors, getGuardrailsList, getGuardrailSubmissions, postConnector, postGuardrail, putUserRoles, } from './api/index.js';
7
+ export * from './types/index.js';
4
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,aAAa,EACb,iBAAiB,GAElB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,54 @@
1
+ export declare enum EHttpMethod {
2
+ GET = "GET",
3
+ POST = "POST",
4
+ PUT = "PUT",
5
+ PATCH = "PATCH",
6
+ DELETE = "DELETE"
7
+ }
8
+ export interface IConnectorOperation {
9
+ id?: string;
10
+ connector_id?: string;
11
+ operation_name: string;
12
+ display_name: string;
13
+ http_method: EHttpMethod;
14
+ system_code?: string;
15
+ config?: {
16
+ path?: string;
17
+ [key: string]: unknown;
18
+ };
19
+ }
20
+ export interface IConnector {
21
+ base_url: string;
22
+ config: {
23
+ [key: string]: unknown;
24
+ };
25
+ connector_type: string;
26
+ created_at: string;
27
+ health_url: string;
28
+ id: string;
29
+ is_active: boolean;
30
+ operations?: IConnectorOperation[];
31
+ system_code: string;
32
+ tenant_id: string;
33
+ updated_at: string;
34
+ }
35
+ export interface ICreateConnector {
36
+ system_code: string;
37
+ connector_type: string;
38
+ base_url: string;
39
+ health_url?: string;
40
+ is_active?: boolean;
41
+ config?: {
42
+ [key: string]: unknown;
43
+ };
44
+ operations?: Array<{
45
+ operation_name: string;
46
+ display_name: string;
47
+ http_method: EHttpMethod;
48
+ config?: {
49
+ path?: string;
50
+ [key: string]: unknown;
51
+ };
52
+ }>;
53
+ }
54
+ //# sourceMappingURL=connectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../src/types/connectors.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE;QACP,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,WAAW,CAAC;QACzB,MAAM,CAAC,EAAE;YACP,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;KACH,CAAC,CAAC;CACJ"}
@@ -0,0 +1,9 @@
1
+ export var EHttpMethod;
2
+ (function (EHttpMethod) {
3
+ EHttpMethod["GET"] = "GET";
4
+ EHttpMethod["POST"] = "POST";
5
+ EHttpMethod["PUT"] = "PUT";
6
+ EHttpMethod["PATCH"] = "PATCH";
7
+ EHttpMethod["DELETE"] = "DELETE";
8
+ })(EHttpMethod || (EHttpMethod = {}));
9
+ //# sourceMappingURL=connectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../src/types/connectors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,4BAAa,CAAA;IACb,0BAAW,CAAA;IACX,8BAAe,CAAA;IACf,gCAAiB,CAAA;AACnB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB"}
@@ -0,0 +1,86 @@
1
+ export type GuardrailTarget = 'generative' | 'connector';
2
+ export type GuardrailEngine = 'native' | 'rego' | 'webhook';
3
+ export type GuardrailMode = 'pre_call' | 'post_call' | 'during_call';
4
+ export interface IGuardrailImplementationPayload {
5
+ engine: GuardrailEngine;
6
+ source: string;
7
+ config?: Record<string, unknown>;
8
+ }
9
+ export interface IGuardrailCreateRequest {
10
+ id?: string;
11
+ name: string;
12
+ description?: string;
13
+ target: GuardrailTarget[];
14
+ mode: GuardrailMode;
15
+ implementation: IGuardrailImplementationPayload;
16
+ }
17
+ export interface IGuardrailSubmissionSummary {
18
+ active: number;
19
+ pending_review: number;
20
+ rejected: number;
21
+ total: number;
22
+ }
23
+ export interface IGuardrailSubmissionListItem {
24
+ guardrail_name: string;
25
+ llm_params: Record<string, unknown>;
26
+ reviewed_at?: string;
27
+ status: string;
28
+ submitted_at: string;
29
+ submitted_by_email: string;
30
+ submitted_by_user_id: string;
31
+ team_guardrail: boolean;
32
+ team_id: string;
33
+ updated_at: string;
34
+ guardrail_id?: string;
35
+ }
36
+ export interface IGuardrailSubmissionsListResponse {
37
+ submissions: IGuardrailSubmissionListItem[];
38
+ summary: IGuardrailSubmissionSummary;
39
+ }
40
+ export interface IGuardrailSubmissionDetail {
41
+ created_at: string;
42
+ guardrail_id: string;
43
+ guardrail_info: Record<string, unknown>;
44
+ guardrail_name: string;
45
+ llm_params: Record<string, unknown>;
46
+ reviewed_at?: string;
47
+ status: string;
48
+ submitted_at: string;
49
+ submitted_by_email: string;
50
+ submitted_by_user_id: string;
51
+ team_guardrail: boolean;
52
+ team_id: string;
53
+ updated_at: string;
54
+ }
55
+ export interface IGuardrailSubmissionsQuery {
56
+ status?: string;
57
+ team_id?: string;
58
+ search?: string;
59
+ }
60
+ export interface IGuardrailListImplementation {
61
+ config?: {
62
+ action?: string;
63
+ entities?: string[];
64
+ [key: string]: unknown;
65
+ };
66
+ engine?: GuardrailEngine;
67
+ id?: string;
68
+ mode?: GuardrailMode;
69
+ source?: string;
70
+ [key: string]: unknown;
71
+ }
72
+ export interface IGuardrailsListItem {
73
+ description?: string;
74
+ id: string;
75
+ mode?: GuardrailMode;
76
+ implementation: IGuardrailListImplementation;
77
+ name: string;
78
+ target: GuardrailTarget[];
79
+ [key: string]: unknown;
80
+ }
81
+ export interface IGuardrailsListResponse {
82
+ guardrails: IGuardrailsListItem[];
83
+ total: number;
84
+ }
85
+ export type IGuardrailSubmissionActionResponse = Record<string, boolean>;
86
+ //# sourceMappingURL=guardrails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../src/types/guardrails.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=guardrails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../src/types/guardrails.ts"],"names":[],"mappings":""}
@@ -1,2 +1,4 @@
1
- export type {};
1
+ export * from './connectors.js';
2
+ export * from './guardrails.js';
3
+ export * from './users.js';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
@@ -1,2 +1,4 @@
1
- export {};
1
+ export * from './connectors.js';
2
+ export * from './guardrails.js';
3
+ export * from './users.js';
2
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export interface IAssignUserRolesRequest {
2
+ roles: string[];
3
+ }
4
+ //# sourceMappingURL=users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/types/users.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/types/users.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@space-ai/contracts",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Типы и функции HTTP-запросов к API (axios устанавливается вместе с пакетом)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",