@space-ai/contracts 0.1.0 → 0.1.1

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 CHANGED
@@ -1,55 +1,277 @@
1
1
  # @space-ai/contracts
2
2
 
3
- npm-пакет с типами и функциями HTTP-запросов к API. Axios не входит в бандл — передаётся при инициализации (`peerDependency`).
3
+ npm-пакет с TypeScript-типами и функциями HTTP-запросов к API.
4
4
 
5
- ## Структура
5
+ Axios устанавливается автоматически как зависимость пакета. Базовый URL API задаётся через глобальную переменную `window.BASE_API_URL`.
6
6
 
7
+ ## Содержание
8
+
9
+ - [Установка](#установка)
10
+ - [Быстрый старт](#быстрый-старт)
11
+ - [window.BASE_API_URL](#windowbase_api_url)
12
+ - [Способы инициализации](#способы-инициализации)
13
+ - [Использование API-функций](#использование-api-функций)
14
+ - [TypeScript](#typescript)
15
+ - [Локальная разработка пакета](#локальная-разработка-пакета)
16
+ - [Публикация в npm](#публикация-в-npm)
17
+
18
+ ---
19
+
20
+ ## Установка
21
+
22
+ ```bash
23
+ npm install @space-ai/contracts
7
24
  ```
8
- src/ — исходники (типы, api, core)
9
- dist/ — сборка для npm (генерируется, в git не коммитится)
25
+
26
+ Отдельно ставить `axios` не нужно.
27
+
28
+ ---
29
+
30
+ ## Быстрый старт
31
+
32
+ **1.** Задайте базовый URL API на `window`:
33
+
34
+ ```typescript
35
+ window.BASE_API_URL = 'https://api.example.com';
10
36
  ```
11
37
 
12
- ## Локальная разработка
38
+ **2.** Подключите автоинициализацию axios (один раз в точке входа):
13
39
 
14
- ```bash
15
- npm install
16
- npm run build
40
+ ```typescript
41
+ import '@space-ai/contracts/axios';
42
+ ```
43
+
44
+ **3.** Используйте функции запросов где угодно:
45
+
46
+ ```typescript
47
+ import { getUser } from '@space-ai/contracts';
48
+
49
+ const user = await getUser(1);
50
+ ```
51
+
52
+ Axios создаётся с `baseURL: window.BASE_API_URL`, сохраняется в `window.axios` и используется всеми API-функциями.
53
+
54
+ ---
55
+
56
+ ## window.BASE_API_URL
57
+
58
+ | Свойство | Тип | Описание |
59
+ |----------|-----|----------|
60
+ | `window.BASE_API_URL` | `string` | Базовый URL API → передаётся в `axios.create({ baseURL })` |
61
+ | `window.axios` | `AxiosInstance` | Экземпляр axios (создаётся пакетом, можно использовать напрямую) |
62
+
63
+ Примеры значений:
64
+
65
+ ```typescript
66
+ window.BASE_API_URL = 'https://api.example.com'; // prod
67
+ window.BASE_API_URL = 'https://staging.example.com'; // staging
68
+ window.BASE_API_URL = '/api'; // proxy через dev-сервер
69
+ ```
70
+
71
+ ---
72
+
73
+ ## Способы инициализации
74
+
75
+ ### Способ 1 — Vite / React (рекомендуется)
76
+
77
+ Импорты в ES-модулях **поднимаются (hoisting)** и выполняются раньше остального кода файла. Поэтому `window.BASE_API_URL` нужно задать **до** загрузки приложения.
78
+
79
+ **index.html** — задайте URL до бандла:
80
+
81
+ ```html
82
+ <!DOCTYPE html>
83
+ <html lang="ru">
84
+ <head>...</head>
85
+ <body>
86
+ <div id="root"></div>
87
+ <script>
88
+ window.BASE_API_URL = '/api';
89
+ </script>
90
+ <script type="module" src="/src/main.tsx"></script>
91
+ </body>
92
+ </html>
17
93
  ```
18
94
 
19
- ## Использование
95
+ **main.tsx**:
96
+
97
+ ```typescript
98
+ import '@space-ai/contracts/axios';
99
+ import { createRoot } from 'react-dom/client';
100
+ import App from './App';
101
+
102
+ createRoot(document.getElementById('root')!).render(<App />);
103
+ ```
104
+
105
+ #### Vite: URL из `.env`
106
+
107
+ В `.env`:
108
+
109
+ ```env
110
+ VITE_BASE_API_URL=https://api.example.com
111
+ ```
112
+
113
+ В **index.html** (Vite подставляет `%VITE_*%` при сборке):
114
+
115
+ ```html
116
+ <script>
117
+ window.BASE_API_URL = '%VITE_BASE_API_URL%';
118
+ </script>
119
+ ```
120
+
121
+ Или через **vite.config.ts** — плагин `transformIndexHtml`, если нужна подстановка иначе.
122
+
123
+ ---
124
+
125
+ ### Способ 2 — явный вызов `setupApiClient()`
126
+
127
+ Если `BASE_API_URL` задаётся в коде (например, из `import.meta.env`), вызовите setup **после** присвоения:
128
+
129
+ ```typescript
130
+ // main.tsx
131
+ window.BASE_API_URL = import.meta.env.VITE_BASE_API_URL;
132
+
133
+ import { setupApiClient } from '@space-ai/contracts';
134
+
135
+ setupApiClient();
136
+ ```
137
+
138
+ Side-effect импорт `@space-ai/contracts/axios` здесь **не обязателен** — достаточно `setupApiClient()`.
139
+
140
+ ---
141
+
142
+ ### Способ 3 — side-effect импорт + отложенная инициализация
143
+
144
+ Если используете только:
145
+
146
+ ```typescript
147
+ window.BASE_API_URL = import.meta.env.VITE_BASE_API_URL;
148
+ import '@space-ai/contracts/axios';
149
+ ```
150
+
151
+ из-за hoisting импорт выполнится **раньше** присвоения `BASE_API_URL`. Пакет это учитывает: при импорте `@space-ai/contracts/axios` включается **auto-init**, а axios создаётся при **первом HTTP-запросе**, когда `window.BASE_API_URL` уже задан.
152
+
153
+ ```typescript
154
+ // main.tsx — порядок строк в файле не важен для auto-init
155
+ import '@space-ai/contracts/axios';
156
+
157
+ window.BASE_API_URL = import.meta.env.VITE_BASE_API_URL;
158
+
159
+ // axios создастся при первом вызове getUser(), getProducts() и т.д.
160
+ ```
161
+
162
+ > Для interceptors и baseURL до первого запроса надёжнее **Способ 1** или **Способ 2**.
163
+
164
+ ---
165
+
166
+ ### Способ 4 — полностью ручная настройка
167
+
168
+ Свой экземпляр axios с interceptors, таймаутами и т.д.:
20
169
 
21
170
  ```typescript
22
171
  import axios from 'axios';
23
- import { initApiClient, getUser } from '@space-ai/contracts';
172
+ import { initApiClient } from '@space-ai/contracts';
173
+
174
+ const api = axios.create({
175
+ baseURL: window.BASE_API_URL ?? '/api',
176
+ timeout: 10_000,
177
+ });
178
+
179
+ api.interceptors.request.use((config) => {
180
+ // auth token, headers...
181
+ return config;
182
+ });
24
183
 
25
- const api = axios.create({ baseURL: '/api' });
26
184
  initApiClient(api);
185
+ ```
27
186
 
28
- const user = await getUser(1);
187
+ ---
188
+
189
+ ## Использование API-функций
190
+
191
+ ```typescript
192
+ import { getUser, createUser } from '@space-ai/contracts';
193
+
194
+ const user = await getUser(42);
195
+
196
+ const created = await createUser({
197
+ name: 'Alice',
198
+ email: 'alice@example.com',
199
+ });
200
+ ```
201
+
202
+ Запросы идут на `{BASE_API_URL}/users/42`, `{BASE_API_URL}/users` и т.д.
203
+
204
+ Прямой доступ к axios (после инициализации):
205
+
206
+ ```typescript
207
+ const client = window.axios;
208
+ await client.get('/health');
209
+ ```
210
+
211
+ ---
212
+
213
+ ## TypeScript
214
+
215
+ Пакет расширяет `Window`:
216
+
217
+ ```typescript
218
+ interface Window {
219
+ BASE_API_URL?: string;
220
+ axios?: import('axios').AxiosInstance;
221
+ }
222
+ ```
223
+
224
+ Дополнительные декларации в проекте не нужны.
225
+
226
+ ---
227
+
228
+ ## Локальная разработка пакета
229
+
230
+ ```bash
231
+ git clone <repo>
232
+ cd contracts
233
+ npm install
234
+ npm run build
29
235
  ```
30
236
 
237
+ Структура:
238
+
239
+ ```
240
+ src/
241
+ api/ — функции запросов к эндпоинтам
242
+ types/ — типы запросов/ответов
243
+ core/ — axios, init, setup
244
+ axios.ts — entry point @space-ai/contracts/axios
245
+ index.ts — публичное API @space-ai/contracts
246
+ dist/ — сборка для npm (не коммитится)
247
+ ```
248
+
249
+ ---
250
+
31
251
  ## Публикация в npm
32
252
 
33
- 1. Создайте организацию/scope на [npmjs.com](https://www.npmjs.com/) (например `@space-ai`).
34
- 2. Сгенерируйте **Automation token** (не publish token с 2FA-проблемами): npm → Access Tokens → Granular Access Token Read and write, scope ваш пакет/org.
35
- 3. В GitHub: **Settings Secrets and variables → Actions → New repository secret** → имя `NPM_TOKEN`, значение — токен.
36
- 4. Обновите в `package.json`: `name`, `repository.url` (пакет публикуется как **public** scoped).
37
- 5. Локально поднимите версию и запушьте тег:
253
+ 1. Организация `@space-ai` на [npmjs.com](https://www.npmjs.com/).
254
+ 2. Granular Access Token (Read and write, Bypass 2FA) GitHub Secret `NPM_TOKEN`.
255
+ 3. Поднять версию и запушить тег:
38
256
 
39
257
  ```bash
40
- npm version patch # или minor / major
258
+ npm version patch
41
259
  git push origin main --tags
42
260
  ```
43
261
 
44
- CI workflow `.github/workflows/publish.yml` соберёт пакет и выполнит `npm publish` при пуше тега `v*.*.*`.
262
+ CI (`.github/workflows/publish.yml`) выполнит `npm publish` при теге `v*.*.*`.
263
+
264
+ | Workflow | Назначение |
265
+ |----------|------------|
266
+ | `ci.yml` | сборка на PR и push в main |
267
+ | `publish.yml` | публикация по git-тегу |
45
268
 
46
- ## GitHub
269
+ ---
47
270
 
48
- | Что | Зачем |
49
- |-----|-------|
50
- | Secret `NPM_TOKEN` | авторизация `npm publish` в Actions |
51
- | Workflow `ci.yml` | проверка сборки на PR и push в main |
52
- | Workflow `publish.yml` | публикация по git-тегу |
53
- | (опционально) Branch protection | merge только после зелёного CI |
271
+ ## Частые проблемы
54
272
 
55
- Первый релиз: после настройки секрета выполните `npm version 0.1.0 && git push origin main --tags`.
273
+ | Симптом | Решение |
274
+ |---------|---------|
275
+ | `Axios не найден` | Задайте `window.BASE_API_URL`, импортируйте `@space-ai/contracts/axios` или вызовите `setupApiClient()` |
276
+ | Запросы без baseURL | `BASE_API_URL` не был задан до инициализации — используйте **Способ 1** или **Способ 2** |
277
+ | Двойной axios | Не вызывайте и `setupApiClient()`, и `initApiClient()` с разными инстансами без необходимости |
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=axios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axios.d.ts","sourceRoot":"","sources":["../src/axios.ts"],"names":[],"mappings":""}
package/dist/axios.js ADDED
@@ -0,0 +1,6 @@
1
+ import { enableAutoInit, setupApiClient } from './core/setup-api-client.js';
2
+ enableAutoInit();
3
+ if (typeof window !== 'undefined' && window.BASE_API_URL) {
4
+ setupApiClient();
5
+ }
6
+ //# sourceMappingURL=axios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axios.js","sourceRoot":"","sources":["../src/axios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5E,cAAc,EAAE,CAAC;AAEjB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;IACzD,cAAc,EAAE,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"axios-instance.d.ts","sourceRoot":"","sources":["../../src/core/axios-instance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,wBAAgB,QAAQ,IAAI,aAAa,CAWxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEnD;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}
1
+ {"version":3,"file":"axios-instance.d.ts","sourceRoot":"","sources":["../../src/core/axios-instance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAQ3C,wBAAgB,QAAQ,IAAI,aAAa,CAmBxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEnD;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}
@@ -1,17 +1,26 @@
1
- let instance = null;
1
+ import { isAutoInitEnabled, setupApiClient } from './setup-api-client.js';
2
+ import { getStoredAxios, resetStoredAxios, setStoredAxios, } from './state.js';
2
3
  export function getAxios() {
4
+ let instance = getStoredAxios();
3
5
  if (instance)
4
6
  return instance;
7
+ if (isAutoInitEnabled() && typeof window !== 'undefined' && window.BASE_API_URL) {
8
+ setupApiClient();
9
+ instance = getStoredAxios();
10
+ if (instance)
11
+ return instance;
12
+ }
5
13
  if (typeof window !== 'undefined' && window.axios) {
6
- instance = window.axios;
7
- return instance;
14
+ setStoredAxios(window.axios);
15
+ return window.axios;
8
16
  }
9
- throw new Error('Axios не найден. Вызовите initApiClient(axios) или установите window.axios');
17
+ throw new Error('Axios не найден. Задайте window.BASE_API_URL и импортируйте @space-ai/contracts/axios, ' +
18
+ 'вызовите setupApiClient() или initApiClient(axios)');
10
19
  }
11
20
  export function setAxios(axios) {
12
- instance = axios;
21
+ setStoredAxios(axios);
13
22
  }
14
23
  export function resetAxios() {
15
- instance = null;
24
+ resetStoredAxios();
16
25
  }
17
26
  //# sourceMappingURL=axios-instance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"axios-instance.js","sourceRoot":"","sources":["../../src/core/axios-instance.ts"],"names":[],"mappings":"AAEA,IAAI,QAAQ,GAAyB,IAAI,CAAC;AAE1C,MAAM,UAAU,QAAQ;IACtB,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClD,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"axios-instance.js","sourceRoot":"","sources":["../../src/core/axios-instance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,QAAQ;IACtB,IAAI,QAAQ,GAAG,cAAc,EAAE,CAAC;IAChC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,IAAI,iBAAiB,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAChF,cAAc,EAAE,CAAC;QACjB,QAAQ,GAAG,cAAc,EAAE,CAAC;QAC5B,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClD,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,yFAAyF;QACvF,oDAAoD,CACvD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,cAAc,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,gBAAgB,EAAE,CAAC;AACrB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function enableAutoInit(): void;
2
+ export declare function isAutoInitEnabled(): boolean;
3
+ export declare function setupApiClient(): void;
4
+ //# sourceMappingURL=setup-api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-api-client.d.ts","sourceRoot":"","sources":["../../src/core/setup-api-client.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAgB,cAAc,IAAI,IAAI,CAqBrC"}
@@ -0,0 +1,27 @@
1
+ import axios from 'axios';
2
+ import { setStoredAxios } from './state.js';
3
+ let autoInitEnabled = false;
4
+ export function enableAutoInit() {
5
+ autoInitEnabled = true;
6
+ }
7
+ export function isAutoInitEnabled() {
8
+ return autoInitEnabled;
9
+ }
10
+ export function setupApiClient() {
11
+ if (typeof window === 'undefined') {
12
+ setStoredAxios(axios.create());
13
+ return;
14
+ }
15
+ const baseURL = window.BASE_API_URL;
16
+ if (!baseURL) {
17
+ console.warn('@space-ai/contracts: window.BASE_API_URL не задан — axios создаётся без baseURL');
18
+ }
19
+ if (!window.axios) {
20
+ window.axios = axios.create({ baseURL });
21
+ }
22
+ else if (baseURL) {
23
+ window.axios.defaults.baseURL = baseURL;
24
+ }
25
+ setStoredAxios(window.axios);
26
+ }
27
+ //# sourceMappingURL=setup-api-client.js.map
@@ -0,0 +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,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,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;IAEpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,iFAAiF,CAClF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAC1C,CAAC;IAED,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AxiosInstance } from 'axios';
2
+ export declare function getStoredAxios(): AxiosInstance | null;
3
+ export declare function setStoredAxios(axios: AxiosInstance): void;
4
+ export declare function resetStoredAxios(): void;
5
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,wBAAgB,cAAc,IAAI,aAAa,GAAG,IAAI,CAErD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEzD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
@@ -0,0 +1,11 @@
1
+ let instance = null;
2
+ export function getStoredAxios() {
3
+ return instance;
4
+ }
5
+ export function setStoredAxios(axios) {
6
+ instance = axios;
7
+ }
8
+ export function resetStoredAxios() {
9
+ instance = null;
10
+ }
11
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AAEA,IAAI,QAAQ,GAAyB,IAAI,CAAC;AAE1C,MAAM,UAAU,cAAc;IAC5B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { initApiClient } from './core/init.js';
2
+ export { setupApiClient, enableAutoInit } from './core/setup-api-client.js';
2
3
  export { getAxios, resetAxios } from './core/axios-instance.js';
3
4
  //# 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,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"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { initApiClient } from './core/init.js';
2
+ export { setupApiClient, enableAutoInit } from './core/setup-api-client.js';
2
3
  export { getAxios, resetAxios } from './core/axios-instance.js';
3
4
  //# 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,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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@space-ai/contracts",
3
- "version": "0.1.0",
4
- "description": "Типы и функции HTTP-запросов к API (axios peer dependency)",
3
+ "version": "0.1.1",
4
+ "description": "Типы и функции HTTP-запросов к API (axios устанавливается вместе с пакетом)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -9,8 +9,15 @@
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js"
12
+ },
13
+ "./axios": {
14
+ "types": "./dist/axios.d.ts",
15
+ "import": "./dist/axios.js"
12
16
  }
13
17
  },
18
+ "sideEffects": [
19
+ "./dist/axios.js"
20
+ ],
14
21
  "files": [
15
22
  "dist"
16
23
  ],
@@ -19,11 +26,10 @@
19
26
  "prepublishOnly": "npm run build",
20
27
  "typecheck": "tsc --noEmit"
21
28
  },
22
- "peerDependencies": {
23
- "axios": "^1.0.0"
29
+ "dependencies": {
30
+ "axios": "^1.7.0"
24
31
  },
25
32
  "devDependencies": {
26
- "axios": "^1.7.0",
27
33
  "typescript": "^5.7.0"
28
34
  },
29
35
  "publishConfig": {