@sales-planner/http-client 0.19.2 → 0.19.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.
- package/README.md +40 -25
- package/dist/clients/api-keys-client.d.ts +1 -0
- package/dist/clients/api-keys-client.d.ts.map +1 -1
- package/dist/clients/api-keys-client.js +3 -0
- package/dist/clients/computed-entities-client.d.ts +4 -3
- package/dist/clients/computed-entities-client.d.ts.map +1 -1
- package/dist/clients/computed-entities-client.js +6 -15
- package/dist/clients/index.d.ts +1 -0
- package/dist/clients/index.d.ts.map +1 -1
- package/dist/clients/index.js +1 -0
- package/dist/clients/roles-client.d.ts +3 -6
- package/dist/clients/roles-client.d.ts.map +1 -1
- package/dist/clients/roles-client.js +5 -12
- package/dist/clients/sales-planner-client.d.ts +5 -3
- package/dist/clients/sales-planner-client.d.ts.map +1 -1
- package/dist/clients/sales-planner-client.js +5 -2
- package/dist/clients/sku-metrics-client.d.ts +6 -6
- package/dist/clients/sku-metrics-client.d.ts.map +1 -1
- package/dist/clients/sku-metrics-client.js +10 -26
- package/dist/clients/user-shops-client.d.ts +9 -0
- package/dist/clients/user-shops-client.d.ts.map +1 -0
- package/dist/clients/user-shops-client.js +22 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -96,17 +96,25 @@ All shop-scoped clients (`skus`, `brands`, `categories`, `groups`, `statuses`, `
|
|
|
96
96
|
- `importJson(ctx, items)`, `importCsv(ctx, csv)`, `exportJson(ctx)`, `exportCsv(ctx)`
|
|
97
97
|
- `getExampleJson()`, `getExampleCsv()` (no auth)
|
|
98
98
|
|
|
99
|
-
System clients (`users`, `tenants`, `shops`, `roles`, `userRoles`, `apiKeys`) also return paginated responses:
|
|
99
|
+
System clients (`users`, `tenants`, `shops`, `roles`, `userRoles`, `userShops`, `apiKeys`) also return paginated responses:
|
|
100
100
|
|
|
101
101
|
```typescript
|
|
102
102
|
// All system getAll() methods return PaginatedResponse<T>
|
|
103
103
|
const { items: users, total } = await client.users.getAll();
|
|
104
104
|
const { items: tenants } = await client.tenants.getAll({ limit: 10 });
|
|
105
105
|
const { items: shops } = await client.shops.getAll();
|
|
106
|
-
const { items: roles } = await client.roles.getAll();
|
|
107
106
|
const { items: userRoles } = await client.userRoles.getAll();
|
|
108
107
|
const { items: apiKeys } = await client.apiKeys.getAll();
|
|
109
108
|
|
|
109
|
+
// Roles are predefined and read-only (available to all authenticated users)
|
|
110
|
+
const { items: roles } = await client.roles.getAll();
|
|
111
|
+
const role = await client.roles.getById(1);
|
|
112
|
+
|
|
113
|
+
// User-shop assignments
|
|
114
|
+
const userShops = await client.userShops.getAll({ shopId: 1 });
|
|
115
|
+
await client.userShops.create({ user_id: 1, shop_id: 1 });
|
|
116
|
+
await client.userShops.delete(assignmentId);
|
|
117
|
+
|
|
110
118
|
// Delete all shop data (SKUs, sales history, brands, categories, etc.)
|
|
111
119
|
const result = await client.shops.deleteData(shopId);
|
|
112
120
|
console.log(result);
|
|
@@ -136,22 +144,22 @@ SKU metrics and materialized view management:
|
|
|
136
144
|
const ctx = { shop_id: 1, tenant_id: 1 };
|
|
137
145
|
|
|
138
146
|
// SKU Metrics - aggregated metrics from materialized views
|
|
139
|
-
const { items, total } = await client.skuMetrics.list(ctx
|
|
140
|
-
const metric = await client.skuMetrics.get(
|
|
141
|
-
const topProducts = await client.skuMetrics.getByAbcClass('A'
|
|
147
|
+
const { items, total } = await client.skuMetrics.list(ctx);
|
|
148
|
+
const metric = await client.skuMetrics.get(ctx, id);
|
|
149
|
+
const topProducts = await client.skuMetrics.getByAbcClass(ctx, 'A');
|
|
142
150
|
|
|
143
151
|
// Export
|
|
144
|
-
const csv = await client.skuMetrics.exportCsv(ctx
|
|
145
|
-
const json = await client.skuMetrics.exportJson(ctx
|
|
152
|
+
const csv = await client.skuMetrics.exportCsv(ctx);
|
|
153
|
+
const json = await client.skuMetrics.exportJson(ctx);
|
|
146
154
|
|
|
147
155
|
// View Management
|
|
148
|
-
const views = await client.computed.getViews(ctx
|
|
156
|
+
const views = await client.computed.getViews(ctx);
|
|
149
157
|
// [{ name: 'mv_sku_metrics', description: 'SKU metrics with ABC classification' }]
|
|
150
158
|
|
|
151
|
-
const result = await client.computed.refreshAll(ctx
|
|
159
|
+
const result = await client.computed.refreshAll(ctx);
|
|
152
160
|
// { results: [...], totalDuration: 1234, success: true }
|
|
153
161
|
|
|
154
|
-
const viewResult = await client.computed.refreshView('mv_sku_metrics'
|
|
162
|
+
const viewResult = await client.computed.refreshView(ctx, 'mv_sku_metrics');
|
|
155
163
|
// { view: 'mv_sku_metrics', duration: 500, success: true }
|
|
156
164
|
```
|
|
157
165
|
|
|
@@ -363,7 +371,7 @@ interface SkuCompetitorMapping {
|
|
|
363
371
|
```
|
|
364
372
|
|
|
365
373
|
Available entity types summary:
|
|
366
|
-
- `User`, `Tenant`, `Shop`, `Role`, `ApiKey` - system entities
|
|
374
|
+
- `User`, `Tenant`, `Shop`, `Role`, `UserShop`, `ApiKey` - system entities
|
|
367
375
|
- `Sku`, `Brand`, `Category`, `Group`, `Status`, `Supplier`, `Warehouse`, `Marketplace` - shop data
|
|
368
376
|
- `SalesHistory`, `Leftover`, `SeasonalCoefficient` - time-series data
|
|
369
377
|
- `CompetitorProduct`, `CompetitorSale`, `SkuCompetitorMapping` - competitor data
|
|
@@ -462,55 +470,62 @@ interface SkuImportResult extends ImportResult {
|
|
|
462
470
|
import type {
|
|
463
471
|
// Query & Response
|
|
464
472
|
ShopContextParams, PaginationQuery, PaginatedResponse, PeriodQuery,
|
|
465
|
-
SalesHistoryQuery, LeftoverQuery, CompetitorSaleQuery,
|
|
466
|
-
|
|
473
|
+
SalesHistoryQuery, LeftoverQuery, CompetitorSaleQuery,
|
|
474
|
+
GetUserRolesQuery, GetUserShopsQuery,
|
|
475
|
+
|
|
467
476
|
// System Entities
|
|
468
|
-
User, Tenant, Shop, Role, ApiKey, UserRoleResponse,
|
|
469
|
-
|
|
477
|
+
User, Tenant, Shop, Role, UserShop, ApiKey, UserRoleResponse,
|
|
478
|
+
|
|
470
479
|
// Shop Data Entities
|
|
471
480
|
Sku, Brand, Category, Group, Status, Supplier, Warehouse, Marketplace,
|
|
472
|
-
|
|
481
|
+
|
|
473
482
|
// Time-Series Entities
|
|
474
483
|
SalesHistory, Leftover, SeasonalCoefficient,
|
|
475
|
-
|
|
484
|
+
|
|
476
485
|
// Competitor Entities
|
|
477
486
|
CompetitorProduct, CompetitorSale, SkuCompetitorMapping,
|
|
478
|
-
|
|
487
|
+
|
|
479
488
|
// Computed Entities (read-only)
|
|
480
489
|
SkuMetrics,
|
|
481
|
-
|
|
490
|
+
|
|
482
491
|
// User/Me Response Types
|
|
483
492
|
UserWithRolesAndTenants, UserRole, TenantInfo, ShopInfo,
|
|
484
|
-
|
|
493
|
+
|
|
485
494
|
// Create/Update Requests
|
|
486
495
|
CreateSkuRequest, UpdateSkuRequest,
|
|
487
496
|
CreateUserRequest, UpdateUserRequest,
|
|
488
497
|
CreateTenantRequest, UpdateTenantRequest,
|
|
489
498
|
CreateShopRequest, UpdateShopRequest,
|
|
490
499
|
CreateApiKeyRequest,
|
|
491
|
-
|
|
500
|
+
CreateUserShopDto,
|
|
501
|
+
|
|
492
502
|
// Import Items (use string codes, auto-resolved)
|
|
493
503
|
ImportSkuItem, ImportSalesHistoryItem, ImportLeftoverItem,
|
|
494
504
|
ImportSeasonalCoefficientItem, ImportSkuCompetitorMappingItem,
|
|
495
505
|
ImportCompetitorProductItem, ImportCompetitorSaleItem,
|
|
496
506
|
ImportBrandItem, ImportCategoryItem, ImportGroupItem,
|
|
497
507
|
ImportStatusItem, ImportSupplierItem, ImportWarehouseItem, ImportMarketplaceItem,
|
|
498
|
-
|
|
508
|
+
|
|
499
509
|
// Export Items
|
|
500
|
-
SkuExportItem, SalesHistoryExportItem, LeftoverExportItem,
|
|
510
|
+
SkuExportItem, SkuMetricsExportItem, SalesHistoryExportItem, LeftoverExportItem,
|
|
501
511
|
SeasonalCoefficientExportItem, SkuCompetitorMappingExportItem,
|
|
502
512
|
CompetitorProductExportItem, CompetitorSaleExportItem,
|
|
503
513
|
BrandExportItem, CategoryExportItem, GroupExportItem,
|
|
504
514
|
StatusExportItem, SupplierExportItem, WarehouseExportItem, MarketplaceExportItem,
|
|
505
|
-
|
|
515
|
+
|
|
506
516
|
// Results
|
|
507
517
|
ImportResult, SkuImportResult, SalesHistoryImportResult, DeleteDataResult,
|
|
508
|
-
|
|
518
|
+
|
|
509
519
|
// Metadata (for UI documentation)
|
|
510
520
|
EntitiesMetadata, EntityMetadata, EntityFieldMetadata, FieldType,
|
|
511
521
|
} from '@sales-planner/http-client';
|
|
512
522
|
```
|
|
513
523
|
|
|
524
|
+
## Related Packages
|
|
525
|
+
|
|
526
|
+
- `@sales-planner/shared` — TypeScript types (included as dependency)
|
|
527
|
+
- `@sales-planner/react` — React hooks powered by TanStack Query
|
|
528
|
+
|
|
514
529
|
## License
|
|
515
530
|
|
|
516
531
|
MIT
|
|
@@ -5,6 +5,7 @@ export interface GetApiKeysQuery extends PaginationQuery {
|
|
|
5
5
|
}
|
|
6
6
|
export declare class ApiKeysClient extends BaseClient {
|
|
7
7
|
getAll(query?: GetApiKeysQuery): Promise<PaginatedResponse<ApiKey>>;
|
|
8
|
+
getById(id: number): Promise<ApiKey>;
|
|
8
9
|
create(request: CreateApiKeyRequest): Promise<ApiKey>;
|
|
9
10
|
delete(id: number): Promise<void>;
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys-client.d.ts","sourceRoot":"","sources":["../../src/clients/api-keys-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,aAAc,SAAQ,UAAU;IACrC,MAAM,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAMnE,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxC"}
|
|
1
|
+
{"version":3,"file":"api-keys-client.d.ts","sourceRoot":"","sources":["../../src/clients/api-keys-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,aAAc,SAAQ,UAAU;IACrC,MAAM,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAMnE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpC,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ShopContextParams } from '@sales-planner/shared';
|
|
1
2
|
import { BaseClient } from './base-client.js';
|
|
2
3
|
/**
|
|
3
4
|
* View metadata returned by getViews
|
|
@@ -31,14 +32,14 @@ export declare class ComputedEntitiesClient extends BaseClient {
|
|
|
31
32
|
/**
|
|
32
33
|
* Get list of all available materialized views
|
|
33
34
|
*/
|
|
34
|
-
getViews(
|
|
35
|
+
getViews(ctx: ShopContextParams): Promise<ViewInfo[]>;
|
|
35
36
|
/**
|
|
36
37
|
* Refresh all materialized views in dependency order
|
|
37
38
|
*/
|
|
38
|
-
refreshAll(
|
|
39
|
+
refreshAll(ctx: ShopContextParams): Promise<RefreshAllResult>;
|
|
39
40
|
/**
|
|
40
41
|
* Refresh a single materialized view by name
|
|
41
42
|
*/
|
|
42
|
-
refreshView(
|
|
43
|
+
refreshView(ctx: ShopContextParams, viewName: string): Promise<RefreshResult>;
|
|
43
44
|
}
|
|
44
45
|
//# sourceMappingURL=computed-entities-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computed-entities-client.d.ts","sourceRoot":"","sources":["../../src/clients/computed-entities-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,UAAU;IACpD;;OAEG;IACG,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"computed-entities-client.d.ts","sourceRoot":"","sources":["../../src/clients/computed-entities-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,UAAU;IACpD;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAM3D;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMnE;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAKpF"}
|
|
@@ -7,34 +7,25 @@ export class ComputedEntitiesClient extends BaseClient {
|
|
|
7
7
|
/**
|
|
8
8
|
* Get list of all available materialized views
|
|
9
9
|
*/
|
|
10
|
-
async getViews(
|
|
10
|
+
async getViews(ctx) {
|
|
11
11
|
return this.request('GET', '/computed/views', {
|
|
12
|
-
params:
|
|
13
|
-
shop_id: shopId,
|
|
14
|
-
tenant_id: tenantId,
|
|
15
|
-
},
|
|
12
|
+
params: ctx,
|
|
16
13
|
});
|
|
17
14
|
}
|
|
18
15
|
/**
|
|
19
16
|
* Refresh all materialized views in dependency order
|
|
20
17
|
*/
|
|
21
|
-
async refreshAll(
|
|
18
|
+
async refreshAll(ctx) {
|
|
22
19
|
return this.request('POST', '/computed/refresh', {
|
|
23
|
-
params:
|
|
24
|
-
shop_id: shopId,
|
|
25
|
-
tenant_id: tenantId,
|
|
26
|
-
},
|
|
20
|
+
params: ctx,
|
|
27
21
|
});
|
|
28
22
|
}
|
|
29
23
|
/**
|
|
30
24
|
* Refresh a single materialized view by name
|
|
31
25
|
*/
|
|
32
|
-
async refreshView(
|
|
26
|
+
async refreshView(ctx, viewName) {
|
|
33
27
|
return this.request('POST', `/computed/refresh/${viewName}`, {
|
|
34
|
-
params:
|
|
35
|
-
shop_id: shopId,
|
|
36
|
-
tenant_id: tenantId,
|
|
37
|
-
},
|
|
28
|
+
params: ctx,
|
|
38
29
|
});
|
|
39
30
|
}
|
|
40
31
|
}
|
package/dist/clients/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { SalesPlannerClient } from './sales-planner-client.js';
|
|
2
2
|
export { ApiError, type ClientConfig } from './base-client.js';
|
|
3
3
|
export { SkuMetricsClient } from './sku-metrics-client.js';
|
|
4
|
+
export { UserShopsClient } from './user-shops-client.js';
|
|
4
5
|
export { ComputedEntitiesClient, type ViewInfo, type RefreshResult, type RefreshAllResult, } from './computed-entities-client.js';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAC"}
|
package/dist/clients/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { SalesPlannerClient } from './sales-planner-client.js';
|
|
2
2
|
export { ApiError } from './base-client.js';
|
|
3
3
|
export { SkuMetricsClient } from './sku-metrics-client.js';
|
|
4
|
+
export { UserShopsClient } from './user-shops-client.js';
|
|
4
5
|
export { ComputedEntitiesClient, } from './computed-entities-client.js';
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import type { Role,
|
|
1
|
+
import type { Role, PaginatedResponse, PaginationQuery } from '@sales-planner/shared';
|
|
2
2
|
import { BaseClient } from './base-client.js';
|
|
3
3
|
export declare class RolesClient extends BaseClient {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
createRole(request: CreateRoleRequest): Promise<Role>;
|
|
7
|
-
updateRole(id: number, request: UpdateRoleRequest): Promise<Role>;
|
|
8
|
-
deleteRole(id: number): Promise<void>;
|
|
4
|
+
getAll(query?: PaginationQuery): Promise<PaginatedResponse<Role>>;
|
|
5
|
+
getById(id: number): Promise<Role>;
|
|
9
6
|
}
|
|
10
7
|
//# sourceMappingURL=roles-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles-client.d.ts","sourceRoot":"","sources":["../../src/clients/roles-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"roles-client.d.ts","sourceRoot":"","sources":["../../src/clients/roles-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,UAAU;IACnC,MAAM,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAMjE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzC"}
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
import { BaseClient } from './base-client.js';
|
|
2
2
|
export class RolesClient extends BaseClient {
|
|
3
|
-
async
|
|
4
|
-
return this.request('GET', '/roles'
|
|
3
|
+
async getAll(query) {
|
|
4
|
+
return this.request('GET', '/roles', {
|
|
5
|
+
params: query,
|
|
6
|
+
});
|
|
5
7
|
}
|
|
6
|
-
async
|
|
8
|
+
async getById(id) {
|
|
7
9
|
return this.request('GET', `/roles/${id}`);
|
|
8
10
|
}
|
|
9
|
-
async createRole(request) {
|
|
10
|
-
return this.request('POST', '/roles', { body: request });
|
|
11
|
-
}
|
|
12
|
-
async updateRole(id, request) {
|
|
13
|
-
return this.request('PUT', `/roles/${id}`, { body: request });
|
|
14
|
-
}
|
|
15
|
-
async deleteRole(id) {
|
|
16
|
-
return this.request('DELETE', `/roles/${id}`);
|
|
17
|
-
}
|
|
18
11
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Brand, CreateBrandRequest, UpdateBrandRequest, ImportBrandItem, BrandExportItem, Category, CreateCategoryRequest, UpdateCategoryRequest, ImportCategoryItem, CategoryExportItem, CompetitorProduct, CreateCompetitorProductRequest, UpdateCompetitorProductRequest, ImportCompetitorProductItem, CompetitorProductExportItem, CompetitorProductQuery, CompetitorSale, CreateCompetitorSaleRequest, UpdateCompetitorSaleRequest, ImportCompetitorSaleItem, CompetitorSaleExportItem, CompetitorSaleQuery, Group, CreateGroupRequest, UpdateGroupRequest, ImportGroupItem, GroupExportItem, Leftover, CreateLeftoverRequest, UpdateLeftoverRequest, ImportLeftoverItem, LeftoverExportItem, LeftoverQuery, PaginationQuery, Status, CreateStatusRequest, UpdateStatusRequest, ImportStatusItem, StatusExportItem, Supplier, CreateSupplierRequest, UpdateSupplierRequest, ImportSupplierItem, SupplierExportItem, SeasonalCoefficient, CreateSeasonalCoefficientRequest, UpdateSeasonalCoefficientRequest, ImportSeasonalCoefficientItem, SeasonalCoefficientExportItem, SkuCompetitorMapping, CreateSkuCompetitorMappingRequest, UpdateSkuCompetitorMappingRequest, ImportSkuCompetitorMappingItem, SkuCompetitorMappingExportItem, Warehouse, CreateWarehouseRequest, UpdateWarehouseRequest, ImportWarehouseItem, WarehouseExportItem, Marketplace, CreateMarketplaceRequest, UpdateMarketplaceRequest, ImportMarketplaceItem, MarketplaceExportItem,
|
|
1
|
+
import type { Brand, CreateBrandRequest, UpdateBrandRequest, ImportBrandItem, BrandExportItem, Category, CreateCategoryRequest, UpdateCategoryRequest, ImportCategoryItem, CategoryExportItem, CompetitorProduct, CreateCompetitorProductRequest, UpdateCompetitorProductRequest, ImportCompetitorProductItem, CompetitorProductExportItem, CompetitorProductQuery, CompetitorSale, CreateCompetitorSaleRequest, UpdateCompetitorSaleRequest, ImportCompetitorSaleItem, CompetitorSaleExportItem, CompetitorSaleQuery, Group, CreateGroupRequest, UpdateGroupRequest, ImportGroupItem, GroupExportItem, Leftover, CreateLeftoverRequest, UpdateLeftoverRequest, ImportLeftoverItem, LeftoverExportItem, LeftoverQuery, PaginationQuery, Status, CreateStatusRequest, UpdateStatusRequest, ImportStatusItem, StatusExportItem, Supplier, CreateSupplierRequest, UpdateSupplierRequest, ImportSupplierItem, SupplierExportItem, SeasonalCoefficient, CreateSeasonalCoefficientRequest, UpdateSeasonalCoefficientRequest, ImportSeasonalCoefficientItem, SeasonalCoefficientExportItem, SkuCompetitorMapping, CreateSkuCompetitorMappingRequest, UpdateSkuCompetitorMappingRequest, ImportSkuCompetitorMappingItem, SkuCompetitorMappingExportItem, Warehouse, CreateWarehouseRequest, UpdateWarehouseRequest, ImportWarehouseItem, WarehouseExportItem, Marketplace, CreateMarketplaceRequest, UpdateMarketplaceRequest, ImportMarketplaceItem, MarketplaceExportItem, SalesHistory, CreateSalesHistoryRequest, UpdateSalesHistoryRequest, ImportSalesHistoryItem, SalesHistoryExportItem, SalesHistoryImportResult, SalesHistoryQuery, ImportResult } from '@sales-planner/shared';
|
|
2
2
|
import type { ClientConfig } from './base-client.js';
|
|
3
3
|
import { CodedEntityClient } from './coded-entity-client.js';
|
|
4
|
-
import {
|
|
4
|
+
import { RolesClient } from './roles-client.js';
|
|
5
5
|
import { ShopScopedClient } from './shop-scoped-client.js';
|
|
6
6
|
import { MeClient } from './me-client.js';
|
|
7
7
|
import { MetadataClient } from './metadata-client.js';
|
|
@@ -10,6 +10,7 @@ import { TenantsClient } from './tenants-client.js';
|
|
|
10
10
|
import { ShopsClient } from './shops-client.js';
|
|
11
11
|
import { SkusClient } from './skus-client.js';
|
|
12
12
|
import { UserRolesClient } from './user-roles-client.js';
|
|
13
|
+
import { UserShopsClient } from './user-shops-client.js';
|
|
13
14
|
import { ApiKeysClient } from './api-keys-client.js';
|
|
14
15
|
import { SkuMetricsClient } from './sku-metrics-client.js';
|
|
15
16
|
import { ComputedEntitiesClient } from './computed-entities-client.js';
|
|
@@ -34,8 +35,9 @@ export declare class SalesPlannerClient {
|
|
|
34
35
|
readonly skuCompetitorMappings: ShopScopedClient<SkuCompetitorMapping, CreateSkuCompetitorMappingRequest, UpdateSkuCompetitorMappingRequest, ImportSkuCompetitorMappingItem, SkuCompetitorMappingExportItem, ImportResult, PaginationQuery>;
|
|
35
36
|
readonly competitorProducts: ShopScopedClient<CompetitorProduct, CreateCompetitorProductRequest, UpdateCompetitorProductRequest, ImportCompetitorProductItem, CompetitorProductExportItem, ImportResult, CompetitorProductQuery>;
|
|
36
37
|
readonly competitorSales: ShopScopedClient<CompetitorSale, CreateCompetitorSaleRequest, UpdateCompetitorSaleRequest, ImportCompetitorSaleItem, CompetitorSaleExportItem, ImportResult, CompetitorSaleQuery>;
|
|
37
|
-
readonly roles:
|
|
38
|
+
readonly roles: RolesClient;
|
|
38
39
|
readonly userRoles: UserRolesClient;
|
|
40
|
+
readonly userShops: UserShopsClient;
|
|
39
41
|
readonly apiKeys: ApiKeysClient;
|
|
40
42
|
readonly skuMetrics: SkuMetricsClient;
|
|
41
43
|
readonly computed: ComputedEntitiesClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sales-planner-client.d.ts","sourceRoot":"","sources":["../../src/clients/sales-planner-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,MAAM,EACN,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,gCAAgC,EAChC,gCAAgC,EAChC,6BAA6B,EAC7B,6BAA6B,EAC7B,oBAAoB,EACpB,iCAAiC,EACjC,iCAAiC,EACjC,8BAA8B,EAC9B,8BAA8B,EAC9B,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"sales-planner-client.d.ts","sourceRoot":"","sources":["../../src/clients/sales-planner-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ApiError } from './base-client.js';
|
|
2
2
|
import { CodedEntityClient } from './coded-entity-client.js';
|
|
3
|
-
import {
|
|
3
|
+
import { RolesClient } from './roles-client.js';
|
|
4
4
|
import { ShopScopedClient } from './shop-scoped-client.js';
|
|
5
5
|
import { MeClient } from './me-client.js';
|
|
6
6
|
import { MetadataClient } from './metadata-client.js';
|
|
@@ -9,6 +9,7 @@ import { TenantsClient } from './tenants-client.js';
|
|
|
9
9
|
import { ShopsClient } from './shops-client.js';
|
|
10
10
|
import { SkusClient } from './skus-client.js';
|
|
11
11
|
import { UserRolesClient } from './user-roles-client.js';
|
|
12
|
+
import { UserShopsClient } from './user-shops-client.js';
|
|
12
13
|
import { ApiKeysClient } from './api-keys-client.js';
|
|
13
14
|
import { SkuMetricsClient } from './sku-metrics-client.js';
|
|
14
15
|
import { ComputedEntitiesClient } from './computed-entities-client.js';
|
|
@@ -36,6 +37,7 @@ export class SalesPlannerClient {
|
|
|
36
37
|
competitorSales;
|
|
37
38
|
roles;
|
|
38
39
|
userRoles;
|
|
40
|
+
userShops;
|
|
39
41
|
apiKeys;
|
|
40
42
|
skuMetrics;
|
|
41
43
|
computed;
|
|
@@ -60,8 +62,9 @@ export class SalesPlannerClient {
|
|
|
60
62
|
this.skuCompetitorMappings = new ShopScopedClient(config, 'sku-competitor-mappings');
|
|
61
63
|
this.competitorProducts = new ShopScopedClient(config, 'competitor-products');
|
|
62
64
|
this.competitorSales = new ShopScopedClient(config, 'competitor-sales');
|
|
63
|
-
this.roles = new
|
|
65
|
+
this.roles = new RolesClient(config);
|
|
64
66
|
this.userRoles = new UserRolesClient(config);
|
|
67
|
+
this.userShops = new UserShopsClient(config);
|
|
65
68
|
this.apiKeys = new ApiKeysClient(config);
|
|
66
69
|
this.skuMetrics = new SkuMetricsClient(config);
|
|
67
70
|
this.computed = new ComputedEntitiesClient(config);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PaginatedResponse, PaginationQuery, SkuMetrics } from '@sales-planner/shared';
|
|
1
|
+
import type { PaginatedResponse, PaginationQuery, ShopContextParams, SkuMetrics } from '@sales-planner/shared';
|
|
2
2
|
import { BaseClient } from './base-client.js';
|
|
3
3
|
/**
|
|
4
4
|
* Client for read-only SKU metrics computed from materialized views.
|
|
@@ -8,22 +8,22 @@ export declare class SkuMetricsClient extends BaseClient {
|
|
|
8
8
|
/**
|
|
9
9
|
* List SKU metrics for a shop with pagination
|
|
10
10
|
*/
|
|
11
|
-
list(
|
|
11
|
+
list(ctx: ShopContextParams, query?: PaginationQuery): Promise<PaginatedResponse<SkuMetrics>>;
|
|
12
12
|
/**
|
|
13
13
|
* Get a single SKU metric by ID
|
|
14
14
|
*/
|
|
15
|
-
get(
|
|
15
|
+
get(ctx: ShopContextParams, id: number): Promise<SkuMetrics>;
|
|
16
16
|
/**
|
|
17
17
|
* Get SKU metrics filtered by ABC classification
|
|
18
18
|
*/
|
|
19
|
-
getByAbcClass(abcClass: 'A' | 'B' | 'C'
|
|
19
|
+
getByAbcClass(ctx: ShopContextParams, abcClass: 'A' | 'B' | 'C'): Promise<SkuMetrics[]>;
|
|
20
20
|
/**
|
|
21
21
|
* Export SKU metrics as CSV
|
|
22
22
|
*/
|
|
23
|
-
exportCsv(
|
|
23
|
+
exportCsv(ctx: ShopContextParams): Promise<string>;
|
|
24
24
|
/**
|
|
25
25
|
* Export SKU metrics as JSON
|
|
26
26
|
*/
|
|
27
|
-
exportJson(
|
|
27
|
+
exportJson(ctx: ShopContextParams): Promise<SkuMetrics[]>;
|
|
28
28
|
}
|
|
29
29
|
//# sourceMappingURL=sku-metrics-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sku-metrics-client.d.ts","sourceRoot":"","sources":["../../src/clients/sku-metrics-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"sku-metrics-client.d.ts","sourceRoot":"","sources":["../../src/clients/sku-metrics-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C;;OAEG;IACG,IAAI,CACR,GAAG,EAAE,iBAAiB,EACtB,KAAK,CAAC,EAAE,eAAe,GACtB,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAMzC;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMlE;;OAEG;IACG,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAM7F;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMxD;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAKhE"}
|
|
@@ -7,57 +7,41 @@ export class SkuMetricsClient extends BaseClient {
|
|
|
7
7
|
/**
|
|
8
8
|
* List SKU metrics for a shop with pagination
|
|
9
9
|
*/
|
|
10
|
-
async list(
|
|
10
|
+
async list(ctx, query) {
|
|
11
11
|
return this.request('GET', '/sku-metrics', {
|
|
12
|
-
params: {
|
|
13
|
-
shop_id: shopId,
|
|
14
|
-
tenant_id: tenantId,
|
|
15
|
-
...query,
|
|
16
|
-
},
|
|
12
|
+
params: { ...ctx, ...query },
|
|
17
13
|
});
|
|
18
14
|
}
|
|
19
15
|
/**
|
|
20
16
|
* Get a single SKU metric by ID
|
|
21
17
|
*/
|
|
22
|
-
async get(
|
|
18
|
+
async get(ctx, id) {
|
|
23
19
|
return this.request('GET', `/sku-metrics/${id}`, {
|
|
24
|
-
params:
|
|
25
|
-
shop_id: shopId,
|
|
26
|
-
tenant_id: tenantId,
|
|
27
|
-
},
|
|
20
|
+
params: ctx,
|
|
28
21
|
});
|
|
29
22
|
}
|
|
30
23
|
/**
|
|
31
24
|
* Get SKU metrics filtered by ABC classification
|
|
32
25
|
*/
|
|
33
|
-
async getByAbcClass(
|
|
26
|
+
async getByAbcClass(ctx, abcClass) {
|
|
34
27
|
return this.request('GET', `/sku-metrics/abc/${abcClass}`, {
|
|
35
|
-
params:
|
|
36
|
-
shop_id: shopId,
|
|
37
|
-
tenant_id: tenantId,
|
|
38
|
-
},
|
|
28
|
+
params: ctx,
|
|
39
29
|
});
|
|
40
30
|
}
|
|
41
31
|
/**
|
|
42
32
|
* Export SKU metrics as CSV
|
|
43
33
|
*/
|
|
44
|
-
async exportCsv(
|
|
34
|
+
async exportCsv(ctx) {
|
|
45
35
|
return this.requestText('GET', '/sku-metrics/export/csv', {
|
|
46
|
-
params:
|
|
47
|
-
shop_id: shopId,
|
|
48
|
-
tenant_id: tenantId,
|
|
49
|
-
},
|
|
36
|
+
params: ctx,
|
|
50
37
|
});
|
|
51
38
|
}
|
|
52
39
|
/**
|
|
53
40
|
* Export SKU metrics as JSON
|
|
54
41
|
*/
|
|
55
|
-
async exportJson(
|
|
42
|
+
async exportJson(ctx) {
|
|
56
43
|
return this.request('GET', '/sku-metrics/export/json', {
|
|
57
|
-
params:
|
|
58
|
-
shop_id: shopId,
|
|
59
|
-
tenant_id: tenantId,
|
|
60
|
-
},
|
|
44
|
+
params: ctx,
|
|
61
45
|
});
|
|
62
46
|
}
|
|
63
47
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { UserShop, CreateUserShopRequest, GetUserShopsQuery } from '@sales-planner/shared';
|
|
2
|
+
import { BaseClient } from './base-client.js';
|
|
3
|
+
export declare class UserShopsClient extends BaseClient {
|
|
4
|
+
getAll(query?: GetUserShopsQuery): Promise<UserShop[]>;
|
|
5
|
+
getById(id: number): Promise<UserShop>;
|
|
6
|
+
create(request: CreateUserShopRequest): Promise<UserShop>;
|
|
7
|
+
delete(id: number): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=user-shops-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-shops-client.d.ts","sourceRoot":"","sources":["../../src/clients/user-shops-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAAa,eAAgB,SAAQ,UAAU;IACvC,MAAM,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAQtD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAItC,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseClient } from './base-client.js';
|
|
2
|
+
export class UserShopsClient extends BaseClient {
|
|
3
|
+
async getAll(query) {
|
|
4
|
+
const params = {};
|
|
5
|
+
if (query?.userId)
|
|
6
|
+
params.userId = query.userId;
|
|
7
|
+
if (query?.shopId)
|
|
8
|
+
params.shopId = query.shopId;
|
|
9
|
+
if (query?.tenantId)
|
|
10
|
+
params.tenantId = query.tenantId;
|
|
11
|
+
return this.request('GET', '/user-shops', { params });
|
|
12
|
+
}
|
|
13
|
+
async getById(id) {
|
|
14
|
+
return this.request('GET', `/user-shops/${id}`);
|
|
15
|
+
}
|
|
16
|
+
async create(request) {
|
|
17
|
+
return this.request('POST', '/user-shops', { body: request });
|
|
18
|
+
}
|
|
19
|
+
async delete(id) {
|
|
20
|
+
return this.request('DELETE', `/user-shops/${id}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { SalesPlannerClient, ApiError } from './clients/index.js';
|
|
2
2
|
export type { ClientConfig } from './clients/index.js';
|
|
3
|
-
export type { User, Tenant, Shop, Sku, SalesHistory, Role, UserRole, ApiKey, Marketplace, Leftover, SeasonalCoefficient, SkuCompetitorMapping, CompetitorProduct, CompetitorSale, CreateUserDto, CreateTenantDto, CreateTenantWithShopDto, CreateShopDto, CreateSkuDto, CreateSkuRequest, UpdateSkuDto, UpdateSkuRequest, ImportSkuItem, CreateSalesHistoryDto, CreateSalesHistoryRequest, UpdateSalesHistoryDto, ImportSalesHistoryItem, CreateLeftoverDto, CreateLeftoverRequest, UpdateLeftoverDto, ImportLeftoverItem, CreateSeasonalCoefficientDto, CreateSeasonalCoefficientRequest, UpdateSeasonalCoefficientDto, ImportSeasonalCoefficientItem, CreateSkuCompetitorMappingDto, CreateSkuCompetitorMappingRequest, UpdateSkuCompetitorMappingDto, ImportSkuCompetitorMappingItem, CreateCompetitorProductDto, CreateCompetitorProductRequest, UpdateCompetitorProductDto, ImportCompetitorProductItem, CreateCompetitorSaleDto, CreateCompetitorSaleRequest, UpdateCompetitorSaleDto, ImportCompetitorSaleItem,
|
|
3
|
+
export type { User, Tenant, Shop, Sku, Brand, Category, Group, Status, Supplier, Warehouse, SalesHistory, Role, UserRole, ApiKey, Marketplace, Leftover, SeasonalCoefficient, SkuCompetitorMapping, CompetitorProduct, CompetitorSale, UserShop, SkuMetrics, CreateUserDto, CreateUserRequest, UpdateUserRequest, CreateTenantDto, CreateTenantRequest, UpdateTenantRequest, CreateTenantWithShopDto, CreateShopDto, CreateShopRequest, UpdateShopRequest, CreateApiKeyDto, CreateApiKeyRequest, CreateUserRoleDto, CreateUserShopDto, CreateSkuDto, CreateSkuRequest, UpdateSkuDto, UpdateSkuRequest, ImportSkuItem, CreateSalesHistoryDto, CreateSalesHistoryRequest, UpdateSalesHistoryDto, ImportSalesHistoryItem, CreateLeftoverDto, CreateLeftoverRequest, UpdateLeftoverDto, ImportLeftoverItem, CreateSeasonalCoefficientDto, CreateSeasonalCoefficientRequest, UpdateSeasonalCoefficientDto, ImportSeasonalCoefficientItem, CreateSkuCompetitorMappingDto, CreateSkuCompetitorMappingRequest, UpdateSkuCompetitorMappingDto, ImportSkuCompetitorMappingItem, CreateCompetitorProductDto, CreateCompetitorProductRequest, UpdateCompetitorProductDto, ImportCompetitorProductItem, CreateCompetitorSaleDto, CreateCompetitorSaleRequest, UpdateCompetitorSaleDto, ImportCompetitorSaleItem, ImportBrandItem, ImportCategoryItem, ImportGroupItem, ImportStatusItem, ImportSupplierItem, ImportWarehouseItem, ImportMarketplaceItem, CreateMarketplaceDto, CreateMarketplaceRequest, ShopContextParams, PaginationQuery, PeriodQuery, SalesHistoryQuery, LeftoverQuery, CompetitorSaleQuery, GetUserRolesQuery, GetUserShopsQuery, PaginatedResponse, UserWithRolesAndTenants, UserRoleResponse, TenantInfo, ShopInfo, TenantWithShopAndApiKey, ImportResult, SkuImportResult, SalesHistoryImportResult, DeleteDataResult, SkuExportItem, SkuMetricsExportItem, BrandExportItem, CategoryExportItem, GroupExportItem, StatusExportItem, SupplierExportItem, WarehouseExportItem, MarketplaceExportItem, SalesHistoryExportItem, LeftoverExportItem, SeasonalCoefficientExportItem, SkuCompetitorMappingExportItem, CompetitorProductExportItem, CompetitorSaleExportItem, EntityFieldMetadata, EntityMetadata, EntitiesMetadata, FieldType, } from '@sales-planner/shared';
|
|
4
4
|
//# 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":"AACA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAClE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,YAAY,EAEV,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,GAAG,EACH,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAClE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,YAAY,EAEV,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,GAAG,EACH,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,QAAQ,EAER,UAAU,EAEV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EAEjB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,4BAA4B,EAC5B,gCAAgC,EAChC,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,iCAAiC,EACjC,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EAExB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EAEjB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,uBAAuB,EACvB,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAEhB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,EAExB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,SAAS,GACV,MAAM,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sales-planner/http-client",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.4",
|
|
4
4
|
"description": "HTTP client for Sales Planner API",
|
|
5
5
|
"author": "Damir Manapov",
|
|
6
6
|
"license": "MIT",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"README.md"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@sales-planner/shared": "0.17.
|
|
27
|
+
"@sales-planner/shared": "0.17.4"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"typescript": "^5.7.3"
|