@spotsdev/sdk 1.4.0 → 1.5.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/dist/index.cjs +2139 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1718 -0
- package/dist/index.d.ts +1717 -36
- package/dist/index.js +1996 -64
- package/dist/index.js.map +1 -0
- package/package.json +21 -5
- package/dist/api/client.d.ts +0 -12
- package/dist/api/client.js +0 -72
- package/dist/api/entities.d.ts +0 -305
- package/dist/api/entities.js +0 -13
- package/dist/api/mutations/clubs.d.ts +0 -47
- package/dist/api/mutations/clubs.js +0 -97
- package/dist/api/mutations/conversations.d.ts +0 -45
- package/dist/api/mutations/conversations.js +0 -114
- package/dist/api/mutations/index.d.ts +0 -14
- package/dist/api/mutations/index.js +0 -40
- package/dist/api/mutations/notifications.d.ts +0 -38
- package/dist/api/mutations/notifications.js +0 -64
- package/dist/api/mutations/orders.d.ts +0 -73
- package/dist/api/mutations/orders.js +0 -114
- package/dist/api/mutations/posts.d.ts +0 -123
- package/dist/api/mutations/posts.js +0 -242
- package/dist/api/mutations/products.d.ts +0 -81
- package/dist/api/mutations/products.js +0 -98
- package/dist/api/mutations/redemptions.d.ts +0 -33
- package/dist/api/mutations/redemptions.js +0 -63
- package/dist/api/mutations/spots.d.ts +0 -93
- package/dist/api/mutations/spots.js +0 -167
- package/dist/api/mutations/users.d.ts +0 -73
- package/dist/api/mutations/users.js +0 -175
- package/dist/api/queries/auth.d.ts +0 -37
- package/dist/api/queries/auth.js +0 -61
- package/dist/api/queries/clubs.d.ts +0 -52
- package/dist/api/queries/clubs.js +0 -116
- package/dist/api/queries/conversations.d.ts +0 -52
- package/dist/api/queries/conversations.js +0 -83
- package/dist/api/queries/index.d.ts +0 -28
- package/dist/api/queries/index.js +0 -69
- package/dist/api/queries/misc.d.ts +0 -30
- package/dist/api/queries/misc.js +0 -91
- package/dist/api/queries/notifications.d.ts +0 -34
- package/dist/api/queries/notifications.js +0 -62
- package/dist/api/queries/orders.d.ts +0 -45
- package/dist/api/queries/orders.js +0 -93
- package/dist/api/queries/posts.d.ts +0 -92
- package/dist/api/queries/posts.js +0 -233
- package/dist/api/queries/products.d.ts +0 -48
- package/dist/api/queries/products.js +0 -87
- package/dist/api/queries/spots.d.ts +0 -93
- package/dist/api/queries/spots.js +0 -250
- package/dist/api/queries/templates.d.ts +0 -39
- package/dist/api/queries/templates.js +0 -81
- package/dist/api/queries/users.d.ts +0 -104
- package/dist/api/queries/users.js +0 -235
- package/dist/api/queries/wallet.d.ts +0 -109
- package/dist/api/queries/wallet.js +0 -136
- package/dist/api/services/index.d.ts +0 -2
- package/dist/api/services/index.js +0 -8
- package/dist/api/services/marketplace.d.ts +0 -129
- package/dist/api/services/marketplace.js +0 -168
- package/dist/api/types.d.ts +0 -57
- package/dist/api/types.js +0 -33
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Marketplace API Service
|
|
3
|
-
*
|
|
4
|
-
* Plain async functions for products and orders.
|
|
5
|
-
* Can be used in tests or non-React environments.
|
|
6
|
-
*/
|
|
7
|
-
import type { Product, ProductType, ProductStatus, OrderStatus, PaginatedResponse } from '../types';
|
|
8
|
-
import type { ProductWithSpot } from '../queries/products';
|
|
9
|
-
import type { OrderWithDetails } from '../queries/orders';
|
|
10
|
-
export type { ProductWithSpot, OrderWithDetails };
|
|
11
|
-
export interface CreateProductInput {
|
|
12
|
-
name: string;
|
|
13
|
-
description?: string;
|
|
14
|
-
type: ProductType;
|
|
15
|
-
price: number;
|
|
16
|
-
currency?: string;
|
|
17
|
-
stockQuantity?: number;
|
|
18
|
-
lowStockAlert?: number;
|
|
19
|
-
deliveryRadius?: number;
|
|
20
|
-
prepTimeMinutes?: number;
|
|
21
|
-
eventDate?: string;
|
|
22
|
-
imageUrl?: string;
|
|
23
|
-
}
|
|
24
|
-
export interface UpdateProductInput {
|
|
25
|
-
name?: string;
|
|
26
|
-
description?: string;
|
|
27
|
-
price?: number;
|
|
28
|
-
stockQuantity?: number;
|
|
29
|
-
lowStockAlert?: number;
|
|
30
|
-
status?: ProductStatus;
|
|
31
|
-
deliveryRadius?: number;
|
|
32
|
-
prepTimeMinutes?: number;
|
|
33
|
-
eventDate?: string;
|
|
34
|
-
imageUrl?: string;
|
|
35
|
-
}
|
|
36
|
-
export interface CreateOrderInput {
|
|
37
|
-
spotId: string;
|
|
38
|
-
items: Array<{
|
|
39
|
-
productId: string;
|
|
40
|
-
quantity: number;
|
|
41
|
-
}>;
|
|
42
|
-
notes?: string;
|
|
43
|
-
}
|
|
44
|
-
export declare const productsService: {
|
|
45
|
-
/**
|
|
46
|
-
* List products for a spot
|
|
47
|
-
*/
|
|
48
|
-
listBySpot(spotId: string, params?: {
|
|
49
|
-
type?: ProductType;
|
|
50
|
-
status?: ProductStatus;
|
|
51
|
-
limit?: number;
|
|
52
|
-
page?: number;
|
|
53
|
-
}): Promise<PaginatedResponse<Product>>;
|
|
54
|
-
/**
|
|
55
|
-
* Get product by ID
|
|
56
|
-
*/
|
|
57
|
-
getById(productId: string): Promise<ProductWithSpot>;
|
|
58
|
-
/**
|
|
59
|
-
* Get product by slug
|
|
60
|
-
*/
|
|
61
|
-
getBySlug(spotId: string, slug: string): Promise<ProductWithSpot>;
|
|
62
|
-
/**
|
|
63
|
-
* Create a product (requires owner auth)
|
|
64
|
-
*/
|
|
65
|
-
create(spotId: string, data: CreateProductInput): Promise<Product>;
|
|
66
|
-
/**
|
|
67
|
-
* Update a product (requires owner auth)
|
|
68
|
-
*/
|
|
69
|
-
update(productId: string, data: UpdateProductInput): Promise<Product>;
|
|
70
|
-
/**
|
|
71
|
-
* Delete a product (requires owner auth)
|
|
72
|
-
*/
|
|
73
|
-
delete(productId: string): Promise<void>;
|
|
74
|
-
/**
|
|
75
|
-
* Adjust stock (requires owner auth)
|
|
76
|
-
*/
|
|
77
|
-
adjustStock(productId: string, quantity: number, reason: "RESTOCK" | "ADJUSTMENT", notes?: string): Promise<Product>;
|
|
78
|
-
};
|
|
79
|
-
export declare const ordersService: {
|
|
80
|
-
/**
|
|
81
|
-
* Create an order
|
|
82
|
-
*/
|
|
83
|
-
create(data: CreateOrderInput): Promise<OrderWithDetails>;
|
|
84
|
-
/**
|
|
85
|
-
* Get order by ID
|
|
86
|
-
*/
|
|
87
|
-
getById(orderId: string): Promise<OrderWithDetails>;
|
|
88
|
-
/**
|
|
89
|
-
* List my orders (as buyer)
|
|
90
|
-
*/
|
|
91
|
-
listMyOrders(params?: {
|
|
92
|
-
status?: OrderStatus;
|
|
93
|
-
limit?: number;
|
|
94
|
-
page?: number;
|
|
95
|
-
}): Promise<PaginatedResponse<OrderWithDetails>>;
|
|
96
|
-
/**
|
|
97
|
-
* List spot orders (as seller)
|
|
98
|
-
*/
|
|
99
|
-
listSpotOrders(spotId: string, params?: {
|
|
100
|
-
status?: OrderStatus;
|
|
101
|
-
limit?: number;
|
|
102
|
-
page?: number;
|
|
103
|
-
}): Promise<PaginatedResponse<OrderWithDetails>>;
|
|
104
|
-
/**
|
|
105
|
-
* Update order status (as seller)
|
|
106
|
-
*/
|
|
107
|
-
updateStatus(orderId: string, status: OrderStatus): Promise<OrderWithDetails>;
|
|
108
|
-
/**
|
|
109
|
-
* Cancel order (as buyer)
|
|
110
|
-
*/
|
|
111
|
-
cancel(orderId: string): Promise<OrderWithDetails>;
|
|
112
|
-
};
|
|
113
|
-
export declare const paymentsService: {
|
|
114
|
-
/**
|
|
115
|
-
* Create Stripe PaymentIntent
|
|
116
|
-
*/
|
|
117
|
-
createStripeIntent(orderId: string): Promise<{
|
|
118
|
-
clientSecret: string;
|
|
119
|
-
paymentIntentId: string;
|
|
120
|
-
}>;
|
|
121
|
-
/**
|
|
122
|
-
* Create Coinbase charge
|
|
123
|
-
*/
|
|
124
|
-
createCoinbaseCharge(orderId: string): Promise<{
|
|
125
|
-
chargeId: string;
|
|
126
|
-
chargeCode: string;
|
|
127
|
-
hostedUrl: string;
|
|
128
|
-
}>;
|
|
129
|
-
};
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Marketplace API Service
|
|
4
|
-
*
|
|
5
|
-
* Plain async functions for products and orders.
|
|
6
|
-
* Can be used in tests or non-React environments.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.paymentsService = exports.ordersService = exports.productsService = void 0;
|
|
10
|
-
const client_1 = require("../client");
|
|
11
|
-
// ============================================================================
|
|
12
|
-
// PRODUCTS SERVICE
|
|
13
|
-
// ============================================================================
|
|
14
|
-
exports.productsService = {
|
|
15
|
-
/**
|
|
16
|
-
* List products for a spot
|
|
17
|
-
*/
|
|
18
|
-
async listBySpot(spotId, params) {
|
|
19
|
-
const client = (0, client_1.getApiClient)();
|
|
20
|
-
const queryParams = new URLSearchParams();
|
|
21
|
-
if (params?.type)
|
|
22
|
-
queryParams.set('type', params.type);
|
|
23
|
-
if (params?.status)
|
|
24
|
-
queryParams.set('status', params.status);
|
|
25
|
-
if (params?.limit)
|
|
26
|
-
queryParams.set('limit', String(params.limit));
|
|
27
|
-
if (params?.page)
|
|
28
|
-
queryParams.set('page', String(params.page));
|
|
29
|
-
const response = await client.get(`/api/v1/spots/${spotId}/products?${queryParams}`);
|
|
30
|
-
return response.data.data;
|
|
31
|
-
},
|
|
32
|
-
/**
|
|
33
|
-
* Get product by ID
|
|
34
|
-
*/
|
|
35
|
-
async getById(productId) {
|
|
36
|
-
const client = (0, client_1.getApiClient)();
|
|
37
|
-
const response = await client.get(`/api/v1/products/${productId}`);
|
|
38
|
-
return response.data.data;
|
|
39
|
-
},
|
|
40
|
-
/**
|
|
41
|
-
* Get product by slug
|
|
42
|
-
*/
|
|
43
|
-
async getBySlug(spotId, slug) {
|
|
44
|
-
const client = (0, client_1.getApiClient)();
|
|
45
|
-
const response = await client.get(`/api/v1/spots/${spotId}/products/slug/${slug}`);
|
|
46
|
-
return response.data.data;
|
|
47
|
-
},
|
|
48
|
-
/**
|
|
49
|
-
* Create a product (requires owner auth)
|
|
50
|
-
*/
|
|
51
|
-
async create(spotId, data) {
|
|
52
|
-
const client = (0, client_1.getApiClient)();
|
|
53
|
-
const response = await client.post(`/api/v1/spots/${spotId}/products`, data);
|
|
54
|
-
return response.data.data;
|
|
55
|
-
},
|
|
56
|
-
/**
|
|
57
|
-
* Update a product (requires owner auth)
|
|
58
|
-
*/
|
|
59
|
-
async update(productId, data) {
|
|
60
|
-
const client = (0, client_1.getApiClient)();
|
|
61
|
-
const response = await client.put(`/api/v1/products/${productId}`, data);
|
|
62
|
-
return response.data.data;
|
|
63
|
-
},
|
|
64
|
-
/**
|
|
65
|
-
* Delete a product (requires owner auth)
|
|
66
|
-
*/
|
|
67
|
-
async delete(productId) {
|
|
68
|
-
const client = (0, client_1.getApiClient)();
|
|
69
|
-
await client.delete(`/api/v1/products/${productId}`);
|
|
70
|
-
},
|
|
71
|
-
/**
|
|
72
|
-
* Adjust stock (requires owner auth)
|
|
73
|
-
*/
|
|
74
|
-
async adjustStock(productId, quantity, reason, notes) {
|
|
75
|
-
const client = (0, client_1.getApiClient)();
|
|
76
|
-
const response = await client.post(`/api/v1/products/${productId}/stock`, { quantity, reason, notes });
|
|
77
|
-
return response.data.data;
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
// ============================================================================
|
|
81
|
-
// ORDERS SERVICE
|
|
82
|
-
// ============================================================================
|
|
83
|
-
exports.ordersService = {
|
|
84
|
-
/**
|
|
85
|
-
* Create an order
|
|
86
|
-
*/
|
|
87
|
-
async create(data) {
|
|
88
|
-
const client = (0, client_1.getApiClient)();
|
|
89
|
-
const response = await client.post('/api/v1/orders', data);
|
|
90
|
-
return response.data.data;
|
|
91
|
-
},
|
|
92
|
-
/**
|
|
93
|
-
* Get order by ID
|
|
94
|
-
*/
|
|
95
|
-
async getById(orderId) {
|
|
96
|
-
const client = (0, client_1.getApiClient)();
|
|
97
|
-
const response = await client.get(`/api/v1/orders/${orderId}`);
|
|
98
|
-
return response.data.data;
|
|
99
|
-
},
|
|
100
|
-
/**
|
|
101
|
-
* List my orders (as buyer)
|
|
102
|
-
*/
|
|
103
|
-
async listMyOrders(params) {
|
|
104
|
-
const client = (0, client_1.getApiClient)();
|
|
105
|
-
const queryParams = new URLSearchParams();
|
|
106
|
-
if (params?.status)
|
|
107
|
-
queryParams.set('status', params.status);
|
|
108
|
-
if (params?.limit)
|
|
109
|
-
queryParams.set('limit', String(params.limit));
|
|
110
|
-
if (params?.page)
|
|
111
|
-
queryParams.set('page', String(params.page));
|
|
112
|
-
const response = await client.get(`/api/v1/users/me/orders?${queryParams}`);
|
|
113
|
-
return response.data.data;
|
|
114
|
-
},
|
|
115
|
-
/**
|
|
116
|
-
* List spot orders (as seller)
|
|
117
|
-
*/
|
|
118
|
-
async listSpotOrders(spotId, params) {
|
|
119
|
-
const client = (0, client_1.getApiClient)();
|
|
120
|
-
const queryParams = new URLSearchParams();
|
|
121
|
-
if (params?.status)
|
|
122
|
-
queryParams.set('status', params.status);
|
|
123
|
-
if (params?.limit)
|
|
124
|
-
queryParams.set('limit', String(params.limit));
|
|
125
|
-
if (params?.page)
|
|
126
|
-
queryParams.set('page', String(params.page));
|
|
127
|
-
const response = await client.get(`/api/v1/seller/spots/${spotId}/orders?${queryParams}`);
|
|
128
|
-
return response.data.data;
|
|
129
|
-
},
|
|
130
|
-
/**
|
|
131
|
-
* Update order status (as seller)
|
|
132
|
-
*/
|
|
133
|
-
async updateStatus(orderId, status) {
|
|
134
|
-
const client = (0, client_1.getApiClient)();
|
|
135
|
-
const response = await client.put(`/api/v1/orders/${orderId}/status`, { status });
|
|
136
|
-
return response.data.data;
|
|
137
|
-
},
|
|
138
|
-
/**
|
|
139
|
-
* Cancel order (as buyer)
|
|
140
|
-
*/
|
|
141
|
-
async cancel(orderId) {
|
|
142
|
-
const client = (0, client_1.getApiClient)();
|
|
143
|
-
const response = await client.post(`/api/v1/orders/${orderId}/cancel`);
|
|
144
|
-
return response.data.data;
|
|
145
|
-
},
|
|
146
|
-
};
|
|
147
|
-
// ============================================================================
|
|
148
|
-
// PAYMENTS SERVICE
|
|
149
|
-
// ============================================================================
|
|
150
|
-
exports.paymentsService = {
|
|
151
|
-
/**
|
|
152
|
-
* Create Stripe PaymentIntent
|
|
153
|
-
*/
|
|
154
|
-
async createStripeIntent(orderId) {
|
|
155
|
-
const client = (0, client_1.getApiClient)();
|
|
156
|
-
const response = await client.post(`/api/v1/payments/stripe/intent/${orderId}`);
|
|
157
|
-
return response.data.data;
|
|
158
|
-
},
|
|
159
|
-
/**
|
|
160
|
-
* Create Coinbase charge
|
|
161
|
-
*/
|
|
162
|
-
async createCoinbaseCharge(orderId) {
|
|
163
|
-
const client = (0, client_1.getApiClient)();
|
|
164
|
-
const response = await client.post(`/api/v1/payments/coinbase/charge/${orderId}`);
|
|
165
|
-
return response.data.data;
|
|
166
|
-
},
|
|
167
|
-
};
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cGxhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3NlcnZpY2VzL21hcmtldHBsYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBRUgsc0NBQXlDO0FBZ0R6QywrRUFBK0U7QUFDL0UsbUJBQW1CO0FBQ25CLCtFQUErRTtBQUVsRSxRQUFBLGVBQWUsR0FBRztJQUM3Qjs7T0FFRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQ2QsTUFBYyxFQUNkLE1BQXNGO1FBRXRGLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1FBQzlCLE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDMUMsSUFBSSxNQUFNLEVBQUUsSUFBSTtZQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLE1BQU0sRUFBRSxNQUFNO1lBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksTUFBTSxFQUFFLEtBQUs7WUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxNQUFNLEVBQUUsSUFBSTtZQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLGlCQUFpQixNQUFNLGFBQWEsV0FBVyxFQUFFLENBQ2xELENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPLENB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Q0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQWU7UUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7UUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUNoQyxvQ0FBb0MsT0FBTyxFQUFFLENBQzlDLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNYXJrZXRwbGFjZSBBUEkgU2VydmljZVxuICpcbiAqIFBsYWluIGFzeW5jIGZ1bmN0aW9ucyBmb3IgcHJvZHVjdHMgYW5kIG9yZGVycy5cbiAqIENhbiBiZSB1c2VkIGluIHRlc3RzIG9yIG5vbi1SZWFjdCBlbnZpcm9ubWVudHMuXG4gKi9cblxuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB0eXBlIHtcbiAgUHJvZHVjdCxcbiAgUHJvZHVjdFR5cGUsXG4gIFByb2R1Y3RTdGF0dXMsXG4gIE9yZGVyU3RhdHVzLFxuICBBcGlSZXNwb25zZSxcbiAgUGFnaW5hdGVkUmVzcG9uc2UsXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgUHJvZHVjdFdpdGhTcG90IH0gZnJvbSAnLi4vcXVlcmllcy9wcm9kdWN0cyc7XG5pbXBvcnQgdHlwZSB7IE9yZGVyV2l0aERldGFpbHMgfSBmcm9tICcuLi9xdWVyaWVzL29yZGVycyc7XG5cbi8vIFJlLWV4cG9ydCBmb3IgY29udmVuaWVuY2VcbmV4cG9ydCB0eXBlIHsgUHJvZHVjdFdpdGhTcG90LCBPcmRlcldpdGhEZXRhaWxzIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUHJvZHVjdElucHV0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdHlwZTogUHJvZHVjdFR5cGU7XG4gIHByaWNlOiBudW1iZXI7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICBzdG9ja1F1YW50aXR5PzogbnVtYmVyO1xuICBsb3dTdG9ja0FsZXJ0PzogbnVtYmVyO1xuICBkZWxpdmVyeVJhZGl1cz86IG51bWJlcjtcbiAgcHJlcFRpbWVNaW51dGVzPzogbnVtYmVyO1xuICBldmVudERhdGU/OiBzdHJpbmc7XG4gIGltYWdlVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVByb2R1Y3RJbnB1dCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwcmljZT86IG51bWJlcjtcbiAgc3RvY2tRdWFudGl0eT86IG51bWJlcjtcbiAgbG93U3RvY2tBbGVydD86IG51bWJlcjtcbiAgc3RhdHVzPzogUHJvZHVjdFN0YXR1cztcbiAgZGVsaXZlcnlSYWRpdXM/OiBudW1iZXI7XG4gIHByZXBUaW1lTWludXRlcz86IG51bWJlcjtcbiAgZXZlbnREYXRlPzogc3RyaW5nO1xuICBpbWFnZVVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPcmRlcklucHV0IHtcbiAgc3BvdElkOiBzdHJpbmc7XG4gIGl0ZW1zOiBBcnJheTx7IHByb2R1Y3RJZDogc3RyaW5nOyBxdWFudGl0eTogbnVtYmVyIH0+O1xuICBub3Rlcz86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUFJPRFVDVFMgU0VSVklDRVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgcHJvZHVjdHNTZXJ2aWNlID0ge1xuICAvKipcbiAgICogTGlzdCBwcm9kdWN0cyBmb3IgYSBzcG90XG4gICAqL1xuICBhc3luYyBsaXN0QnlTcG90KFxuICAgIHNwb3RJZDogc3RyaW5nLFxuICAgIHBhcmFtcz86IHsgdHlwZT86IFByb2R1Y3RUeXBlOyBzdGF0dXM/OiBQcm9kdWN0U3RhdHVzOyBsaW1pdD86IG51bWJlcjsgcGFnZT86IG51bWJlciB9XG4gICk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8UHJvZHVjdD4+IHtcbiAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAocGFyYW1zPy50eXBlKSBxdWVyeVBhcmFtcy5zZXQoJ3R5cGUnLCBwYXJhbXMudHlwZSk7XG4gICAgaWYgKHBhcmFtcz8uc3RhdHVzKSBxdWVyeVBhcmFtcy5zZXQoJ3N0YXR1cycsIHBhcmFtcy5zdGF0dXMpO1xuICAgIGlmIChwYXJhbXM/LmxpbWl0KSBxdWVyeVBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKHBhcmFtcy5saW1pdCkpO1xuICAgIGlmIChwYXJhbXM/LnBhZ2UpIHF1ZXJ5UGFyYW1zLnNldCgncGFnZScsIFN0cmluZyhwYXJhbXMucGFnZSkpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTxQYWdpbmF0ZWRSZXNwb25zZTxQcm9kdWN0Pj4+KFxuICAgICAgYC9hcGkvdjEvc3BvdHMvJHtzcG90SWR9L3Byb2R1Y3RzPyR7cXVlcnlQYXJhbXN9YFxuICAgICk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHByb2R1Y3QgYnkgSURcbiAgICovXG4gIGFzeW5jIGdldEJ5SWQocHJvZHVjdElkOiBzdHJpbmcpOiBQcm9taXNlPFByb2R1Y3RXaXRoU3BvdD4ge1xuICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTxQcm9kdWN0V2l0aFNwb3Q+PihcbiAgICAgIGAvYXBpL3YxL3Byb2R1Y3RzLyR7cHJvZHVjdElkfWBcbiAgICApO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGE7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBwcm9kdWN0IGJ5IHNsdWdcbiAgICovXG4gIGFzeW5jIGdldEJ5U2x1ZyhzcG90SWQ6IHN0cmluZywgc2x1Zzogc3RyaW5nKTogUHJvbWlzZTxQcm9kdWN0V2l0aFNwb3Q+IHtcbiAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8UHJvZHVjdFdpdGhTcG90Pj4oXG4gICAgICBgL2FwaS92MS9zcG90cy8ke3Nwb3RJZH0vcHJvZHVjdHMvc2x1Zy8ke3NsdWd9YFxuICAgICk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYXRlIGEgcHJvZHVjdCAocmVxdWlyZXMgb3duZXIgYXV0aClcbiAgICovXG4gIGFzeW5jIGNyZWF0ZShzcG90SWQ6IHN0cmluZywgZGF0YTogQ3JlYXRlUHJvZHVjdElucHV0KTogUHJvbWlzZTxQcm9kdWN0PiB7XG4gICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDxBcGlSZXNwb25zZTxQcm9kdWN0Pj4oXG4gICAgICBgL2FwaS92MS9zcG90cy8ke3Nwb3RJZH0vcHJvZHVjdHNgLFxuICAgICAgZGF0YVxuICAgICk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlIGEgcHJvZHVjdCAocmVxdWlyZXMgb3duZXIgYXV0aClcbiAgICovXG4gIGFzeW5jIHVwZGF0ZShwcm9kdWN0SWQ6IHN0cmluZywgZGF0YTogVXBkYXRlUHJvZHVjdElucHV0KTogUHJvbWlzZTxQcm9kdWN0PiB7XG4gICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucHV0PEFwaVJlc3BvbnNlPFByb2R1Y3Q+PihcbiAgICAgIGAvYXBpL3YxL3Byb2R1Y3RzLyR7cHJvZHVjdElkfWAsXG4gICAgICBkYXRhXG4gICAgKTtcbiAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEZWxldGUgYSBwcm9kdWN0IChyZXF1aXJlcyBvd25lciBhdXRoKVxuICAgKi9cbiAgYXN5bmMgZGVsZXRlKHByb2R1Y3RJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgYXdhaXQgY2xpZW50LmRlbGV0ZShgL2FwaS92MS9wcm9kdWN0cy8ke3Byb2R1Y3RJZH1gKTtcbiAgfSxcblxuICAvKipcbiAgICogQWRqdXN0IHN0b2NrIChyZXF1aXJlcyBvd25lciBhdXRoKVxuICAgKi9cbiAgYXN5bmMgYWRqdXN0U3RvY2soXG4gICAgcHJvZHVjdElkOiBzdHJpbmcsXG4gICAgcXVhbnRpdHk6IG51bWJlcixcbiAgICByZWFzb246ICdSRVNUT0NLJyB8ICdBREpVU1RNRU5UJyxcbiAgICBub3Rlcz86IHN0cmluZ1xuICApOiBQcm9taXNlPFByb2R1Y3Q+IHtcbiAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEFwaVJlc3BvbnNlPFByb2R1Y3Q+PihcbiAgICAgIGAvYXBpL3YxL3Byb2R1Y3RzLyR7cHJvZHVjdElkfS9zdG9ja2AsXG4gICAgICB7IHF1YW50aXR5LCByZWFzb24sIG5vdGVzIH1cbiAgICApO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGE7XG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBPUkRFUlMgU0VSVklDRVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3Qgb3JkZXJzU2VydmljZSA9IHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBvcmRlclxuICAgKi9cbiAgYXN5bmMgY3JlYXRlKGRhdGE6IENyZWF0ZU9yZGVySW5wdXQpOiBQcm9taXNlPE9yZGVyV2l0aERldGFpbHM+IHtcbiAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEFwaVJlc3BvbnNlPE9yZGVyV2l0aERldGFpbHM+PihcbiAgICAgICcvYXBpL3YxL29yZGVycycsXG4gICAgICBkYXRhXG4gICAgKTtcbiAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgb3JkZXIgYnkgSURcbiAgICovXG4gIGFzeW5jIGdldEJ5SWQob3JkZXJJZDogc3RyaW5nKTogUHJvbWlzZTxPcmRlcldpdGhEZXRhaWxzPiB7XG4gICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPE9yZGVyV2l0aERldGFpbHM+PihcbiAgICAgIGAvYXBpL3YxL29yZGVycy8ke29yZGVySWR9YFxuICAgICk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgfSxcblxuICAvKipcbiAgICogTGlzdCBteSBvcmRlcnMgKGFzIGJ1eWVyKVxuICAgKi9cbiAgYXN5bmMgbGlzdE15T3JkZXJzKFxuICAgIHBhcmFtcz86IHsgc3RhdHVzPzogT3JkZXJTdGF0dXM7IGxpbWl0PzogbnVtYmVyOyBwYWdlPzogbnVtYmVyIH1cbiAgKTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj4ge1xuICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChwYXJhbXM/LnN0YXR1cykgcXVlcnlQYXJhbXMuc2V0KCdzdGF0dXMnLCBwYXJhbXMuc3RhdHVzKTtcbiAgICBpZiAocGFyYW1zPy5saW1pdCkgcXVlcnlQYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhwYXJhbXMubGltaXQpKTtcbiAgICBpZiAocGFyYW1zPy5wYWdlKSBxdWVyeVBhcmFtcy5zZXQoJ3BhZ2UnLCBTdHJpbmcocGFyYW1zLnBhZ2UpKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+PihcbiAgICAgIGAvYXBpL3YxL3VzZXJzL21lL29yZGVycz8ke3F1ZXJ5UGFyYW1zfWBcbiAgICApO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGE7XG4gIH0sXG5cbiAgLyoqXG4gICAqIExpc3Qgc3BvdCBvcmRlcnMgKGFzIHNlbGxlcilcbiAgICovXG4gIGFzeW5jIGxpc3RTcG90T3JkZXJzKFxuICAgIHNwb3RJZDogc3RyaW5nLFxuICAgIHBhcmFtcz86IHsgc3RhdHVzPzogT3JkZXJTdGF0dXM7IGxpbWl0PzogbnVtYmVyOyBwYWdlPzogbnVtYmVyIH1cbiAgKTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj4ge1xuICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChwYXJhbXM/LnN0YXR1cykgcXVlcnlQYXJhbXMuc2V0KCdzdGF0dXMnLCBwYXJhbXMuc3RhdHVzKTtcbiAgICBpZiAocGFyYW1zPy5saW1pdCkgcXVlcnlQYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhwYXJhbXMubGltaXQpKTtcbiAgICBpZiAocGFyYW1zPy5wYWdlKSBxdWVyeVBhcmFtcy5zZXQoJ3BhZ2UnLCBTdHJpbmcocGFyYW1zLnBhZ2UpKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+PihcbiAgICAgIGAvYXBpL3YxL3NlbGxlci9zcG90cy8ke3Nwb3RJZH0vb3JkZXJzPyR7cXVlcnlQYXJhbXN9YFxuICAgICk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlIG9yZGVyIHN0YXR1cyAoYXMgc2VsbGVyKVxuICAgKi9cbiAgYXN5bmMgdXBkYXRlU3RhdHVzKG9yZGVySWQ6IHN0cmluZywgc3RhdHVzOiBPcmRlclN0YXR1cyk6IFByb21pc2U8T3JkZXJXaXRoRGV0YWlscz4ge1xuICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnB1dDxBcGlSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj4oXG4gICAgICBgL2FwaS92MS9vcmRlcnMvJHtvcmRlcklkfS9zdGF0dXNgLFxuICAgICAgeyBzdGF0dXMgfVxuICAgICk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgfSxcblxuICAvKipcbiAgICogQ2FuY2VsIG9yZGVyIChhcyBidXllcilcbiAgICovXG4gIGFzeW5jIGNhbmNlbChvcmRlcklkOiBzdHJpbmcpOiBQcm9taXNlPE9yZGVyV2l0aERldGFpbHM+IHtcbiAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEFwaVJlc3BvbnNlPE9yZGVyV2l0aERldGFpbHM+PihcbiAgICAgIGAvYXBpL3YxL29yZGVycy8ke29yZGVySWR9L2NhbmNlbGBcbiAgICApO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGE7XG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQQVlNRU5UUyBTRVJWSUNFXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBwYXltZW50c1NlcnZpY2UgPSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgU3RyaXBlIFBheW1lbnRJbnRlbnRcbiAgICovXG4gIGFzeW5jIGNyZWF0ZVN0cmlwZUludGVudChvcmRlcklkOiBzdHJpbmcpOiBQcm9taXNlPHsgY2xpZW50U2VjcmV0OiBzdHJpbmc7IHBheW1lbnRJbnRlbnRJZDogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEFwaVJlc3BvbnNlPHsgY2xpZW50U2VjcmV0OiBzdHJpbmc7IHBheW1lbnRJbnRlbnRJZDogc3RyaW5nIH0+PihcbiAgICAgIGAvYXBpL3YxL3BheW1lbnRzL3N0cmlwZS9pbnRlbnQvJHtvcmRlcklkfWBcbiAgICApO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGE7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBDb2luYmFzZSBjaGFyZ2VcbiAgICovXG4gIGFzeW5jIGNyZWF0ZUNvaW5iYXNlQ2hhcmdlKG9yZGVySWQ6IHN0cmluZyk6IFByb21pc2U8eyBjaGFyZ2VJZDogc3RyaW5nOyBjaGFyZ2VDb2RlOiBzdHJpbmc7IGhvc3RlZFVybDogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEFwaVJlc3BvbnNlPHsgY2hhcmdlSWQ6IHN0cmluZzsgY2hhcmdlQ29kZTogc3RyaW5nOyBob3N0ZWRVcmw6IHN0cmluZyB9Pj4oXG4gICAgICBgL2FwaS92MS9wYXltZW50cy9jb2luYmFzZS9jaGFyZ2UvJHtvcmRlcklkfWBcbiAgICApO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGE7XG4gIH0sXG59O1xuIl19
|
package/dist/api/types.d.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Spots SDK Types
|
|
3
|
-
*
|
|
4
|
-
* Type sources:
|
|
5
|
-
* - Entity types (User, Spot, Post, etc.) → from ./entities (local definitions)
|
|
6
|
-
* - DTO types (CreatePostDto, etc.) → import from @spots/types (OpenAPI generated)
|
|
7
|
-
*
|
|
8
|
-
* This file provides type aliases for SDK convenience.
|
|
9
|
-
*/
|
|
10
|
-
export * from '@spotsdev/types';
|
|
11
|
-
export * from './entities';
|
|
12
|
-
import { type ClaimSpotDto, type CreateConversationDto, type CreateMessageDto, type CreatePostDto, type CreateReplyDto, type CreateResponseDto, type SendOtpDto, type UpdateResponseDto, type UpdateUserDto, type UpvoteResponseDto, type VerifyOtpDto, type VerifyOtpWrappedResponseDto } from '@spotsdev/types';
|
|
13
|
-
import { type PostTemplate, type SpotPost } from './entities';
|
|
14
|
-
export type SendOtpRequest = SendOtpDto;
|
|
15
|
-
export type VerifyOtpRequest = VerifyOtpDto;
|
|
16
|
-
export type CreatePostRequest = CreatePostDto;
|
|
17
|
-
export type CreateReplyRequest = CreateReplyDto;
|
|
18
|
-
export type RespondToPostRequest = CreateResponseDto;
|
|
19
|
-
export type UpdateResponseRequest = UpdateResponseDto;
|
|
20
|
-
export type UpdateProfileRequest = UpdateUserDto;
|
|
21
|
-
export type CreateConversationRequest = CreateConversationDto;
|
|
22
|
-
export type SendMessageRequest = CreateMessageDto;
|
|
23
|
-
export type ClaimSpotRequest = ClaimSpotDto;
|
|
24
|
-
export type UpvoteResponse = UpvoteResponseDto;
|
|
25
|
-
export type AuthResponse = VerifyOtpWrappedResponseDto;
|
|
26
|
-
export type Post = SpotPost;
|
|
27
|
-
export type Template = PostTemplate;
|
|
28
|
-
/**
|
|
29
|
-
* Spot summary with activity indicators
|
|
30
|
-
* Returned by /users/me/spots-summary
|
|
31
|
-
*/
|
|
32
|
-
export interface SpotSummary {
|
|
33
|
-
spotId: string;
|
|
34
|
-
spotName: string;
|
|
35
|
-
spotSlug: string;
|
|
36
|
-
spotType: string;
|
|
37
|
-
postCount: number;
|
|
38
|
-
unreadMessages: number;
|
|
39
|
-
pendingResponses: number;
|
|
40
|
-
lastActivity: string | null;
|
|
41
|
-
hasNewActivity: boolean;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Response meta for spots summary
|
|
45
|
-
*/
|
|
46
|
-
export interface SpotsSummaryMeta {
|
|
47
|
-
totalSpots: number;
|
|
48
|
-
totalUnreadMessages: number;
|
|
49
|
-
totalPendingResponses: number;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Full response from /users/me/spots-summary
|
|
53
|
-
*/
|
|
54
|
-
export interface SpotsSummaryResponse {
|
|
55
|
-
data: SpotSummary[];
|
|
56
|
-
meta: SpotsSummaryMeta;
|
|
57
|
-
}
|
package/dist/api/types.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Spots SDK Types
|
|
4
|
-
*
|
|
5
|
-
* Type sources:
|
|
6
|
-
* - Entity types (User, Spot, Post, etc.) → from ./entities (local definitions)
|
|
7
|
-
* - DTO types (CreatePostDto, etc.) → import from @spots/types (OpenAPI generated)
|
|
8
|
-
*
|
|
9
|
-
* This file provides type aliases for SDK convenience.
|
|
10
|
-
*/
|
|
11
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
-
if (k2 === undefined) k2 = k;
|
|
13
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
-
}
|
|
17
|
-
Object.defineProperty(o, k2, desc);
|
|
18
|
-
}) : (function(o, m, k, k2) {
|
|
19
|
-
if (k2 === undefined) k2 = k;
|
|
20
|
-
o[k2] = m[k];
|
|
21
|
-
}));
|
|
22
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
23
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
// ============================================================================
|
|
27
|
-
// RE-EXPORTS FROM SOURCES
|
|
28
|
-
// ============================================================================
|
|
29
|
-
// Re-export all DTO types from @spotsdev/types (OpenAPI generated)
|
|
30
|
-
__exportStar(require("@spotsdev/types"), exports);
|
|
31
|
-
// Re-export entity types from local entities file (Prisma-compatible but no Prisma dep)
|
|
32
|
-
__exportStar(require("./entities"), exports);
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7R0FRRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILCtFQUErRTtBQUMvRSwwQkFBMEI7QUFDMUIsK0VBQStFO0FBRS9FLG1FQUFtRTtBQUNuRSxrREFBK0I7QUFFL0Isd0ZBQXdGO0FBQ3hGLDZDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3BvdHMgU0RLIFR5cGVzXG4gKlxuICogVHlwZSBzb3VyY2VzOlxuICogLSBFbnRpdHkgdHlwZXMgKFVzZXIsIFNwb3QsIFBvc3QsIGV0Yy4pIOKGkiBmcm9tIC4vZW50aXRpZXMgKGxvY2FsIGRlZmluaXRpb25zKVxuICogLSBEVE8gdHlwZXMgKENyZWF0ZVBvc3REdG8sIGV0Yy4pIOKGkiBpbXBvcnQgZnJvbSBAc3BvdHMvdHlwZXMgKE9wZW5BUEkgZ2VuZXJhdGVkKVxuICpcbiAqIFRoaXMgZmlsZSBwcm92aWRlcyB0eXBlIGFsaWFzZXMgZm9yIFNESyBjb252ZW5pZW5jZS5cbiAqL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSRS1FWFBPUlRTIEZST00gU09VUkNFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBSZS1leHBvcnQgYWxsIERUTyB0eXBlcyBmcm9tIEBzcG90c2Rldi90eXBlcyAoT3BlbkFQSSBnZW5lcmF0ZWQpXG5leHBvcnQgKiBmcm9tICdAc3BvdHNkZXYvdHlwZXMnXG5cbi8vIFJlLWV4cG9ydCBlbnRpdHkgdHlwZXMgZnJvbSBsb2NhbCBlbnRpdGllcyBmaWxlIChQcmlzbWEtY29tcGF0aWJsZSBidXQgbm8gUHJpc21hIGRlcClcbmV4cG9ydCAqIGZyb20gJy4vZW50aXRpZXMnXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNESyBUWVBFIEFMSUFTRVNcbi8vIFRoZXNlIHByb3ZpZGUgY29udmVuaWVudCBuYW1lcyB0aGF0IG1hdGNoIFNESyB1c2FnZSBwYXR0ZXJuc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5pbXBvcnQge1xuICB0eXBlIENsYWltU3BvdER0byxcbiAgdHlwZSBDcmVhdGVDb252ZXJzYXRpb25EdG8sXG4gIHR5cGUgQ3JlYXRlTWVzc2FnZUR0byxcbiAgdHlwZSBDcmVhdGVQb3N0RHRvLFxuICB0eXBlIENyZWF0ZVJlcGx5RHRvLFxuICB0eXBlIENyZWF0ZVJlc3BvbnNlRHRvLFxuICB0eXBlIFNlbmRPdHBEdG8sXG4gIHR5cGUgVXBkYXRlUmVzcG9uc2VEdG8sXG4gIHR5cGUgVXBkYXRlVXNlckR0byxcbiAgdHlwZSBVcHZvdGVSZXNwb25zZUR0byxcbiAgdHlwZSBWZXJpZnlPdHBEdG8sXG4gIHR5cGUgVmVyaWZ5T3RwV3JhcHBlZFJlc3BvbnNlRHRvLFxufSBmcm9tICdAc3BvdHNkZXYvdHlwZXMnXG5cbmltcG9ydCB7dHlwZSBQb3N0VGVtcGxhdGUsIHR5cGUgU3BvdFBvc3R9IGZyb20gJy4vZW50aXRpZXMnXG5cbi8vIFJlcXVlc3QgdHlwZSBhbGlhc2VzIChtYXAgdG8gRFRPcylcbmV4cG9ydCB0eXBlIFNlbmRPdHBSZXF1ZXN0ID0gU2VuZE90cER0b1xuZXhwb3J0IHR5cGUgVmVyaWZ5T3RwUmVxdWVzdCA9IFZlcmlmeU90cER0b1xuZXhwb3J0IHR5cGUgQ3JlYXRlUG9zdFJlcXVlc3QgPSBDcmVhdGVQb3N0RHRvXG5leHBvcnQgdHlwZSBDcmVhdGVSZXBseVJlcXVlc3QgPSBDcmVhdGVSZXBseUR0b1xuZXhwb3J0IHR5cGUgUmVzcG9uZFRvUG9zdFJlcXVlc3QgPSBDcmVhdGVSZXNwb25zZUR0b1xuZXhwb3J0IHR5cGUgVXBkYXRlUmVzcG9uc2VSZXF1ZXN0ID0gVXBkYXRlUmVzcG9uc2VEdG9cbmV4cG9ydCB0eXBlIFVwZGF0ZVByb2ZpbGVSZXF1ZXN0ID0gVXBkYXRlVXNlckR0b1xuZXhwb3J0IHR5cGUgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdCA9IENyZWF0ZUNvbnZlcnNhdGlvbkR0b1xuZXhwb3J0IHR5cGUgU2VuZE1lc3NhZ2VSZXF1ZXN0ID0gQ3JlYXRlTWVzc2FnZUR0b1xuZXhwb3J0IHR5cGUgQ2xhaW1TcG90UmVxdWVzdCA9IENsYWltU3BvdER0b1xuXG4vLyBSZXNwb25zZSB0eXBlIGFsaWFzZXNcbmV4cG9ydCB0eXBlIFVwdm90ZVJlc3BvbnNlID0gVXB2b3RlUmVzcG9uc2VEdG9cbmV4cG9ydCB0eXBlIEF1dGhSZXNwb25zZSA9IFZlcmlmeU90cFdyYXBwZWRSZXNwb25zZUR0b1xuXG4vLyBFbnRpdHkgdHlwZSBhbGlhc2VzIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSlcbmV4cG9ydCB0eXBlIFBvc3QgPSBTcG90UG9zdFxuZXhwb3J0IHR5cGUgVGVtcGxhdGUgPSBQb3N0VGVtcGxhdGVcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU0RLLVNQRUNJRklDIFRZUEVTIChub3QgZnJvbSBlbnRpdGllcyBvciBEVE9zKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFNwb3Qgc3VtbWFyeSB3aXRoIGFjdGl2aXR5IGluZGljYXRvcnNcbiAqIFJldHVybmVkIGJ5IC91c2Vycy9tZS9zcG90cy1zdW1tYXJ5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BvdFN1bW1hcnkge1xuICBzcG90SWQ6IHN0cmluZ1xuICBzcG90TmFtZTogc3RyaW5nXG4gIHNwb3RTbHVnOiBzdHJpbmdcbiAgc3BvdFR5cGU6IHN0cmluZ1xuICBwb3N0Q291bnQ6IG51bWJlclxuICB1bnJlYWRNZXNzYWdlczogbnVtYmVyXG4gIHBlbmRpbmdSZXNwb25zZXM6IG51bWJlclxuICBsYXN0QWN0aXZpdHk6IHN0cmluZyB8IG51bGxcbiAgaGFzTmV3QWN0aXZpdHk6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBSZXNwb25zZSBtZXRhIGZvciBzcG90cyBzdW1tYXJ5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BvdHNTdW1tYXJ5TWV0YSB7XG4gIHRvdGFsU3BvdHM6IG51bWJlclxuICB0b3RhbFVucmVhZE1lc3NhZ2VzOiBudW1iZXJcbiAgdG90YWxQZW5kaW5nUmVzcG9uc2VzOiBudW1iZXJcbn1cblxuLyoqXG4gKiBGdWxsIHJlc3BvbnNlIGZyb20gL3VzZXJzL21lL3Nwb3RzLXN1bW1hcnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcG90c1N1bW1hcnlSZXNwb25zZSB7XG4gIGRhdGE6IFNwb3RTdW1tYXJ5W11cbiAgbWV0YTogU3BvdHNTdW1tYXJ5TWV0YVxufVxuIl19
|