@meaple-com/core 1.1.0 → 1.1.1
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.mjs → index.cjs} +51 -5
- package/dist/index.cjs.map +1 -0
- package/dist/{index.d.mts → index.d.cts} +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4 -50
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/index.mjs.map +0 -1
|
@@ -1,10 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
|
+
CategoriesResource: () => CategoriesResource,
|
|
34
|
+
CouponResource: () => CouponResource,
|
|
35
|
+
EventsResource: () => EventsResource,
|
|
36
|
+
MeapleSDK: () => MeapleSDK,
|
|
37
|
+
OrdersResource: () => OrdersResource,
|
|
38
|
+
PaymentsResource: () => PaymentsResource,
|
|
39
|
+
TicketsResource: () => TicketsResource,
|
|
40
|
+
UsersResource: () => UsersResource,
|
|
41
|
+
api: () => api,
|
|
42
|
+
descriptionToHtml: () => descriptionToHtml
|
|
43
|
+
});
|
|
44
|
+
module.exports = __toCommonJS(index_exports);
|
|
45
|
+
|
|
1
46
|
// src/core/http/api.ts
|
|
2
|
-
|
|
47
|
+
var import_axios = __toESM(require("axios"), 1);
|
|
3
48
|
var SimpleApiClient = class {
|
|
4
49
|
axios;
|
|
5
50
|
interceptors = { request: [], response: [] };
|
|
6
51
|
constructor(config = {}) {
|
|
7
|
-
this.axios =
|
|
52
|
+
this.axios = import_axios.default.create({
|
|
8
53
|
baseURL: config.baseURL ?? "http://localhost:1234",
|
|
9
54
|
timeout: config.timeout ?? 3e4,
|
|
10
55
|
headers: {
|
|
@@ -424,7 +469,8 @@ function descriptionToHtml(description) {
|
|
|
424
469
|
return "";
|
|
425
470
|
}
|
|
426
471
|
}
|
|
427
|
-
export
|
|
472
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
473
|
+
0 && (module.exports = {
|
|
428
474
|
CategoriesResource,
|
|
429
475
|
CouponResource,
|
|
430
476
|
EventsResource,
|
|
@@ -435,5 +481,5 @@ export {
|
|
|
435
481
|
UsersResource,
|
|
436
482
|
api,
|
|
437
483
|
descriptionToHtml
|
|
438
|
-
};
|
|
439
|
-
//# sourceMappingURL=index.
|
|
484
|
+
});
|
|
485
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/core/http/api.ts","../src/resources/categories/index.ts","../src/resources/coupon/index.ts","../src/resources/events/index.ts","../src/resources/orders/index.ts","../src/resources/payments/index.ts","../src/resources/tickets/index.ts","../src/resources/users/index.ts","../src/meaple-sdk.ts","../src/utils/colorMapping.ts","../src/utils/descriptionToHtml.ts"],"sourcesContent":["export { api } from './core/http/api';\nexport type { MeapleSDKOptions } from './meaple-sdk';\nexport { MeapleSDK } from './meaple-sdk';\nexport { descriptionToHtml } from './utils/descriptionToHtml';\n\n// Export resources for use in hooks\nexport { CategoriesResource } from './resources/categories';\nexport { CouponResource } from './resources/coupon';\nexport { EventsResource } from './resources/events';\nexport { OrdersResource } from './resources/orders';\nexport { PaymentsResource } from './resources/payments';\nexport { TicketsResource } from './resources/tickets';\nexport { UsersResource } from './resources/users';\n","import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\n\n// ============================================================================\n// Types & Interfaces\n// ============================================================================\n\nexport interface ApiResponse<T = any> {\n data: T;\n success?: boolean;\n timestamp?: string;\n requestId?: string;\n}\n\nexport interface ApiConfig {\n baseURL?: string;\n timeout?: number;\n headers?: Record<string, string>;\n}\n\ninterface RequestInterceptor {\n onRequest(config: any): Promise<any>;\n}\n\n// ============================================================================\n// API Client\n// ============================================================================\n\nexport class SimpleApiClient {\n private axios: AxiosInstance;\n private interceptors: {\n request: RequestInterceptor[];\n response: ((response: any) => any)[];\n } = { request: [], response: [] };\n\n constructor(config: ApiConfig = {}) {\n this.axios = axios.create({\n baseURL: config.baseURL ?? 'http://localhost:1234',\n timeout: config.timeout ?? 30000,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n this.setupInterceptors();\n }\n\n // --------------------------------------------------------------------------\n // Configuration Methods\n // --------------------------------------------------------------------------\n\n setDefaultHeader(name: string, value: string): void {\n this.axios.defaults.headers.common[name] = value;\n }\n\n removeDefaultHeader(name: string): void {\n delete this.axios.defaults.headers.common[name];\n }\n\n setBaseURL(baseURL: string): void {\n this.axios.defaults.baseURL = baseURL;\n }\n\n setBearerToken(token: string): void {\n this.setDefaultHeader('Authorization', `Bearer ${token}`);\n }\n\n get axiosInstance(): AxiosInstance {\n return this.axios;\n }\n\n // --------------------------------------------------------------------------\n // Interceptors\n // --------------------------------------------------------------------------\n\n addRequestInterceptor(interceptor: RequestInterceptor): void {\n this.interceptors.request.push(interceptor);\n }\n\n addResponseInterceptor(\n onFulfilled?: (response: any) => any,\n onRejected?: (error: any) => any\n ): void {\n if (onFulfilled) {\n this.interceptors.response.push(onFulfilled);\n }\n if (onRejected) {\n this.axios.interceptors.response.use(undefined, onRejected);\n }\n }\n\n clearInterceptors(): void {\n this.interceptors.request = [];\n this.interceptors.response = [];\n }\n\n // --------------------------------------------------------------------------\n // HTTP Methods\n // --------------------------------------------------------------------------\n\n async get<T = any>(\n url: string,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.get(url, config);\n return this.formatResponse(response);\n }\n\n async post<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.post(url, data, config);\n return this.formatResponse(response);\n }\n\n async put<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.put(url, data, config);\n return this.formatResponse(response);\n }\n\n async patch<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.patch(url, data, config);\n return this.formatResponse(response);\n }\n\n async delete<T = any>(\n url: string,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.delete(url, config);\n return this.formatResponse(response);\n }\n\n // --------------------------------------------------------------------------\n // Private Methods\n // --------------------------------------------------------------------------\n\n private setupInterceptors(): void {\n // Request interceptor\n this.axios.interceptors.request.use(async config => {\n let processedConfig = config;\n for (const interceptor of this.interceptors.request) {\n processedConfig = await interceptor.onRequest(processedConfig);\n }\n return processedConfig;\n });\n\n // Response interceptor\n this.axios.interceptors.response.use(response => {\n let processedResponse = response;\n for (const interceptor of this.interceptors.response) {\n processedResponse = interceptor(processedResponse);\n }\n return processedResponse;\n });\n }\n\n private formatResponse<T>(response: AxiosResponse): ApiResponse<T> {\n const requestId = response.headers['x-request-id'];\n\n // Se response.data for um Blob, retornar diretamente sem formatação adicional\n if (response.data instanceof Blob) {\n return {\n data: response.data as any,\n success: response.status >= 200 && response.status < 300,\n timestamp: new Date().toISOString(),\n ...(requestId && { requestId }),\n };\n }\n\n return {\n data: response.data,\n success: response.status >= 200 && response.status < 300,\n timestamp: new Date().toISOString(),\n ...(requestId && { requestId }),\n };\n }\n}\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport const api = new SimpleApiClient();\n","import { CategoryProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class CategoriesResource {\n async find(): Promise<CategoryProps[]> {\n const response = await api.get<{ categories: CategoryProps[] }>(\n '/v1/categories'\n );\n return response.data.categories;\n }\n}\n","import { CheckCouponProps, CouponProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class CouponResource {\n async check({ eventId, couponCode }: CheckCouponProps): Promise<CouponProps> {\n const response = await api.get<{ coupon: CouponProps }>(\n `/v1/events/${eventId}/coupons/${couponCode}/check`\n );\n return response.data.coupon;\n }\n}\n","import type {\n CreateEventReminderProps,\n EventProps,\n FindEventsParams,\n FindEventsResponseProps,\n GetChannelEventProps,\n GetEventProductProps,\n GetEventProductsResponseProps,\n GetEventTicketProps,\n GetEventTicketsResponseProps,\n UserTicketProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\n// Helper functions\nconst formatTicket = (ticket: GetEventTicketProps): GetEventTicketProps => ({\n ...ticket,\n price: Number(ticket.price.toFixed(2)),\n});\n\nconst formatProducts = (\n product: GetEventProductProps\n): GetEventProductProps => ({\n ...product,\n price: Number(product.price.toFixed(2)),\n});\n\nexport class EventsResource {\n // Find events\n async find(params?: FindEventsParams): Promise<FindEventsResponseProps> {\n const response = await api.get<FindEventsResponseProps>('/v1/events', {\n params,\n });\n return response.data;\n }\n\n // Get event by slug (uses x-channel-id header)\n async getBySlug(eventSlug: string): Promise<EventProps> {\n const response = await api.get<GetChannelEventProps>(\n `/v1/events/${eventSlug}`\n );\n return response.data.event;\n }\n\n // Event products\n async getProducts(\n eventId: string,\n privateToken?: string | null\n ): Promise<GetEventProductsResponseProps> {\n const response = await api.get<GetEventProductsResponseProps>(\n `/v1/events/${eventId}/products`,\n { params: { privateToken } }\n );\n\n const products = response.data.products.map(formatProducts);\n\n return { ...response.data, products };\n }\n\n // Event tickets\n async getTickets(\n eventId: string,\n privateToken?: string | null,\n predecessorIds?: string[]\n ): Promise<GetEventTicketsResponseProps> {\n const response = await api.get<GetEventTicketsResponseProps>(\n `/v1/events/${eventId}/tickets`,\n { params: { privateToken, predecessorIds } }\n );\n\n const tickets = response.data.tickets.map(formatTicket);\n\n const groups = response.data.groups.map(group => ({\n ...group,\n tickets: group.tickets.map(formatTicket),\n }));\n\n return { ...response.data, tickets, groups };\n }\n\n // User event tickets\n async getUserEventTickets(eventId: string): Promise<UserTicketProps[]> {\n const response = await api.get<{ userTickets: UserTicketProps[] }>(\n `/v1/events/${eventId}/user-tickets`\n );\n return response.data.userTickets;\n }\n\n // Create event reminder\n async createReminder(\n eventId: string,\n data: CreateEventReminderProps\n ): Promise<{ message: string }> {\n const response = await api.post<{ message: string }>(\n `/v1/events/${eventId}/reminder`,\n { reminder: data }\n );\n return response.data;\n }\n}\n","import type {\n CreatedOrderResponseProps,\n CreateOrderParams,\n GetOrderResponseProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\nimport type { Headers } from '../../core/types/common';\n\nexport class OrdersResource {\n async create(data: CreateOrderParams): Promise<CreatedOrderResponseProps> {\n const response = await api.post<CreatedOrderResponseProps>(\n '/v1/orders',\n data\n );\n return response.data;\n }\n\n async get(\n orderId: string,\n headers?: Headers\n ): Promise<GetOrderResponseProps> {\n const response = await api.get<GetOrderResponseProps>(\n `/v1/orders/${orderId}`,\n {\n headers,\n }\n );\n return response.data;\n }\n}\n","import type { PlatformFeeProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class PaymentsResource {\n async getFee(eventId?: string): Promise<PlatformFeeProps> {\n const response = await api.get<PlatformFeeProps>('/v1/payments/fee', {\n params: { eventId },\n });\n return response.data;\n }\n}\n","import type {\n CreateTicketFileProps,\n TransferTicketProps,\n UpdateUserTicketProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class TicketsResource {\n async createFile(\n userTicketId: string,\n params: CreateTicketFileProps\n ): Promise<Blob> {\n const response = await api.get(\n `/v1/tickets/user-tickets/${userTicketId}/file`,\n { params, responseType: 'blob' }\n );\n return response.data;\n }\n\n async editUserTicket(\n userTicketId: string,\n data: UpdateUserTicketProps\n ): Promise<void> {\n await api.put(`/v1/tickets/user-tickets/${userTicketId}`, data);\n }\n\n async transfer(ticketId: string, data: TransferTicketProps): Promise<void> {\n await api.post(`/v1/tickets/${ticketId}/transfer`, data);\n }\n}\n","import type {\n GetMeUserProps,\n GetUserEventProps,\n GetUserOrderProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\nimport type { QueryParams } from '../../core/types/common';\n\nexport class UsersResource {\n async getMe(): Promise<GetMeUserProps> {\n const response = await api.get<{ user: GetMeUserProps }>('/v1/users/me');\n return response.data.user;\n }\n\n async getOrders(params: QueryParams = {}): Promise<GetUserOrderProps[]> {\n const response = await api.get<{ orders: GetUserOrderProps[] }>(\n '/v1/users/orders',\n { params }\n );\n return response.data.orders;\n }\n\n async getEvents(params: QueryParams = {}): Promise<GetUserEventProps[]> {\n const response = await api.get<{ events: GetUserEventProps[] }>(\n '/v1/users/events',\n { params }\n );\n return response.data.events;\n }\n\n async refundOrder(orderId: string): Promise<{ message: string }> {\n const response = await api.post<{ message: string }>(\n `/v1/users/orders/${orderId}/refund`\n );\n return response.data;\n }\n}\n","import { api } from './core/http/api';\nimport { CategoriesResource } from './resources/categories';\nimport { CouponResource } from './resources/coupon';\nimport { EventsResource } from './resources/events';\nimport { OrdersResource } from './resources/orders';\nimport { PaymentsResource } from './resources/payments';\nimport { TicketsResource } from './resources/tickets';\nimport { UsersResource } from './resources/users';\n\nexport interface MeapleSDKOptions {\n publicKey: string;\n baseURL: string;\n}\n\nexport class MeapleSDK {\n public users: UsersResource;\n public events: EventsResource;\n public orders: OrdersResource;\n public categories: CategoriesResource;\n public coupon: CouponResource;\n public payments: PaymentsResource;\n public tickets: TicketsResource;\n\n constructor(config: MeapleSDKOptions) {\n // Configura a instância global de API\n api.setBaseURL(config.baseURL);\n api.setDefaultHeader('X-Channel-Id', config.publicKey);\n\n // Inicializa todos os recursos\n this.users = new UsersResource();\n this.events = new EventsResource();\n this.orders = new OrdersResource();\n this.categories = new CategoriesResource();\n this.coupon = new CouponResource();\n this.payments = new PaymentsResource();\n this.tickets = new TicketsResource();\n }\n\n setGlobalToken(token: string): void {\n api.setBearerToken(token);\n }\n}\n","export const COLOR_MAP = {\n white: {\n hex: `#ffffff`,\n rgb: `rgb(255, 255, 255)`,\n },\n 'text-400': {\n hex: `#c7c7c7`,\n rgb: `rgb(199, 199, 199)`,\n },\n primary: {\n hex: `#00a0fc`,\n rgb: `rgb(0, 160, 252)`,\n },\n secondary: {\n hex: `#fca600`,\n rgb: `rgb(252, 166, 0)`,\n },\n tertiary: {\n hex: `#ab71f4`,\n rgb: `rgb(171, 113, 244)`,\n },\n} as const;\n\nexport const slateNameToHex = (name: string): string | undefined => {\n const colorData = COLOR_MAP[name as keyof typeof COLOR_MAP];\n return colorData?.hex;\n};\n","import { slateNameToHex } from './colorMapping';\n\nconst isEmbedUrl = (url?: string): boolean => {\n if (!url) return false;\n const patterns = [\n /youtube\\.com\\/embed\\//,\n /youtu\\.be\\//,\n /open\\.spotify\\.com\\/embed\\//,\n ];\n return patterns.some(p => p.test(url));\n};\n\nconst isSpotifyUrl = (url?: string): boolean => {\n if (!url) return false;\n return /open\\.spotify\\.com\\/embed\\//.test(url);\n};\n\nconst escapeHtml = (text: string): string =>\n text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n\ntype SlateNode = Record<string, unknown>;\ntype SlateElement = SlateNode & { type?: string; children?: SlateNode[] };\ntype SlateText = SlateNode & { text?: string };\n\nfunction isTextNode(node: SlateNode): node is SlateText {\n return typeof (node as SlateText).text === 'string';\n}\n\nfunction renderMarks(text: string, marks: SlateText): string {\n let result = escapeHtml(text);\n if (!result) return result;\n\n const wrap = (tag: string, attrs = '') =>\n `<${tag}${attrs ? ` ${attrs}` : ''}>${result}</${tag}>`;\n\n if (marks.bold) result = wrap('strong');\n if (marks.italic) result = wrap('em');\n if (marks.underline) result = wrap('u');\n if (marks.strike) result = wrap('s');\n if (marks.color) {\n const hex = slateNameToHex(marks.color as string);\n if (hex) result = wrap('span', `style=\"color: ${hex}\"`);\n }\n return result;\n}\n\nfunction renderChildren(children: SlateNode[]): string {\n return children\n .map(child =>\n isTextNode(child)\n ? renderMarks((child as SlateText).text ?? '', child as SlateText)\n : renderElement(child as SlateElement)\n )\n .join('');\n}\n\nfunction isWhitespaceOnly(children: SlateNode[]): boolean {\n return children.every(child => {\n if (!isTextNode(child)) return false;\n const text = (child as SlateText).text ?? '';\n return /^\\s*$/.test(text);\n });\n}\n\nfunction renderElement(node: SlateElement): string {\n const children = node.children ?? [];\n const type = node.type ?? 'paragraph';\n\n switch (type) {\n case 'paragraph': {\n const content = renderChildren(children);\n if (isWhitespaceOnly(children) || /^\\s*$/.test(content)) {\n return content.replace(/\\n/g, '<br>') || '<br>';\n }\n return `<p>${content}</p>`;\n }\n case 'heading-one':\n return `<h1>${renderChildren(children)}</h1>`;\n case 'heading-two':\n return `<h2>${renderChildren(children)}</h2>`;\n case 'heading-three':\n return `<h3>${renderChildren(children)}</h3>`;\n case 'bulleted-list':\n return `<ul>${renderChildren(children)}</ul>`;\n case 'numbered-list':\n return `<ol>${renderChildren(children)}</ol>`;\n case 'list-item':\n return `<li>${renderChildren(children)}</li>`;\n case 'link': {\n const url = node.url as string | undefined;\n if (isEmbedUrl(url)) {\n const style = isSpotifyUrl(url)\n ? 'width: 100%; height: 152px; display: block'\n : 'width: 100%; aspect-ratio: 16/9; display: block';\n return `<iframe src=\"${escapeHtml(url ?? '')}\" frameborder=\"0\" allowfullscreen=\"true\" style=\"${style}\"></iframe>`;\n }\n const href = url ? ` href=\"${escapeHtml(url)}\"` : '';\n return `<a${href} target=\"_blank\" rel=\"noopener noreferrer\">${renderChildren(children)}</a>`;\n }\n case 'image': {\n const url = node.url as string | undefined;\n const alt = node.alt as string | undefined;\n const size = node.size as number | undefined;\n const attrs: string[] = [];\n if (url) attrs.push(`src=\"${escapeHtml(url)}\"`);\n if (alt) attrs.push(`alt=\"${escapeHtml(alt)}\"`);\n if (size !== undefined)\n attrs.push(`style=\"width: ${size}%; height: auto\"`);\n return `<img ${attrs.join(' ')}>`;\n }\n default:\n return renderChildren(children) || '<p></p>';\n }\n}\n\nexport function descriptionToHtml(\n description: Record<string, unknown>[] | null | undefined\n): string {\n if (!description || !Array.isArray(description) || description.length === 0) {\n return '';\n }\n try {\n return description.map(n => renderElement(n as SlateElement)).join('');\n } catch {\n return '';\n }\n}\n"],"mappings":"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","names":["axios"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AxiosInstance, AxiosRequestConfig } from 'axios';
|
|
2
|
-
import { CategoryProps, CheckCouponProps, CouponProps, FindEventsParams, FindEventsResponseProps, EventProps, GetEventProductsResponseProps, GetEventTicketsResponseProps, UserTicketProps, CreateEventReminderProps, CreateOrderParams, CreatedOrderResponseProps, GetOrderResponseProps, PlatformFeeProps, CreateTicketFileProps, UpdateUserTicketProps, TransferTicketProps, GetMeUserProps,
|
|
2
|
+
import { CategoryProps, CheckCouponProps, CouponProps, FindEventsParams, FindEventsResponseProps, EventProps, GetEventProductsResponseProps, GetEventTicketsResponseProps, UserTicketProps, CreateEventReminderProps, CreateOrderParams, CreatedOrderResponseProps, GetOrderResponseProps, PlatformFeeProps, CreateTicketFileProps, UpdateUserTicketProps, TransferTicketProps, GetMeUserProps, GetUserOrderProps, GetUserEventProps } from '@meaple-com/types';
|
|
3
3
|
|
|
4
4
|
interface ApiResponse<T = any> {
|
|
5
5
|
data: T;
|
|
@@ -80,8 +80,8 @@ declare class TicketsResource {
|
|
|
80
80
|
|
|
81
81
|
declare class UsersResource {
|
|
82
82
|
getMe(): Promise<GetMeUserProps>;
|
|
83
|
-
getOrders(params?: QueryParams): Promise<
|
|
84
|
-
getEvents(params?: QueryParams): Promise<
|
|
83
|
+
getOrders(params?: QueryParams): Promise<GetUserOrderProps[]>;
|
|
84
|
+
getEvents(params?: QueryParams): Promise<GetUserEventProps[]>;
|
|
85
85
|
refundOrder(orderId: string): Promise<{
|
|
86
86
|
message: string;
|
|
87
87
|
}>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AxiosInstance, AxiosRequestConfig } from 'axios';
|
|
2
|
-
import { CategoryProps, CheckCouponProps, CouponProps, FindEventsParams, FindEventsResponseProps, EventProps, GetEventProductsResponseProps, GetEventTicketsResponseProps, UserTicketProps, CreateEventReminderProps, CreateOrderParams, CreatedOrderResponseProps, GetOrderResponseProps, PlatformFeeProps, CreateTicketFileProps, UpdateUserTicketProps, TransferTicketProps, GetMeUserProps,
|
|
2
|
+
import { CategoryProps, CheckCouponProps, CouponProps, FindEventsParams, FindEventsResponseProps, EventProps, GetEventProductsResponseProps, GetEventTicketsResponseProps, UserTicketProps, CreateEventReminderProps, CreateOrderParams, CreatedOrderResponseProps, GetOrderResponseProps, PlatformFeeProps, CreateTicketFileProps, UpdateUserTicketProps, TransferTicketProps, GetMeUserProps, GetUserOrderProps, GetUserEventProps } from '@meaple-com/types';
|
|
3
3
|
|
|
4
4
|
interface ApiResponse<T = any> {
|
|
5
5
|
data: T;
|
|
@@ -80,8 +80,8 @@ declare class TicketsResource {
|
|
|
80
80
|
|
|
81
81
|
declare class UsersResource {
|
|
82
82
|
getMe(): Promise<GetMeUserProps>;
|
|
83
|
-
getOrders(params?: QueryParams): Promise<
|
|
84
|
-
getEvents(params?: QueryParams): Promise<
|
|
83
|
+
getOrders(params?: QueryParams): Promise<GetUserOrderProps[]>;
|
|
84
|
+
getEvents(params?: QueryParams): Promise<GetUserEventProps[]>;
|
|
85
85
|
refundOrder(orderId: string): Promise<{
|
|
86
86
|
message: string;
|
|
87
87
|
}>;
|
package/dist/index.js
CHANGED
|
@@ -1,55 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
|
|
30
|
-
// src/index.ts
|
|
31
|
-
var index_exports = {};
|
|
32
|
-
__export(index_exports, {
|
|
33
|
-
CategoriesResource: () => CategoriesResource,
|
|
34
|
-
CouponResource: () => CouponResource,
|
|
35
|
-
EventsResource: () => EventsResource,
|
|
36
|
-
MeapleSDK: () => MeapleSDK,
|
|
37
|
-
OrdersResource: () => OrdersResource,
|
|
38
|
-
PaymentsResource: () => PaymentsResource,
|
|
39
|
-
TicketsResource: () => TicketsResource,
|
|
40
|
-
UsersResource: () => UsersResource,
|
|
41
|
-
api: () => api,
|
|
42
|
-
descriptionToHtml: () => descriptionToHtml
|
|
43
|
-
});
|
|
44
|
-
module.exports = __toCommonJS(index_exports);
|
|
45
|
-
|
|
46
1
|
// src/core/http/api.ts
|
|
47
|
-
|
|
2
|
+
import axios from "axios";
|
|
48
3
|
var SimpleApiClient = class {
|
|
49
4
|
axios;
|
|
50
5
|
interceptors = { request: [], response: [] };
|
|
51
6
|
constructor(config = {}) {
|
|
52
|
-
this.axios =
|
|
7
|
+
this.axios = axios.create({
|
|
53
8
|
baseURL: config.baseURL ?? "http://localhost:1234",
|
|
54
9
|
timeout: config.timeout ?? 3e4,
|
|
55
10
|
headers: {
|
|
@@ -469,8 +424,7 @@ function descriptionToHtml(description) {
|
|
|
469
424
|
return "";
|
|
470
425
|
}
|
|
471
426
|
}
|
|
472
|
-
|
|
473
|
-
0 && (module.exports = {
|
|
427
|
+
export {
|
|
474
428
|
CategoriesResource,
|
|
475
429
|
CouponResource,
|
|
476
430
|
EventsResource,
|
|
@@ -481,5 +435,5 @@ function descriptionToHtml(description) {
|
|
|
481
435
|
UsersResource,
|
|
482
436
|
api,
|
|
483
437
|
descriptionToHtml
|
|
484
|
-
}
|
|
438
|
+
};
|
|
485
439
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/core/http/api.ts","../src/resources/categories/index.ts","../src/resources/coupon/index.ts","../src/resources/events/index.ts","../src/resources/orders/index.ts","../src/resources/payments/index.ts","../src/resources/tickets/index.ts","../src/resources/users/index.ts","../src/meaple-sdk.ts","../src/utils/colorMapping.ts","../src/utils/descriptionToHtml.ts"],"sourcesContent":["export { api } from './core/http/api';\nexport type { MeapleSDKOptions } from './meaple-sdk';\nexport { MeapleSDK } from './meaple-sdk';\nexport { descriptionToHtml } from './utils/descriptionToHtml';\n\n// Export resources for use in hooks\nexport { CategoriesResource } from './resources/categories';\nexport { CouponResource } from './resources/coupon';\nexport { EventsResource } from './resources/events';\nexport { OrdersResource } from './resources/orders';\nexport { PaymentsResource } from './resources/payments';\nexport { TicketsResource } from './resources/tickets';\nexport { UsersResource } from './resources/users';\n","import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\n\n// ============================================================================\n// Types & Interfaces\n// ============================================================================\n\nexport interface ApiResponse<T = any> {\n data: T;\n success?: boolean;\n timestamp?: string;\n requestId?: string;\n}\n\nexport interface ApiConfig {\n baseURL?: string;\n timeout?: number;\n headers?: Record<string, string>;\n}\n\ninterface RequestInterceptor {\n onRequest(config: any): Promise<any>;\n}\n\n// ============================================================================\n// API Client\n// ============================================================================\n\nexport class SimpleApiClient {\n private axios: AxiosInstance;\n private interceptors: {\n request: RequestInterceptor[];\n response: ((response: any) => any)[];\n } = { request: [], response: [] };\n\n constructor(config: ApiConfig = {}) {\n this.axios = axios.create({\n baseURL: config.baseURL ?? 'http://localhost:1234',\n timeout: config.timeout ?? 30000,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n this.setupInterceptors();\n }\n\n // --------------------------------------------------------------------------\n // Configuration Methods\n // --------------------------------------------------------------------------\n\n setDefaultHeader(name: string, value: string): void {\n this.axios.defaults.headers.common[name] = value;\n }\n\n removeDefaultHeader(name: string): void {\n delete this.axios.defaults.headers.common[name];\n }\n\n setBaseURL(baseURL: string): void {\n this.axios.defaults.baseURL = baseURL;\n }\n\n setBearerToken(token: string): void {\n this.setDefaultHeader('Authorization', `Bearer ${token}`);\n }\n\n get axiosInstance(): AxiosInstance {\n return this.axios;\n }\n\n // --------------------------------------------------------------------------\n // Interceptors\n // --------------------------------------------------------------------------\n\n addRequestInterceptor(interceptor: RequestInterceptor): void {\n this.interceptors.request.push(interceptor);\n }\n\n addResponseInterceptor(\n onFulfilled?: (response: any) => any,\n onRejected?: (error: any) => any\n ): void {\n if (onFulfilled) {\n this.interceptors.response.push(onFulfilled);\n }\n if (onRejected) {\n this.axios.interceptors.response.use(undefined, onRejected);\n }\n }\n\n clearInterceptors(): void {\n this.interceptors.request = [];\n this.interceptors.response = [];\n }\n\n // --------------------------------------------------------------------------\n // HTTP Methods\n // --------------------------------------------------------------------------\n\n async get<T = any>(\n url: string,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.get(url, config);\n return this.formatResponse(response);\n }\n\n async post<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.post(url, data, config);\n return this.formatResponse(response);\n }\n\n async put<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.put(url, data, config);\n return this.formatResponse(response);\n }\n\n async patch<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.patch(url, data, config);\n return this.formatResponse(response);\n }\n\n async delete<T = any>(\n url: string,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.delete(url, config);\n return this.formatResponse(response);\n }\n\n // --------------------------------------------------------------------------\n // Private Methods\n // --------------------------------------------------------------------------\n\n private setupInterceptors(): void {\n // Request interceptor\n this.axios.interceptors.request.use(async config => {\n let processedConfig = config;\n for (const interceptor of this.interceptors.request) {\n processedConfig = await interceptor.onRequest(processedConfig);\n }\n return processedConfig;\n });\n\n // Response interceptor\n this.axios.interceptors.response.use(response => {\n let processedResponse = response;\n for (const interceptor of this.interceptors.response) {\n processedResponse = interceptor(processedResponse);\n }\n return processedResponse;\n });\n }\n\n private formatResponse<T>(response: AxiosResponse): ApiResponse<T> {\n const requestId = response.headers['x-request-id'];\n\n // Se response.data for um Blob, retornar diretamente sem formatação adicional\n if (response.data instanceof Blob) {\n return {\n data: response.data as any,\n success: response.status >= 200 && response.status < 300,\n timestamp: new Date().toISOString(),\n ...(requestId && { requestId }),\n };\n }\n\n return {\n data: response.data,\n success: response.status >= 200 && response.status < 300,\n timestamp: new Date().toISOString(),\n ...(requestId && { requestId }),\n };\n }\n}\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport const api = new SimpleApiClient();\n","import { CategoryProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class CategoriesResource {\n async find(): Promise<CategoryProps[]> {\n const response = await api.get<{ categories: CategoryProps[] }>(\n '/v1/categories'\n );\n return response.data.categories;\n }\n}\n","import { CheckCouponProps, CouponProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class CouponResource {\n async check({ eventId, couponCode }: CheckCouponProps): Promise<CouponProps> {\n const response = await api.get<{ coupon: CouponProps }>(\n `/v1/events/${eventId}/coupons/${couponCode}/check`\n );\n return response.data.coupon;\n }\n}\n","import type {\n CreateEventReminderProps,\n EventProps,\n FindEventsParams,\n FindEventsResponseProps,\n GetChannelEventProps,\n GetEventProductProps,\n GetEventProductsResponseProps,\n GetEventTicketProps,\n GetEventTicketsResponseProps,\n UserTicketProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\n// Helper functions\nconst formatTicket = (ticket: GetEventTicketProps): GetEventTicketProps => ({\n ...ticket,\n price: Number(ticket.price.toFixed(2)),\n});\n\nconst formatProducts = (\n product: GetEventProductProps\n): GetEventProductProps => ({\n ...product,\n price: Number(product.price.toFixed(2)),\n});\n\nexport class EventsResource {\n // Find events\n async find(params?: FindEventsParams): Promise<FindEventsResponseProps> {\n const response = await api.get<FindEventsResponseProps>('/v1/events', {\n params,\n });\n return response.data;\n }\n\n // Get event by slug (uses x-channel-id header)\n async getBySlug(eventSlug: string): Promise<EventProps> {\n const response = await api.get<GetChannelEventProps>(\n `/v1/events/${eventSlug}`\n );\n return response.data.event;\n }\n\n // Event products\n async getProducts(\n eventId: string,\n privateToken?: string | null\n ): Promise<GetEventProductsResponseProps> {\n const response = await api.get<GetEventProductsResponseProps>(\n `/v1/events/${eventId}/products`,\n { params: { privateToken } }\n );\n\n const products = response.data.products.map(formatProducts);\n\n return { ...response.data, products };\n }\n\n // Event tickets\n async getTickets(\n eventId: string,\n privateToken?: string | null,\n predecessorIds?: string[]\n ): Promise<GetEventTicketsResponseProps> {\n const response = await api.get<GetEventTicketsResponseProps>(\n `/v1/events/${eventId}/tickets`,\n { params: { privateToken, predecessorIds } }\n );\n\n const tickets = response.data.tickets.map(formatTicket);\n\n const groups = response.data.groups.map(group => ({\n ...group,\n tickets: group.tickets.map(formatTicket),\n }));\n\n return { ...response.data, tickets, groups };\n }\n\n // User event tickets\n async getUserEventTickets(eventId: string): Promise<UserTicketProps[]> {\n const response = await api.get<{ userTickets: UserTicketProps[] }>(\n `/v1/events/${eventId}/user-tickets`\n );\n return response.data.userTickets;\n }\n\n // Create event reminder\n async createReminder(\n eventId: string,\n data: CreateEventReminderProps\n ): Promise<{ message: string }> {\n const response = await api.post<{ message: string }>(\n `/v1/events/${eventId}/reminder`,\n { reminder: data }\n );\n return response.data;\n }\n}\n","import type {\n CreatedOrderResponseProps,\n CreateOrderParams,\n GetOrderResponseProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\nimport type { Headers } from '../../core/types/common';\n\nexport class OrdersResource {\n async create(data: CreateOrderParams): Promise<CreatedOrderResponseProps> {\n const response = await api.post<CreatedOrderResponseProps>(\n '/v1/orders',\n data\n );\n return response.data;\n }\n\n async get(\n orderId: string,\n headers?: Headers\n ): Promise<GetOrderResponseProps> {\n const response = await api.get<GetOrderResponseProps>(\n `/v1/orders/${orderId}`,\n {\n headers,\n }\n );\n return response.data;\n }\n}\n","import type { PlatformFeeProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class PaymentsResource {\n async getFee(eventId?: string): Promise<PlatformFeeProps> {\n const response = await api.get<PlatformFeeProps>('/v1/payments/fee', {\n params: { eventId },\n });\n return response.data;\n }\n}\n","import type {\n CreateTicketFileProps,\n TransferTicketProps,\n UpdateUserTicketProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class TicketsResource {\n async createFile(\n userTicketId: string,\n params: CreateTicketFileProps\n ): Promise<Blob> {\n const response = await api.get(\n `/v1/tickets/user-tickets/${userTicketId}/file`,\n { params, responseType: 'blob' }\n );\n return response.data;\n }\n\n async editUserTicket(\n userTicketId: string,\n data: UpdateUserTicketProps\n ): Promise<void> {\n await api.put(`/v1/tickets/user-tickets/${userTicketId}`, data);\n }\n\n async transfer(ticketId: string, data: TransferTicketProps): Promise<void> {\n await api.post(`/v1/tickets/${ticketId}/transfer`, data);\n }\n}\n","import type {\n GetMeUserProps,\n GetUserEventsProps,\n UserOrderProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\nimport type { QueryParams } from '../../core/types/common';\n\nexport class UsersResource {\n async getMe(): Promise<GetMeUserProps> {\n const response = await api.get<{ user: GetMeUserProps }>('/v1/users/me');\n return response.data.user;\n }\n\n async getOrders(params: QueryParams = {}): Promise<UserOrderProps[]> {\n const response = await api.get<{ orders: UserOrderProps[] }>(\n '/v1/users/orders',\n { params }\n );\n return response.data.orders;\n }\n\n async getEvents(params: QueryParams = {}): Promise<GetUserEventsProps[]> {\n const response = await api.get<{ events: GetUserEventsProps[] }>(\n '/v1/users/events',\n { params }\n );\n return response.data.events;\n }\n\n async refundOrder(orderId: string): Promise<{ message: string }> {\n const response = await api.post<{ message: string }>(\n `/v1/users/orders/${orderId}/refund`\n );\n return response.data;\n }\n}\n","import { api } from './core/http/api';\nimport { CategoriesResource } from './resources/categories';\nimport { CouponResource } from './resources/coupon';\nimport { EventsResource } from './resources/events';\nimport { OrdersResource } from './resources/orders';\nimport { PaymentsResource } from './resources/payments';\nimport { TicketsResource } from './resources/tickets';\nimport { UsersResource } from './resources/users';\n\nexport interface MeapleSDKOptions {\n publicKey: string;\n baseURL: string;\n}\n\nexport class MeapleSDK {\n public users: UsersResource;\n public events: EventsResource;\n public orders: OrdersResource;\n public categories: CategoriesResource;\n public coupon: CouponResource;\n public payments: PaymentsResource;\n public tickets: TicketsResource;\n\n constructor(config: MeapleSDKOptions) {\n // Configura a instância global de API\n api.setBaseURL(config.baseURL);\n api.setDefaultHeader('X-Channel-Id', config.publicKey);\n\n // Inicializa todos os recursos\n this.users = new UsersResource();\n this.events = new EventsResource();\n this.orders = new OrdersResource();\n this.categories = new CategoriesResource();\n this.coupon = new CouponResource();\n this.payments = new PaymentsResource();\n this.tickets = new TicketsResource();\n }\n\n setGlobalToken(token: string): void {\n api.setBearerToken(token);\n }\n}\n","export const COLOR_MAP = {\n white: {\n hex: `#ffffff`,\n rgb: `rgb(255, 255, 255)`,\n },\n 'text-400': {\n hex: `#c7c7c7`,\n rgb: `rgb(199, 199, 199)`,\n },\n primary: {\n hex: `#00a0fc`,\n rgb: `rgb(0, 160, 252)`,\n },\n secondary: {\n hex: `#fca600`,\n rgb: `rgb(252, 166, 0)`,\n },\n tertiary: {\n hex: `#ab71f4`,\n rgb: `rgb(171, 113, 244)`,\n },\n} as const;\n\nexport const slateNameToHex = (name: string): string | undefined => {\n const colorData = COLOR_MAP[name as keyof typeof COLOR_MAP];\n return colorData?.hex;\n};\n","import { slateNameToHex } from './colorMapping';\n\nconst isEmbedUrl = (url?: string): boolean => {\n if (!url) return false;\n const patterns = [\n /youtube\\.com\\/embed\\//,\n /youtu\\.be\\//,\n /open\\.spotify\\.com\\/embed\\//,\n ];\n return patterns.some(p => p.test(url));\n};\n\nconst isSpotifyUrl = (url?: string): boolean => {\n if (!url) return false;\n return /open\\.spotify\\.com\\/embed\\//.test(url);\n};\n\nconst escapeHtml = (text: string): string =>\n text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n\ntype SlateNode = Record<string, unknown>;\ntype SlateElement = SlateNode & { type?: string; children?: SlateNode[] };\ntype SlateText = SlateNode & { text?: string };\n\nfunction isTextNode(node: SlateNode): node is SlateText {\n return typeof (node as SlateText).text === 'string';\n}\n\nfunction renderMarks(text: string, marks: SlateText): string {\n let result = escapeHtml(text);\n if (!result) return result;\n\n const wrap = (tag: string, attrs = '') =>\n `<${tag}${attrs ? ` ${attrs}` : ''}>${result}</${tag}>`;\n\n if (marks.bold) result = wrap('strong');\n if (marks.italic) result = wrap('em');\n if (marks.underline) result = wrap('u');\n if (marks.strike) result = wrap('s');\n if (marks.color) {\n const hex = slateNameToHex(marks.color as string);\n if (hex) result = wrap('span', `style=\"color: ${hex}\"`);\n }\n return result;\n}\n\nfunction renderChildren(children: SlateNode[]): string {\n return children\n .map(child =>\n isTextNode(child)\n ? renderMarks((child as SlateText).text ?? '', child as SlateText)\n : renderElement(child as SlateElement)\n )\n .join('');\n}\n\nfunction isWhitespaceOnly(children: SlateNode[]): boolean {\n return children.every(child => {\n if (!isTextNode(child)) return false;\n const text = (child as SlateText).text ?? '';\n return /^\\s*$/.test(text);\n });\n}\n\nfunction renderElement(node: SlateElement): string {\n const children = node.children ?? [];\n const type = node.type ?? 'paragraph';\n\n switch (type) {\n case 'paragraph': {\n const content = renderChildren(children);\n if (isWhitespaceOnly(children) || /^\\s*$/.test(content)) {\n return content.replace(/\\n/g, '<br>') || '<br>';\n }\n return `<p>${content}</p>`;\n }\n case 'heading-one':\n return `<h1>${renderChildren(children)}</h1>`;\n case 'heading-two':\n return `<h2>${renderChildren(children)}</h2>`;\n case 'heading-three':\n return `<h3>${renderChildren(children)}</h3>`;\n case 'bulleted-list':\n return `<ul>${renderChildren(children)}</ul>`;\n case 'numbered-list':\n return `<ol>${renderChildren(children)}</ol>`;\n case 'list-item':\n return `<li>${renderChildren(children)}</li>`;\n case 'link': {\n const url = node.url as string | undefined;\n if (isEmbedUrl(url)) {\n const style = isSpotifyUrl(url)\n ? 'width: 100%; height: 152px; display: block'\n : 'width: 100%; aspect-ratio: 16/9; display: block';\n return `<iframe src=\"${escapeHtml(url ?? '')}\" frameborder=\"0\" allowfullscreen=\"true\" style=\"${style}\"></iframe>`;\n }\n const href = url ? ` href=\"${escapeHtml(url)}\"` : '';\n return `<a${href} target=\"_blank\" rel=\"noopener noreferrer\">${renderChildren(children)}</a>`;\n }\n case 'image': {\n const url = node.url as string | undefined;\n const alt = node.alt as string | undefined;\n const size = node.size as number | undefined;\n const attrs: string[] = [];\n if (url) attrs.push(`src=\"${escapeHtml(url)}\"`);\n if (alt) attrs.push(`alt=\"${escapeHtml(alt)}\"`);\n if (size !== undefined)\n attrs.push(`style=\"width: ${size}%; height: auto\"`);\n return `<img ${attrs.join(' ')}>`;\n }\n default:\n return renderChildren(children) || '<p></p>';\n }\n}\n\nexport function descriptionToHtml(\n description: Record<string, unknown>[] | null | undefined\n): string {\n if (!description || !Array.isArray(description) || description.length === 0) {\n return '';\n }\n try {\n return description.map(n => renderElement(n as SlateElement)).join('');\n } catch {\n return '';\n }\n}\n"],"mappings":"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","names":["axios"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/http/api.ts","../src/resources/categories/index.ts","../src/resources/coupon/index.ts","../src/resources/events/index.ts","../src/resources/orders/index.ts","../src/resources/payments/index.ts","../src/resources/tickets/index.ts","../src/resources/users/index.ts","../src/meaple-sdk.ts","../src/utils/colorMapping.ts","../src/utils/descriptionToHtml.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\n\n// ============================================================================\n// Types & Interfaces\n// ============================================================================\n\nexport interface ApiResponse<T = any> {\n data: T;\n success?: boolean;\n timestamp?: string;\n requestId?: string;\n}\n\nexport interface ApiConfig {\n baseURL?: string;\n timeout?: number;\n headers?: Record<string, string>;\n}\n\ninterface RequestInterceptor {\n onRequest(config: any): Promise<any>;\n}\n\n// ============================================================================\n// API Client\n// ============================================================================\n\nexport class SimpleApiClient {\n private axios: AxiosInstance;\n private interceptors: {\n request: RequestInterceptor[];\n response: ((response: any) => any)[];\n } = { request: [], response: [] };\n\n constructor(config: ApiConfig = {}) {\n this.axios = axios.create({\n baseURL: config.baseURL ?? 'http://localhost:1234',\n timeout: config.timeout ?? 30000,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n this.setupInterceptors();\n }\n\n // --------------------------------------------------------------------------\n // Configuration Methods\n // --------------------------------------------------------------------------\n\n setDefaultHeader(name: string, value: string): void {\n this.axios.defaults.headers.common[name] = value;\n }\n\n removeDefaultHeader(name: string): void {\n delete this.axios.defaults.headers.common[name];\n }\n\n setBaseURL(baseURL: string): void {\n this.axios.defaults.baseURL = baseURL;\n }\n\n setBearerToken(token: string): void {\n this.setDefaultHeader('Authorization', `Bearer ${token}`);\n }\n\n get axiosInstance(): AxiosInstance {\n return this.axios;\n }\n\n // --------------------------------------------------------------------------\n // Interceptors\n // --------------------------------------------------------------------------\n\n addRequestInterceptor(interceptor: RequestInterceptor): void {\n this.interceptors.request.push(interceptor);\n }\n\n addResponseInterceptor(\n onFulfilled?: (response: any) => any,\n onRejected?: (error: any) => any\n ): void {\n if (onFulfilled) {\n this.interceptors.response.push(onFulfilled);\n }\n if (onRejected) {\n this.axios.interceptors.response.use(undefined, onRejected);\n }\n }\n\n clearInterceptors(): void {\n this.interceptors.request = [];\n this.interceptors.response = [];\n }\n\n // --------------------------------------------------------------------------\n // HTTP Methods\n // --------------------------------------------------------------------------\n\n async get<T = any>(\n url: string,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.get(url, config);\n return this.formatResponse(response);\n }\n\n async post<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.post(url, data, config);\n return this.formatResponse(response);\n }\n\n async put<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.put(url, data, config);\n return this.formatResponse(response);\n }\n\n async patch<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.patch(url, data, config);\n return this.formatResponse(response);\n }\n\n async delete<T = any>(\n url: string,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.delete(url, config);\n return this.formatResponse(response);\n }\n\n // --------------------------------------------------------------------------\n // Private Methods\n // --------------------------------------------------------------------------\n\n private setupInterceptors(): void {\n // Request interceptor\n this.axios.interceptors.request.use(async config => {\n let processedConfig = config;\n for (const interceptor of this.interceptors.request) {\n processedConfig = await interceptor.onRequest(processedConfig);\n }\n return processedConfig;\n });\n\n // Response interceptor\n this.axios.interceptors.response.use(response => {\n let processedResponse = response;\n for (const interceptor of this.interceptors.response) {\n processedResponse = interceptor(processedResponse);\n }\n return processedResponse;\n });\n }\n\n private formatResponse<T>(response: AxiosResponse): ApiResponse<T> {\n const requestId = response.headers['x-request-id'];\n\n // Se response.data for um Blob, retornar diretamente sem formatação adicional\n if (response.data instanceof Blob) {\n return {\n data: response.data as any,\n success: response.status >= 200 && response.status < 300,\n timestamp: new Date().toISOString(),\n ...(requestId && { requestId }),\n };\n }\n\n return {\n data: response.data,\n success: response.status >= 200 && response.status < 300,\n timestamp: new Date().toISOString(),\n ...(requestId && { requestId }),\n };\n }\n}\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport const api = new SimpleApiClient();\n","import { CategoryProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class CategoriesResource {\n async find(): Promise<CategoryProps[]> {\n const response = await api.get<{ categories: CategoryProps[] }>(\n '/v1/categories'\n );\n return response.data.categories;\n }\n}\n","import { CheckCouponProps, CouponProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class CouponResource {\n async check({ eventId, couponCode }: CheckCouponProps): Promise<CouponProps> {\n const response = await api.get<{ coupon: CouponProps }>(\n `/v1/events/${eventId}/coupons/${couponCode}/check`\n );\n return response.data.coupon;\n }\n}\n","import type {\n CreateEventReminderProps,\n EventProps,\n FindEventsParams,\n FindEventsResponseProps,\n GetChannelEventProps,\n GetEventProductProps,\n GetEventProductsResponseProps,\n GetEventTicketProps,\n GetEventTicketsResponseProps,\n UserTicketProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\n// Helper functions\nconst formatTicket = (ticket: GetEventTicketProps): GetEventTicketProps => ({\n ...ticket,\n price: Number(ticket.price.toFixed(2)),\n});\n\nconst formatProducts = (\n product: GetEventProductProps\n): GetEventProductProps => ({\n ...product,\n price: Number(product.price.toFixed(2)),\n});\n\nexport class EventsResource {\n // Find events\n async find(params?: FindEventsParams): Promise<FindEventsResponseProps> {\n const response = await api.get<FindEventsResponseProps>('/v1/events', {\n params,\n });\n return response.data;\n }\n\n // Get event by slug (uses x-channel-id header)\n async getBySlug(eventSlug: string): Promise<EventProps> {\n const response = await api.get<GetChannelEventProps>(\n `/v1/events/${eventSlug}`\n );\n return response.data.event;\n }\n\n // Event products\n async getProducts(\n eventId: string,\n privateToken?: string | null\n ): Promise<GetEventProductsResponseProps> {\n const response = await api.get<GetEventProductsResponseProps>(\n `/v1/events/${eventId}/products`,\n { params: { privateToken } }\n );\n\n const products = response.data.products.map(formatProducts);\n\n return { ...response.data, products };\n }\n\n // Event tickets\n async getTickets(\n eventId: string,\n privateToken?: string | null,\n predecessorIds?: string[]\n ): Promise<GetEventTicketsResponseProps> {\n const response = await api.get<GetEventTicketsResponseProps>(\n `/v1/events/${eventId}/tickets`,\n { params: { privateToken, predecessorIds } }\n );\n\n const tickets = response.data.tickets.map(formatTicket);\n\n const groups = response.data.groups.map(group => ({\n ...group,\n tickets: group.tickets.map(formatTicket),\n }));\n\n return { ...response.data, tickets, groups };\n }\n\n // User event tickets\n async getUserEventTickets(eventId: string): Promise<UserTicketProps[]> {\n const response = await api.get<{ userTickets: UserTicketProps[] }>(\n `/v1/events/${eventId}/user-tickets`\n );\n return response.data.userTickets;\n }\n\n // Create event reminder\n async createReminder(\n eventId: string,\n data: CreateEventReminderProps\n ): Promise<{ message: string }> {\n const response = await api.post<{ message: string }>(\n `/v1/events/${eventId}/reminder`,\n { reminder: data }\n );\n return response.data;\n }\n}\n","import type {\n CreatedOrderResponseProps,\n CreateOrderParams,\n GetOrderResponseProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\nimport type { Headers } from '../../core/types/common';\n\nexport class OrdersResource {\n async create(data: CreateOrderParams): Promise<CreatedOrderResponseProps> {\n const response = await api.post<CreatedOrderResponseProps>(\n '/v1/orders',\n data\n );\n return response.data;\n }\n\n async get(\n orderId: string,\n headers?: Headers\n ): Promise<GetOrderResponseProps> {\n const response = await api.get<GetOrderResponseProps>(\n `/v1/orders/${orderId}`,\n {\n headers,\n }\n );\n return response.data;\n }\n}\n","import type { PlatformFeeProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class PaymentsResource {\n async getFee(eventId?: string): Promise<PlatformFeeProps> {\n const response = await api.get<PlatformFeeProps>('/v1/payments/fee', {\n params: { eventId },\n });\n return response.data;\n }\n}\n","import type {\n CreateTicketFileProps,\n TransferTicketProps,\n UpdateUserTicketProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class TicketsResource {\n async createFile(\n userTicketId: string,\n params: CreateTicketFileProps\n ): Promise<Blob> {\n const response = await api.get(\n `/v1/tickets/user-tickets/${userTicketId}/file`,\n { params, responseType: 'blob' }\n );\n return response.data;\n }\n\n async editUserTicket(\n userTicketId: string,\n data: UpdateUserTicketProps\n ): Promise<void> {\n await api.put(`/v1/tickets/user-tickets/${userTicketId}`, data);\n }\n\n async transfer(ticketId: string, data: TransferTicketProps): Promise<void> {\n await api.post(`/v1/tickets/${ticketId}/transfer`, data);\n }\n}\n","import type {\n GetMeUserProps,\n GetUserEventProps,\n GetUserOrderProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\nimport type { QueryParams } from '../../core/types/common';\n\nexport class UsersResource {\n async getMe(): Promise<GetMeUserProps> {\n const response = await api.get<{ user: GetMeUserProps }>('/v1/users/me');\n return response.data.user;\n }\n\n async getOrders(params: QueryParams = {}): Promise<GetUserOrderProps[]> {\n const response = await api.get<{ orders: GetUserOrderProps[] }>(\n '/v1/users/orders',\n { params }\n );\n return response.data.orders;\n }\n\n async getEvents(params: QueryParams = {}): Promise<GetUserEventProps[]> {\n const response = await api.get<{ events: GetUserEventProps[] }>(\n '/v1/users/events',\n { params }\n );\n return response.data.events;\n }\n\n async refundOrder(orderId: string): Promise<{ message: string }> {\n const response = await api.post<{ message: string }>(\n `/v1/users/orders/${orderId}/refund`\n );\n return response.data;\n }\n}\n","import { api } from './core/http/api';\nimport { CategoriesResource } from './resources/categories';\nimport { CouponResource } from './resources/coupon';\nimport { EventsResource } from './resources/events';\nimport { OrdersResource } from './resources/orders';\nimport { PaymentsResource } from './resources/payments';\nimport { TicketsResource } from './resources/tickets';\nimport { UsersResource } from './resources/users';\n\nexport interface MeapleSDKOptions {\n publicKey: string;\n baseURL: string;\n}\n\nexport class MeapleSDK {\n public users: UsersResource;\n public events: EventsResource;\n public orders: OrdersResource;\n public categories: CategoriesResource;\n public coupon: CouponResource;\n public payments: PaymentsResource;\n public tickets: TicketsResource;\n\n constructor(config: MeapleSDKOptions) {\n // Configura a instância global de API\n api.setBaseURL(config.baseURL);\n api.setDefaultHeader('X-Channel-Id', config.publicKey);\n\n // Inicializa todos os recursos\n this.users = new UsersResource();\n this.events = new EventsResource();\n this.orders = new OrdersResource();\n this.categories = new CategoriesResource();\n this.coupon = new CouponResource();\n this.payments = new PaymentsResource();\n this.tickets = new TicketsResource();\n }\n\n setGlobalToken(token: string): void {\n api.setBearerToken(token);\n }\n}\n","export const COLOR_MAP = {\n white: {\n hex: `#ffffff`,\n rgb: `rgb(255, 255, 255)`,\n },\n 'text-400': {\n hex: `#c7c7c7`,\n rgb: `rgb(199, 199, 199)`,\n },\n primary: {\n hex: `#00a0fc`,\n rgb: `rgb(0, 160, 252)`,\n },\n secondary: {\n hex: `#fca600`,\n rgb: `rgb(252, 166, 0)`,\n },\n tertiary: {\n hex: `#ab71f4`,\n rgb: `rgb(171, 113, 244)`,\n },\n} as const;\n\nexport const slateNameToHex = (name: string): string | undefined => {\n const colorData = COLOR_MAP[name as keyof typeof COLOR_MAP];\n return colorData?.hex;\n};\n","import { slateNameToHex } from './colorMapping';\n\nconst isEmbedUrl = (url?: string): boolean => {\n if (!url) return false;\n const patterns = [\n /youtube\\.com\\/embed\\//,\n /youtu\\.be\\//,\n /open\\.spotify\\.com\\/embed\\//,\n ];\n return patterns.some(p => p.test(url));\n};\n\nconst isSpotifyUrl = (url?: string): boolean => {\n if (!url) return false;\n return /open\\.spotify\\.com\\/embed\\//.test(url);\n};\n\nconst escapeHtml = (text: string): string =>\n text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n\ntype SlateNode = Record<string, unknown>;\ntype SlateElement = SlateNode & { type?: string; children?: SlateNode[] };\ntype SlateText = SlateNode & { text?: string };\n\nfunction isTextNode(node: SlateNode): node is SlateText {\n return typeof (node as SlateText).text === 'string';\n}\n\nfunction renderMarks(text: string, marks: SlateText): string {\n let result = escapeHtml(text);\n if (!result) return result;\n\n const wrap = (tag: string, attrs = '') =>\n `<${tag}${attrs ? ` ${attrs}` : ''}>${result}</${tag}>`;\n\n if (marks.bold) result = wrap('strong');\n if (marks.italic) result = wrap('em');\n if (marks.underline) result = wrap('u');\n if (marks.strike) result = wrap('s');\n if (marks.color) {\n const hex = slateNameToHex(marks.color as string);\n if (hex) result = wrap('span', `style=\"color: ${hex}\"`);\n }\n return result;\n}\n\nfunction renderChildren(children: SlateNode[]): string {\n return children\n .map(child =>\n isTextNode(child)\n ? renderMarks((child as SlateText).text ?? '', child as SlateText)\n : renderElement(child as SlateElement)\n )\n .join('');\n}\n\nfunction isWhitespaceOnly(children: SlateNode[]): boolean {\n return children.every(child => {\n if (!isTextNode(child)) return false;\n const text = (child as SlateText).text ?? '';\n return /^\\s*$/.test(text);\n });\n}\n\nfunction renderElement(node: SlateElement): string {\n const children = node.children ?? [];\n const type = node.type ?? 'paragraph';\n\n switch (type) {\n case 'paragraph': {\n const content = renderChildren(children);\n if (isWhitespaceOnly(children) || /^\\s*$/.test(content)) {\n return content.replace(/\\n/g, '<br>') || '<br>';\n }\n return `<p>${content}</p>`;\n }\n case 'heading-one':\n return `<h1>${renderChildren(children)}</h1>`;\n case 'heading-two':\n return `<h2>${renderChildren(children)}</h2>`;\n case 'heading-three':\n return `<h3>${renderChildren(children)}</h3>`;\n case 'bulleted-list':\n return `<ul>${renderChildren(children)}</ul>`;\n case 'numbered-list':\n return `<ol>${renderChildren(children)}</ol>`;\n case 'list-item':\n return `<li>${renderChildren(children)}</li>`;\n case 'link': {\n const url = node.url as string | undefined;\n if (isEmbedUrl(url)) {\n const style = isSpotifyUrl(url)\n ? 'width: 100%; height: 152px; display: block'\n : 'width: 100%; aspect-ratio: 16/9; display: block';\n return `<iframe src=\"${escapeHtml(url ?? '')}\" frameborder=\"0\" allowfullscreen=\"true\" style=\"${style}\"></iframe>`;\n }\n const href = url ? ` href=\"${escapeHtml(url)}\"` : '';\n return `<a${href} target=\"_blank\" rel=\"noopener noreferrer\">${renderChildren(children)}</a>`;\n }\n case 'image': {\n const url = node.url as string | undefined;\n const alt = node.alt as string | undefined;\n const size = node.size as number | undefined;\n const attrs: string[] = [];\n if (url) attrs.push(`src=\"${escapeHtml(url)}\"`);\n if (alt) attrs.push(`alt=\"${escapeHtml(alt)}\"`);\n if (size !== undefined)\n attrs.push(`style=\"width: ${size}%; height: auto\"`);\n return `<img ${attrs.join(' ')}>`;\n }\n default:\n return renderChildren(children) || '<p></p>';\n }\n}\n\nexport function descriptionToHtml(\n description: Record<string, unknown>[] | null | undefined\n): string {\n if (!description || !Array.isArray(description) || description.length === 0) {\n return '';\n }\n try {\n return description.map(n => renderElement(n as SlateElement)).join('');\n } catch {\n return '';\n }\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meaple-com/core",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Core SDK for Meaple - ticketing platform",
|
|
5
|
-
"
|
|
5
|
+
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"axios": "^1.12.2",
|
|
43
|
-
"@meaple-com/types": "^
|
|
43
|
+
"@meaple-com/types": "^4.0.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "^20.11.17",
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/http/api.ts","../src/resources/categories/index.ts","../src/resources/coupon/index.ts","../src/resources/events/index.ts","../src/resources/orders/index.ts","../src/resources/payments/index.ts","../src/resources/tickets/index.ts","../src/resources/users/index.ts","../src/meaple-sdk.ts","../src/utils/colorMapping.ts","../src/utils/descriptionToHtml.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\n\n// ============================================================================\n// Types & Interfaces\n// ============================================================================\n\nexport interface ApiResponse<T = any> {\n data: T;\n success?: boolean;\n timestamp?: string;\n requestId?: string;\n}\n\nexport interface ApiConfig {\n baseURL?: string;\n timeout?: number;\n headers?: Record<string, string>;\n}\n\ninterface RequestInterceptor {\n onRequest(config: any): Promise<any>;\n}\n\n// ============================================================================\n// API Client\n// ============================================================================\n\nexport class SimpleApiClient {\n private axios: AxiosInstance;\n private interceptors: {\n request: RequestInterceptor[];\n response: ((response: any) => any)[];\n } = { request: [], response: [] };\n\n constructor(config: ApiConfig = {}) {\n this.axios = axios.create({\n baseURL: config.baseURL ?? 'http://localhost:1234',\n timeout: config.timeout ?? 30000,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n this.setupInterceptors();\n }\n\n // --------------------------------------------------------------------------\n // Configuration Methods\n // --------------------------------------------------------------------------\n\n setDefaultHeader(name: string, value: string): void {\n this.axios.defaults.headers.common[name] = value;\n }\n\n removeDefaultHeader(name: string): void {\n delete this.axios.defaults.headers.common[name];\n }\n\n setBaseURL(baseURL: string): void {\n this.axios.defaults.baseURL = baseURL;\n }\n\n setBearerToken(token: string): void {\n this.setDefaultHeader('Authorization', `Bearer ${token}`);\n }\n\n get axiosInstance(): AxiosInstance {\n return this.axios;\n }\n\n // --------------------------------------------------------------------------\n // Interceptors\n // --------------------------------------------------------------------------\n\n addRequestInterceptor(interceptor: RequestInterceptor): void {\n this.interceptors.request.push(interceptor);\n }\n\n addResponseInterceptor(\n onFulfilled?: (response: any) => any,\n onRejected?: (error: any) => any\n ): void {\n if (onFulfilled) {\n this.interceptors.response.push(onFulfilled);\n }\n if (onRejected) {\n this.axios.interceptors.response.use(undefined, onRejected);\n }\n }\n\n clearInterceptors(): void {\n this.interceptors.request = [];\n this.interceptors.response = [];\n }\n\n // --------------------------------------------------------------------------\n // HTTP Methods\n // --------------------------------------------------------------------------\n\n async get<T = any>(\n url: string,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.get(url, config);\n return this.formatResponse(response);\n }\n\n async post<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.post(url, data, config);\n return this.formatResponse(response);\n }\n\n async put<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.put(url, data, config);\n return this.formatResponse(response);\n }\n\n async patch<T = any>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.patch(url, data, config);\n return this.formatResponse(response);\n }\n\n async delete<T = any>(\n url: string,\n config?: AxiosRequestConfig\n ): Promise<ApiResponse<T>> {\n const response = await this.axios.delete(url, config);\n return this.formatResponse(response);\n }\n\n // --------------------------------------------------------------------------\n // Private Methods\n // --------------------------------------------------------------------------\n\n private setupInterceptors(): void {\n // Request interceptor\n this.axios.interceptors.request.use(async config => {\n let processedConfig = config;\n for (const interceptor of this.interceptors.request) {\n processedConfig = await interceptor.onRequest(processedConfig);\n }\n return processedConfig;\n });\n\n // Response interceptor\n this.axios.interceptors.response.use(response => {\n let processedResponse = response;\n for (const interceptor of this.interceptors.response) {\n processedResponse = interceptor(processedResponse);\n }\n return processedResponse;\n });\n }\n\n private formatResponse<T>(response: AxiosResponse): ApiResponse<T> {\n const requestId = response.headers['x-request-id'];\n\n // Se response.data for um Blob, retornar diretamente sem formatação adicional\n if (response.data instanceof Blob) {\n return {\n data: response.data as any,\n success: response.status >= 200 && response.status < 300,\n timestamp: new Date().toISOString(),\n ...(requestId && { requestId }),\n };\n }\n\n return {\n data: response.data,\n success: response.status >= 200 && response.status < 300,\n timestamp: new Date().toISOString(),\n ...(requestId && { requestId }),\n };\n }\n}\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport const api = new SimpleApiClient();\n","import { CategoryProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class CategoriesResource {\n async find(): Promise<CategoryProps[]> {\n const response = await api.get<{ categories: CategoryProps[] }>(\n '/v1/categories'\n );\n return response.data.categories;\n }\n}\n","import { CheckCouponProps, CouponProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class CouponResource {\n async check({ eventId, couponCode }: CheckCouponProps): Promise<CouponProps> {\n const response = await api.get<{ coupon: CouponProps }>(\n `/v1/events/${eventId}/coupons/${couponCode}/check`\n );\n return response.data.coupon;\n }\n}\n","import type {\n CreateEventReminderProps,\n EventProps,\n FindEventsParams,\n FindEventsResponseProps,\n GetChannelEventProps,\n GetEventProductProps,\n GetEventProductsResponseProps,\n GetEventTicketProps,\n GetEventTicketsResponseProps,\n UserTicketProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\n// Helper functions\nconst formatTicket = (ticket: GetEventTicketProps): GetEventTicketProps => ({\n ...ticket,\n price: Number(ticket.price.toFixed(2)),\n});\n\nconst formatProducts = (\n product: GetEventProductProps\n): GetEventProductProps => ({\n ...product,\n price: Number(product.price.toFixed(2)),\n});\n\nexport class EventsResource {\n // Find events\n async find(params?: FindEventsParams): Promise<FindEventsResponseProps> {\n const response = await api.get<FindEventsResponseProps>('/v1/events', {\n params,\n });\n return response.data;\n }\n\n // Get event by slug (uses x-channel-id header)\n async getBySlug(eventSlug: string): Promise<EventProps> {\n const response = await api.get<GetChannelEventProps>(\n `/v1/events/${eventSlug}`\n );\n return response.data.event;\n }\n\n // Event products\n async getProducts(\n eventId: string,\n privateToken?: string | null\n ): Promise<GetEventProductsResponseProps> {\n const response = await api.get<GetEventProductsResponseProps>(\n `/v1/events/${eventId}/products`,\n { params: { privateToken } }\n );\n\n const products = response.data.products.map(formatProducts);\n\n return { ...response.data, products };\n }\n\n // Event tickets\n async getTickets(\n eventId: string,\n privateToken?: string | null,\n predecessorIds?: string[]\n ): Promise<GetEventTicketsResponseProps> {\n const response = await api.get<GetEventTicketsResponseProps>(\n `/v1/events/${eventId}/tickets`,\n { params: { privateToken, predecessorIds } }\n );\n\n const tickets = response.data.tickets.map(formatTicket);\n\n const groups = response.data.groups.map(group => ({\n ...group,\n tickets: group.tickets.map(formatTicket),\n }));\n\n return { ...response.data, tickets, groups };\n }\n\n // User event tickets\n async getUserEventTickets(eventId: string): Promise<UserTicketProps[]> {\n const response = await api.get<{ userTickets: UserTicketProps[] }>(\n `/v1/events/${eventId}/user-tickets`\n );\n return response.data.userTickets;\n }\n\n // Create event reminder\n async createReminder(\n eventId: string,\n data: CreateEventReminderProps\n ): Promise<{ message: string }> {\n const response = await api.post<{ message: string }>(\n `/v1/events/${eventId}/reminder`,\n { reminder: data }\n );\n return response.data;\n }\n}\n","import type {\n CreatedOrderResponseProps,\n CreateOrderParams,\n GetOrderResponseProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\nimport type { Headers } from '../../core/types/common';\n\nexport class OrdersResource {\n async create(data: CreateOrderParams): Promise<CreatedOrderResponseProps> {\n const response = await api.post<CreatedOrderResponseProps>(\n '/v1/orders',\n data\n );\n return response.data;\n }\n\n async get(\n orderId: string,\n headers?: Headers\n ): Promise<GetOrderResponseProps> {\n const response = await api.get<GetOrderResponseProps>(\n `/v1/orders/${orderId}`,\n {\n headers,\n }\n );\n return response.data;\n }\n}\n","import type { PlatformFeeProps } from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class PaymentsResource {\n async getFee(eventId?: string): Promise<PlatformFeeProps> {\n const response = await api.get<PlatformFeeProps>('/v1/payments/fee', {\n params: { eventId },\n });\n return response.data;\n }\n}\n","import type {\n CreateTicketFileProps,\n TransferTicketProps,\n UpdateUserTicketProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\n\nexport class TicketsResource {\n async createFile(\n userTicketId: string,\n params: CreateTicketFileProps\n ): Promise<Blob> {\n const response = await api.get(\n `/v1/tickets/user-tickets/${userTicketId}/file`,\n { params, responseType: 'blob' }\n );\n return response.data;\n }\n\n async editUserTicket(\n userTicketId: string,\n data: UpdateUserTicketProps\n ): Promise<void> {\n await api.put(`/v1/tickets/user-tickets/${userTicketId}`, data);\n }\n\n async transfer(ticketId: string, data: TransferTicketProps): Promise<void> {\n await api.post(`/v1/tickets/${ticketId}/transfer`, data);\n }\n}\n","import type {\n GetMeUserProps,\n GetUserEventsProps,\n UserOrderProps,\n} from '@meaple-com/types';\n\nimport { api } from '../../core/http/api';\nimport type { QueryParams } from '../../core/types/common';\n\nexport class UsersResource {\n async getMe(): Promise<GetMeUserProps> {\n const response = await api.get<{ user: GetMeUserProps }>('/v1/users/me');\n return response.data.user;\n }\n\n async getOrders(params: QueryParams = {}): Promise<UserOrderProps[]> {\n const response = await api.get<{ orders: UserOrderProps[] }>(\n '/v1/users/orders',\n { params }\n );\n return response.data.orders;\n }\n\n async getEvents(params: QueryParams = {}): Promise<GetUserEventsProps[]> {\n const response = await api.get<{ events: GetUserEventsProps[] }>(\n '/v1/users/events',\n { params }\n );\n return response.data.events;\n }\n\n async refundOrder(orderId: string): Promise<{ message: string }> {\n const response = await api.post<{ message: string }>(\n `/v1/users/orders/${orderId}/refund`\n );\n return response.data;\n }\n}\n","import { api } from './core/http/api';\nimport { CategoriesResource } from './resources/categories';\nimport { CouponResource } from './resources/coupon';\nimport { EventsResource } from './resources/events';\nimport { OrdersResource } from './resources/orders';\nimport { PaymentsResource } from './resources/payments';\nimport { TicketsResource } from './resources/tickets';\nimport { UsersResource } from './resources/users';\n\nexport interface MeapleSDKOptions {\n publicKey: string;\n baseURL: string;\n}\n\nexport class MeapleSDK {\n public users: UsersResource;\n public events: EventsResource;\n public orders: OrdersResource;\n public categories: CategoriesResource;\n public coupon: CouponResource;\n public payments: PaymentsResource;\n public tickets: TicketsResource;\n\n constructor(config: MeapleSDKOptions) {\n // Configura a instância global de API\n api.setBaseURL(config.baseURL);\n api.setDefaultHeader('X-Channel-Id', config.publicKey);\n\n // Inicializa todos os recursos\n this.users = new UsersResource();\n this.events = new EventsResource();\n this.orders = new OrdersResource();\n this.categories = new CategoriesResource();\n this.coupon = new CouponResource();\n this.payments = new PaymentsResource();\n this.tickets = new TicketsResource();\n }\n\n setGlobalToken(token: string): void {\n api.setBearerToken(token);\n }\n}\n","export const COLOR_MAP = {\n white: {\n hex: `#ffffff`,\n rgb: `rgb(255, 255, 255)`,\n },\n 'text-400': {\n hex: `#c7c7c7`,\n rgb: `rgb(199, 199, 199)`,\n },\n primary: {\n hex: `#00a0fc`,\n rgb: `rgb(0, 160, 252)`,\n },\n secondary: {\n hex: `#fca600`,\n rgb: `rgb(252, 166, 0)`,\n },\n tertiary: {\n hex: `#ab71f4`,\n rgb: `rgb(171, 113, 244)`,\n },\n} as const;\n\nexport const slateNameToHex = (name: string): string | undefined => {\n const colorData = COLOR_MAP[name as keyof typeof COLOR_MAP];\n return colorData?.hex;\n};\n","import { slateNameToHex } from './colorMapping';\n\nconst isEmbedUrl = (url?: string): boolean => {\n if (!url) return false;\n const patterns = [\n /youtube\\.com\\/embed\\//,\n /youtu\\.be\\//,\n /open\\.spotify\\.com\\/embed\\//,\n ];\n return patterns.some(p => p.test(url));\n};\n\nconst isSpotifyUrl = (url?: string): boolean => {\n if (!url) return false;\n return /open\\.spotify\\.com\\/embed\\//.test(url);\n};\n\nconst escapeHtml = (text: string): string =>\n text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n\ntype SlateNode = Record<string, unknown>;\ntype SlateElement = SlateNode & { type?: string; children?: SlateNode[] };\ntype SlateText = SlateNode & { text?: string };\n\nfunction isTextNode(node: SlateNode): node is SlateText {\n return typeof (node as SlateText).text === 'string';\n}\n\nfunction renderMarks(text: string, marks: SlateText): string {\n let result = escapeHtml(text);\n if (!result) return result;\n\n const wrap = (tag: string, attrs = '') =>\n `<${tag}${attrs ? ` ${attrs}` : ''}>${result}</${tag}>`;\n\n if (marks.bold) result = wrap('strong');\n if (marks.italic) result = wrap('em');\n if (marks.underline) result = wrap('u');\n if (marks.strike) result = wrap('s');\n if (marks.color) {\n const hex = slateNameToHex(marks.color as string);\n if (hex) result = wrap('span', `style=\"color: ${hex}\"`);\n }\n return result;\n}\n\nfunction renderChildren(children: SlateNode[]): string {\n return children\n .map(child =>\n isTextNode(child)\n ? renderMarks((child as SlateText).text ?? '', child as SlateText)\n : renderElement(child as SlateElement)\n )\n .join('');\n}\n\nfunction isWhitespaceOnly(children: SlateNode[]): boolean {\n return children.every(child => {\n if (!isTextNode(child)) return false;\n const text = (child as SlateText).text ?? '';\n return /^\\s*$/.test(text);\n });\n}\n\nfunction renderElement(node: SlateElement): string {\n const children = node.children ?? [];\n const type = node.type ?? 'paragraph';\n\n switch (type) {\n case 'paragraph': {\n const content = renderChildren(children);\n if (isWhitespaceOnly(children) || /^\\s*$/.test(content)) {\n return content.replace(/\\n/g, '<br>') || '<br>';\n }\n return `<p>${content}</p>`;\n }\n case 'heading-one':\n return `<h1>${renderChildren(children)}</h1>`;\n case 'heading-two':\n return `<h2>${renderChildren(children)}</h2>`;\n case 'heading-three':\n return `<h3>${renderChildren(children)}</h3>`;\n case 'bulleted-list':\n return `<ul>${renderChildren(children)}</ul>`;\n case 'numbered-list':\n return `<ol>${renderChildren(children)}</ol>`;\n case 'list-item':\n return `<li>${renderChildren(children)}</li>`;\n case 'link': {\n const url = node.url as string | undefined;\n if (isEmbedUrl(url)) {\n const style = isSpotifyUrl(url)\n ? 'width: 100%; height: 152px; display: block'\n : 'width: 100%; aspect-ratio: 16/9; display: block';\n return `<iframe src=\"${escapeHtml(url ?? '')}\" frameborder=\"0\" allowfullscreen=\"true\" style=\"${style}\"></iframe>`;\n }\n const href = url ? ` href=\"${escapeHtml(url)}\"` : '';\n return `<a${href} target=\"_blank\" rel=\"noopener noreferrer\">${renderChildren(children)}</a>`;\n }\n case 'image': {\n const url = node.url as string | undefined;\n const alt = node.alt as string | undefined;\n const size = node.size as number | undefined;\n const attrs: string[] = [];\n if (url) attrs.push(`src=\"${escapeHtml(url)}\"`);\n if (alt) attrs.push(`alt=\"${escapeHtml(alt)}\"`);\n if (size !== undefined)\n attrs.push(`style=\"width: ${size}%; height: auto\"`);\n return `<img ${attrs.join(' ')}>`;\n }\n default:\n return renderChildren(children) || '<p></p>';\n }\n}\n\nexport function descriptionToHtml(\n description: Record<string, unknown>[] | null | undefined\n): string {\n if (!description || !Array.isArray(description) || description.length === 0) {\n return '';\n }\n try {\n return description.map(n => renderElement(n as SlateElement)).join('');\n } catch {\n return '';\n }\n}\n"],"mappings":";AAAA,OAAO,WAAiE;AA2BjE,IAAM,kBAAN,MAAsB;AAAA,EACnB;AAAA,EACA,eAGJ,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,EAAE;AAAA,EAEhC,YAAY,SAAoB,CAAC,GAAG;AAClC,SAAK,QAAQ,MAAM,OAAO;AAAA,MACxB,SAAS,OAAO,WAAW;AAAA,MAC3B,SAAS,OAAO,WAAW;AAAA,MAC3B,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,GAAG,OAAO;AAAA,MACZ;AAAA,IACF,CAAC;AAED,SAAK,kBAAkB;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB,MAAc,OAAqB;AAClD,SAAK,MAAM,SAAS,QAAQ,OAAO,IAAI,IAAI;AAAA,EAC7C;AAAA,EAEA,oBAAoB,MAAoB;AACtC,WAAO,KAAK,MAAM,SAAS,QAAQ,OAAO,IAAI;AAAA,EAChD;AAAA,EAEA,WAAW,SAAuB;AAChC,SAAK,MAAM,SAAS,UAAU;AAAA,EAChC;AAAA,EAEA,eAAe,OAAqB;AAClC,SAAK,iBAAiB,iBAAiB,UAAU,KAAK,EAAE;AAAA,EAC1D;AAAA,EAEA,IAAI,gBAA+B;AACjC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAMA,sBAAsB,aAAuC;AAC3D,SAAK,aAAa,QAAQ,KAAK,WAAW;AAAA,EAC5C;AAAA,EAEA,uBACE,aACA,YACM;AACN,QAAI,aAAa;AACf,WAAK,aAAa,SAAS,KAAK,WAAW;AAAA,IAC7C;AACA,QAAI,YAAY;AACd,WAAK,MAAM,aAAa,SAAS,IAAI,QAAW,UAAU;AAAA,IAC5D;AAAA,EACF;AAAA,EAEA,oBAA0B;AACxB,SAAK,aAAa,UAAU,CAAC;AAC7B,SAAK,aAAa,WAAW,CAAC;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,IACJ,KACA,QACyB;AACzB,UAAM,WAAW,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM;AACjD,WAAO,KAAK,eAAe,QAAQ;AAAA,EACrC;AAAA,EAEA,MAAM,KACJ,KACA,MACA,QACyB;AACzB,UAAM,WAAW,MAAM,KAAK,MAAM,KAAK,KAAK,MAAM,MAAM;AACxD,WAAO,KAAK,eAAe,QAAQ;AAAA,EACrC;AAAA,EAEA,MAAM,IACJ,KACA,MACA,QACyB;AACzB,UAAM,WAAW,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM,MAAM;AACvD,WAAO,KAAK,eAAe,QAAQ;AAAA,EACrC;AAAA,EAEA,MAAM,MACJ,KACA,MACA,QACyB;AACzB,UAAM,WAAW,MAAM,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM;AACzD,WAAO,KAAK,eAAe,QAAQ;AAAA,EACrC;AAAA,EAEA,MAAM,OACJ,KACA,QACyB;AACzB,UAAM,WAAW,MAAM,KAAK,MAAM,OAAO,KAAK,MAAM;AACpD,WAAO,KAAK,eAAe,QAAQ;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAMQ,oBAA0B;AAEhC,SAAK,MAAM,aAAa,QAAQ,IAAI,OAAM,WAAU;AAClD,UAAI,kBAAkB;AACtB,iBAAW,eAAe,KAAK,aAAa,SAAS;AACnD,0BAAkB,MAAM,YAAY,UAAU,eAAe;AAAA,MAC/D;AACA,aAAO;AAAA,IACT,CAAC;AAGD,SAAK,MAAM,aAAa,SAAS,IAAI,cAAY;AAC/C,UAAI,oBAAoB;AACxB,iBAAW,eAAe,KAAK,aAAa,UAAU;AACpD,4BAAoB,YAAY,iBAAiB;AAAA,MACnD;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEQ,eAAkB,UAAyC;AACjE,UAAM,YAAY,SAAS,QAAQ,cAAc;AAGjD,QAAI,SAAS,gBAAgB,MAAM;AACjC,aAAO;AAAA,QACL,MAAM,SAAS;AAAA,QACf,SAAS,SAAS,UAAU,OAAO,SAAS,SAAS;AAAA,QACrD,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,QAClC,GAAI,aAAa,EAAE,UAAU;AAAA,MAC/B;AAAA,IACF;AAEA,WAAO;AAAA,MACL,MAAM,SAAS;AAAA,MACf,SAAS,SAAS,UAAU,OAAO,SAAS,SAAS;AAAA,MACrD,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,MAClC,GAAI,aAAa,EAAE,UAAU;AAAA,IAC/B;AAAA,EACF;AACF;AAMO,IAAM,MAAM,IAAI,gBAAgB;;;AC7LhC,IAAM,qBAAN,MAAyB;AAAA,EAC9B,MAAM,OAAiC;AACrC,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB;AAAA,IACF;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AACF;;;ACPO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,MAAM,MAAM,EAAE,SAAS,WAAW,GAA2C;AAC3E,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,cAAc,OAAO,YAAY,UAAU;AAAA,IAC7C;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AACF;;;ACKA,IAAM,eAAe,CAAC,YAAsD;AAAA,EAC1E,GAAG;AAAA,EACH,OAAO,OAAO,OAAO,MAAM,QAAQ,CAAC,CAAC;AACvC;AAEA,IAAM,iBAAiB,CACrB,aAC0B;AAAA,EAC1B,GAAG;AAAA,EACH,OAAO,OAAO,QAAQ,MAAM,QAAQ,CAAC,CAAC;AACxC;AAEO,IAAM,iBAAN,MAAqB;AAAA;AAAA,EAE1B,MAAM,KAAK,QAA6D;AACtE,UAAM,WAAW,MAAM,IAAI,IAA6B,cAAc;AAAA,MACpE;AAAA,IACF,CAAC;AACD,WAAO,SAAS;AAAA,EAClB;AAAA;AAAA,EAGA,MAAM,UAAU,WAAwC;AACtD,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,cAAc,SAAS;AAAA,IACzB;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA;AAAA,EAGA,MAAM,YACJ,SACA,cACwC;AACxC,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,cAAc,OAAO;AAAA,MACrB,EAAE,QAAQ,EAAE,aAAa,EAAE;AAAA,IAC7B;AAEA,UAAM,WAAW,SAAS,KAAK,SAAS,IAAI,cAAc;AAE1D,WAAO,EAAE,GAAG,SAAS,MAAM,SAAS;AAAA,EACtC;AAAA;AAAA,EAGA,MAAM,WACJ,SACA,cACA,gBACuC;AACvC,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,cAAc,OAAO;AAAA,MACrB,EAAE,QAAQ,EAAE,cAAc,eAAe,EAAE;AAAA,IAC7C;AAEA,UAAM,UAAU,SAAS,KAAK,QAAQ,IAAI,YAAY;AAEtD,UAAM,SAAS,SAAS,KAAK,OAAO,IAAI,YAAU;AAAA,MAChD,GAAG;AAAA,MACH,SAAS,MAAM,QAAQ,IAAI,YAAY;AAAA,IACzC,EAAE;AAEF,WAAO,EAAE,GAAG,SAAS,MAAM,SAAS,OAAO;AAAA,EAC7C;AAAA;AAAA,EAGA,MAAM,oBAAoB,SAA6C;AACrE,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,cAAc,OAAO;AAAA,IACvB;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA;AAAA,EAGA,MAAM,eACJ,SACA,MAC8B;AAC9B,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,cAAc,OAAO;AAAA,MACrB,EAAE,UAAU,KAAK;AAAA,IACnB;AACA,WAAO,SAAS;AAAA,EAClB;AACF;;;AC3FO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,MAAM,OAAO,MAA6D;AACxE,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB;AAAA,MACA;AAAA,IACF;AACA,WAAO,SAAS;AAAA,EAClB;AAAA,EAEA,MAAM,IACJ,SACA,SACgC;AAChC,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,cAAc,OAAO;AAAA,MACrB;AAAA,QACE;AAAA,MACF;AAAA,IACF;AACA,WAAO,SAAS;AAAA,EAClB;AACF;;;AC1BO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,MAAM,OAAO,SAA6C;AACxD,UAAM,WAAW,MAAM,IAAI,IAAsB,oBAAoB;AAAA,MACnE,QAAQ,EAAE,QAAQ;AAAA,IACpB,CAAC;AACD,WAAO,SAAS;AAAA,EAClB;AACF;;;ACHO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,MAAM,WACJ,cACA,QACe;AACf,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,4BAA4B,YAAY;AAAA,MACxC,EAAE,QAAQ,cAAc,OAAO;AAAA,IACjC;AACA,WAAO,SAAS;AAAA,EAClB;AAAA,EAEA,MAAM,eACJ,cACA,MACe;AACf,UAAM,IAAI,IAAI,4BAA4B,YAAY,IAAI,IAAI;AAAA,EAChE;AAAA,EAEA,MAAM,SAAS,UAAkB,MAA0C;AACzE,UAAM,IAAI,KAAK,eAAe,QAAQ,aAAa,IAAI;AAAA,EACzD;AACF;;;ACrBO,IAAM,gBAAN,MAAoB;AAAA,EACzB,MAAM,QAAiC;AACrC,UAAM,WAAW,MAAM,IAAI,IAA8B,cAAc;AACvE,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,UAAU,SAAsB,CAAC,GAA8B;AACnE,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB;AAAA,MACA,EAAE,OAAO;AAAA,IACX;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,UAAU,SAAsB,CAAC,GAAkC;AACvE,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB;AAAA,MACA,EAAE,OAAO;AAAA,IACX;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,YAAY,SAA+C;AAC/D,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,oBAAoB,OAAO;AAAA,IAC7B;AACA,WAAO,SAAS;AAAA,EAClB;AACF;;;ACvBO,IAAM,YAAN,MAAgB;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEP,YAAY,QAA0B;AAEpC,QAAI,WAAW,OAAO,OAAO;AAC7B,QAAI,iBAAiB,gBAAgB,OAAO,SAAS;AAGrD,SAAK,QAAQ,IAAI,cAAc;AAC/B,SAAK,SAAS,IAAI,eAAe;AACjC,SAAK,SAAS,IAAI,eAAe;AACjC,SAAK,aAAa,IAAI,mBAAmB;AACzC,SAAK,SAAS,IAAI,eAAe;AACjC,SAAK,WAAW,IAAI,iBAAiB;AACrC,SAAK,UAAU,IAAI,gBAAgB;AAAA,EACrC;AAAA,EAEA,eAAe,OAAqB;AAClC,QAAI,eAAe,KAAK;AAAA,EAC1B;AACF;;;ACzCO,IAAM,YAAY;AAAA,EACvB,OAAO;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AAAA,EACA,YAAY;AAAA,IACV,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AAAA,EACA,SAAS;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AAAA,EACA,WAAW;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AACF;AAEO,IAAM,iBAAiB,CAAC,SAAqC;AAClE,QAAM,YAAY,UAAU,IAA8B;AAC1D,SAAO,WAAW;AACpB;;;ACxBA,IAAM,aAAa,CAAC,QAA0B;AAC5C,MAAI,CAAC,IAAK,QAAO;AACjB,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,SAAO,SAAS,KAAK,OAAK,EAAE,KAAK,GAAG,CAAC;AACvC;AAEA,IAAM,eAAe,CAAC,QAA0B;AAC9C,MAAI,CAAC,IAAK,QAAO;AACjB,SAAO,8BAA8B,KAAK,GAAG;AAC/C;AAEA,IAAM,aAAa,CAAC,SAClB,KACG,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,OAAO;AAM1B,SAAS,WAAW,MAAoC;AACtD,SAAO,OAAQ,KAAmB,SAAS;AAC7C;AAEA,SAAS,YAAY,MAAc,OAA0B;AAC3D,MAAI,SAAS,WAAW,IAAI;AAC5B,MAAI,CAAC,OAAQ,QAAO;AAEpB,QAAM,OAAO,CAAC,KAAa,QAAQ,OACjC,IAAI,GAAG,GAAG,QAAQ,IAAI,KAAK,KAAK,EAAE,IAAI,MAAM,KAAK,GAAG;AAEtD,MAAI,MAAM,KAAM,UAAS,KAAK,QAAQ;AACtC,MAAI,MAAM,OAAQ,UAAS,KAAK,IAAI;AACpC,MAAI,MAAM,UAAW,UAAS,KAAK,GAAG;AACtC,MAAI,MAAM,OAAQ,UAAS,KAAK,GAAG;AACnC,MAAI,MAAM,OAAO;AACf,UAAM,MAAM,eAAe,MAAM,KAAe;AAChD,QAAI,IAAK,UAAS,KAAK,QAAQ,iBAAiB,GAAG,GAAG;AAAA,EACxD;AACA,SAAO;AACT;AAEA,SAAS,eAAe,UAA+B;AACrD,SAAO,SACJ;AAAA,IAAI,WACH,WAAW,KAAK,IACZ,YAAa,MAAoB,QAAQ,IAAI,KAAkB,IAC/D,cAAc,KAAqB;AAAA,EACzC,EACC,KAAK,EAAE;AACZ;AAEA,SAAS,iBAAiB,UAAgC;AACxD,SAAO,SAAS,MAAM,WAAS;AAC7B,QAAI,CAAC,WAAW,KAAK,EAAG,QAAO;AAC/B,UAAM,OAAQ,MAAoB,QAAQ;AAC1C,WAAO,QAAQ,KAAK,IAAI;AAAA,EAC1B,CAAC;AACH;AAEA,SAAS,cAAc,MAA4B;AACjD,QAAM,WAAW,KAAK,YAAY,CAAC;AACnC,QAAM,OAAO,KAAK,QAAQ;AAE1B,UAAQ,MAAM;AAAA,IACZ,KAAK,aAAa;AAChB,YAAM,UAAU,eAAe,QAAQ;AACvC,UAAI,iBAAiB,QAAQ,KAAK,QAAQ,KAAK,OAAO,GAAG;AACvD,eAAO,QAAQ,QAAQ,OAAO,MAAM,KAAK;AAAA,MAC3C;AACA,aAAO,MAAM,OAAO;AAAA,IACtB;AAAA,IACA,KAAK;AACH,aAAO,OAAO,eAAe,QAAQ,CAAC;AAAA,IACxC,KAAK;AACH,aAAO,OAAO,eAAe,QAAQ,CAAC;AAAA,IACxC,KAAK;AACH,aAAO,OAAO,eAAe,QAAQ,CAAC;AAAA,IACxC,KAAK;AACH,aAAO,OAAO,eAAe,QAAQ,CAAC;AAAA,IACxC,KAAK;AACH,aAAO,OAAO,eAAe,QAAQ,CAAC;AAAA,IACxC,KAAK;AACH,aAAO,OAAO,eAAe,QAAQ,CAAC;AAAA,IACxC,KAAK,QAAQ;AACX,YAAM,MAAM,KAAK;AACjB,UAAI,WAAW,GAAG,GAAG;AACnB,cAAM,QAAQ,aAAa,GAAG,IAC1B,+CACA;AACJ,eAAO,gBAAgB,WAAW,OAAO,EAAE,CAAC,mDAAmD,KAAK;AAAA,MACtG;AACA,YAAM,OAAO,MAAM,UAAU,WAAW,GAAG,CAAC,MAAM;AAClD,aAAO,KAAK,IAAI,8CAA8C,eAAe,QAAQ,CAAC;AAAA,IACxF;AAAA,IACA,KAAK,SAAS;AACZ,YAAM,MAAM,KAAK;AACjB,YAAM,MAAM,KAAK;AACjB,YAAM,OAAO,KAAK;AAClB,YAAM,QAAkB,CAAC;AACzB,UAAI,IAAK,OAAM,KAAK,QAAQ,WAAW,GAAG,CAAC,GAAG;AAC9C,UAAI,IAAK,OAAM,KAAK,QAAQ,WAAW,GAAG,CAAC,GAAG;AAC9C,UAAI,SAAS;AACX,cAAM,KAAK,iBAAiB,IAAI,kBAAkB;AACpD,aAAO,QAAQ,MAAM,KAAK,GAAG,CAAC;AAAA,IAChC;AAAA,IACA;AACE,aAAO,eAAe,QAAQ,KAAK;AAAA,EACvC;AACF;AAEO,SAAS,kBACd,aACQ;AACR,MAAI,CAAC,eAAe,CAAC,MAAM,QAAQ,WAAW,KAAK,YAAY,WAAW,GAAG;AAC3E,WAAO;AAAA,EACT;AACA,MAAI;AACF,WAAO,YAAY,IAAI,OAAK,cAAc,CAAiB,CAAC,EAAE,KAAK,EAAE;AAAA,EACvE,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":[]}
|