@xbg.solutions/bpsk-utils-api-client 1.2.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/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +14 -0
- package/lib/index.js.map +1 -0
- package/lib/services/api/api.service.d.ts +67 -0
- package/lib/services/api/api.service.d.ts.map +1 -0
- package/lib/services/api/api.service.js +344 -0
- package/lib/services/api/api.service.js.map +1 -0
- package/lib/services/api/index.d.ts +13 -0
- package/lib/services/api/index.d.ts.map +1 -0
- package/lib/services/api/index.js +15 -0
- package/lib/services/api/index.js.map +1 -0
- package/lib/services/api/request-handler.d.ts +17 -0
- package/lib/services/api/request-handler.d.ts.map +1 -0
- package/lib/services/api/request-handler.js +289 -0
- package/lib/services/api/request-handler.js.map +1 -0
- package/lib/services/api/response-handler.d.ts +16 -0
- package/lib/services/api/response-handler.d.ts.map +1 -0
- package/lib/services/api/response-handler.js +254 -0
- package/lib/services/api/response-handler.js.map +1 -0
- package/lib/services/caching/api-cache.service.d.ts +97 -0
- package/lib/services/caching/api-cache.service.d.ts.map +1 -0
- package/lib/services/caching/api-cache.service.js +294 -0
- package/lib/services/caching/api-cache.service.js.map +1 -0
- package/lib/services/caching/cache.service.d.ts +86 -0
- package/lib/services/caching/cache.service.d.ts.map +1 -0
- package/lib/services/caching/cache.service.js +519 -0
- package/lib/services/caching/cache.service.js.map +1 -0
- package/lib/services/caching/index.d.ts +5 -0
- package/lib/services/caching/index.d.ts.map +1 -0
- package/lib/services/caching/index.js +3 -0
- package/lib/services/caching/index.js.map +1 -0
- package/lib/stores/api.service.d.ts +6 -0
- package/lib/stores/api.service.d.ts.map +1 -0
- package/lib/stores/api.service.js +6 -0
- package/lib/stores/api.service.js.map +1 -0
- package/lib/stores/request-handler.d.ts +6 -0
- package/lib/stores/request-handler.d.ts.map +1 -0
- package/lib/stores/request-handler.js +6 -0
- package/lib/stores/request-handler.js.map +1 -0
- package/lib/stores/response-handler.d.ts +6 -0
- package/lib/stores/response-handler.d.ts.map +1 -0
- package/lib/stores/response-handler.js +6 -0
- package/lib/stores/response-handler.js.map +1 -0
- package/lib/utils/cache-helpers.d.ts +112 -0
- package/lib/utils/cache-helpers.d.ts.map +1 -0
- package/lib/utils/cache-helpers.js +302 -0
- package/lib/utils/cache-helpers.js.map +1 -0
- package/package.json +27 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache Helper Utilities
|
|
3
|
+
*
|
|
4
|
+
* Simple wrappers and helpers for common caching operations
|
|
5
|
+
*/
|
|
6
|
+
import { type CacheOptions, type APICacheOptions } from '../services/caching';
|
|
7
|
+
/**
|
|
8
|
+
* Simple memoization decorator for functions
|
|
9
|
+
*/
|
|
10
|
+
export declare function memoize<T extends (...args: any[]) => any>(fn: T, options?: CacheOptions & {
|
|
11
|
+
keyFn?: (...args: Parameters<T>) => string;
|
|
12
|
+
}): T;
|
|
13
|
+
/**
|
|
14
|
+
* Async memoization with persistent cache
|
|
15
|
+
*/
|
|
16
|
+
export declare function asyncMemo<T extends (...args: any[]) => Promise<any>>(fn: T, options?: CacheOptions & {
|
|
17
|
+
keyFn?: (...args: Parameters<T>) => string;
|
|
18
|
+
}): T;
|
|
19
|
+
/**
|
|
20
|
+
* Create a cached version of fetch
|
|
21
|
+
*/
|
|
22
|
+
export declare function createCachedFetch(defaultOptions?: APICacheOptions): <T = any>(url: string, options?: APICacheOptions) => Promise<T>;
|
|
23
|
+
/**
|
|
24
|
+
* Cache decorator for class methods
|
|
25
|
+
*/
|
|
26
|
+
export declare function cached(options?: CacheOptions): (target: any, propertyName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
27
|
+
/**
|
|
28
|
+
* Simple cache wrapper for API endpoints
|
|
29
|
+
*/
|
|
30
|
+
export declare class APICache {
|
|
31
|
+
private baseURL;
|
|
32
|
+
private defaultOptions;
|
|
33
|
+
constructor(baseURL?: string, defaultOptions?: APICacheOptions);
|
|
34
|
+
/**
|
|
35
|
+
* GET request with caching
|
|
36
|
+
*/
|
|
37
|
+
get<T = any>(endpoint: string, options?: APICacheOptions): Promise<T>;
|
|
38
|
+
/**
|
|
39
|
+
* POST request
|
|
40
|
+
*/
|
|
41
|
+
post<T = any>(endpoint: string, data?: any, options?: APICacheOptions): Promise<T>;
|
|
42
|
+
/**
|
|
43
|
+
* PUT request with cache invalidation
|
|
44
|
+
*/
|
|
45
|
+
put<T = any>(endpoint: string, data?: any, options?: APICacheOptions): Promise<T>;
|
|
46
|
+
/**
|
|
47
|
+
* DELETE request with cache invalidation
|
|
48
|
+
*/
|
|
49
|
+
delete<T = any>(endpoint: string, options?: APICacheOptions): Promise<T>;
|
|
50
|
+
/**
|
|
51
|
+
* Invalidate cache for endpoint pattern
|
|
52
|
+
*/
|
|
53
|
+
invalidate(pattern: string, options?: Partial<APICacheOptions>): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Prefetch endpoints
|
|
56
|
+
*/
|
|
57
|
+
prefetch(endpoints: string[], options?: APICacheOptions): Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* User-specific cache utilities
|
|
61
|
+
*/
|
|
62
|
+
export declare class UserCache {
|
|
63
|
+
private userId;
|
|
64
|
+
constructor(userId: string);
|
|
65
|
+
private getKey;
|
|
66
|
+
get<T>(key: string, storage?: string): Promise<T | null>;
|
|
67
|
+
set<T>(key: string, value: T, options?: CacheOptions): Promise<void>;
|
|
68
|
+
delete(key: string, storage?: string): Promise<void>;
|
|
69
|
+
clear(storage?: string): Promise<void>;
|
|
70
|
+
getOrSet<T>(key: string, factory: () => Promise<T> | T, options?: CacheOptions): Promise<T>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Cache warming utilities
|
|
74
|
+
*/
|
|
75
|
+
export declare class CacheWarmer {
|
|
76
|
+
private warmupTasks;
|
|
77
|
+
/**
|
|
78
|
+
* Add warmup task
|
|
79
|
+
*/
|
|
80
|
+
addTask(name: string, task: () => Promise<void>, priority?: number): void;
|
|
81
|
+
/**
|
|
82
|
+
* Execute all warmup tasks
|
|
83
|
+
*/
|
|
84
|
+
warmup(concurrency?: number): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Create common warmup tasks
|
|
87
|
+
*/
|
|
88
|
+
static createCommonTasks(apiCache: APICache): CacheWarmer;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Cache performance monitoring
|
|
92
|
+
*/
|
|
93
|
+
export declare class CacheMonitor {
|
|
94
|
+
private static instance;
|
|
95
|
+
private stats;
|
|
96
|
+
static getInstance(): CacheMonitor;
|
|
97
|
+
recordHit(responseTime: number): void;
|
|
98
|
+
recordMiss(responseTime: number): void;
|
|
99
|
+
recordError(): void;
|
|
100
|
+
private updateAvgResponseTime;
|
|
101
|
+
getStats(): {
|
|
102
|
+
hitRate: number;
|
|
103
|
+
errorRate: number;
|
|
104
|
+
hits: number;
|
|
105
|
+
misses: number;
|
|
106
|
+
errors: number;
|
|
107
|
+
avgResponseTime: number;
|
|
108
|
+
totalRequests: number;
|
|
109
|
+
};
|
|
110
|
+
reset(): void;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=cache-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/cache-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache Helper Utilities
|
|
3
|
+
*
|
|
4
|
+
* Simple wrappers and helpers for common caching operations
|
|
5
|
+
*/
|
|
6
|
+
import { cacheService, apiCacheService } from '../services/caching';
|
|
7
|
+
/**
|
|
8
|
+
* Simple memoization decorator for functions
|
|
9
|
+
*/
|
|
10
|
+
export function memoize(fn, options = {}) {
|
|
11
|
+
const cache = new Map();
|
|
12
|
+
return ((...args) => {
|
|
13
|
+
const key = options.keyFn ? options.keyFn(...args) : JSON.stringify(args);
|
|
14
|
+
if (cache.has(key)) {
|
|
15
|
+
return cache.get(key);
|
|
16
|
+
}
|
|
17
|
+
const result = fn(...args);
|
|
18
|
+
// Handle promises
|
|
19
|
+
if (result instanceof Promise) {
|
|
20
|
+
result.catch(() => {
|
|
21
|
+
cache.delete(key); // Remove failed promises from cache
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
cache.set(key, result);
|
|
25
|
+
// Auto-expire based on TTL
|
|
26
|
+
if (options.ttl) {
|
|
27
|
+
setTimeout(() => cache.delete(key), options.ttl);
|
|
28
|
+
}
|
|
29
|
+
return result;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Async memoization with persistent cache
|
|
34
|
+
*/
|
|
35
|
+
export function asyncMemo(fn, options = {}) {
|
|
36
|
+
return (async (...args) => {
|
|
37
|
+
const key = options.keyFn
|
|
38
|
+
? `asyncmemo:${options.keyFn(...args)}`
|
|
39
|
+
: `asyncmemo:${JSON.stringify(args)}`;
|
|
40
|
+
const cached = await cacheService.get(key, options.storage);
|
|
41
|
+
if (cached !== null) {
|
|
42
|
+
return cached;
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
const result = await fn(...args);
|
|
46
|
+
await cacheService.set(key, result, options);
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
// Don't cache errors
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create a cached version of fetch
|
|
57
|
+
*/
|
|
58
|
+
export function createCachedFetch(defaultOptions = {}) {
|
|
59
|
+
return async (url, options = {}) => {
|
|
60
|
+
const mergedOptions = { ...defaultOptions, ...options };
|
|
61
|
+
const response = await apiCacheService.fetch(url, mergedOptions);
|
|
62
|
+
return response.data;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Cache decorator for class methods
|
|
67
|
+
*/
|
|
68
|
+
export function cached(options = {}) {
|
|
69
|
+
return function (target, propertyName, descriptor) {
|
|
70
|
+
const method = descriptor.value;
|
|
71
|
+
descriptor.value = async function (...args) {
|
|
72
|
+
const key = `${target.constructor.name}:${propertyName}:${JSON.stringify(args)}`;
|
|
73
|
+
const cached = await cacheService.get(key, options.storage);
|
|
74
|
+
if (cached !== null) {
|
|
75
|
+
return cached;
|
|
76
|
+
}
|
|
77
|
+
const result = await method.apply(this, args);
|
|
78
|
+
await cacheService.set(key, result, options);
|
|
79
|
+
return result;
|
|
80
|
+
};
|
|
81
|
+
return descriptor;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Simple cache wrapper for API endpoints
|
|
86
|
+
*/
|
|
87
|
+
export class APICache {
|
|
88
|
+
constructor(baseURL = '', defaultOptions = {}) {
|
|
89
|
+
this.baseURL = baseURL;
|
|
90
|
+
this.defaultOptions = defaultOptions;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* GET request with caching
|
|
94
|
+
*/
|
|
95
|
+
async get(endpoint, options = {}) {
|
|
96
|
+
const url = this.baseURL + endpoint;
|
|
97
|
+
const response = await apiCacheService.get(url, {
|
|
98
|
+
...this.defaultOptions,
|
|
99
|
+
...options
|
|
100
|
+
});
|
|
101
|
+
return response.data;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* POST request
|
|
105
|
+
*/
|
|
106
|
+
async post(endpoint, data, options = {}) {
|
|
107
|
+
const url = this.baseURL + endpoint;
|
|
108
|
+
const response = await apiCacheService.post(url, data, {
|
|
109
|
+
...this.defaultOptions,
|
|
110
|
+
...options
|
|
111
|
+
});
|
|
112
|
+
return response.data;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* PUT request with cache invalidation
|
|
116
|
+
*/
|
|
117
|
+
async put(endpoint, data, options = {}) {
|
|
118
|
+
const url = this.baseURL + endpoint;
|
|
119
|
+
const response = await apiCacheService.put(url, data, {
|
|
120
|
+
...this.defaultOptions,
|
|
121
|
+
...options
|
|
122
|
+
});
|
|
123
|
+
return response.data;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* DELETE request with cache invalidation
|
|
127
|
+
*/
|
|
128
|
+
async delete(endpoint, options = {}) {
|
|
129
|
+
const url = this.baseURL + endpoint;
|
|
130
|
+
const response = await apiCacheService.delete(url, {
|
|
131
|
+
...this.defaultOptions,
|
|
132
|
+
...options
|
|
133
|
+
});
|
|
134
|
+
return response.data;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Invalidate cache for endpoint pattern
|
|
138
|
+
*/
|
|
139
|
+
async invalidate(pattern, options) {
|
|
140
|
+
await apiCacheService.invalidate(this.baseURL + pattern, {
|
|
141
|
+
...this.defaultOptions,
|
|
142
|
+
...options
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Prefetch endpoints
|
|
147
|
+
*/
|
|
148
|
+
async prefetch(endpoints, options = {}) {
|
|
149
|
+
const urls = endpoints.map(endpoint => this.baseURL + endpoint);
|
|
150
|
+
await apiCacheService.prefetch(urls, {
|
|
151
|
+
...this.defaultOptions,
|
|
152
|
+
...options
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* User-specific cache utilities
|
|
158
|
+
*/
|
|
159
|
+
export class UserCache {
|
|
160
|
+
constructor(userId) {
|
|
161
|
+
this.userId = userId;
|
|
162
|
+
}
|
|
163
|
+
getKey(key) {
|
|
164
|
+
return `user:${this.userId}:${key}`;
|
|
165
|
+
}
|
|
166
|
+
async get(key, storage) {
|
|
167
|
+
return cacheService.get(this.getKey(key), storage);
|
|
168
|
+
}
|
|
169
|
+
async set(key, value, options = {}) {
|
|
170
|
+
return cacheService.set(this.getKey(key), value, {
|
|
171
|
+
...options,
|
|
172
|
+
tags: [...(options.tags || []), `user:${this.userId}`]
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
async delete(key, storage) {
|
|
176
|
+
return cacheService.delete(this.getKey(key), storage);
|
|
177
|
+
}
|
|
178
|
+
async clear(storage) {
|
|
179
|
+
await cacheService.invalidateByTags([`user:${this.userId}`], storage);
|
|
180
|
+
}
|
|
181
|
+
async getOrSet(key, factory, options = {}) {
|
|
182
|
+
return cacheService.getOrSet(this.getKey(key), factory, {
|
|
183
|
+
...options,
|
|
184
|
+
tags: [...(options.tags || []), `user:${this.userId}`]
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Cache warming utilities
|
|
190
|
+
*/
|
|
191
|
+
export class CacheWarmer {
|
|
192
|
+
constructor() {
|
|
193
|
+
this.warmupTasks = [];
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Add warmup task
|
|
197
|
+
*/
|
|
198
|
+
addTask(name, task, priority = 0) {
|
|
199
|
+
this.warmupTasks.push({ name, task, priority });
|
|
200
|
+
// Sort by priority (higher first)
|
|
201
|
+
this.warmupTasks.sort((a, b) => b.priority - a.priority);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Execute all warmup tasks
|
|
205
|
+
*/
|
|
206
|
+
async warmup(concurrency = 3) {
|
|
207
|
+
// Execute tasks in chunks based on concurrency
|
|
208
|
+
for (let i = 0; i < this.warmupTasks.length; i += concurrency) {
|
|
209
|
+
const chunk = this.warmupTasks.slice(i, i + concurrency);
|
|
210
|
+
await Promise.allSettled(chunk.map(async ({ name, task }) => {
|
|
211
|
+
try {
|
|
212
|
+
await task();
|
|
213
|
+
console.debug(`Cache warmup completed: ${name}`);
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
console.warn(`Cache warmup failed: ${name}`, error);
|
|
217
|
+
}
|
|
218
|
+
}));
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Create common warmup tasks
|
|
223
|
+
*/
|
|
224
|
+
static createCommonTasks(apiCache) {
|
|
225
|
+
const warmer = new CacheWarmer();
|
|
226
|
+
// High priority - critical data
|
|
227
|
+
warmer.addTask('user-profile', async () => {
|
|
228
|
+
await apiCache.get('/user/profile');
|
|
229
|
+
}, 100);
|
|
230
|
+
warmer.addTask('app-config', async () => {
|
|
231
|
+
await apiCache.get('/config');
|
|
232
|
+
}, 90);
|
|
233
|
+
// Medium priority - frequently accessed
|
|
234
|
+
warmer.addTask('navigation', async () => {
|
|
235
|
+
await apiCache.get('/navigation');
|
|
236
|
+
}, 50);
|
|
237
|
+
// Low priority - nice to have
|
|
238
|
+
warmer.addTask('recent-activity', async () => {
|
|
239
|
+
await apiCache.get('/activity/recent');
|
|
240
|
+
}, 10);
|
|
241
|
+
return warmer;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Cache performance monitoring
|
|
246
|
+
*/
|
|
247
|
+
export class CacheMonitor {
|
|
248
|
+
constructor() {
|
|
249
|
+
this.stats = {
|
|
250
|
+
hits: 0,
|
|
251
|
+
misses: 0,
|
|
252
|
+
errors: 0,
|
|
253
|
+
avgResponseTime: 0,
|
|
254
|
+
totalRequests: 0
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
static getInstance() {
|
|
258
|
+
if (!CacheMonitor.instance) {
|
|
259
|
+
CacheMonitor.instance = new CacheMonitor();
|
|
260
|
+
}
|
|
261
|
+
return CacheMonitor.instance;
|
|
262
|
+
}
|
|
263
|
+
recordHit(responseTime) {
|
|
264
|
+
this.stats.hits++;
|
|
265
|
+
this.stats.totalRequests++;
|
|
266
|
+
this.updateAvgResponseTime(responseTime);
|
|
267
|
+
}
|
|
268
|
+
recordMiss(responseTime) {
|
|
269
|
+
this.stats.misses++;
|
|
270
|
+
this.stats.totalRequests++;
|
|
271
|
+
this.updateAvgResponseTime(responseTime);
|
|
272
|
+
}
|
|
273
|
+
recordError() {
|
|
274
|
+
this.stats.errors++;
|
|
275
|
+
}
|
|
276
|
+
updateAvgResponseTime(responseTime) {
|
|
277
|
+
this.stats.avgResponseTime =
|
|
278
|
+
(this.stats.avgResponseTime * (this.stats.totalRequests - 1) + responseTime) /
|
|
279
|
+
this.stats.totalRequests;
|
|
280
|
+
}
|
|
281
|
+
getStats() {
|
|
282
|
+
return {
|
|
283
|
+
...this.stats,
|
|
284
|
+
hitRate: this.stats.totalRequests > 0
|
|
285
|
+
? (this.stats.hits / this.stats.totalRequests) * 100
|
|
286
|
+
: 0,
|
|
287
|
+
errorRate: this.stats.totalRequests > 0
|
|
288
|
+
? (this.stats.errors / this.stats.totalRequests) * 100
|
|
289
|
+
: 0
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
reset() {
|
|
293
|
+
this.stats = {
|
|
294
|
+
hits: 0,
|
|
295
|
+
misses: 0,
|
|
296
|
+
errors: 0,
|
|
297
|
+
avgResponseTime: 0,
|
|
298
|
+
totalRequests: 0
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=cache-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-helpers.js","sourceRoot":"","sources":["../../src/utils/cache-helpers.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xbg.solutions/bpsk-utils-api-client",
|
|
3
|
+
"version": "1.2.3",
|
|
4
|
+
"description": "XBG API Client - HTTP service, request/response handlers, caching",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"types": "lib/index.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"files": ["lib"],
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"build:watch": "tsc --watch",
|
|
12
|
+
"clean": "rm -rf lib",
|
|
13
|
+
"prepublishOnly": "npm run build"
|
|
14
|
+
},
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@xbg.solutions/bpsk-core": "^1.0.0",
|
|
20
|
+
"@xbg.solutions/bpsk-utils-csrf": "^1.0.0",
|
|
21
|
+
"@xbg.solutions/bpsk-utils-firebase-auth": "^1.0.0",
|
|
22
|
+
"@xbg.solutions/bpsk-utils-sanitizer": "^1.0.0"
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"svelte": "^5.0.0"
|
|
26
|
+
}
|
|
27
|
+
}
|