@spotsdev/sdk 1.3.3 → 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.
Files changed (64) hide show
  1. package/dist/index.cjs +2139 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +1718 -0
  4. package/dist/index.d.ts +1717 -36
  5. package/dist/index.js +1996 -64
  6. package/dist/index.js.map +1 -0
  7. package/package.json +22 -6
  8. package/src/api/entities.ts +28 -84
  9. package/dist/api/client.d.ts +0 -12
  10. package/dist/api/client.js +0 -72
  11. package/dist/api/entities.d.ts +0 -326
  12. package/dist/api/entities.js +0 -9
  13. package/dist/api/mutations/clubs.d.ts +0 -47
  14. package/dist/api/mutations/clubs.js +0 -97
  15. package/dist/api/mutations/conversations.d.ts +0 -45
  16. package/dist/api/mutations/conversations.js +0 -114
  17. package/dist/api/mutations/index.d.ts +0 -14
  18. package/dist/api/mutations/index.js +0 -40
  19. package/dist/api/mutations/notifications.d.ts +0 -38
  20. package/dist/api/mutations/notifications.js +0 -64
  21. package/dist/api/mutations/orders.d.ts +0 -73
  22. package/dist/api/mutations/orders.js +0 -114
  23. package/dist/api/mutations/posts.d.ts +0 -123
  24. package/dist/api/mutations/posts.js +0 -242
  25. package/dist/api/mutations/products.d.ts +0 -81
  26. package/dist/api/mutations/products.js +0 -98
  27. package/dist/api/mutations/redemptions.d.ts +0 -33
  28. package/dist/api/mutations/redemptions.js +0 -63
  29. package/dist/api/mutations/spots.d.ts +0 -93
  30. package/dist/api/mutations/spots.js +0 -167
  31. package/dist/api/mutations/users.d.ts +0 -73
  32. package/dist/api/mutations/users.js +0 -175
  33. package/dist/api/queries/auth.d.ts +0 -37
  34. package/dist/api/queries/auth.js +0 -61
  35. package/dist/api/queries/clubs.d.ts +0 -52
  36. package/dist/api/queries/clubs.js +0 -116
  37. package/dist/api/queries/conversations.d.ts +0 -52
  38. package/dist/api/queries/conversations.js +0 -83
  39. package/dist/api/queries/index.d.ts +0 -28
  40. package/dist/api/queries/index.js +0 -69
  41. package/dist/api/queries/misc.d.ts +0 -30
  42. package/dist/api/queries/misc.js +0 -91
  43. package/dist/api/queries/notifications.d.ts +0 -34
  44. package/dist/api/queries/notifications.js +0 -62
  45. package/dist/api/queries/orders.d.ts +0 -45
  46. package/dist/api/queries/orders.js +0 -93
  47. package/dist/api/queries/posts.d.ts +0 -92
  48. package/dist/api/queries/posts.js +0 -233
  49. package/dist/api/queries/products.d.ts +0 -48
  50. package/dist/api/queries/products.js +0 -87
  51. package/dist/api/queries/spots.d.ts +0 -93
  52. package/dist/api/queries/spots.js +0 -250
  53. package/dist/api/queries/templates.d.ts +0 -39
  54. package/dist/api/queries/templates.js +0 -81
  55. package/dist/api/queries/users.d.ts +0 -104
  56. package/dist/api/queries/users.js +0 -235
  57. package/dist/api/queries/wallet.d.ts +0 -109
  58. package/dist/api/queries/wallet.js +0 -136
  59. package/dist/api/services/index.d.ts +0 -2
  60. package/dist/api/services/index.js +0 -8
  61. package/dist/api/services/marketplace.d.ts +0 -129
  62. package/dist/api/services/marketplace.js +0 -168
  63. package/dist/api/types.d.ts +0 -57
  64. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cGxhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3NlcnZpY2VzL21hcmtldHBsYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBRUgsc0NBQXlDO0FBZ0R6QywrRUFBK0U7QUFDL0UsbUJBQW1CO0FBQ25CLCtFQUErRTtBQUVsRSxRQUFBLGVBQWUsR0FBRztJQUM3Qjs7T0FFRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQ2QsTUFBYyxFQUNkLE1BQXNGO1FBRXRGLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1FBQzlCLE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDMUMsSUFBSSxNQUFNLEVBQUUsSUFBSTtZQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLE1BQU0sRUFBRSxNQUFNO1lBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksTUFBTSxFQUFFLEtBQUs7WUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxNQUFNLEVBQUUsSUFBSTtZQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLGlCQUFpQixNQUFNLGFBQWEsV0FBVyxFQUFFLENBQ2xELENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBaUI7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7UUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUMvQixvQkFBb0IsU0FBUyxFQUFFLENBQ2hDLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBYyxFQUFFLElBQVk7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7UUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUMvQixpQkFBaUIsTUFBTSxrQkFBa0IsSUFBSSxFQUFFLENBQ2hELENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBYyxFQUFFLElBQXdCO1FBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1FBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FDaEMsaUJBQWlCLE1BQU0sV0FBVyxFQUNsQyxJQUFJLENBQ0wsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFpQixFQUFFLElBQXdCO1FBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1FBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FDL0Isb0JBQW9CLFNBQVMsRUFBRSxFQUMvQixJQUFJLENBQ0wsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFpQjtRQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztRQUM5QixNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQW9CLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FDZixTQUFpQixFQUNqQixRQUFnQixFQUNoQixNQUFnQyxFQUNoQyxLQUFjO1FBRWQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7UUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUNoQyxvQkFBb0IsU0FBUyxRQUFRLEVBQ3JDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FDNUIsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztDQUNGLENBQUM7QUFFRiwrRUFBK0U7QUFDL0UsaUJBQWlCO0FBQ2pCLCtFQUErRTtBQUVsRSxRQUFBLGFBQWEsR0FBRztJQUMzQjs7T0FFRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBc0I7UUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7UUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUNoQyxnQkFBZ0IsRUFDaEIsSUFBSSxDQUNMLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZTtRQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztRQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLGtCQUFrQixPQUFPLEVBQUUsQ0FDNUIsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFlBQVksQ0FDaEIsTUFBZ0U7UUFFaEUsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7UUFDOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUMxQyxJQUFJLE1BQU0sRUFBRSxNQUFNO1lBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksTUFBTSxFQUFFLEtBQUs7WUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxNQUFNLEVBQUUsSUFBSTtZQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLDJCQUEyQixXQUFXLEVBQUUsQ0FDekMsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FDbEIsTUFBYyxFQUNkLE1BQWdFO1FBRWhFLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1FBQzlCLE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDMUMsSUFBSSxNQUFNLEVBQUUsTUFBTTtZQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxJQUFJLE1BQU0sRUFBRSxLQUFLO1lBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksTUFBTSxFQUFFLElBQUk7WUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUMvQix3QkFBd0IsTUFBTSxXQUFXLFdBQVcsRUFBRSxDQUN2RCxDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQWUsRUFBRSxNQUFtQjtRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztRQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLGtCQUFrQixPQUFPLFNBQVMsRUFDbEMsRUFBRSxNQUFNLEVBQUUsQ0FDWCxDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWU7UUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7UUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUNoQyxrQkFBa0IsT0FBTyxTQUFTLENBQ25DLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7Q0FDRixDQUFDO0FBRUYsK0VBQStFO0FBQy9FLG1CQUFtQjtBQUNuQiwrRUFBK0U7QUFFbEUsUUFBQSxlQUFlLEdBQUc7SUFDN0I7O09BRUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBZTtRQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztRQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQ2hDLGtDQUFrQyxPQUFPLEVBQUUsQ0FDNUMsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQWU7UUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7UUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUNoQyxvQ0FBb0MsT0FBTyxFQUFFLENBQzlDLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNYXJrZXRwbGFjZSBBUEkgU2VydmljZVxuICpcbiAqIFBsYWluIGFzeW5jIGZ1bmN0aW9ucyBmb3IgcHJvZHVjdHMgYW5kIG9yZGVycy5cbiAqIENhbiBiZSB1c2VkIGluIHRlc3RzIG9yIG5vbi1SZWFjdCBlbnZpcm9ubWVudHMuXG4gKi9cblxuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB0eXBlIHtcbiAgUHJvZHVjdCxcbiAgUHJvZHVjdFR5cGUsXG4gIFByb2R1Y3RTdGF0dXMsXG4gIE9yZGVyU3RhdHVzLFxuICBBcGlSZXNwb25zZSxcbiAgUGFnaW5hdGVkUmVzcG9uc2UsXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgUHJvZHVjdFdpdGhTcG90IH0gZnJvbSAnLi4vcXVlcmllcy9wcm9kdWN0cyc7XG5pbXBvcnQgdHlwZSB7IE9yZGVyV2l0aERldGFpbHMgfSBmcm9tICcuLi9xdWVyaWVzL29yZGVycyc7XG5cbi8vIFJlLWV4cG9ydCBmb3IgY29udmVuaWVuY2VcbmV4cG9ydCB0eXBlIHsgUHJvZHVjdFdpdGhTcG90LCBPcmRlcldpdGhEZXRhaWxzIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUHJvZHVjdElucHV0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdHlwZTogUHJvZHVjdFR5cGU7XG4gIHByaWNlOiBudW1iZXI7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICBzdG9ja1F1YW50aXR5PzogbnVtYmVyO1xuICBsb3dTdG9ja0FsZXJ0PzogbnVtYmVyO1xuICBkZWxpdmVyeVJhZGl1cz86IG51bWJlcjtcbiAgcHJlcFRpbWVNaW51dGVzPzogbnVtYmVyO1xuICBldmVudERhdGU/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
@@ -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