@spotsdev/sdk 1.4.0 → 1.5.2
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 +2166 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1656 -0
- package/dist/index.d.ts +1655 -36
- package/dist/index.js +2021 -64
- package/dist/index.js.map +1 -0
- package/package.json +22 -6
- package/src/api/entities.ts +171 -170
- package/src/api/mutations/products.ts +18 -2
- package/src/api/queries/index.ts +4 -0
- package/src/api/queries/payments.ts +67 -0
- 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
|