buymeua-api-fe 0.23.4 → 0.24.0
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/CHANGELOG.md +17 -0
- package/README.md +41 -0
- package/dist/entities/system/api/systemApi.d.ts +7 -0
- package/dist/entities/system/api/systemApi.d.ts.map +1 -0
- package/dist/entities/system/api/systemApi.js +56 -0
- package/dist/entities/system/api/systemApi.js.map +1 -0
- package/dist/entities/system/index.d.ts +3 -0
- package/dist/entities/system/index.d.ts.map +1 -0
- package/dist/entities/system/index.js +3 -0
- package/dist/entities/system/index.js.map +1 -0
- package/dist/entities/system/model/types.d.ts +55 -0
- package/dist/entities/system/model/types.d.ts.map +1 -0
- package/dist/entities/system/model/types.js +1 -0
- package/dist/entities/system/model/types.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/shared/api/api.d.ts +7 -2
- package/dist/shared/api/api.d.ts.map +1 -1
- package/dist/shared/api/api.js +13 -0
- package/dist/shared/api/api.js.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.24.0] - 2026-01-29
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Add Pusher integration with `getPusher()` function for real-time functionality
|
|
15
|
+
- Add `pusher-js` as peer dependency
|
|
16
|
+
- Export `ApiConfig` interface
|
|
17
|
+
- Add System API with endpoints:
|
|
18
|
+
- `getMaintenanceStatus` - system availability with real-time Pusher updates
|
|
19
|
+
- `getVersionCheck` - iOS/Android app versions with real-time Pusher updates
|
|
20
|
+
- `checkTelegramUser` - verify Telegram username existence
|
|
21
|
+
- Add System types with JSDoc documentation
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- **BREAKING**: `ApiConfig` now requires `pusher` configuration (`appKey`, `cluster`)
|
|
26
|
+
|
|
10
27
|
## [0.23.4] - 2026-01-26
|
|
11
28
|
|
|
12
29
|
### Fixed
|
package/README.md
CHANGED
|
@@ -36,6 +36,7 @@ pnpm add buymeua-api-fe @reduxjs/toolkit react-redux
|
|
|
36
36
|
- [Ads](#ads)
|
|
37
37
|
- [Countries](#countries)
|
|
38
38
|
- [Store](#store)
|
|
39
|
+
- [System](#system)
|
|
39
40
|
|
|
40
41
|
### 1. Configure API and Setup Redux Store
|
|
41
42
|
|
|
@@ -46,6 +47,10 @@ import { configureBuymeuaApi, Session } from 'buymeua-api-fe';
|
|
|
46
47
|
// Configure API before store setup
|
|
47
48
|
const buymeuaApi = configureBuymeuaApi({
|
|
48
49
|
baseUrl: 'https://api.buymeua.com/',
|
|
50
|
+
pusher: {
|
|
51
|
+
appKey: 'your-pusher-app-key',
|
|
52
|
+
cluster: 'eu',
|
|
53
|
+
},
|
|
49
54
|
prepareHeaders: (headers) => {
|
|
50
55
|
headers.set('Accept', 'application/json');
|
|
51
56
|
headers.set('Content-Type', 'application/json');
|
|
@@ -115,6 +120,21 @@ function ProductList() {
|
|
|
115
120
|
|
|
116
121
|
Configures the global API client.
|
|
117
122
|
|
|
123
|
+
#### `getPusher(): Promise<Pusher>`
|
|
124
|
+
|
|
125
|
+
Returns a shared Pusher instance for real-time subscriptions. Uses lazy initialization.
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
import { getPusher } from 'buymeua-api-fe';
|
|
129
|
+
|
|
130
|
+
// Subscribe to a channel
|
|
131
|
+
const pusher = await getPusher();
|
|
132
|
+
const channel = pusher.subscribe('my-channel');
|
|
133
|
+
channel.bind('my-event', (data) => {
|
|
134
|
+
console.log('Received:', data);
|
|
135
|
+
});
|
|
136
|
+
```
|
|
137
|
+
|
|
118
138
|
**Parameters:**
|
|
119
139
|
|
|
120
140
|
- `config.baseUrl` - Base API URL
|
|
@@ -838,6 +858,27 @@ const { data } = useGetStoreArticlesQuery({
|
|
|
838
858
|
});
|
|
839
859
|
```
|
|
840
860
|
|
|
861
|
+
### System
|
|
862
|
+
|
|
863
|
+
```typescript
|
|
864
|
+
import { systemApi } from 'buymeua-api-fe';
|
|
865
|
+
|
|
866
|
+
// Get maintenance status (with real-time Pusher updates)
|
|
867
|
+
const { data } = systemApi.useGetMaintenanceStatusQuery();
|
|
868
|
+
// data.enable: boolean - true if system is available
|
|
869
|
+
|
|
870
|
+
// Get version check for mobile apps (with real-time Pusher updates)
|
|
871
|
+
const { data } = systemApi.useGetVersionCheckQuery();
|
|
872
|
+
// data.ios.minimumVersion, data.ios.lastUpdatedVersion
|
|
873
|
+
// data.android.minimumVersion, data.android.lastUpdatedVersion
|
|
874
|
+
|
|
875
|
+
// Check if Telegram user exists
|
|
876
|
+
const { data } = systemApi.useCheckTelegramUserQuery({
|
|
877
|
+
telegram_user_name: 'username', // without @
|
|
878
|
+
});
|
|
879
|
+
// data.success: boolean
|
|
880
|
+
```
|
|
881
|
+
|
|
841
882
|
## 📋 TypeScript Types
|
|
842
883
|
|
|
843
884
|
The library is fully typed with TypeScript. Main types:
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CheckTelegramUserRequest, CheckTelegramUserResponse, GetMaintenanceStatusResponse, GetVersionCheckResponse } from '../model/types';
|
|
2
|
+
export declare const systemApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError>, {
|
|
3
|
+
getMaintenanceStatus: import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError>, never, GetMaintenanceStatusResponse, "buymeuaApi", unknown>;
|
|
4
|
+
getVersionCheck: import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError>, never, GetVersionCheckResponse, "buymeuaApi", unknown>;
|
|
5
|
+
checkTelegramUser: import("@reduxjs/toolkit/query").QueryDefinition<CheckTelegramUserRequest, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError>, never, CheckTelegramUserResponse, "buymeuaApi", unknown>;
|
|
6
|
+
}, "buymeuaApi", never, typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
|
|
7
|
+
//# sourceMappingURL=systemApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemApi.d.ts","sourceRoot":"","sources":["../../../../src/entities/system/api/systemApi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,EAExB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,SAAS;;;;oJAyEpB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { buymeuaApi } from '../../../shared/api';
|
|
2
|
+
import { getPusher } from '../../../shared/api/api';
|
|
3
|
+
export const systemApi = buymeuaApi.injectEndpoints({
|
|
4
|
+
endpoints: (build) => ({
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type
|
|
6
|
+
getMaintenanceStatus: build.query({
|
|
7
|
+
query: (_arg) => ({
|
|
8
|
+
url: 'v1/system/maintenance',
|
|
9
|
+
}),
|
|
10
|
+
onCacheEntryAdded: async (_arg, api) => {
|
|
11
|
+
const pusher = await getPusher();
|
|
12
|
+
const channel = pusher.subscribe('system-maintenance');
|
|
13
|
+
await api.cacheDataLoaded;
|
|
14
|
+
channel.bind('system.maintenance', (data) => {
|
|
15
|
+
api.updateCachedData((draft) => {
|
|
16
|
+
draft.enable = data.enable;
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
await api.cacheEntryRemoved;
|
|
20
|
+
// TODO: Check
|
|
21
|
+
channel.unbind('system.maintenance');
|
|
22
|
+
pusher.unsubscribe('system-maintenance');
|
|
23
|
+
},
|
|
24
|
+
}),
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type
|
|
26
|
+
getVersionCheck: build.query({
|
|
27
|
+
query: (_arg) => ({
|
|
28
|
+
url: 'v1/system/version-check',
|
|
29
|
+
}),
|
|
30
|
+
onCacheEntryAdded: async (_arg, api) => {
|
|
31
|
+
const pusher = await getPusher();
|
|
32
|
+
const channel = pusher.subscribe('app.version');
|
|
33
|
+
await api.cacheDataLoaded;
|
|
34
|
+
channel.bind('app.version.changed', (data) => {
|
|
35
|
+
api.updateCachedData((draft) => {
|
|
36
|
+
draft.android = data.android;
|
|
37
|
+
draft.ios = data.ios;
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
await api.cacheEntryRemoved;
|
|
41
|
+
// TODO: Check
|
|
42
|
+
channel.unbind('app.version.changed');
|
|
43
|
+
pusher.unsubscribe('app.version');
|
|
44
|
+
},
|
|
45
|
+
}),
|
|
46
|
+
checkTelegramUser: build.query({
|
|
47
|
+
query: (arg) => ({
|
|
48
|
+
url: 'v1/system/telegram-user-exists',
|
|
49
|
+
method: 'POST',
|
|
50
|
+
body: arg,
|
|
51
|
+
}),
|
|
52
|
+
}),
|
|
53
|
+
}),
|
|
54
|
+
overrideExisting: false,
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=systemApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemApi.js","sourceRoot":"","sources":["../../../../src/entities/system/api/systemApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AASpD,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC;IAClD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrB,mEAAmE;QACnE,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAqC;YACpE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChB,GAAG,EAAE,uBAAuB;aAC7B,CAAC;YAEF,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;gBACrC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBAEjC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;gBAEvD,MAAM,GAAG,CAAC,eAAe,CAAC;gBAE1B,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAyB,EAAE,EAAE;oBAC/D,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC7B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC7B,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,MAAM,GAAG,CAAC,iBAAiB,CAAC;gBAE5B,cAAc;gBACd,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBACrC,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;YAC3C,CAAC;SACF,CAAC;QAEF,mEAAmE;QACnE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAgC;YAC1D,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChB,GAAG,EAAE,yBAAyB;aAC/B,CAAC;YAEF,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;gBACrC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBAEjC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBAEhD,MAAM,GAAG,CAAC,eAAe,CAAC;gBAE1B,OAAO,CAAC,IAAI,CACV,qBAAqB,EACrB,CAAC,IAAkD,EAAE,EAAE;oBACrD,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC7B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;wBAC7B,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;oBACvB,CAAC,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;gBAEF,MAAM,GAAG,CAAC,iBAAiB,CAAC;gBAE5B,cAAc;gBACd,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBACtC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YACpC,CAAC;SACF,CAAC;QAEF,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAG5B;YACA,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACf,GAAG,EAAE,gCAAgC;gBACrC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,GAAG;aACV,CAAC;SACH,CAAC;KACH,CAAC;IAEF,gBAAgB,EAAE,KAAK;CACxB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entities/system/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entities/system/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Проверяет статус системы и доступность сервиса. Возвращает флаг enable который показывает доступна ли система для работы. Проверяет лимиты на количество TTN (транспортных накладных) через TtnSumWatcherService. Если лимит превышен - система переходит в режим обслуживания. Используется клиентскими приложениями для определения доступности API.
|
|
3
|
+
*/
|
|
4
|
+
export interface GetMaintenanceStatusResponse {
|
|
5
|
+
/**
|
|
6
|
+
* true - система доступна, false - система в режиме обслуживания (лимит TTN превышен)
|
|
7
|
+
*
|
|
8
|
+
* @example true
|
|
9
|
+
*/
|
|
10
|
+
enable: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface VersionCheck {
|
|
13
|
+
/**
|
|
14
|
+
* Мінімально допустима версія додатку
|
|
15
|
+
*
|
|
16
|
+
* @example "1.0.0"
|
|
17
|
+
*/
|
|
18
|
+
minimumVersion: string;
|
|
19
|
+
/**
|
|
20
|
+
* Остання доступна версія додатку
|
|
21
|
+
*
|
|
22
|
+
* @example "1.2.3"
|
|
23
|
+
*/
|
|
24
|
+
lastUpdatedVersion: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Повертає мінімально допустиму та останню доступну версію для iOS та Android
|
|
28
|
+
*/
|
|
29
|
+
export interface GetVersionCheckResponse {
|
|
30
|
+
ios: VersionCheck;
|
|
31
|
+
android: VersionCheck;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Проверяет существование Telegram аккаунта по username через MadelineProto интеграцию. Используется при регистрации и привязке Telegram аккаунта к профилю пользователя. Проверяет реальное существование пользователя в Telegram для предотвращения ошибок при отправке уведомлений. В случае ошибки взаимодействия с Telegram API возвращает success: false.
|
|
35
|
+
*/
|
|
36
|
+
export interface CheckTelegramUserRequest {
|
|
37
|
+
/**
|
|
38
|
+
* Username пользователя в Telegram (без @)
|
|
39
|
+
*
|
|
40
|
+
* @example "ivan_petrov"
|
|
41
|
+
*/
|
|
42
|
+
telegram_user_name: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Проверка выполнена
|
|
46
|
+
*/
|
|
47
|
+
export interface CheckTelegramUserResponse {
|
|
48
|
+
/**
|
|
49
|
+
* true - пользователь существует в Telegram, false - не существует или ошибка при проверке
|
|
50
|
+
*
|
|
51
|
+
* @example true
|
|
52
|
+
*/
|
|
53
|
+
success: boolean;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/entities/system/model/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,YAAY,CAAC;IAClB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/entities/system/model/types.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from './entities/referral';
|
|
|
14
14
|
export * from './entities/store';
|
|
15
15
|
export * from './entities/stories';
|
|
16
16
|
export * from './entities/supplier';
|
|
17
|
-
export
|
|
17
|
+
export * from './entities/system';
|
|
18
|
+
export { type ApiConfig, configureBuymeuaApi, getPusher, type ValidationError, isValidationError, } from './shared/api';
|
|
18
19
|
export * from './shared/model';
|
|
19
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EACL,KAAK,SAAS,EACd,mBAAmB,EACnB,SAAS,EACT,KAAK,eAAe,EACpB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ export * from './entities/referral';
|
|
|
15
15
|
export * from './entities/store';
|
|
16
16
|
export * from './entities/stories';
|
|
17
17
|
export * from './entities/supplier';
|
|
18
|
-
export
|
|
18
|
+
export * from './entities/system';
|
|
19
|
+
export { configureBuymeuaApi, getPusher, isValidationError, } from './shared/api';
|
|
19
20
|
export * from './shared/model';
|
|
20
21
|
//# 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,gBAAgB;AAEhB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAEhB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAEL,mBAAmB,EACnB,SAAS,EAET,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,cAAc,gBAAgB,CAAC"}
|
package/dist/shared/api/api.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { type BaseQueryApi, type BaseQueryFn, type FetchArgs, type FetchBaseQueryError } from '@reduxjs/toolkit/query/react';
|
|
2
|
-
|
|
2
|
+
import Pusher from 'pusher-js';
|
|
3
|
+
export interface ApiConfig {
|
|
3
4
|
baseUrl: string;
|
|
5
|
+
pusher: {
|
|
6
|
+
appKey: string;
|
|
7
|
+
cluster: string;
|
|
8
|
+
};
|
|
4
9
|
prepareHeaders: (headers: Headers, api: Pick<BaseQueryApi, 'getState' | 'extra' | 'endpoint' | 'type' | 'forced'> & {
|
|
5
10
|
arg: string | FetchArgs;
|
|
6
11
|
extraOptions: unknown;
|
|
@@ -9,5 +14,5 @@ interface ApiConfig {
|
|
|
9
14
|
}
|
|
10
15
|
export declare const buymeuaApi: import("@reduxjs/toolkit/query").Api<BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError>, {}, "buymeuaApi", never, typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
|
|
11
16
|
export declare const configureBuymeuaApi: (config: ApiConfig) => import("@reduxjs/toolkit/query").Api<BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError>, {}, "buymeuaApi", never, typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
|
|
12
|
-
export
|
|
17
|
+
export declare const getPusher: () => Promise<Pusher>;
|
|
13
18
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/shared/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/shared/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,WAAW,SAAS;IAExB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,cAAc,EAAE,CACd,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,IAAI,CACP,YAAY,EACZ,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CACtD,GAAG;QACF,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,YAAY,EAAE,OAAO,CAAC;KACvB,KACE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,CACf,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,GAAG,EAAE,YAAY,EACjB,YAAY,EAAE,OAAO,KAClB,IAAI,CAAC;CACX;AAyCD,eAAO,MAAM,UAAU,2PAIrB,CAAC;AAEH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,SAAS,8PAOpD,CAAC;AAIF,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,MAAM,CAYhD,CAAC"}
|
package/dist/shared/api/api.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createApi, fetchBaseQuery, } from '@reduxjs/toolkit/query/react';
|
|
2
|
+
import Pusher from 'pusher-js';
|
|
2
3
|
let currentConfig = null;
|
|
3
4
|
let resolveConfig = null;
|
|
4
5
|
const configReady = new Promise((res) => {
|
|
@@ -32,4 +33,16 @@ export const configureBuymeuaApi = (config) => {
|
|
|
32
33
|
resolveConfig?.(config);
|
|
33
34
|
return buymeuaApi;
|
|
34
35
|
};
|
|
36
|
+
let pusherInstance = null;
|
|
37
|
+
export const getPusher = async () => {
|
|
38
|
+
if (pusherInstance)
|
|
39
|
+
return pusherInstance;
|
|
40
|
+
const apiConfig = await configReady;
|
|
41
|
+
pusherInstance = new Pusher(apiConfig.pusher.appKey, {
|
|
42
|
+
cluster: apiConfig.pusher.cluster,
|
|
43
|
+
authEndpoint: `${apiConfig.baseUrl}broadcasting/auth`,
|
|
44
|
+
// TODO: Auth property?
|
|
45
|
+
});
|
|
46
|
+
return pusherInstance;
|
|
47
|
+
};
|
|
35
48
|
//# sourceMappingURL=api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/shared/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,GAKf,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/shared/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,GAKf,MAAM,8BAA8B,CAAC;AACtC,OAAO,MAAM,MAAM,WAAW,CAAC;AA0B/B,IAAI,aAAa,GAAqB,IAAI,CAAC;AAC3C,IAAI,aAAa,GAAyC,IAAI,CAAC;AAE/D,MAAM,WAAW,GAAG,IAAI,OAAO,CAAY,CAAC,GAAG,EAAE,EAAE;IACjD,aAAa,GAAG,GAAG,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,IAAI,eAAe,GAIR,IAAI,CAAC;AAEhB,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;IAC9B,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;IAEjC,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAEzC,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAIrB,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE;IACpC,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC,CAAC,iCAAiC;IAEnE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;IAElD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,cAAc,EAAE,CAAC;QAClE,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;IAClC,WAAW,EAAE,YAAY;IACzB,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAiB,EAAE,EAAE;IACvD,IAAI,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAErE,aAAa,GAAG,MAAM,CAAC;IACvB,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;IAExB,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,IAAI,cAAc,GAAkB,IAAI,CAAC;AAEzC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,IAAqB,EAAE;IACnD,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAE1C,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC;IAEpC,cAAc,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;QACnD,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO;QACjC,YAAY,EAAE,GAAG,SAAS,CAAC,OAAO,mBAAmB;QACrD,uBAAuB;KACxB,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"CHANGELOG.md"
|
|
13
13
|
],
|
|
14
14
|
"name": "buymeua-api-fe",
|
|
15
|
-
"version": "0.
|
|
15
|
+
"version": "0.24.0",
|
|
16
16
|
"description": "",
|
|
17
17
|
"license": "ISC",
|
|
18
18
|
"author": "Denys Hrychulevych",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"typescript-eslint": "^8.46.4"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@reduxjs/toolkit": "2.11.2"
|
|
33
|
+
"@reduxjs/toolkit": "2.11.2",
|
|
34
|
+
"pusher-js": "^8.4.0"
|
|
34
35
|
}
|
|
35
36
|
}
|