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