@simpleapps-com/augur-api 2026.9.5 → 2026.9.6

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/config.ts","../src/core/errors.ts","../src/core/client.ts","../src/core/common-schemas.ts","../src/core/schemas.ts","../src/core/schema-utils.ts","../src/core/path-validation.ts","../src/core/base-client.ts","../src/core/service-proxy.ts","../src/services/joomla/generated/schemas.ts","../src/services/joomla/generated/endpoints.ts","../src/services/joomla/client.ts","../src/services/commerce/generated/schemas.ts","../src/services/commerce/generated/endpoints.ts","../src/services/commerce/client.ts","../src/services/pricing/generated/schemas.ts","../src/services/pricing/generated/endpoints.ts","../src/services/pricing/client.ts","../src/services/vmi/generated/schemas.ts","../src/services/vmi/generated/endpoints.ts","../src/services/vmi/client.ts","../src/services/open-search/generated/schemas.ts","../src/services/open-search/generated/endpoints.ts","../src/services/open-search/client.ts","../src/services/items/generated/schemas.ts","../src/services/items/generated/endpoints.ts","../src/services/items/client.ts","../src/services/legacy/generated/schemas.ts","../src/services/legacy/generated/endpoints.ts","../src/services/legacy/client.ts","../src/services/agr-site/generated/schemas.ts","../src/services/agr-site/generated/endpoints.ts","../src/services/agr-site/client.ts","../src/services/customers/generated/schemas.ts","../src/services/customers/generated/endpoints.ts","../src/services/customers/client.ts","../src/services/orders/generated/schemas.ts","../src/services/orders/generated/endpoints.ts","../src/services/orders/client.ts","../src/services/p21-pim/generated/schemas.ts","../src/services/p21-pim/generated/endpoints.ts","../src/services/p21-pim/client.ts","../src/services/payments/generated/schemas.ts","../src/services/payments/generated/endpoints.ts","../src/services/payments/client.ts","../src/services/agr-info/generated/schemas.ts","../src/services/agr-info/generated/endpoints.ts","../src/services/agr-info/client.ts","../src/services/agr-int/generated/schemas.ts","../src/services/agr-int/generated/endpoints.ts","../src/services/agr-int/client.ts","../src/services/agr-work/client.ts","../src/services/avalara/generated/schemas.ts","../src/services/avalara/generated/endpoints.ts","../src/services/avalara/client.ts","../src/services/brand-folder/generated/schemas.ts","../src/services/brand-folder/generated/endpoints.ts","../src/services/brand-folder/client.ts","../src/services/gregorovich/generated/schemas.ts","../src/services/gregorovich/generated/endpoints.ts","../src/services/gregorovich/client.ts","../src/services/logistics/generated/schemas.ts","../src/services/logistics/generated/endpoints.ts","../src/services/logistics/client.ts","../src/services/p21-apis/generated/schemas.ts","../src/services/p21-apis/generated/endpoints.ts","../src/services/p21-apis/client.ts","../src/services/p21-core/generated/schemas.ts","../src/services/p21-core/generated/endpoints.ts","../src/services/p21-core/client.ts","../src/services/p21-sism/generated/schemas.ts","../src/services/p21-sism/generated/endpoints.ts","../src/services/p21-sism/client.ts","../src/services/shipping/generated/schemas.ts","../src/services/shipping/generated/endpoints.ts","../src/services/shipping/client.ts","../src/services/smarty-streets/generated/schemas.ts","../src/services/smarty-streets/generated/endpoints.ts","../src/services/smarty-streets/client.ts","../src/services/ups/generated/schemas.ts","../src/services/ups/generated/endpoints.ts","../src/services/ups/client.ts","../src/services/basecamp2/generated/schemas.ts","../src/services/basecamp2/generated/endpoints.ts","../src/services/basecamp2/client.ts","../src/client.ts","../src/utils/cross-site-auth.ts","../src/index.ts"],"sourcesContent":["export interface AugurRequestConfig {\n url: string;\n method: string;\n headers: Record<string, string>;\n params?: Record<string, unknown>;\n data?: unknown;\n timeout?: number;\n signal?: AbortSignal;\n}\n\nexport interface AugurResponse<T = unknown> {\n data: T;\n status: number;\n statusText: string;\n headers: Record<string, string>;\n config: AugurRequestConfig;\n}\n\nexport interface AugurRequestError {\n message: string;\n config?: AugurRequestConfig;\n response?: AugurResponse;\n code?: string;\n}\n\nexport interface AugurAPIConfig {\n apiKey?: string;\n bearerToken?: string;\n siteId: string;\n baseUrl?: string;\n timeout?: number;\n retries?: number;\n retryDelay?: number;\n onRequest?: (config: AugurRequestConfig) => AugurRequestConfig | Promise<AugurRequestConfig>;\n onResponse?: <T = unknown>(\n response: AugurResponse<T>\n ) => AugurResponse<T> | Promise<AugurResponse<T>>;\n onError?: (error: AugurRequestError) => void | Promise<void>;\n}\n\nexport interface RequestConfig {\n timeout?: number;\n signal?: AbortSignal;\n headers?: Record<string, string>;\n responseType?: 'json' | 'text' | 'blob' | 'arraybuffer';\n}\n\nexport const DEFAULT_CONFIG = {\n timeout: 30000, // 30 seconds\n retries: 3,\n retryDelay: 1000, // 1 second\n};\n\n/**\n * Interface for context object containing authentication and site information\n */\nexport interface AugurContext {\n /** Site identifier */\n siteId: string;\n /** JWT bearer token for authentication */\n jwt?: string;\n /** Alternative bearer token field */\n bearerToken?: string;\n /** Request parameters */\n parameters?: Record<string, unknown>;\n /** Filter parameters */\n filters?: Record<string, unknown>;\n /** User ID */\n userId?: string | number;\n}\n\n/**\n * Context creation error for invalid or missing context data\n */\nexport class ContextCreationError extends Error {\n constructor(\n message: string,\n public readonly field?: string\n ) {\n super(message);\n this.name = 'ContextCreationError';\n }\n}\n","/** Validation issue — compatible with both Zod and Valibot error formats */\nexport interface ValidationIssue {\n path: (string | number)[];\n message: string;\n code: string;\n received?: unknown;\n expected?: unknown;\n}\n\nexport interface AugurAPIError extends Error {\n code: string;\n statusCode: number;\n service: string;\n endpoint: string;\n requestId?: string;\n validationErrors?: ValidationIssue[];\n}\n\nexport class AugurError extends Error implements AugurAPIError {\n public code: string;\n public statusCode: number;\n public service: string;\n public endpoint: string;\n public requestId?: string;\n public validationErrors?: ValidationIssue[];\n\n constructor(params: {\n message: string;\n code: string;\n statusCode: number;\n service: string;\n endpoint: string;\n requestId?: string;\n validationErrors?: ValidationIssue[];\n }) {\n super(params.message);\n this.name = 'AugurAPIError';\n this.code = params.code;\n this.statusCode = params.statusCode;\n this.service = params.service;\n this.endpoint = params.endpoint;\n this.requestId = params.requestId;\n this.validationErrors = params.validationErrors;\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, AugurError);\n }\n }\n}\n\nexport class ValidationError extends AugurError {\n constructor(params: {\n message: string;\n service: string;\n endpoint: string;\n validationErrors: ValidationIssue[];\n }) {\n super({\n ...params,\n code: 'VALIDATION_ERROR',\n statusCode: 400,\n });\n }\n\n /**\n * Format validation errors into human-readable messages\n * @returns Array of formatted error messages\n */\n getFormattedErrors(): string[] {\n if (!this.validationErrors) {\n return [];\n }\n\n return this.validationErrors.map(error => {\n const path = error.path.length > 0 ? error.path.join('.') : 'root';\n return `${path}: ${error.message}`;\n });\n }\n\n /**\n * Get detailed validation error information for debugging\n * @returns Object with detailed error information\n */\n getDetailedErrors(): Array<{\n path: string;\n message: string;\n code: string;\n received?: unknown;\n expected?: unknown;\n }> {\n if (!this.validationErrors) {\n return [];\n }\n\n return this.validationErrors.map(error => ({\n path: error.path.length > 0 ? error.path.join('.') : 'root',\n message: error.message,\n code: error.code,\n received: 'received' in error ? error.received : undefined,\n expected: 'expected' in error ? error.expected : undefined,\n }));\n }\n\n /**\n * Override toString to include formatted validation errors\n * @returns String representation with validation details\n */\n toString(): string {\n const baseMessage = super.toString();\n const formattedErrors = this.getFormattedErrors();\n\n if (formattedErrors.length > 0) {\n return `${baseMessage}\\nValidation errors:\\n${formattedErrors.map(err => ` - ${err}`).join('\\n')}`;\n }\n\n return baseMessage;\n }\n}\n\nexport class AuthenticationError extends AugurError {\n constructor(params: { message: string; service: string; endpoint: string }) {\n super({\n ...params,\n code: 'AUTHENTICATION_ERROR',\n statusCode: 401,\n });\n }\n}\n\nexport class NotFoundError extends AugurError {\n constructor(params: { message: string; service: string; endpoint: string }) {\n super({\n ...params,\n code: 'NOT_FOUND',\n statusCode: 404,\n });\n }\n}\n\nexport class RateLimitError extends AugurError {\n constructor(params: { message: string; service: string; endpoint: string }) {\n super({\n ...params,\n code: 'RATE_LIMIT_EXCEEDED',\n statusCode: 429,\n });\n }\n}\n\nexport class InvalidArgumentError extends AugurError {\n constructor(params: { message: string; service: string; endpoint: string }) {\n super({\n ...params,\n code: 'INVALID_ARGUMENT',\n statusCode: 400,\n });\n }\n}\n","import {\n AugurAPIConfig,\n AugurRequestConfig,\n AugurRequestError,\n AugurResponse,\n DEFAULT_CONFIG,\n RequestConfig,\n} from './config';\nimport { AugurError, AuthenticationError, NotFoundError, RateLimitError } from './errors';\n\n/**\n * Generates a unique key for request deduplication\n * @param method HTTP method\n * @param url Request URL\n * @param params Query parameters or request body\n * @returns Unique string key for this request\n */\nfunction generateRequestKey(method: string, url: string, params?: unknown): string {\n const paramsStr = params ? JSON.stringify(params, Object.keys(params as object).sort()) : '';\n return `${method}:${url}:${paramsStr}`;\n}\n\n/**\n * Calculates delay for exponential backoff with jitter\n * @param attempt Current attempt number (0-indexed)\n * @param baseDelay Base delay in milliseconds\n * @returns Delay in milliseconds with jitter\n */\nfunction calculateBackoffDelay(attempt: number, baseDelay: number): number {\n const exponentialDelay = baseDelay * Math.pow(2, attempt);\n const jitter = Math.random() * 0.3 * exponentialDelay; // 0-30% jitter\n return Math.min(exponentialDelay + jitter, 30000); // Cap at 30 seconds\n}\n\n/**\n * Determines if an error is retryable\n * @param error The error to check\n * @returns True if the request should be retried\n */\nfunction isRetryableError(error: unknown): boolean {\n // AugurError carries statusCode — only 4xx client errors (except 429) are NOT retryable\n if (error instanceof AugurError) {\n const status = error.statusCode;\n if (status >= 400 && status < 500 && status !== 429) {\n return false;\n }\n }\n\n // Everything else is retryable: network errors (statusCode 0), timeouts (AbortError),\n // rate limits (429), server errors (5xx), and unknown errors\n return true;\n}\n\n/**\n * Delays execution for specified milliseconds\n * @param ms Milliseconds to delay\n */\nfunction delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\n/**\n * Builds a full URL with query parameters\n */\nfunction buildUrlWithParams(url: string, params?: unknown): string {\n if (!params || typeof params !== 'object') {\n return url;\n }\n\n const searchParams = new URLSearchParams();\n const paramsObj = params as Record<string, unknown>;\n\n for (const [key, value] of Object.entries(paramsObj)) {\n if (value !== undefined && value !== null) {\n searchParams.append(key, String(value));\n }\n }\n\n const queryString = searchParams.toString();\n if (!queryString) {\n return url;\n }\n\n const separator = url.includes('?') ? '&' : '?';\n return `${url}${separator}${queryString}`;\n}\n\n/**\n * Converts fetch Headers to a plain Record\n */\nfunction headersToRecord(headers: Headers): Record<string, string> {\n const record: Record<string, string> = {};\n headers.forEach((value, key) => {\n record[key] = value;\n });\n return record;\n}\n\nexport class HTTPClient {\n private config: AugurAPIConfig;\n private serviceName: string;\n private inflightRequests: Map<string, Promise<unknown>> = new Map();\n\n constructor(serviceName: string, config: AugurAPIConfig) {\n this.serviceName = serviceName;\n this.config = { ...DEFAULT_CONFIG, ...config };\n }\n\n /**\n * Build request headers with auth\n */\n private buildRequestHeaders(url: string, requestConfig?: RequestConfig): Record<string, string> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'x-site-id': this.config.siteId,\n ...requestConfig?.headers,\n };\n\n const isPublicEndpoint = url.endsWith('/health-check') || url.endsWith('/ping');\n if (!isPublicEndpoint && this.config.bearerToken) {\n headers['Authorization'] = `Bearer ${this.config.bearerToken}`;\n }\n\n return headers;\n }\n\n /**\n * Handle non-ok fetch response: parse error, call hook, throw\n */\n private async handleFetchError(\n response: Response,\n augurConfig: AugurRequestConfig\n ): Promise<never> {\n let errorData: { message?: string; code?: string; requestId?: string } = {};\n try {\n errorData = (await response.json()) as typeof errorData;\n } catch {\n // Response body may not be JSON\n }\n\n if (this.config.onError) {\n const augurError: AugurRequestError = {\n message: errorData.message || `Request failed with status ${response.status}`,\n config: augurConfig,\n response: {\n data: errorData,\n status: response.status,\n statusText: response.statusText,\n headers: headersToRecord(response.headers),\n config: augurConfig,\n },\n };\n await this.config.onError(augurError);\n }\n\n this.handleHttpError({ status: response.status, data: errorData }, augurConfig.url);\n }\n\n /**\n * Handle successful fetch response: parse, call hook, return data\n */\n private async handleFetchSuccess<T>(\n response: Response,\n augurConfig: AugurRequestConfig\n ): Promise<T> {\n const responseData = (await response.json()) as T;\n\n const augurResponse: AugurResponse<T> = {\n data: responseData,\n status: response.status,\n statusText: response.statusText,\n headers: headersToRecord(response.headers),\n config: augurConfig,\n };\n\n if (this.config.onResponse) {\n const modified = await this.config.onResponse(augurResponse);\n return modified.data;\n }\n\n return responseData;\n }\n\n /**\n * Core request method using native fetch\n */\n private async request<T>(\n method: string,\n url: string,\n options: { params?: unknown; data?: unknown; config?: RequestConfig }\n ): Promise<T> {\n const { params, data, config: requestConfig } = options;\n const timeout = requestConfig?.timeout ?? this.config.timeout ?? DEFAULT_CONFIG.timeout;\n\n const headers = this.buildRequestHeaders(url, requestConfig);\n\n let augurConfig: AugurRequestConfig = {\n url,\n method,\n headers,\n params: params as Record<string, unknown>,\n data,\n timeout,\n };\n\n if (this.config.onRequest) {\n augurConfig = await this.config.onRequest(augurConfig);\n }\n\n const fullUrl = buildUrlWithParams(augurConfig.url, augurConfig.params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n const signal = requestConfig?.signal\n ? this.mergeSignals(requestConfig.signal, controller.signal)\n : controller.signal;\n\n try {\n const fetchOptions: RequestInit = {\n method: augurConfig.method,\n headers: augurConfig.headers,\n signal,\n };\n\n if (augurConfig.data !== undefined && method !== 'GET') {\n fetchOptions.body = JSON.stringify(augurConfig.data);\n }\n\n const response = await fetch(fullUrl, fetchOptions);\n\n if (!response.ok) {\n await this.handleFetchError(response, augurConfig);\n }\n\n return this.handleFetchSuccess<T>(response, augurConfig);\n } catch (error) {\n this.rethrowOrWrapError(error, url);\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n /**\n * Merge two AbortSignals — aborts when either fires\n */\n private mergeSignals(userSignal: AbortSignal, timeoutSignal: AbortSignal): AbortSignal {\n const controller = new AbortController();\n\n const onAbort = () => controller.abort();\n userSignal.addEventListener('abort', onAbort, { once: true });\n timeoutSignal.addEventListener('abort', onAbort, { once: true });\n\n // If either is already aborted, abort immediately\n if (userSignal.aborted || timeoutSignal.aborted) {\n controller.abort();\n }\n\n return controller.signal;\n }\n\n private handleHttpError(\n response: { status: number; data?: { message?: string; code?: string; requestId?: string } },\n endpoint: string\n ): never {\n const { status, data } = response;\n\n switch (status) {\n case 401:\n throw new AuthenticationError({\n message: data?.message || 'Authentication failed',\n service: this.serviceName,\n endpoint,\n });\n case 404:\n throw new NotFoundError({\n message: data?.message || 'Resource not found',\n service: this.serviceName,\n endpoint,\n });\n case 429:\n throw new RateLimitError({\n message: data?.message || 'Rate limit exceeded',\n service: this.serviceName,\n endpoint,\n });\n default:\n throw new AugurError({\n message: data?.message || `Request failed with status ${status}`,\n code: data?.code || 'API_ERROR',\n statusCode: status,\n service: this.serviceName,\n endpoint,\n requestId: data?.requestId,\n });\n }\n }\n\n /**\n * Re-throw known error types or wrap as network error\n */\n private rethrowOrWrapError(error: unknown, endpoint: string): never {\n if (error instanceof AugurError) {\n throw error;\n }\n\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw error;\n }\n\n this.handleNetworkError(error, endpoint);\n }\n\n private handleNetworkError(error: unknown, endpoint: string): never {\n throw new AugurError({\n message: (error as { message?: string }).message || 'Network error',\n code: 'NETWORK_ERROR',\n statusCode: 0,\n service: this.serviceName,\n endpoint,\n });\n }\n\n /**\n * Executes a single request attempt\n */\n private async executeAttempt<T>(\n requestFn: () => Promise<T>,\n attempt: number,\n maxRetries: number,\n baseDelay: number\n ): Promise<T> {\n try {\n return await requestFn();\n } catch (error) {\n // Don't retry if we've exhausted attempts or error is not retryable\n if (attempt >= maxRetries || !isRetryableError(error)) {\n throw error;\n }\n\n // Wait before retrying with exponential backoff\n const backoffDelay = calculateBackoffDelay(attempt, baseDelay);\n await delay(backoffDelay);\n\n // Recursive call for next attempt\n return this.executeAttempt(requestFn, attempt + 1, maxRetries, baseDelay);\n }\n }\n\n /**\n * Executes a request with retry logic\n */\n private async executeWithRetry<T>(requestFn: () => Promise<T>): Promise<T> {\n const maxRetries = this.config.retries ?? DEFAULT_CONFIG.retries;\n const baseDelay = this.config.retryDelay ?? DEFAULT_CONFIG.retryDelay;\n\n return this.executeAttempt(requestFn, 0, maxRetries, baseDelay);\n }\n\n /**\n * Transform edgeCache parameter to Cloudflare's cacheSiteId format\n *\n * Cloudflare expects cacheSiteId{suffix}=<siteId> where suffix indicates duration:\n * - '30s', '1m', '5m' for sub-hour caches\n * - 1, 2, 3, 4, 5, 8 for hourly caches\n *\n * Examples:\n * - edgeCache: '30s' → cacheSiteId30s: <siteId>\n * - edgeCache: '1m' → cacheSiteId1m: <siteId>\n * - edgeCache: '5m' → cacheSiteId5m: <siteId>\n * - edgeCache: 1 → cacheSiteId1: <siteId>\n * - edgeCache: 8 → cacheSiteId8: <siteId>\n *\n * @param params Original request parameters\n * @returns Parameters with edgeCache transformed to cacheSiteId{suffix}\n */\n private transformEdgeCacheParams(params?: unknown): unknown {\n if (!params || typeof params !== 'object') {\n return params;\n }\n\n const paramsObj = params as Record<string, unknown>;\n const edgeCache = paramsObj.edgeCache;\n\n // If no edgeCache param, return original params\n if (edgeCache === undefined || edgeCache === null) {\n return params;\n }\n\n // Valid sub-hour values (strings only)\n const validSubHourValues = ['30s', '1m', '5m'];\n // Valid hourly values (numbers 1-8, excluding 6 and 7)\n const validHourlyValues = [1, 2, 3, 4, 5, 8];\n\n let cacheSuffix: string;\n const edgeCacheStr = String(edgeCache);\n\n if (validSubHourValues.includes(edgeCacheStr)) {\n // Sub-hour cache: '30s', '1m', '5m'\n cacheSuffix = edgeCacheStr;\n } else {\n // Try to parse as hourly value\n const cacheHours = parseInt(edgeCacheStr, 10);\n if (!validHourlyValues.includes(cacheHours)) {\n // Invalid value - return params without transformation (remove edgeCache)\n const { edgeCache: _, ...rest } = paramsObj;\n return rest;\n }\n cacheSuffix = String(cacheHours);\n }\n\n // Transform to Cloudflare format: cacheSiteId{suffix}=<siteId>\n const { edgeCache: _, ...restParams } = paramsObj;\n const cacheKey = `cacheSiteId${cacheSuffix}`;\n\n return {\n ...restParams,\n [cacheKey]: this.config.siteId,\n };\n }\n\n async get<T>(url: string, params?: unknown, config?: RequestConfig): Promise<T> {\n // Transform edgeCache to cacheSiteId{N} format for Cloudflare\n const transformedParams = this.transformEdgeCacheParams(params);\n const requestKey = generateRequestKey('GET', url, transformedParams);\n\n // Check if identical request is already in-flight\n const inflight = this.inflightRequests.get(requestKey);\n if (inflight) {\n return inflight as Promise<T>;\n }\n\n // Create the request promise with retry logic\n const requestPromise = this.executeWithRetry(() =>\n this.request<T>('GET', url, { params: transformedParams, config })\n ).finally(() => {\n // Clean up after request completes (success or failure)\n this.inflightRequests.delete(requestKey);\n });\n\n // Store the promise for deduplication\n this.inflightRequests.set(requestKey, requestPromise);\n\n return requestPromise;\n }\n\n // The API declares query params on POST/PUT/DELETE as well as GET. `request`\n // already carries both a body and a query slot; these wrappers simply never\n // exposed the latter, leaving those params unreachable from the clients.\n async post<T>(url: string, data?: unknown, params?: unknown, config?: RequestConfig): Promise<T> {\n return this.request<T>('POST', url, {\n data,\n params: this.transformEdgeCacheParams(params),\n config,\n });\n }\n\n async put<T>(url: string, data?: unknown, params?: unknown, config?: RequestConfig): Promise<T> {\n return this.request<T>('PUT', url, {\n data,\n params: this.transformEdgeCacheParams(params),\n config,\n });\n }\n\n async delete<T>(url: string, params?: unknown, config?: RequestConfig): Promise<T> {\n return this.request<T>('DELETE', url, {\n params: this.transformEdgeCacheParams(params),\n config,\n });\n }\n\n setBearerToken(token: string): void {\n this.config.bearerToken = token;\n }\n\n setSiteId(siteId: string): void {\n this.config.siteId = siteId;\n }\n}\n","import * as v from 'valibot';\nimport {\n BaseResponseSchema,\n EdgeCacheParamsSchema,\n HealthCheckDataSchema,\n PingDataSchema,\n WhoamiDataSchema,\n} from './schemas';\nimport { mysqlDatetimeSchema } from './schema-utils';\n\n/**\n * Common schemas shared across all microservices\n *\n * This module contains frequently used schemas to reduce duplication\n * and ensure consistency across all API clients.\n */\n\n// Health check schemas - standardized across all services\nexport const CommonHealthCheckResponseSchema = BaseResponseSchema(HealthCheckDataSchema);\n\nexport const CommonPingResponseSchema = BaseResponseSchema(PingDataSchema);\n\nexport const CommonWhoamiResponseSchema = BaseResponseSchema(WhoamiDataSchema);\n\n// Common pagination patterns\n// Note: HTTP query parameters are always strings, so we use coercion for numbers\n// EdgeCache is included because ALL GET methods support Cloudflare edge caching\nexport const StandardPaginationParamsSchema = v.looseObject({\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number), v.minValue(1)), 10),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number), v.minValue(0)), 0),\n orderBy: v.optional(v.string()),\n ...EdgeCacheParamsSchema.entries,\n});\n\nexport const SearchablePaginationParamsSchema = v.looseObject({\n ...StandardPaginationParamsSchema.entries,\n q: v.optional(v.string()),\n});\n\n// Multi-layer caching parameters - used across all services\n// Note: HTTP query parameters are always strings, but we also accept numbers for JavaScript usage\n\n// EdgeCacheParamsSchema imported from ./schemas to avoid duplication\n// Re-export for backward compatibility\nexport { EdgeCacheParamsSchema };\n\n// Common response patterns\nexport const BooleanResponseSchema = BaseResponseSchema(v.boolean());\n\nexport const StringResponseSchema = BaseResponseSchema(v.string());\n\nexport const NumberResponseSchema = BaseResponseSchema(v.number());\n\n// Common field patterns\nexport const TimestampFieldsSchema = v.object({\n dateCreated: v.optional(mysqlDatetimeSchema()),\n dateLastModified: v.optional(mysqlDatetimeSchema()),\n});\n\nexport const StatusFieldsSchema = v.object({\n statusCd: v.number(),\n createCd: v.string(),\n updateCd: v.string(),\n});\n\n// ID patterns\nexport const NumericIdSchema = v.pipe(v.number(), v.minValue(1));\nexport const StringIdSchema = v.pipe(v.string(), v.minLength(1));\nexport const UuidSchema = v.pipe(v.string(), v.uuid());\n\n// Type exports for commonly used patterns\nexport type StandardPaginationParams = v.InferInput<typeof StandardPaginationParamsSchema>;\nexport type SearchablePaginationParams = v.InferInput<typeof SearchablePaginationParamsSchema>;\nexport type EdgeCacheParams = v.InferOutput<typeof EdgeCacheParamsSchema>;\nexport type TimestampFields = v.InferOutput<typeof TimestampFieldsSchema>;\nexport type StatusFields = v.InferOutput<typeof StatusFieldsSchema>;\n","import * as v from 'valibot';\n\n// Helper to log normalization warnings in development\nconst logNormalizationWarning = (message: string): void => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[augur-api] Response normalization: ${message}`);\n }\n};\n\n// Helper to normalize count field\nconst normalizeCount = (count: number, actualDataLength: number): number => {\n if (count === 0 && actualDataLength > 0) {\n logNormalizationWarning(`'count' was 0 but data has ${actualDataLength} items`);\n return actualDataLength;\n }\n return count;\n};\n\n// Helper to normalize total/totalResults bidirectional sync\nconst normalizeTotals = (\n total: number,\n totalResults: number\n): { total: number; totalResults: number } => {\n if (total === 0 && totalResults > 0) {\n logNormalizationWarning(`'total' was 0 but 'totalResults' is ${totalResults}`);\n return { total: totalResults, totalResults };\n }\n if (totalResults === 0 && total > 0) {\n logNormalizationWarning(`'totalResults' was 0 but 'total' is ${total}`);\n return { total, totalResults: total };\n }\n return { total, totalResults };\n};\n\n/** The metadata fields the response transform reads, independent of the data schema. */\ninterface ResponseMetadata {\n count: number;\n data: unknown;\n total: number;\n totalResults: number;\n}\n\nexport const BaseResponseSchema = <T extends v.GenericSchema>(dataSchema: T) =>\n v.pipe(\n v.looseObject({\n count: v.number(),\n data: dataSchema,\n message: v.string(),\n // oneOf format to handle PHP JSON encoding quirk: empty arrays become objects {}\n options: v.union([v.array(v.unknown()), v.record(v.string(), v.unknown())]),\n params: v.union([v.array(v.unknown()), v.record(v.string(), v.unknown())]),\n status: v.number(),\n total: v.number(),\n totalResults: v.number(),\n }),\n v.transform(data => {\n // During API refactoring, metadata fields may be inconsistent\n // We normalize them based on the actual data and bidirectional sync.\n // The looseObject above guarantees these fields; the generic `T` only\n // hides that from the type checker.\n const meta = data as ResponseMetadata;\n if (!Array.isArray(meta.data)) {\n return data;\n }\n\n const count = normalizeCount(meta.count, meta.data.length);\n const { total, totalResults } = normalizeTotals(meta.total, meta.totalResults);\n\n return { ...data, count, total, totalResults };\n })\n );\n\n// Standard health check data schema - same across all microservices\nexport const HealthCheckDataSchema = v.object({\n siteHash: v.string(),\n siteId: v.string(),\n});\n\n// Standard ping data schema - same across all microservices\nexport const PingDataSchema = v.literal('pong');\n\n// Standard whoami data schema - decoded JWT claims, same across all microservices.\n// Loose so new claims never fail validation; user fields are empty for system tokens.\nexport const WhoamiDataSchema = v.looseObject({\n siteId: v.string(),\n tokenType: v.string(),\n userId: v.number(),\n scope: v.optional(v.unknown()),\n username: v.optional(v.string()),\n email: v.optional(v.string()),\n name: v.optional(v.string()),\n});\n\n// Common pagination parameters\n// Note: HTTP query parameters are always strings, so we use coercion for numbers\nexport const PaginationParamsSchema = v.looseObject({\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// Edge cache duration parameter - supported values for Cloudflare cache rules\n// Supports both sub-hour caches ('30s', '1m', '5m') and hourly caches (1-8 hours)\n// Note: HTTP query parameters are always strings, but we also accept numbers for JavaScript usage\nexport const EdgeCacheParamsSchema = v.looseObject({\n edgeCache: v.optional(\n v.union([\n // Sub-hour caches (string only)\n v.literal('30s'),\n v.literal('1m'),\n v.literal('5m'),\n // Hourly caches (numbers)\n v.literal(1),\n v.literal(2),\n v.literal(3),\n v.literal(4),\n v.literal(5),\n v.literal(8),\n // Hourly caches (strings for HTTP compatibility)\n v.literal('1'),\n v.literal('2'),\n v.literal('3'),\n v.literal('4'),\n v.literal('5'),\n v.literal('8'),\n ])\n ),\n});\n\n// Combined base parameters for GET requests (includes pagination and caching)\nexport const BaseGetParamsSchema = v.looseObject({\n ...PaginationParamsSchema.entries,\n ...EdgeCacheParamsSchema.entries,\n});\n\n// Type exports\nexport type BaseResponse<T> = {\n count: number;\n data: T;\n message: string;\n options: unknown[] | Record<string, unknown>; // Supports both array (new) and object (legacy PHP) formats\n params: unknown[] | Record<string, unknown>; // Supports both array (new) and object (legacy PHP) formats\n status: number;\n total: number; // Synced bidirectionally with totalResults\n totalResults: number; // Synced bidirectionally with total\n};\n\nexport type HealthCheckData = v.InferOutput<typeof HealthCheckDataSchema>;\nexport type PingData = v.InferOutput<typeof PingDataSchema>;\nexport type WhoamiData = v.InferOutput<typeof WhoamiDataSchema>;\n\n// Re-export valibot for use by generated schemas and resources\nexport { v };\n","import * as v from 'valibot';\n\n/**\n * Custom Valibot schema for MySQL datetime format\n * Matches format: YYYY-MM-DD HH:mm:ss\n */\nexport const mysqlDatetimeSchema = () =>\n v.pipe(\n v.string(),\n v.regex(\n /^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$/,\n 'Invalid MySQL datetime format. Expected: YYYY-MM-DD HH:mm:ss'\n )\n );\n\n/**\n * Simple schema utilities for common patterns\n */\nexport class SchemaUtils {\n /**\n * Create pagination parameters schema\n */\n static createPaginatedParamsSchema<T extends v.ObjectEntries>(\n additionalFields?: T,\n defaultLimit: number = 20\n ) {\n const baseFields = {\n limit: v.optional(\n v.pipe(v.unknown(), v.transform(Number), v.integer(), v.minValue(1)),\n defaultLimit\n ),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number), v.integer(), v.minValue(0)), 0),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n };\n\n return v.object({\n ...baseFields,\n ...additionalFields,\n });\n }\n\n /**\n * Create search parameters schema\n */\n static createSearchParamsSchema<T extends v.ObjectEntries>(additionalFields?: T) {\n return this.createPaginatedParamsSchema({\n searchType: v.optional(v.picklist(['query', 'category', 'brand']), 'query'),\n ...additionalFields,\n });\n }\n}\n","import { InvalidArgumentError } from './errors';\n\n/**\n * Normalise placeholder/key names by stripping `-` and `_` and lowercasing,\n * so `customerNo`, `customer_no`, and `customer-no` all compare equal.\n *\n * @requires name ∈ string\n * @ensures result ∈ string ∧ result contains no `[-_]` ∧ result is lowercase\n */\nconst normalise = (name: string): string => name.replace(/[-_]/g, '').toLowerCase();\n\n/**\n * Numeric placeholder name suffixes/exact-matches.\n *\n * The Augur API placeholder naming convention encodes parameter type in the\n * placeholder name itself: any placeholder whose normalised form is `id` or\n * `linenumber`, or ends with `id`, `uid`, `no`, `num`, or `number`, is an\n * integer. All other placeholders are treated as strings.\n *\n * This is verified against every path template in the merged specs; out of\n * 93 distinct placeholders, only the names in STRING_OVERRIDES are typed as\n * `string` despite an integer-looking suffix.\n */\nconst NUMERIC_EXACT = new Set(['id', 'linenumber']);\nconst NUMERIC_SUFFIX_RE = /(?:id|uid|no|num|number)$/;\n\n/**\n * Placeholder names typed as `string` in OpenAPI despite an integer-looking\n * suffix. The classifier MUST treat these as string to avoid false rejections\n * of legitimate non-numeric identifiers.\n *\n * Re-derived from shared/specs/*.json on 2026-07-28.\n *\n * Known ambiguity: `customerId` and `invMastUid` are typed `integer` in most\n * services but `string` in `legacy` (POST /customers/{customerId}/tags, POST\n * /inv-mast/{invMastUid}/tags). They stay classified numeric — the integer\n * typing is the majority and the stricter check.\n */\nconst STRING_OVERRIDES = new Set([\n 'siteid',\n 'pono',\n 'importuid',\n 'scheduledimportmasteruid',\n 'grantid',\n 'salesrepid',\n]);\n\n/**\n * Classify a placeholder name as numeric or string-typed.\n *\n * @requires placeholder ∈ string ∧ placeholder is non-empty\n * @ensures result ∈ {true, false}\n * @trusted Decision drives the validation regex applied to the substituted\n * value. A misclassification here either lets a bad value through\n * (numeric → string) or rejects a valid value (string → numeric).\n * The classifier is intentionally conservative: it only marks names\n * that clearly encode an integer in the API surface.\n */\nexport const isNumericPlaceholder = (placeholder: string): boolean => {\n const normalised = normalise(placeholder);\n if (STRING_OVERRIDES.has(normalised)) return false;\n if (NUMERIC_EXACT.has(normalised)) return true;\n return NUMERIC_SUFFIX_RE.test(normalised);\n};\n\n/**\n * Integer-shaped string: optional leading `-`, then one or more digits.\n * Rejects: `NaN`, `null`, `undefined`, `\"\"`, `\"3.14\"`, `\"1e9\"`, `\"1 \"`.\n */\nconst INTEGER_RE = /^-?\\d+$/;\n\n/**\n * Validate a path-segment value before it is interpolated into the URL.\n *\n * For numeric placeholders the value MUST match `/^-?\\d+$/` — toxic stringified\n * primitives (`\"NaN\"`, `\"null\"`, `\"undefined\"`) and empty strings are rejected.\n *\n * For string placeholders only the empty string is rejected; arbitrary content\n * is allowed because the API may legitimately accept values like `\"NaN\"` as a\n * username, bin code, or free-form identifier.\n *\n * @requires pathTemplate ∈ string ∧ placeholder ∈ string ∧ value ∈ string\n * @ensures (this function returns) ⇒ value is safe to interpolate into the URL path\n * @ensures (this function throws InvalidArgumentError) ⇒ value would have produced a malformed URL\n * @trusted Last line of defence before the value reaches the wire. Misses here\n * translate to malformed URLs hitting upstream services, which in the\n * observed ampro-online incident caused 500s and ~406 MB OOM.\n */\nexport const validatePathSegment = (\n pathTemplate: string,\n placeholder: string,\n value: string\n): void => {\n const isNumeric = isNumericPlaceholder(placeholder);\n\n if (isNumeric) {\n if (!INTEGER_RE.test(value)) {\n throw new InvalidArgumentError({\n message: `Invalid path parameter '${placeholder}': expected an integer, received ${JSON.stringify(value)}`,\n service: 'http-client',\n endpoint: pathTemplate,\n });\n }\n return;\n }\n\n if (value === '') {\n throw new InvalidArgumentError({\n message: `Invalid path parameter '${placeholder}': expected a non-empty string, received ${JSON.stringify(value)}`,\n service: 'http-client',\n endpoint: pathTemplate,\n });\n }\n};\n","import { HTTPClient } from './client';\nimport {\n CommonHealthCheckResponseSchema,\n CommonPingResponseSchema,\n CommonWhoamiResponseSchema,\n} from './common-schemas';\nimport { ValidationError } from './errors';\nimport { validatePathSegment } from './path-validation';\nimport {\n BaseResponseSchema,\n type HealthCheckData,\n type PingData,\n type WhoamiData,\n} from './schemas';\nimport * as v from 'valibot';\n\n/**\n * Interface for discovery metadata that AI agents can use to navigate services\n */\nexport interface DiscoveryEndpoint {\n /** Complete API path (e.g., api.joomla.users.list) */\n fullPath: string;\n /** Service name (e.g., joomla, items) */\n service: string;\n /** Business domain (e.g., user-management, content-management) */\n domain: string;\n /** HTTP method (GET, POST, PUT, DELETE) */\n method: string;\n /** Endpoint URL path */\n path: string;\n /** Description of what this endpoint does */\n description: string;\n /** Array of search terms for AI navigation */\n searchTerms: string[];\n /** Related endpoints across services */\n relatedEndpoints: string[];\n /** Common usage patterns in natural language */\n commonPatterns: string[];\n /** Reference to data-only method alternative */\n dataMethod?: string;\n /** Whether this endpoint is discoverable by AI agents */\n discoverable: boolean;\n}\n\n/**\n * Interface for service discovery metadata\n */\nexport interface ServiceDiscoveryMetadata {\n /** Service name */\n serviceName: string;\n /** Service description */\n description: string;\n /** Base URL for the service */\n baseUrl: string;\n /** Array of discoverable endpoints */\n endpoints: DiscoveryEndpoint[];\n}\n\n/**\n * HTTP method types for API operations\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';\n\n/**\n * Configuration for API endpoint operations\n */\nexport interface EndpointConfig {\n /** HTTP method for the request */\n method: HTTPMethod;\n /** Endpoint path (will be prefixed with baseUrl) */\n path: string;\n /** Valibot schema for validating request parameters */\n paramsSchema?: v.GenericSchema;\n /** Valibot schema for validating response data */\n responseSchema: v.GenericSchema;\n /** Whether this endpoint requires authentication (default: true) */\n requiresAuth?: boolean;\n}\n\n/**\n * Standard pagination parameters with better type constraints\n */\nexport interface PaginationParams {\n /** Number of items to return (1-1000) */\n limit?: number;\n /** Starting offset for pagination (>= 0) */\n offset?: number;\n /** Sort ordering in format: 'field|ASC' or 'field|DESC' */\n orderBy?: string;\n}\n\n/**\n * Standard search parameters extending pagination\n */\nexport interface SearchParams extends PaginationParams {\n /** Search query string */\n q?: string;\n}\n\n/**\n * Edge caching parameters for Cloudflare integration\n */\nexport interface CacheParams {\n /**\n * Cache duration - accepts sub-hour or hourly values:\n * - Sub-hour: '30s' (30 seconds), '1m' (1 minute), '5m' (5 minutes)\n * - Hourly: 1, 2, 3, 4, 5, 8 (or string equivalents for HTTP compatibility)\n */\n edgeCache?: '30s' | '1m' | '5m' | 1 | 2 | 3 | 4 | 5 | 8 | '1' | '2' | '3' | '4' | '5' | '8';\n}\n\n/**\n * Standard GET request parameters combining pagination, search, and caching\n */\nexport interface StandardGetParams extends SearchParams, CacheParams {}\n\n/**\n * Standard API response structure - REQUIRED for all services (8-field format)\n * This is the ONLY acceptable response format for all APIs\n */\nexport interface BaseResponse<T> {\n /** Number of items in current response */\n count: number;\n /** Response data of type T */\n data: T;\n /** Response message */\n message: string;\n /** Additional options for the response */\n options: unknown[] | Record<string, unknown>; // Supports both array (new) and object (legacy PHP) formats\n /** Parameters used in the request */\n params: unknown[] | Record<string, unknown>; // Supports both array (new) and object (legacy PHP) formats\n /** HTTP status code */\n status: number;\n /** Total items in dataset */\n total: number;\n /** Total results available */\n totalResults: number;\n}\n\n/**\n * Abstract base class for all service clients\n *\n * Provides standardized error handling, validation, and request processing\n * to eliminate boilerplate code across service implementations.\n *\n * @example\n * ```typescript\n * class MyServiceClient extends BaseServiceClient {\n * constructor(http: HTTPClient, baseUrl?: string) {\n * super('myservice', http, baseUrl || 'https://myservice.augur-api.com');\n * }\n *\n * // Simple method using executeRequest\n * async getUser(id: number) {\n * return this.executeRequest({\n * method: 'GET',\n * path: `/users/${id}`,\n * responseSchema: UserResponseSchema\n * });\n * }\n *\n * // Method with parameters\n * async listUsers(params?: UserListParams) {\n * return this.executeRequest({\n * method: 'GET',\n * path: '/users',\n * paramsSchema: UserListParamsSchema,\n * responseSchema: UserListResponseSchema\n * }, params);\n * }\n * }\n * ```\n */\nexport abstract class BaseServiceClient {\n protected readonly serviceName: string;\n protected readonly http: HTTPClient;\n protected readonly baseUrl: string;\n\n // Base endpoints served by every service. Auth is chosen by URL suffix in\n // HTTPClient: /ping and /health-check skip Bearer, /whoami sends it.\n\n /** GET /health-check: service health (x-site-id, no Bearer) */\n readonly healthCheck = {\n get: (): Promise<BaseResponse<HealthCheckData>> =>\n this.getBaseEndpoint('/health-check', CommonHealthCheckResponseSchema),\n };\n\n /** GET /health-check, unwrapped to `.data` */\n readonly healthCheckData = {\n get: async (): Promise<HealthCheckData> => (await this.healthCheck.get()).data,\n };\n\n /** GET /ping: liveness check (no auth) */\n readonly ping = {\n get: (): Promise<BaseResponse<PingData>> =>\n this.getBaseEndpoint('/ping', CommonPingResponseSchema),\n };\n\n /** GET /ping, unwrapped to `.data` */\n readonly pingData = {\n get: async (): Promise<PingData> => (await this.ping.get()).data,\n };\n\n /** GET /whoami: decoded JWT claims (x-site-id + Bearer) */\n readonly whoami = {\n get: (): Promise<BaseResponse<WhoamiData>> =>\n this.getBaseEndpoint('/whoami', CommonWhoamiResponseSchema),\n };\n\n /** GET /whoami, unwrapped to `.data` */\n readonly whoamiData = {\n get: async (): Promise<WhoamiData> => (await this.whoami.get()).data,\n };\n\n /**\n * Create a new service client instance\n * @param serviceName Name of the service (used for error reporting)\n * @param http Configured HTTPClient instance\n * @param baseUrl Base URL for the service API\n */\n constructor(serviceName: string, http: HTTPClient, baseUrl: string) {\n this.serviceName = serviceName;\n this.http = http;\n this.baseUrl = baseUrl;\n }\n\n /**\n * Execute a standardized API request with automatic validation and error handling\n *\n * This method handles all the common patterns:\n * - Parameter validation with Valibot schemas\n * - HTTP request execution\n * - Response validation\n * - Consistent error handling and reporting\n *\n * @param config Endpoint configuration including method, path, and schemas\n * @param params Optional request parameters (query params for GET, body for POST/PUT)\n * @param pathParams Optional path parameters for URL substitution\n * @returns Promise resolving to the validated response data\n * @throws ValidationError When parameters or response validation fails\n * @throws AugurError For HTTP errors (handled by HTTPClient interceptors)\n */\n protected async executeRequest<TParams = unknown, TResponse = unknown>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string | number>,\n query?: unknown\n ): Promise<TResponse> {\n const endpoint = this.buildEndpointPath(config.path, pathParams);\n\n try {\n const validatedParams = this.validateParameters(config, params);\n const response = await this.executeHttpRequest(config, endpoint, validatedParams, query);\n const validatedResponse = v.parse(config.responseSchema, response);\n return validatedResponse as TResponse;\n } catch (error) {\n if (error instanceof v.ValiError) {\n // Mark if this is a response validation error (not parameter validation)\n throw this.createValidationError(error, config, params, endpoint, 'response');\n }\n throw error;\n }\n }\n\n /**\n * GET one of the parameterless base endpoints (health-check, ping, whoami)\n */\n private getBaseEndpoint<TResponse>(\n path: string,\n responseSchema: v.GenericSchema\n ): Promise<TResponse> {\n return this.executeRequest<undefined, TResponse>({ method: 'GET', path, responseSchema });\n }\n\n /**\n * Validate request parameters using the provided schema\n */\n private validateParameters<TParams>(\n config: EndpointConfig,\n params?: TParams\n ): TParams | undefined {\n if (config.paramsSchema) {\n try {\n // Always validate when schema is provided, treating undefined as empty object\n return v.parse(config.paramsSchema, params ?? {}) as TParams;\n } catch (error) {\n if (error instanceof v.ValiError) {\n // Mark parameter validation errors specifically\n throw this.createValidationError(error, config, params, config.path, 'params');\n }\n throw error;\n }\n }\n return params;\n }\n\n /**\n * Execute HTTP request based on the configured method\n *\n * For GET, `validatedParams` IS the query string. For POST/PUT it is the\n * request body, and `query` carries the query string alongside it — the API\n * declares query params on write methods too, and DELETE previously dropped\n * them entirely.\n */\n private async executeHttpRequest<TParams>(\n config: EndpointConfig,\n endpoint: string,\n validatedParams?: TParams,\n query?: unknown\n ): Promise<unknown> {\n const url = `${this.baseUrl}${endpoint}`;\n // Forward `query` only when present, so call arity stays exactly as before\n // for the endpoints that have no write-method query params.\n const rest: [] | [unknown] = query === undefined ? [] : [query];\n\n switch (config.method) {\n case 'GET':\n return await this.http.get(url, validatedParams);\n case 'POST':\n return await this.http.post(url, validatedParams, ...rest);\n case 'PUT':\n return await this.http.put(url, validatedParams, ...rest);\n case 'DELETE':\n return await this.http.delete(url, ...rest);\n default:\n throw new Error(`Unsupported HTTP method: ${config.method}`);\n }\n }\n\n /**\n * Create a detailed validation error with context information\n */\n private createValidationError<TParams>(\n valibotError: v.ValiError<v.GenericSchema>,\n config: EndpointConfig,\n params: TParams | undefined,\n endpoint: string,\n errorType?: 'params' | 'response'\n ): ValidationError {\n let message = 'Invalid parameters or response';\n let contextInfo = '';\n\n if (errorType === 'params') {\n message = 'Invalid request parameters';\n contextInfo = `\\nProvided parameters: ${JSON.stringify(params, null, 2)}`;\n } else if (errorType === 'response') {\n message = 'Invalid API response structure';\n contextInfo =\n '\\nThis appears to be a response validation error. The API returned data in an unexpected format during API refactoring.';\n } else {\n // Fallback logic for when error type is not specified\n const hasParamSchema = !!config.paramsSchema;\n if (hasParamSchema && params !== undefined) {\n message = 'Invalid request parameters';\n contextInfo = `\\nProvided parameters: ${JSON.stringify(params, null, 2)}`;\n } else if (!hasParamSchema) {\n message = 'Invalid API response structure';\n contextInfo =\n '\\nThis appears to be a response validation error. The API returned data in an unexpected format.';\n }\n }\n\n const validationError = new ValidationError({\n message,\n service: this.serviceName,\n endpoint,\n validationErrors: valibotError.issues.map(issue => ({\n path: (issue.path ?? []).map(segment => segment.key as string | number),\n message: issue.message,\n // Typed as always present, but issues built outside valibot can lack it\n code: issue.type ?? 'unknown',\n })),\n });\n\n if (contextInfo) {\n validationError.message += contextInfo;\n }\n\n return validationError;\n }\n\n /**\n * Create a standardized list method factory\n *\n * Generates a function that follows the standard list pattern with optional parameters,\n * pagination support, and consistent error handling.\n *\n * @param endpoint The API endpoint path\n * @param paramsSchema Valibot schema for validating query parameters\n * @param responseSchema Valibot schema for validating the response\n * @returns A function that executes the list operation\n */\n protected createListMethod<\n TParams = StandardGetParams,\n TItem = unknown,\n TResponse extends BaseResponse<TItem[]> = BaseResponse<TItem[]>,\n >(endpoint: string, paramsSchema: v.GenericSchema, responseSchema: v.GenericSchema) {\n return async (params?: TParams): Promise<TResponse> => {\n return this.executeRequest(\n {\n method: 'GET',\n path: endpoint,\n paramsSchema,\n responseSchema,\n },\n params\n );\n };\n }\n\n /**\n * Create a standardized get method factory\n *\n * Generates a function that retrieves a single item by ID with optional parameters.\n *\n * @param endpointTemplate The API endpoint template with parameter placeholders\n * @param responseSchema Valibot schema for validating the response\n * @param paramsSchema Optional Valibot schema for query parameters\n * @returns A function that executes the get operation\n */\n protected createGetMethod<\n TParams = CacheParams,\n TItem = unknown,\n TResponse extends BaseResponse<TItem> = BaseResponse<TItem>,\n >(endpointTemplate: string, responseSchema: v.GenericSchema, paramsSchema?: v.GenericSchema) {\n return async (id: string | number, params?: TParams): Promise<TResponse> => {\n // Extract parameter name from template (e.g., {binTransferHdrUid} -> binTransferHdrUid)\n const paramName = this.extractParameterName(endpointTemplate);\n const pathParams = paramName ? { [paramName]: String(id) } : { id: String(id) };\n\n return this.executeRequest(\n {\n method: 'GET',\n path: endpointTemplate,\n paramsSchema,\n responseSchema,\n },\n params,\n pathParams\n );\n };\n }\n\n /**\n * Create a standardized create method factory\n *\n * Generates a function that creates a new resource via POST request.\n *\n * @param endpoint The API endpoint path\n * @param requestSchema Valibot schema for validating request data\n * @param responseSchema Valibot schema for validating the response\n * @returns A function that executes the create operation\n */\n protected createCreateMethod<TRequest, TResponse>(\n endpoint: string,\n requestSchema: v.GenericSchema,\n responseSchema: v.GenericSchema\n ) {\n return async (data: TRequest): Promise<TResponse> => {\n return this.executeRequest(\n {\n method: 'POST',\n path: endpoint,\n paramsSchema: requestSchema,\n responseSchema,\n },\n data\n );\n };\n }\n\n /**\n * Create a standardized update method factory\n *\n * Generates a function that updates an existing resource via PUT request.\n *\n * @param endpointTemplate The API endpoint template with parameter placeholders\n * @param requestSchema Valibot schema for validating request data\n * @param responseSchema Valibot schema for validating the response\n * @returns A function that executes the update operation\n */\n protected createUpdateMethod<TRequest, TResponse>(\n endpointTemplate: string,\n requestSchema: v.GenericSchema,\n responseSchema: v.GenericSchema\n ) {\n return async (id: string | number, data: TRequest): Promise<TResponse> => {\n // Extract parameter name from template (e.g., {binTransferHdrUid} -> binTransferHdrUid)\n const paramName = this.extractParameterName(endpointTemplate);\n const pathParams = paramName ? { [paramName]: String(id) } : { id: String(id) };\n\n return this.executeRequest(\n {\n method: 'PUT',\n path: endpointTemplate,\n paramsSchema: requestSchema,\n responseSchema,\n },\n data,\n pathParams\n );\n };\n }\n\n /**\n * Create a standardized delete method factory\n *\n * Generates a function that deletes a resource via DELETE request.\n *\n * @param endpointTemplate The API endpoint template with parameter placeholders\n * @param responseSchema Valibot schema for validating the response\n * @returns A function that executes the delete operation\n */\n protected createDeleteMethod<TResponse>(\n endpointTemplate: string,\n responseSchema: v.GenericSchema\n ) {\n return async (id: string | number): Promise<TResponse> => {\n // Extract parameter name from template (e.g., {binTransferHdrUid} -> binTransferHdrUid)\n const paramName = this.extractParameterName(endpointTemplate);\n const pathParams = paramName ? { [paramName]: String(id) } : { id: String(id) };\n\n return this.executeRequest(\n {\n method: 'DELETE',\n path: endpointTemplate,\n responseSchema,\n },\n undefined,\n pathParams\n );\n };\n }\n\n /**\n * Create a delete method that returns a boolean success indicator\n *\n * Common pattern for delete operations that don't return the deleted entity.\n * The method always returns true if the request succeeds (no error thrown).\n *\n * @param endpointTemplate The API endpoint template with parameter placeholders\n * @returns A function that executes the delete operation and returns true on success\n */\n protected createDeleteBooleanMethod(endpointTemplate: string) {\n return async (id: string | number): Promise<boolean> => {\n // Extract parameter name from template (e.g., {binTransferHdrUid} -> binTransferHdrUid)\n const paramName = this.extractParameterName(endpointTemplate);\n const pathParams = paramName ? { [paramName]: String(id) } : { id: String(id) };\n\n await this.executeRequest(\n {\n method: 'DELETE',\n path: endpointTemplate,\n responseSchema: v.unknown(), // Accept any response as we only care about success\n },\n undefined,\n pathParams\n );\n return true;\n };\n }\n\n /**\n * Create a search method with required query parameter\n *\n * Enforces that a search query is provided and handles the common search pattern.\n *\n * @param endpoint The API endpoint path\n * @param paramsSchema Valibot schema for validating search parameters (must include 'q')\n * @param responseSchema Valibot schema for validating the response\n * @returns A function that executes the search operation\n */\n protected createSearchMethod<TParams extends SearchParams, TResponse>(\n endpoint: string,\n paramsSchema: v.GenericSchema,\n responseSchema: v.GenericSchema\n ) {\n return async (params: TParams): Promise<TResponse> => {\n if (!params.q || params.q.trim() === '') {\n throw new ValidationError({\n message: 'Search query is required',\n service: this.serviceName,\n endpoint,\n validationErrors: [\n {\n path: ['q'],\n message: 'Search query cannot be empty',\n code: 'custom',\n },\n ],\n });\n }\n return this.executeRequest(\n {\n method: 'GET',\n path: endpoint,\n paramsSchema,\n responseSchema,\n },\n params\n );\n };\n }\n\n /**\n * Create a method that returns the first item from an array response\n *\n * Common pattern for endpoints that return an array but we only need the first item.\n *\n * @param endpoint The API endpoint path\n * @param paramsSchema Valibot schema for validating request parameters\n * @param itemSchema Valibot schema for validating individual items in the array\n * @returns A function that executes the request and returns the first item or undefined\n */\n protected createSingleItemMethod<TParams, TItem>(\n endpoint: string,\n paramsSchema: v.GenericSchema,\n itemSchema: v.GenericSchema\n ) {\n return async (params: TParams): Promise<TItem | undefined> => {\n const response = await this.executeRequest(\n {\n method: 'GET',\n path: endpoint,\n paramsSchema,\n responseSchema: this.createArrayResponseSchema(itemSchema),\n },\n params\n );\n return (response as { data: TItem[] }).data[0];\n };\n }\n\n /**\n * Create an action method for operations like enable/disable\n *\n * Common pattern for POST/PUT endpoints that perform actions on resources.\n *\n * @param endpointTemplate The API endpoint template with placeholders\n * @param method HTTP method (POST or PUT)\n * @param responseSchema Valibot schema for validating the response\n * @param pathParams Additional path parameters beyond the id\n * @returns A function that executes the action\n */\n protected createActionMethod<TResponse>(\n endpointTemplate: string,\n method: 'POST' | 'PUT',\n responseSchema: v.GenericSchema,\n pathParams?: Record<string, string>\n ) {\n return async (id: string | number): Promise<TResponse> => {\n // Extract parameter name from template (e.g., {binTransferHdrUid} -> binTransferHdrUid)\n const paramName = this.extractParameterName(endpointTemplate);\n const idParam = paramName ? { [paramName]: String(id) } : { id: String(id) };\n\n return this.executeRequest(\n {\n method,\n path: endpointTemplate,\n responseSchema,\n },\n undefined,\n { ...idParam, ...pathParams }\n );\n };\n }\n\n /**\n * Create a void method that doesn't return meaningful data\n *\n * Common pattern for operations that succeed with empty or undefined responses.\n *\n * @param endpointTemplate The API endpoint template\n * @param method HTTP method\n * @returns A function that executes the operation\n */\n protected createVoidMethod(endpointTemplate: string, method: HTTPMethod) {\n return async (id?: string | number): Promise<void> => {\n let pathParams: Record<string, string> | undefined;\n if (id !== undefined) {\n // Extract parameter name from template (e.g., {binTransferHdrUid} -> binTransferHdrUid)\n const paramName = this.extractParameterName(endpointTemplate);\n pathParams = paramName ? { [paramName]: String(id) } : { id: String(id) };\n }\n\n await this.executeRequest(\n {\n method,\n path: endpointTemplate,\n responseSchema: v.unknown(),\n },\n undefined,\n pathParams\n );\n };\n }\n\n /**\n * Helper to create a standard array response schema\n */\n private createArrayResponseSchema(itemSchema: v.GenericSchema) {\n return BaseResponseSchema(v.array(itemSchema));\n }\n\n /**\n * Create a standardized document method for endpoints that return enhanced documentation\n *\n * Common pattern across services for endpoints like /content/{id}/doc, /users/{id}/doc, etc.\n *\n * @param endpointTemplate The API endpoint template with parameter placeholders\n * @param responseSchema Valibot schema for validating the document response\n * @param paramsSchema Optional Valibot schema for query parameters\n * @returns A function that executes the document retrieval operation\n */\n protected createDocMethod<TParams, TResponse>(\n endpointTemplate: string,\n responseSchema: v.GenericSchema,\n paramsSchema?: v.GenericSchema\n ) {\n return async (id: string | number, params?: TParams): Promise<TResponse> => {\n // Extract parameter name from template (e.g., {binTransferHdrUid} -> binTransferHdrUid)\n const paramName = this.extractParameterName(endpointTemplate);\n const pathParams = paramName ? { [paramName]: String(id) } : { id: String(id) };\n\n return this.executeRequest(\n {\n method: 'GET',\n path: endpointTemplate,\n paramsSchema,\n responseSchema,\n },\n params,\n pathParams\n );\n };\n }\n\n /**\n * Build endpoint path with optional path parameter substitution\n *\n * @param pathTemplate Path template with {param} placeholders\n * @param pathParams Object containing parameter values\n * @returns Processed endpoint path\n *\n * @example\n * ```typescript\n * buildEndpointPath('/users/{id}', { id: '123' }) // returns '/users/123'\n * buildEndpointPath('/health-check') // returns '/health-check'\n * ```\n */\n private buildEndpointPath(\n pathTemplate: string,\n pathParams?: Record<string, string | number>\n ): string {\n if (!pathParams) {\n return pathTemplate;\n }\n\n // Normalise a string to lowercase-no-separators for fuzzy matching.\n // Handles camelCase, kebab-case, and snake_case path param mismatches\n // (e.g. pathParams key \"salesRepId\" matching placeholder \"{salesrep-id}\").\n const normalise = (s: string): string => s.replace(/[-_]/g, '').toLowerCase();\n\n let path = pathTemplate;\n for (const [key, value] of Object.entries(pathParams)) {\n const stringValue = String(value);\n // Try exact match first (fast path)\n if (path.includes(`{${key}}`)) {\n validatePathSegment(pathTemplate, key, stringValue);\n path = path.replace(`{${key}}`, stringValue);\n } else {\n // Fallback: match by normalised name\n const normKey = normalise(key);\n path = path.replace(/\\{([^}]+)\\}/g, (match, placeholder: string) => {\n if (normalise(placeholder) === normKey) {\n validatePathSegment(pathTemplate, placeholder, stringValue);\n return stringValue;\n }\n return match;\n });\n }\n }\n\n return path;\n }\n\n /**\n * Create a debugging helper for troubleshooting validation errors\n *\n * @param config Endpoint configuration\n * @param params Parameters being validated\n * @returns Debug information object\n */\n protected createDebugInfo<TParams>(\n config: EndpointConfig,\n params?: TParams\n ): {\n endpoint: string;\n method: string;\n hasParamSchema: boolean;\n providedParams: TParams | undefined;\n expectedSchema?: string;\n } {\n return {\n endpoint: config.path,\n method: config.method,\n hasParamSchema: !!config.paramsSchema,\n providedParams: params,\n expectedSchema: 'No schema description available',\n };\n }\n\n /**\n * Validate parameters and provide detailed error information for debugging\n *\n * @param schema Valibot schema to validate against\n * @param params Parameters to validate\n * @param context Context information for error messages\n * @returns Validation result with detailed error information\n */\n protected validateWithDebugInfo<T>(\n schema: v.GenericSchema,\n params: unknown,\n context: string\n ):\n | { success: true; data: T }\n | { success: false; errors: string[]; rawErrors: v.ValiError<v.GenericSchema> } {\n try {\n const data = v.parse(schema, params) as T;\n return { success: true, data };\n } catch (error) {\n if (error instanceof v.ValiError) {\n const valiError = error as v.ValiError<v.GenericSchema>;\n const formattedErrors = valiError.issues.map(issue => {\n const path =\n issue.path && issue.path.length > 0\n ? issue.path.map(segment => String(segment.key)).join('.')\n : 'root';\n return `${context} - ${path}: ${issue.message}`;\n });\n\n return {\n success: false,\n errors: formattedErrors,\n rawErrors: valiError,\n };\n }\n throw error;\n }\n }\n\n /**\n * Extract parameter name from endpoint template\n *\n * @param endpointTemplate The endpoint template (e.g., '/bin-transfer/{binTransferHdrUid}')\n * @returns The parameter name (e.g., 'binTransferHdrUid') or null if no parameter found\n *\n * @example\n * ```typescript\n * extractParameterName('/bin-transfer/{binTransferHdrUid}') // returns 'binTransferHdrUid'\n * extractParameterName('/users/{id}') // returns 'id'\n * extractParameterName('/health-check') // returns null\n * ```\n */\n private extractParameterName(endpointTemplate: string): string | null {\n const match = endpointTemplate.match(/\\{([^}]+)\\}/);\n return match ? match[1] : null;\n }\n\n /**\n * Get discovery metadata for this service client\n *\n * This method extracts semantic JSDoc metadata from all methods in the service client\n * to enable AI agents to understand the service topology and navigate endpoints.\n *\n * @returns ServiceDiscoveryMetadata containing service info and endpoint metadata\n */\n getDiscoveryMetadata(): ServiceDiscoveryMetadata {\n const endpoints: DiscoveryEndpoint[] = [];\n\n // Get all methods from the service client class and its prototype chain\n const methods = this.getAllMethods();\n\n for (const methodName of methods) {\n const metadata = this.extractMethodMetadata(methodName);\n if (metadata && metadata.discoverable) {\n endpoints.push(metadata);\n }\n }\n\n return {\n serviceName: this.serviceName,\n description: this.getServiceDescription(),\n baseUrl: this.baseUrl,\n endpoints,\n };\n }\n\n /**\n * Get all method names from the service client instance\n */\n private getAllMethods(): string[] {\n return this.walkPrototypeChain(this, []);\n }\n\n /**\n * Recursively walk prototype chain to collect methods\n */\n private walkPrototypeChain(obj: unknown, methods: string[]): string[] {\n if (!obj || obj === BaseServiceClient.prototype) {\n return methods;\n }\n\n const props = Object.getOwnPropertyNames(obj);\n for (const prop of props) {\n if (this.isValidMethod(obj, prop) && !methods.includes(prop)) {\n methods.push(prop);\n }\n }\n\n return this.walkPrototypeChain(Object.getPrototypeOf(obj), methods);\n }\n\n /**\n * Check if a property is a valid method to include in discovery\n */\n private isValidMethod(obj: unknown, prop: string): boolean {\n return (\n typeof (obj as Record<string, unknown>)[prop] === 'function' &&\n prop !== 'constructor' &&\n !prop.startsWith('_')\n );\n }\n\n /**\n * Extract semantic metadata from a method's JSDoc comments\n *\n * This method parses JSDoc comments to extract the semantic tags required\n * for AI agent discovery and navigation.\n */\n private extractMethodMetadata(methodName: string): DiscoveryEndpoint | null {\n try {\n const methodFunc = this.getMethodFunction(methodName);\n if (!methodFunc) return null;\n\n const jsdocContent = this.extractJSDocContent(methodFunc);\n if (!jsdocContent) return null;\n\n const semanticTags = this.parseSemanticTags(jsdocContent);\n if (!this.hasRequiredTags(semanticTags, jsdocContent)) return null;\n\n const description = this.extractDescription(jsdocContent);\n const { method: httpMethod, path } = this.inferMethodDetails(\n methodName,\n methodFunc.toString()\n );\n\n return {\n fullPath: semanticTags.fullPath!,\n service: semanticTags.service!,\n domain: semanticTags.domain!,\n method: httpMethod,\n path,\n description,\n searchTerms: semanticTags.searchTerms || [],\n relatedEndpoints: semanticTags.relatedEndpoints || [],\n commonPatterns: semanticTags.commonPatterns || [],\n dataMethod: semanticTags.dataMethod,\n discoverable: true,\n };\n } catch {\n return null;\n }\n }\n\n /**\n * Get method function from instance\n */\n private getMethodFunction(methodName: string): ((...args: unknown[]) => unknown) | null {\n const methodFunc = (this as Record<string, unknown>)[methodName];\n return methodFunc && typeof methodFunc === 'function'\n ? (methodFunc as (...args: unknown[]) => unknown)\n : null;\n }\n\n /**\n * Extract JSDoc content from method source\n */\n private extractJSDocContent(methodFunc: (...args: unknown[]) => unknown): string | null {\n const methodSource = methodFunc.toString();\n const jsdocMatch = methodSource.match(/\\/\\*\\*([\\s\\S]*?)\\*\\//);\n return jsdocMatch ? jsdocMatch[1] : null;\n }\n\n /**\n * Parse all semantic tags from JSDoc content\n */\n private parseSemanticTags(jsdocContent: string): Partial<DiscoveryEndpoint> {\n return {\n fullPath: this.extractJSDocTag(jsdocContent, '@fullPath') || '',\n service: this.extractJSDocTag(jsdocContent, '@service') || '',\n domain: this.extractJSDocTag(jsdocContent, '@domain') || '',\n dataMethod: this.extractJSDocTag(jsdocContent, '@dataMethod') || undefined,\n searchTerms: this.extractJSDocArrayTag(jsdocContent, '@searchTerms'),\n relatedEndpoints: this.extractJSDocArrayTag(jsdocContent, '@relatedEndpoints'),\n commonPatterns: this.extractJSDocArrayTag(jsdocContent, '@commonPatterns'),\n };\n }\n\n /**\n * Check if required semantic tags are present\n */\n private hasRequiredTags(tags: Partial<DiscoveryEndpoint>, jsdocContent: string): boolean {\n const discoverableTag = this.extractJSDocTag(jsdocContent, '@discoverable');\n return !!(tags.fullPath && tags.service && tags.domain && discoverableTag === 'true');\n }\n\n /**\n * Extract description from JSDoc content\n */\n private extractDescription(jsdocContent: string): string {\n const descriptionMatch = jsdocContent.match(/^\\s*\\*\\s*([^@].*?)(?:\\n|$)/m);\n return descriptionMatch ? descriptionMatch[1].trim() : '';\n }\n\n /**\n * Extract a single JSDoc tag value\n */\n private extractJSDocTag(jsdocContent: string, tag: string): string | null {\n const regex = new RegExp(`${tag}\\\\s+(.+?)(?:\\\\n|$)`, 'i');\n const match = jsdocContent.match(regex);\n return match ? match[1].trim() : null;\n }\n\n /**\n * Extract an array JSDoc tag value (e.g., @searchTerms [\"term1\", \"term2\"])\n */\n private extractJSDocArrayTag(jsdocContent: string, tag: string): string[] {\n const regex = new RegExp(`${tag}\\\\s+\\\\[([^\\\\]]+)\\\\]`, 'i');\n const match = jsdocContent.match(regex);\n if (!match) return [];\n\n try {\n // Parse the array content\n const arrayContent = `[${match[1]}]`;\n return JSON.parse(arrayContent);\n } catch {\n return [];\n }\n }\n\n /**\n * Infer HTTP method and path from method implementation\n */\n private inferMethodDetails(\n methodName: string,\n methodSource: string\n ): { method: string; path: string } {\n // Look for executeRequest calls in the method source\n const executeRequestMatch = methodSource.match(\n /executeRequest\\s*\\(\\s*\\{[^}]*method:\\s*['\"](\\w+)['\"][^}]*path:\\s*['\"]([^'\"]+)['\"]/\n );\n\n if (executeRequestMatch) {\n return {\n method: executeRequestMatch[1],\n path: executeRequestMatch[2],\n };\n }\n\n // Fallback: infer from method name patterns\n if (\n methodName.startsWith('list') ||\n methodName.startsWith('get') ||\n methodName.startsWith('search')\n ) {\n return { method: 'GET', path: `/${methodName}` };\n } else if (methodName.startsWith('create')) {\n return { method: 'POST', path: `/${methodName}` };\n } else if (methodName.startsWith('update')) {\n return { method: 'PUT', path: `/${methodName}` };\n } else if (methodName.startsWith('delete')) {\n return { method: 'DELETE', path: `/${methodName}` };\n }\n\n return { method: 'GET', path: `/${methodName}` };\n }\n\n /**\n * Get service description - can be overridden by subclasses\n */\n protected getServiceDescription(): string {\n return `${this.serviceName} service client for Augur API`;\n }\n}\n","/**\n * Runtime service proxy — creates a typed client from endpoint spec data.\n *\n * Instead of hand-writing resource files, the proxy dynamically routes\n * method calls to the correct API endpoint using the merged spec.\n *\n * The proxy calls through executeRequest (BaseServiceClient) to preserve:\n * - Valibot param/response validation\n * - Error handling\n * - Test spy compatibility (tests spy on executeRequest)\n *\n * @example\n * ```typescript\n * const proxy = createServiceProxy('items', boundExecuteRequest, endpoints);\n * const doc = await proxy.invMast.doc.get(0, { itemId: 'WAFL112' });\n * ```\n */\n\nimport * as v from 'valibot';\nimport type { HTTPMethod } from './base-client';\nimport type { EndpointDef } from '../services/items/generated/endpoints';\n// chainToPath is available for the reverse mapping (used by the proxy at runtime)\n// Currently the proxy passes the path template to executeRequest which handles substitution\n\n/**\n * The executeRequest function signature from BaseServiceClient.\n * Resource factories receive this as a bound function.\n */\ntype ExecuteRequestFn = <TParams = unknown, TResponse = unknown>(\n config: {\n method: HTTPMethod;\n path: string;\n paramsSchema?: v.GenericSchema;\n responseSchema: v.GenericSchema;\n },\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n) => Promise<TResponse>;\n\n/** Generic passthrough response schema — accepts any API response shape.\n * Runtime validation is lenient: data accepts any shape.\n * Typed responses are compile-time only (via generated interfaces in types.ts). */\nconst PassthroughResponseSchema = v.looseObject({\n count: v.number(),\n data: v.unknown(),\n message: v.string(),\n options: v.unknown(),\n params: v.unknown(),\n status: v.number(),\n total: v.number(),\n totalResults: v.number(),\n});\n\n/** Generic passthrough params schema — accepts any params */\nconst PassthroughParamsSchema = v.looseObject({});\n\n/** Trie node for endpoint lookup */\ninterface EndpointNode {\n actions: Map<string, EndpointDef>;\n children: Map<string, EndpointNode>;\n}\n\n/**\n * Build a trie from endpoint definitions for fast chain → endpoint lookup.\n */\nfunction buildEndpointTrie(endpoints: EndpointDef[]): EndpointNode {\n const root: EndpointNode = { actions: new Map(), children: new Map() };\n\n for (const ep of endpoints) {\n const parts = ep.chain.split('.');\n let node = root;\n\n for (const part of parts) {\n if (!node.children.has(part)) {\n node.children.set(part, { actions: new Map(), children: new Map() });\n }\n node = node.children.get(part)!;\n }\n\n node.actions.set(ep.action, ep);\n for (const alias of ep.aliases) {\n node.actions.set(alias, ep);\n }\n }\n\n return root;\n}\n\n/**\n * Create a proxy-based resource tree from endpoint definitions.\n *\n * @param serviceName - Service name for error messages\n * @param executeRequest - Bound executeRequest from BaseServiceClient\n * @param endpoints - Endpoint definitions from the generated spec\n */\nexport function createServiceProxy<T>(\n serviceName: string,\n executeRequest: ExecuteRequestFn,\n endpoints: EndpointDef[]\n): T {\n const trie = buildEndpointTrie(endpoints);\n return createNodeObject(serviceName, executeRequest, trie) as T;\n}\n\n/**\n * Build a real object from a trie node.\n *\n * Uses a plain object (not Proxy) so jest.spyOn works on methods.\n * Methods are materialized as stable properties.\n */\nfunction createNodeObject(\n serviceName: string,\n executeRequest: ExecuteRequestFn,\n node: EndpointNode\n): Record<string, unknown> {\n const obj: Record<string, unknown> = {};\n\n // Materialize action methods\n for (const [action, endpoint] of node.actions.entries()) {\n obj[action] = createActionFunction(serviceName, executeRequest, endpoint);\n }\n\n // Recurse into children\n for (const [childName, childNode] of node.children.entries()) {\n obj[childName] = createNodeObject(serviceName, executeRequest, childNode);\n }\n\n return obj;\n}\n\n/** Consume leading positional args as path params, returning the trailing rest. */\nfunction splitPathArgs(\n pathParams: string[],\n args: unknown[]\n): { pathParamMap: Record<string, string>; rest: unknown[] } {\n const pathParamMap: Record<string, string> = {};\n let index = 0;\n for (const name of pathParams) {\n if (index >= args.length) {\n break;\n }\n pathParamMap[name] = String(args[index]);\n index++;\n }\n return { pathParamMap, rest: args.slice(index) };\n}\n\n/**\n * Decide which trailing arg is the request body and which is the query string.\n *\n * GET has no body, so its trailing arg is the query. POST/PUT take the body\n * first and the query second — the API declares query params on write methods\n * too, and folding them into the body would send them to the wrong place.\n * DELETE has no body either, so its trailing arg is the query; it used to be\n * accepted as `params` and then dropped on the floor.\n */\nfunction splitBodyAndQuery(method: HTTPMethod, rest: unknown[]): { body: unknown; query: unknown } {\n if (method === 'POST' || method === 'PUT') {\n return { body: rest[0], query: rest[1] };\n }\n if (method === 'DELETE') {\n return { body: undefined, query: rest[0] };\n }\n return { body: rest[0], query: undefined };\n}\n\n/**\n * Accept legacy snake_case query-param keys and send them under the camelCase\n * name the API expects.\n *\n * Four services (commerce, basecamp2, p21-apis, p21-pim) shipped generated\n * types declaring snake_case params — `cart_hdr_uid` rather than `cartHdrUid`.\n * The client sends keys verbatim, so those params never reached the API and\n * the filters they were meant to apply silently did nothing.\n *\n * Correcting the names alone would break every call site written against the\n * old types. This bridge keeps both spellings working: a snake_case key is\n * renamed only when its camelCase form is a param the endpoint actually\n * declares, so unrelated keys pass through untouched. An explicit camelCase\n * value always wins over a snake_case duplicate.\n *\n * Deprecation path: once consumers are on camelCase, delete this function and\n * its call sites — nothing else depends on it.\n */\nexport function normaliseLegacyParamCase(params: unknown, declared: string[]): unknown {\n if (!params || typeof params !== 'object' || Array.isArray(params) || declared.length === 0) {\n return params;\n }\n\n const source = params as Record<string, unknown>;\n const wanted = new Set(declared);\n // Spread rather than copying key-by-key: `out[key] = value` would invoke the\n // `__proto__` setter for a caller-supplied `__proto__` key, mutating the\n // prototype instead of copying a property. Params can originate from a user\n // query string in a server action, so that key is reachable. Spread always\n // creates own properties, leaving a hostile key inert.\n const out: Record<string, unknown> = { ...source };\n let renamed = false;\n\n for (const [key, value] of Object.entries(source)) {\n const camel = key.replace(/_([a-z0-9])/g, (_m, c: string) => c.toUpperCase());\n if (camel === key || !wanted.has(camel)) {\n continue;\n }\n // A legacy alias for a declared param. Rename it — unless the caller also\n // supplied the camelCase key, in which case that value wins and the legacy\n // duplicate is dropped rather than sent alongside it.\n renamed = true;\n delete out[key];\n if (!(camel in source)) {\n out[camel] = value;\n }\n }\n\n return renamed ? out : params;\n}\n\n/**\n * Create the callable function for an endpoint action.\n *\n * Constructs an EndpointConfig and calls executeRequest — same as\n * hand-written resource files do, but automated from the spec.\n */\nfunction createActionFunction(\n _serviceName: string,\n executeRequest: ExecuteRequestFn,\n endpoint: EndpointDef\n): (...args: unknown[]) => Promise<unknown> {\n const { method, path, pathParams } = endpoint;\n\n return async (...args: unknown[]): Promise<unknown> => {\n const { pathParamMap, rest } = splitPathArgs(pathParams, args);\n const { body, query: trailing } = splitBodyAndQuery(method as HTTPMethod, rest);\n\n // Build the EndpointConfig\n // Include paramsSchema only when endpoint has explicit query params\n // (matches hand-written resource pattern — edgeCache alone doesn't add paramsSchema)\n const hasQueryParams = endpoint.queryParams.length > 0;\n // Only forward a query string for endpoints whose spec declares one. The\n // generated signatures don't expose a params arg otherwise, so anything\n // trailing there is not a documented param and must not reach the wire.\n const query = normaliseLegacyParamCase(\n hasQueryParams ? trailing : undefined,\n endpoint.queryParams\n );\n // On GET the `params` slot IS the query string, so legacy keys are renamed\n // there too. On POST/PUT that slot is the request body and MUST be left\n // exactly as the caller supplied it.\n const wireParams = (value: unknown): unknown =>\n method === 'GET' ? normaliseLegacyParamCase(value, endpoint.queryParams) : value;\n const config = {\n method: method as HTTPMethod,\n path,\n ...(hasQueryParams ? { paramsSchema: PassthroughParamsSchema } : {}),\n responseSchema: PassthroughResponseSchema,\n };\n\n // Call executeRequest — match hand-written resource call patterns exactly:\n // With path params: (config, params, pathParams) — always 3 args\n // With query params defined: (config, params) — always 2 args, even if params undefined\n // No params at all: (config) — 1 arg\n // The trailing `query` arg is passed only when present, so call arity is\n // unchanged for the vast majority of endpoints that have no write-method\n // query params.\n if (Object.keys(pathParamMap).length > 0) {\n // Match hand-written patterns:\n // - Endpoints with query params: pass undefined when no params (doc.list pattern)\n // - Endpoints without query params: pass {} when no params (get pattern)\n const params = wireParams(hasQueryParams ? body : (body ?? {}));\n return query === undefined\n ? executeRequest(config, params, pathParamMap)\n : executeRequest(config, params, pathParamMap, query);\n }\n if (hasQueryParams || body !== undefined) {\n return query === undefined\n ? executeRequest(config, wireParams(body))\n : executeRequest(config, wireParams(body), undefined, query);\n }\n // Reached only when the endpoint declares no query params and no body was\n // supplied, so `query` is undefined by construction.\n return executeRequest(config);\n };\n}\n\n/**\n * Create a data-only wrapper that unwraps .data from every response.\n *\n * Reads the source function at CALL TIME (not construction time) so that\n * jest.spyOn on the source object works correctly — the spy replaces the\n * property on the source, and the data proxy picks up the spy'd version.\n */\nexport function createDataProxy<T>(resource: T): T {\n const obj: Record<string, unknown> = {};\n const src = resource as Record<string, unknown>;\n\n for (const key of Object.keys(src)) {\n const value = src[key];\n\n if (typeof value === 'function') {\n // Read from src[key] at call time, not value at construction time\n const propKey = key;\n obj[key] = async (...args: unknown[]) => {\n const fn = src[propKey] as (...a: unknown[]) => Promise<unknown>;\n const response = (await fn(...args)) as { data?: unknown };\n return response?.data;\n };\n } else if (value && typeof value === 'object') {\n obj[key] = createDataProxy(value);\n } else {\n obj[key] = value;\n }\n }\n\n return obj as T;\n}\n","/**\n * Generated Valibot schemas for joomla service\n * Source: shared/specs/joomla.json\n * Generated: 2026-09-28T15:25:34Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /action-logs params */\nexport const ActionLogsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n extension: v.optional(v.string()),\n itemId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n userId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /categories params */\nexport const CategoriesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n extension: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n parentId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n published: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /content params */\nexport const ContentListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n categoryIdList: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n tagsList: v.optional(v.string()),\n});\n\n/** Schema for GET /content/{id} params */\nexport const ContentGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n alias: v.optional(v.string()),\n catid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /content/{id}/doc params */\nexport const ContentDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n alias: v.optional(v.string()),\n catid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /menu params */\nexport const MenuListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n menutype: v.optional(v.string()),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n parentId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n published: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /menu/{id}/doc params */\nexport const MenuDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n alias: v.optional(v.string()),\n});\n\n/** Schema for GET /modules params */\nexport const ModulesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n menuId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n module: v.optional(v.string()),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n position: v.optional(v.string()),\n published: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /modules/{id} params */\nexport const ModulesGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n normalize: v.optional(v.string()),\n});\n\n/** Schema for GET /tags params */\nexport const TagsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n catId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n parentId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /usergroups params */\nexport const UsergroupsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n orderBy: v.optional(v.string()),\n parentIdList: v.optional(v.string()),\n});\n\n/** Schema for GET /users params */\nexport const UsersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n accessLevelList: v.optional(v.string()),\n blocked: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n contactId: v.optional(v.string()),\n customerId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n hasContactId: v.optional(v.string()),\n hasCustomerId: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for POST /users params */\nexport const UsersCreateParamsSchema = v.looseObject({\n accessLevelList: v.optional(v.string()),\n customerId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /users/{id}/doc params */\nexport const UsersDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n includeShipTo: v.optional(v.string()),\n});\n\n/** Schema for GET /users/{id}/groups params */\nexport const UsersGroupsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /users/{id}/trinity params */\nexport const UsersTrinityListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const ActionLogsDataSchema = v.looseObject({\n id: v.optional(v.number()),\n messageLanguageKey: v.optional(v.string()),\n message: v.optional(v.string()),\n logDate: v.optional(v.string()),\n extension: v.optional(v.string()),\n userId: v.optional(v.number()),\n itemId: v.optional(v.number()),\n ipAddress: v.optional(v.string()),\n});\n\nexport const ModulesDataSchema = v.looseObject({\n id: v.optional(v.number()),\n assetId: v.optional(v.number()),\n title: v.optional(v.string()),\n note: v.optional(v.string()),\n content: v.optional(v.nullable(v.string())),\n ordering: v.optional(v.number()),\n position: v.optional(v.string()),\n checkedOut: v.optional(v.number()),\n checkedOutTime: v.optional(v.string()),\n publishUp: v.optional(v.string()),\n publishDown: v.optional(v.string()),\n published: v.optional(v.number()),\n module: v.optional(v.nullable(v.string())),\n access: v.optional(v.number()),\n showtitle: v.optional(v.number()),\n params: v.optional(v.string()),\n clientId: v.optional(v.number()),\n language: v.optional(v.string()),\n});\n\nexport const UsersVerifyPasswordDataSchema = v.looseObject({\n id: v.optional(v.number()),\n isVerified: v.optional(v.boolean()),\n username: v.optional(v.string()),\n token: v.optional(v.string()),\n email: v.optional(v.string()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for joomla service\n * Source: shared/specs/joomla.json\n * Generated: 2026-09-28T15:25:34Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n ActionLogsDataSchema,\n ModulesDataSchema,\n UsersVerifyPasswordDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/action-logs',\n chain: 'actionLogs',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['extension', 'itemId', 'limit', 'offset', 'orderBy', 'userId'],\n edgeCache: true,\n responseSchema: ActionLogsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/action-logs/{id}',\n chain: 'actionLogs',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ActionLogsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/categories',\n chain: 'categories',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['extension', 'limit', 'offset', 'orderBy', 'parentId', 'published'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{id}',\n chain: 'categories',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/content',\n chain: 'content',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['categoryIdList', 'limit', 'offset', 'orderBy', 'q', 'tagsList'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/content/{id}',\n chain: 'content',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['alias', 'catid'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/content/{id}/doc',\n chain: 'content.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['id'],\n queryParams: ['alias', 'catid'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/menu',\n chain: 'menu',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'menutype', 'offset', 'orderBy', 'parentId', 'published'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/menu/{id}/doc',\n chain: 'menu.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['id'],\n queryParams: ['alias'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/modules',\n chain: 'modules',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'menuId', 'module', 'offset', 'orderBy', 'position', 'published', 'q'],\n edgeCache: true,\n responseSchema: ModulesDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/modules/{id}',\n chain: 'modules',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['normalize'],\n edgeCache: true,\n responseSchema: ModulesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/tags',\n chain: 'tags',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['catId', 'limit', 'offset', 'orderBy', 'parentId', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/usergroups',\n chain: 'usergroups',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['orderBy', 'parentIdList'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/users',\n chain: 'users',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'accessLevelList',\n 'blocked',\n 'contactId',\n 'customerId',\n 'hasContactId',\n 'hasCustomerId',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/users',\n chain: 'users',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['accessLevelList', 'customerId', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/users/verify-password',\n chain: 'users.verifyPassword',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersVerifyPasswordDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{id}',\n chain: 'users',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/users/{id}',\n chain: 'users',\n action: 'update',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/users/{id}',\n chain: 'users',\n action: 'delete',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/users/{id}/doc',\n chain: 'users.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['id'],\n queryParams: ['includeShipTo'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/users/{id}/groups',\n chain: 'users.groups',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/users/{id}/groups',\n chain: 'users.groups',\n action: 'create',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/users/{id}/groups/{groupId}',\n chain: 'users.groups',\n action: 'get',\n aliases: [],\n pathParams: ['id', 'groupId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/users/{id}/groups/{groupId}',\n chain: 'users.groups',\n action: 'delete',\n aliases: [],\n pathParams: ['id', 'groupId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/users/{id}/trinity',\n chain: 'users.trinity',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for joomla service\n * Source: shared/specs/joomla.json\n * Generated: 2026-09-28T15:25:34Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { JoomlaClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class JoomlaClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly actionLogs: JoomlaClientSpec['actionLogs'];\n readonly categories: JoomlaClientSpec['categories'];\n readonly content: JoomlaClientSpec['content'];\n readonly menu: JoomlaClientSpec['menu'];\n readonly modules: JoomlaClientSpec['modules'];\n readonly tags: JoomlaClientSpec['tags'];\n readonly usergroups: JoomlaClientSpec['usergroups'];\n readonly users: JoomlaClientSpec['users'];\n\n // Data-only resources (unwrap .data from every response)\n readonly actionLogsData: JoomlaClientSpec['actionLogs'];\n readonly categoriesData: JoomlaClientSpec['categories'];\n readonly contentData: JoomlaClientSpec['content'];\n readonly menuData: JoomlaClientSpec['menu'];\n readonly modulesData: JoomlaClientSpec['modules'];\n readonly tagsData: JoomlaClientSpec['tags'];\n readonly usergroupsData: JoomlaClientSpec['usergroups'];\n readonly usersData: JoomlaClientSpec['users'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://joomla.augur-api.com') {\n super('joomla', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<JoomlaClientSpec>('joomla', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.actionLogs = proxy.actionLogs;\n this.categories = proxy.categories;\n this.content = proxy.content;\n this.menu = proxy.menu;\n this.modules = proxy.modules;\n this.tags = proxy.tags;\n this.usergroups = proxy.usergroups;\n this.users = proxy.users;\n\n // Wire data proxy resources\n this.actionLogsData = dataProxy.actionLogs;\n this.categoriesData = dataProxy.categories;\n this.contentData = dataProxy.content;\n this.menuData = dataProxy.menu;\n this.modulesData = dataProxy.modules;\n this.tagsData = dataProxy.tags;\n this.usergroupsData = dataProxy.usergroups;\n this.usersData = dataProxy.users;\n }\n\n protected getServiceDescription(): string {\n return 'Joomla CMS integration syncing content, users, categories, menus, and extensions';\n }\n}\n","/**\n * Generated Valibot schemas for commerce service\n * Source: shared/specs/commerce.json\n * Generated: 2026-09-23T23:29:51Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /cart-hdr/list params */\nexport const CartHdrListListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n userId: v.pipe(v.unknown(), v.transform(Number)),\n});\n\n/** Schema for GET /cart-hdr/lookup params */\nexport const CartHdrLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cartToken: v.optional(v.string()),\n contactId: v.pipe(v.unknown(), v.transform(Number)),\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n userCartNo: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n userId: v.pipe(v.unknown(), v.transform(Number)),\n});\n\n/** Schema for GET /cart-hdr/{cartHdrUid}/also-bought params */\nexport const CartHdrAlsoBoughtListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /checkout/{checkoutUid}/doc params */\nexport const CheckoutDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cartHdrUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for commerce service\n * Source: shared/specs/commerce.json\n * Generated: 2026-09-23T23:29:51Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/cart-hdr/list',\n chain: 'cartHdr.list',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['userId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/cart-hdr/lookup',\n chain: 'cartHdr.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['cartToken', 'contactId', 'customerId', 'userCartNo', 'userId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/cart-hdr/{cartHdrUid}/also-bought',\n chain: 'cartHdr.alsoBought',\n action: 'list',\n aliases: [],\n pathParams: ['cartHdrUid'],\n queryParams: ['limit', 'offset'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/cart-line/{cartHdrUid}',\n chain: 'cartLine',\n action: 'get',\n aliases: [],\n pathParams: ['cartHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/cart-line/{cartHdrUid}',\n chain: 'cartLine',\n action: 'delete',\n aliases: [],\n pathParams: ['cartHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/cart-line/{cartHdrUid}/add',\n chain: 'cartLine.add',\n action: 'create',\n aliases: [],\n pathParams: ['cartHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/cart-line/{cartHdrUid}/lines/{lineNo}',\n chain: 'cartLine.lines',\n action: 'delete',\n aliases: [],\n pathParams: ['cartHdrUid', 'lineNo'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/cart-line/{cartHdrUid}/update',\n chain: 'cartLine.update',\n action: 'create',\n aliases: [],\n pathParams: ['cartHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/checkout',\n chain: 'checkout',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/checkout/{checkoutUid}',\n chain: 'checkout',\n action: 'get',\n aliases: [],\n pathParams: ['checkoutUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/checkout/{checkoutUid}/activate',\n chain: 'checkout.activate',\n action: 'update',\n aliases: [],\n pathParams: ['checkoutUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/checkout/{checkoutUid}/doc',\n chain: 'checkout.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['checkoutUid'],\n queryParams: ['cartHdrUid'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/checkout/{checkoutUid}/prophet21-hdr',\n chain: 'checkout.prophet21Hdr',\n action: 'create',\n aliases: [],\n pathParams: ['checkoutUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/checkout/{checkoutUid}/prophet21-hdr/{prophet21HdrUid}/prophet21-line',\n chain: 'checkout.prophet21Hdr.prophet21Line',\n action: 'create',\n aliases: [],\n pathParams: ['checkoutUid', 'prophet21HdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/checkout/{checkoutUid}/validate',\n chain: 'checkout.validate',\n action: 'update',\n aliases: [],\n pathParams: ['checkoutUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for commerce service\n * Source: shared/specs/commerce.json\n * Generated: 2026-09-23T23:29:51Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { CommerceClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class CommerceClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly cartHdr: CommerceClientSpec['cartHdr'];\n readonly cartLine: CommerceClientSpec['cartLine'];\n readonly checkout: CommerceClientSpec['checkout'];\n\n // Data-only resources (unwrap .data from every response)\n readonly cartHdrData: CommerceClientSpec['cartHdr'];\n readonly cartLineData: CommerceClientSpec['cartLine'];\n readonly checkoutData: CommerceClientSpec['checkout'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://commerce.augur-api.com') {\n super('commerce', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<CommerceClientSpec>(\n 'commerce',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.cartHdr = proxy.cartHdr;\n this.cartLine = proxy.cartLine;\n this.checkout = proxy.checkout;\n\n // Wire data proxy resources\n this.cartHdrData = dataProxy.cartHdr;\n this.cartLineData = dataProxy.cartLine;\n this.checkoutData = dataProxy.checkout;\n }\n\n protected getServiceDescription(): string {\n return 'Shopping cart and checkout engine managing cart state, checkout flow, and Prophet 21 order submission';\n }\n}\n","/**\n * Generated Valibot schemas for pricing service\n * Source: shared/specs/pricing.json\n * Generated: 2026-09-28T15:25:45Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /job-price-hdr params */\nexport const JobPriceHdrListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /job-price-hdr/{jobPriceHdrUid}/lines params */\nexport const JobPriceHdrLinesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /price-engine params */\nexport const PriceEngineListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheSiteId: v.optional(v.string()),\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n cartItems: v.optional(v.string()),\n companyId: v.optional(v.string()),\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n itemId: v.string(),\n quantity: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n shipToId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n unitOfMeasure: v.optional(v.string()),\n});\n\n/** Schema for GET /web-pricing params */\nexport const WebPricingListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /web-pricing/{webPricingUid}/customers params */\nexport const WebPricingCustomersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const JobPriceHdrDataSchema = v.looseObject({\n jobPriceHdrUid: v.optional(v.number()),\n jobNo: v.optional(v.string()),\n jobDescription: v.optional(v.nullable(v.string())),\n companyId: v.optional(v.string()),\n customerId: v.optional(v.nullable(v.number())),\n salesLocId: v.optional(v.nullable(v.number())),\n contractNo: v.optional(v.nullable(v.string())),\n contactId: v.optional(v.nullable(v.string())),\n startDate: v.optional(v.string()),\n endDate: v.optional(v.string()),\n shipToId: v.optional(v.nullable(v.number())),\n approved: v.optional(v.nullable(v.string())),\n cancelled: v.optional(v.nullable(v.string())),\n taker: v.optional(v.string()),\n poNo: v.optional(v.nullable(v.string())),\n rowStatusFlag: v.optional(v.number()),\n dateLastModified: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n corpAddressId: v.optional(v.nullable(v.number())),\n salesrepId: v.optional(v.nullable(v.string())),\n currencyLineUid: v.optional(v.nullable(v.number())),\n currencyConversion: v.optional(v.string()),\n consignmentFlag: v.optional(v.string()),\n contractTypeCd: v.optional(v.number()),\n extendedDesc: v.optional(v.nullable(v.string())),\n noOfPeriods: v.optional(v.nullable(v.number())),\n cadChaContractCd: v.optional(v.nullable(v.number())),\n cadChaSupplierId: v.optional(v.nullable(v.number())),\n cadChaQuoteNo: v.optional(v.nullable(v.string())),\n cadChaLocationId: v.optional(v.nullable(v.number())),\n anniversaryDate: v.optional(v.nullable(v.string())),\n useTotesFlag: v.optional(v.nullable(v.string())),\n handHeldAddFlag: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n});\n\nexport const JobPriceHdrLinesDataSchema = v.looseObject({\n jobPriceLineUid: v.optional(v.number()),\n jobPriceHdrUid: v.optional(v.number()),\n invMastUid: v.optional(v.nullable(v.number())),\n uom: v.optional(v.nullable(v.string())),\n unitSize: v.optional(v.nullable(v.number())),\n pricingMethod: v.optional(v.nullable(v.number())),\n sourcePrice: v.optional(v.nullable(v.number())),\n price: v.optional(v.nullable(v.number())),\n qtyOrdered: v.optional(v.nullable(v.number())),\n qtyMaximum: v.optional(v.nullable(v.number())),\n otherCostTypeCd: v.optional(v.nullable(v.number())),\n otherCostValue: v.optional(v.nullable(v.number())),\n otherCostSourceCd: v.optional(v.nullable(v.number())),\n otherCostCalcMethodCd: v.optional(v.nullable(v.number())),\n otherCostCalcValue: v.optional(v.nullable(v.number())),\n commissionCostTypeCd: v.optional(v.nullable(v.number())),\n commissionCostValue: v.optional(v.nullable(v.number())),\n commissionCostSourceCd: v.optional(v.nullable(v.number())),\n commissionCostCalcMethodCd: v.optional(v.nullable(v.number())),\n commissionCostCalcValue: v.optional(v.nullable(v.number())),\n rowStatusFlag: v.optional(v.number()),\n dateLastModified: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n multiplier: v.optional(v.nullable(v.number())),\n lineNo: v.optional(v.number()),\n sourceLocationId: v.optional(v.nullable(v.number())),\n customerPartNo: v.optional(v.nullable(v.string())),\n expirationDate: v.optional(v.nullable(v.string())),\n vendorAuthNo: v.optional(v.nullable(v.string())),\n poCost: v.optional(v.nullable(v.number())),\n currencyId: v.optional(v.nullable(v.number())),\n discountGroupId: v.optional(v.nullable(v.string())),\n custPoNo: v.optional(v.nullable(v.string())),\n itemCategoryUid: v.optional(v.nullable(v.number())),\n subCategoryUid: v.optional(v.nullable(v.number())),\n productGroupId: v.optional(v.nullable(v.string())),\n terminalId: v.optional(v.nullable(v.number())),\n contractLineCostPageUid: v.optional(v.nullable(v.number())),\n contractLinePricePageUid: v.optional(v.nullable(v.number())),\n budgetCd: v.optional(v.nullable(v.string())),\n itemRevisionUid: v.optional(v.nullable(v.number())),\n lineStartDate: v.optional(v.nullable(v.string())),\n initialCommitmentAmount: v.optional(v.nullable(v.number())),\n commitmentAmount: v.optional(v.nullable(v.number())),\n totalCommitmentAmount: v.optional(v.nullable(v.number())),\n pickFee: v.optional(v.nullable(v.number())),\n cadPurchaseCost: v.optional(v.nullable(v.number())),\n startingVirtualInventoryQty: v.optional(v.nullable(v.number())),\n snapshotCost: v.optional(v.nullable(v.number())),\n minimumMccCode: v.optional(v.nullable(v.string())),\n commissionClassId: v.optional(v.nullable(v.string())),\n commissionOverridePercent: v.optional(v.nullable(v.number())),\n updateCd: v.optional(v.number()),\n});\n\nexport const PriceEngineDataSchema = v.looseObject({\n unitPrice: v.optional(v.number()),\n pricedFrom: v.optional(v.string()),\n priceType: v.optional(v.string()),\n jobPrice: v.optional(v.number()),\n listPrice: v.optional(v.number()),\n customer: v.optional(v.string()),\n item: v.optional(v.string()),\n options: v.optional(v.string()),\n messages: v.optional(v.string()),\n jobNo: v.optional(v.nullable(v.string())),\n jobPriceHdrUid: v.optional(v.nullable(v.number())),\n contractNo: v.optional(v.nullable(v.string())),\n libraryPriceData: v.optional(v.string()),\n defaultCompanyPrice: v.optional(v.string()),\n webPrice: v.optional(v.number()),\n});\n\nexport const TaxEngineDataSchema = v.looseObject({\n taxEstimate: v.optional(v.number()),\n customerId: v.optional(v.number()),\n postalCode: v.optional(v.string()),\n taxRate: v.optional(v.number()),\n items: v.optional(v.string()),\n});\n\nexport const WebPricingDataSchema = v.looseObject({\n webPricingUid: v.optional(v.number()),\n name: v.optional(v.string()),\n description: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n statusCd: v.optional(v.number()),\n updateCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n sequenceNo: v.optional(v.number()),\n customerMode: v.optional(v.string()),\n minQty: v.optional(v.nullable(v.number())),\n maxQty: v.optional(v.nullable(v.number())),\n discountPct: v.optional(v.number()),\n effectiveDate: v.optional(v.nullable(v.string())),\n expirationDate: v.optional(v.nullable(v.string())),\n});\n\nexport const WebPricingCustomersDataSchema = v.looseObject({\n webPricingXCustomerUid: v.optional(v.number()),\n webPricingUid: v.optional(v.number()),\n customerId: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n statusCd: v.optional(v.number()),\n updateCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for pricing service\n * Source: shared/specs/pricing.json\n * Generated: 2026-09-28T15:25:45Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n JobPriceHdrDataSchema,\n JobPriceHdrLinesDataSchema,\n PriceEngineDataSchema,\n TaxEngineDataSchema,\n WebPricingCustomersDataSchema,\n WebPricingDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/job-price-hdr',\n chain: 'jobPriceHdr',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: JobPriceHdrDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/job-price-hdr/{jobPriceHdrUid}',\n chain: 'jobPriceHdr',\n action: 'get',\n aliases: [],\n pathParams: ['jobPriceHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: JobPriceHdrDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/job-price-hdr/{jobPriceHdrUid}/lines',\n chain: 'jobPriceHdr.lines',\n action: 'list',\n aliases: [],\n pathParams: ['jobPriceHdrUid'],\n queryParams: ['invMastUid', 'limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: JobPriceHdrLinesDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/job-price-hdr/{jobPriceHdrUid}/lines/{jobPriceLineUid}',\n chain: 'jobPriceHdr.lines',\n action: 'get',\n aliases: [],\n pathParams: ['jobPriceHdrUid', 'jobPriceLineUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: JobPriceHdrLinesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/price-engine',\n chain: 'priceEngine',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'cacheSiteId',\n 'cacheTtl',\n 'cartItems',\n 'companyId',\n 'customerId',\n 'itemId',\n 'quantity',\n 'shipToId',\n 'unitOfMeasure',\n ],\n edgeCache: true,\n responseSchema: PriceEngineDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/price-engine',\n chain: 'priceEngine',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/tax-engine',\n chain: 'taxEngine',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: TaxEngineDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/web-pricing',\n chain: 'webPricing',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: WebPricingDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/web-pricing',\n chain: 'webPricing',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/web-pricing/{webPricingUid}',\n chain: 'webPricing',\n action: 'get',\n aliases: [],\n pathParams: ['webPricingUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: WebPricingDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/web-pricing/{webPricingUid}',\n chain: 'webPricing',\n action: 'update',\n aliases: [],\n pathParams: ['webPricingUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/web-pricing/{webPricingUid}',\n chain: 'webPricing',\n action: 'delete',\n aliases: [],\n pathParams: ['webPricingUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/web-pricing/{webPricingUid}/customers',\n chain: 'webPricing.customers',\n action: 'list',\n aliases: [],\n pathParams: ['webPricingUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: WebPricingCustomersDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/web-pricing/{webPricingUid}/customers',\n chain: 'webPricing.customers',\n action: 'create',\n aliases: [],\n pathParams: ['webPricingUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingCustomersDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/web-pricing/{webPricingUid}/customers/{customerId}',\n chain: 'webPricing.customers',\n action: 'get',\n aliases: [],\n pathParams: ['webPricingUid', 'customerId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: WebPricingCustomersDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/web-pricing/{webPricingUid}/customers/{customerId}',\n chain: 'webPricing.customers',\n action: 'update',\n aliases: [],\n pathParams: ['webPricingUid', 'customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingCustomersDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/web-pricing/{webPricingUid}/customers/{customerId}',\n chain: 'webPricing.customers',\n action: 'delete',\n aliases: [],\n pathParams: ['webPricingUid', 'customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingCustomersDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated client for pricing service\n * Source: shared/specs/pricing.json\n * Generated: 2026-09-28T15:25:45Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { PricingClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class PricingClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly jobPriceHdr: PricingClientSpec['jobPriceHdr'];\n readonly priceEngine: PricingClientSpec['priceEngine'];\n readonly taxEngine: PricingClientSpec['taxEngine'];\n readonly webPricing: PricingClientSpec['webPricing'];\n\n // Data-only resources (unwrap .data from every response)\n readonly jobPriceHdrData: PricingClientSpec['jobPriceHdr'];\n readonly priceEngineData: PricingClientSpec['priceEngine'];\n readonly taxEngineData: PricingClientSpec['taxEngine'];\n readonly webPricingData: PricingClientSpec['webPricing'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://pricing.augur-api.com') {\n super('pricing', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<PricingClientSpec>('pricing', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.jobPriceHdr = proxy.jobPriceHdr;\n this.priceEngine = proxy.priceEngine;\n this.taxEngine = proxy.taxEngine;\n this.webPricing = proxy.webPricing;\n\n // Wire data proxy resources\n this.jobPriceHdrData = dataProxy.jobPriceHdr;\n this.priceEngineData = dataProxy.priceEngine;\n this.taxEngineData = dataProxy.taxEngine;\n this.webPricingData = dataProxy.webPricing;\n }\n\n protected getServiceDescription(): string {\n return 'Pricing engine with 4-stage waterfall calculation, price books, tax groups, and customer-specific rules';\n }\n}\n","/**\n * Generated Valibot schemas for vmi service\n * Source: shared/specs/vmi.json\n * Generated: 2026-09-28T15:25:50Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /distributors params */\nexport const DistributorsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-profile-hdr params */\nexport const InvProfileHdrListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-profile-hdr/{invProfileHdrUid}/inv-profile-line params */\nexport const InvProfileHdrInvProfileLineListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /products params */\nexport const ProductsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n distributorsUid: v.pipe(v.unknown(), v.transform(Number)),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n prefix: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /products/find params */\nexport const ProductsFindListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n prefix: v.optional(v.string()),\n});\n\n/** Schema for GET /restock-hdr params */\nexport const RestockHdrListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n distributorsUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n warehouseUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /sections params */\nexport const SectionsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /warehouse params */\nexport const WarehouseListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n usersId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /warehouse/{warehouseUid}/availability params */\nexport const WarehouseAvailabilityListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n q: v.string(),\n});\n\n/** Schema for GET /warehouse/{warehouseUid}/replenish params */\nexport const WarehouseReplenishListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n distributorsUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /warehouse/{warehouseUid}/users params */\nexport const WarehouseUsersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCdList: v.optional(v.string()),\n});\n\n/** Schema for POST /warehouse/{warehouseUid}/users params */\nexport const WarehouseUsersCreateParamsSchema = v.looseObject({\n makePrimaryUser: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const DistributorsDataSchema = v.looseObject({\n distributorsUid: v.optional(v.number()),\n customerId: v.optional(v.number()),\n distributorsId: v.optional(v.string()),\n distributorsName: v.optional(v.string()),\n distributorsDesc: v.optional(v.string()),\n distributorsEmail: v.optional(v.string()),\n distributorsAccount: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const DistributorsProductsDataSchema = v.looseObject({\n productsUid: v.optional(v.number()),\n distributorsUid: v.optional(v.number()),\n productsId: v.optional(v.string()),\n productsDesc: v.optional(v.string()),\n defaultSellingUnit: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n upcOrEanId: v.optional(v.nullable(v.string())),\n imageUrl: v.optional(v.nullable(v.string())),\n partNumber: v.optional(v.nullable(v.string())),\n});\n\nexport const InvProfileHdrDataSchema = v.looseObject({\n invProfileHdrUid: v.optional(v.number()),\n invProfileHdrId: v.optional(v.string()),\n invProfileHdrDesc: v.optional(v.string()),\n customerId: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const InvProfileHdrInvProfileLineDataSchema = v.looseObject({\n invProfileLineUid: v.optional(v.number()),\n invProfileHdrUid: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n invProfileLineType: v.optional(v.string()),\n invProfileHdrMinQty: v.optional(v.number()),\n invProfileHdrMaxQty: v.optional(v.number()),\n invProfileHdrReorderQty: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n sectionsUid: v.optional(v.number()),\n keywords: v.optional(v.nullable(v.string())),\n});\n\nexport const RestockHdrDataSchema = v.looseObject({\n restockHdrUid: v.optional(v.number()),\n warehouseUid: v.optional(v.number()),\n distributorsUid: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n jsonData: v.optional(v.nullable(v.string())),\n processState: v.optional(v.string()),\n poNo: v.optional(v.nullable(v.string())),\n usersId: v.optional(v.number()),\n customerId: v.optional(v.number()),\n contactId: v.optional(v.nullable(v.string())),\n deliveryInstructions: v.optional(v.nullable(v.string())),\n});\n\nexport const SectionsDataSchema = v.looseObject({\n sectionsUid: v.optional(v.number()),\n customerId: v.optional(v.number()),\n sectionsId: v.optional(v.string()),\n sectionsName: v.optional(v.string()),\n sectionsDesc: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const WarehouseDataSchema = v.looseObject({\n warehouseUid: v.optional(v.number()),\n warehouseId: v.optional(v.string()),\n warehouseName: v.optional(v.string()),\n warehouseDesc: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n customerId: v.optional(v.number()),\n invProfileHdrUid: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for vmi service\n * Source: shared/specs/vmi.json\n * Generated: 2026-09-28T15:25:50Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n DistributorsDataSchema,\n DistributorsProductsDataSchema,\n InvProfileHdrDataSchema,\n InvProfileHdrInvProfileLineDataSchema,\n RestockHdrDataSchema,\n SectionsDataSchema,\n WarehouseDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/distributors',\n chain: 'distributors',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: DistributorsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/distributors',\n chain: 'distributors',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: DistributorsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/distributors/{distributorsUid}',\n chain: 'distributors',\n action: 'get',\n aliases: [],\n pathParams: ['distributorsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: DistributorsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/distributors/{distributorsUid}',\n chain: 'distributors',\n action: 'update',\n aliases: [],\n pathParams: ['distributorsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: DistributorsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/distributors/{distributorsUid}',\n chain: 'distributors',\n action: 'delete',\n aliases: [],\n pathParams: ['distributorsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: DistributorsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/distributors/{distributorsUid}/enable',\n chain: 'distributors.enable',\n action: 'update',\n aliases: [],\n pathParams: ['distributorsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/distributors/{distributorsUid}/products',\n chain: 'distributors.products',\n action: 'create',\n aliases: [],\n pathParams: ['distributorsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: DistributorsProductsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/inv-profile-hdr',\n chain: 'invProfileHdr',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/inv-profile-hdr',\n chain: 'invProfileHdr',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvProfileHdrDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/inv-profile-hdr/{customerId}/upload',\n chain: 'invProfileHdr.upload',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-profile-hdr/{invProfileHdrUid}',\n chain: 'invProfileHdr',\n action: 'get',\n aliases: [],\n pathParams: ['invProfileHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/inv-profile-hdr/{invProfileHdrUid}',\n chain: 'invProfileHdr',\n action: 'update',\n aliases: [],\n pathParams: ['invProfileHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvProfileHdrDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-profile-hdr/{invProfileHdrUid}',\n chain: 'invProfileHdr',\n action: 'delete',\n aliases: [],\n pathParams: ['invProfileHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-profile-hdr/{invProfileHdrUid}/inv-profile-line',\n chain: 'invProfileHdr.invProfileLine',\n action: 'list',\n aliases: [],\n pathParams: ['invProfileHdrUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: InvProfileHdrInvProfileLineDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-profile-hdr/{invProfileHdrUid}/inv-profile-line',\n chain: 'invProfileHdr.invProfileLine',\n action: 'create',\n aliases: [],\n pathParams: ['invProfileHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvProfileHdrInvProfileLineDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-profile-hdr/{invProfileHdrUid}/inv-profile-line/{invProfileLineUid}',\n chain: 'invProfileHdr.invProfileLine',\n action: 'get',\n aliases: [],\n pathParams: ['invProfileHdrUid', 'invProfileLineUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvProfileHdrInvProfileLineDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-profile-hdr/{invProfileHdrUid}/inv-profile-line/{invProfileLineUid}',\n chain: 'invProfileHdr.invProfileLine',\n action: 'update',\n aliases: [],\n pathParams: ['invProfileHdrUid', 'invProfileLineUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvProfileHdrInvProfileLineDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-profile-hdr/{invProfileHdrUid}/inv-profile-line/{invProfileLineUid}',\n chain: 'invProfileHdr.invProfileLine',\n action: 'delete',\n aliases: [],\n pathParams: ['invProfileHdrUid', 'invProfileLineUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvProfileHdrInvProfileLineDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/products',\n chain: 'products',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'customerId',\n 'distributorsUid',\n 'limit',\n 'offset',\n 'orderBy',\n 'prefix',\n 'q',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: DistributorsProductsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/products/find',\n chain: 'products.find',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'prefix'],\n edgeCache: true,\n responseSchema: DistributorsProductsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/products/{productsUid}',\n chain: 'products',\n action: 'get',\n aliases: [],\n pathParams: ['productsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: DistributorsProductsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/products/{productsUid}',\n chain: 'products',\n action: 'update',\n aliases: [],\n pathParams: ['productsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: DistributorsProductsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/products/{productsUid}',\n chain: 'products',\n action: 'delete',\n aliases: [],\n pathParams: ['productsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: DistributorsProductsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/products/{productsUid}/enable',\n chain: 'products.enable',\n action: 'update',\n aliases: [],\n pathParams: ['productsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: DistributorsProductsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/restock-hdr',\n chain: 'restockHdr',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['distributorsUid', 'limit', 'offset', 'orderBy', 'warehouseUid'],\n edgeCache: true,\n responseSchema: RestockHdrDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/restock-hdr',\n chain: 'restockHdr',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: RestockHdrDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/restock-hdr/{restockHdrUid}',\n chain: 'restockHdr',\n action: 'get',\n aliases: [],\n pathParams: ['restockHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: RestockHdrDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/restock-hdr/{restockHdrUid}',\n chain: 'restockHdr',\n action: 'update',\n aliases: [],\n pathParams: ['restockHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RestockHdrDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/restock-hdr/{restockHdrUid}',\n chain: 'restockHdr',\n action: 'delete',\n aliases: [],\n pathParams: ['restockHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RestockHdrDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/sections',\n chain: 'sections',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: SectionsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/sections',\n chain: 'sections',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: SectionsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/sections/{sectionsUid}',\n chain: 'sections',\n action: 'get',\n aliases: [],\n pathParams: ['sectionsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: SectionsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/sections/{sectionsUid}',\n chain: 'sections',\n action: 'update',\n aliases: [],\n pathParams: ['sectionsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: SectionsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/sections/{sectionsUid}',\n chain: 'sections',\n action: 'delete',\n aliases: [],\n pathParams: ['sectionsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: SectionsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/sections/{sectionsUid}/enable',\n chain: 'sections.enable',\n action: 'update',\n aliases: [],\n pathParams: ['sectionsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/warehouse',\n chain: 'warehouse',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'limit', 'offset', 'orderBy', 'q', 'statusCd', 'usersId'],\n edgeCache: true,\n responseSchema: WarehouseDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/warehouse',\n chain: 'warehouse',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: WarehouseDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/warehouse/{warehouseUid}',\n chain: 'warehouse',\n action: 'get',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: WarehouseDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/warehouse/{warehouseUid}',\n chain: 'warehouse',\n action: 'update',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WarehouseDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/warehouse/{warehouseUid}',\n chain: 'warehouse',\n action: 'delete',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WarehouseDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/adjust',\n chain: 'warehouse.adjust',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/warehouse/{warehouseUid}/availability',\n chain: 'warehouse.availability',\n action: 'list',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: ['q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/warehouse/{warehouseUid}/enable',\n chain: 'warehouse.enable',\n action: 'update',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/receive',\n chain: 'warehouse.receive',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/warehouse/{warehouseUid}/replenish',\n chain: 'warehouse.replenish',\n action: 'list',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: ['distributorsUid'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/replenish',\n chain: 'warehouse.replenish',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/transfer',\n chain: 'warehouse.transfer',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/usage',\n chain: 'warehouse.usage',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/warehouse/{warehouseUid}/users',\n chain: 'warehouse.users',\n action: 'list',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCdList'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/users',\n chain: 'warehouse.users',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: ['makePrimaryUser'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/warehouse/{warehouseUid}/users/{usersId}',\n chain: 'warehouse.users',\n action: 'get',\n aliases: [],\n pathParams: ['warehouseUid', 'usersId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/warehouse/{warehouseUid}/users/{usersId}',\n chain: 'warehouse.users',\n action: 'update',\n aliases: [],\n pathParams: ['warehouseUid', 'usersId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/warehouse/{warehouseUid}/users/{usersId}',\n chain: 'warehouse.users',\n action: 'delete',\n aliases: [],\n pathParams: ['warehouseUid', 'usersId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for vmi service\n * Source: shared/specs/vmi.json\n * Generated: 2026-09-28T15:25:50Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { VMIClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class VMIClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly distributors: VMIClientSpec['distributors'];\n readonly invProfileHdr: VMIClientSpec['invProfileHdr'];\n readonly products: VMIClientSpec['products'];\n readonly restockHdr: VMIClientSpec['restockHdr'];\n readonly sections: VMIClientSpec['sections'];\n readonly warehouse: VMIClientSpec['warehouse'];\n\n // Data-only resources (unwrap .data from every response)\n readonly distributorsData: VMIClientSpec['distributors'];\n readonly invProfileHdrData: VMIClientSpec['invProfileHdr'];\n readonly productsData: VMIClientSpec['products'];\n readonly restockHdrData: VMIClientSpec['restockHdr'];\n readonly sectionsData: VMIClientSpec['sections'];\n readonly warehouseData: VMIClientSpec['warehouse'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://vmi.augur-api.com') {\n super('vmi', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<VMIClientSpec>('vmi', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.distributors = proxy.distributors;\n this.invProfileHdr = proxy.invProfileHdr;\n this.products = proxy.products;\n this.restockHdr = proxy.restockHdr;\n this.sections = proxy.sections;\n this.warehouse = proxy.warehouse;\n\n // Wire data proxy resources\n this.distributorsData = dataProxy.distributors;\n this.invProfileHdrData = dataProxy.invProfileHdr;\n this.productsData = dataProxy.products;\n this.restockHdrData = dataProxy.restockHdr;\n this.sectionsData = dataProxy.sections;\n this.warehouseData = dataProxy.warehouse;\n }\n\n protected getServiceDescription(): string {\n return 'Vendor-managed inventory for distributor profiles, warehouse stock levels, restocking, and usage tracking';\n }\n}\n","/**\n * Generated Valibot schemas for open-search service\n * Source: shared/specs/open-search.json\n * Generated: 2026-09-23T23:29:59Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /item-search params */\nexport const ItemSearchListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n discontinuedAny: v.optional(v.string()),\n fields: v.optional(v.string()),\n filters: v.optional(v.string()),\n from: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n itemCategoryUidList: v.optional(v.string()),\n jobNumbers: v.optional(v.string()),\n operator: v.optional(v.string()),\n parentCategoryUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.string(),\n searchType: v.string(),\n size: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sort: v.optional(v.string()),\n sourceFieldsList: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /item-search-facets params */\nexport const ItemSearchFacetsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n discontinuedAny: v.optional(v.string()),\n fields: v.optional(v.string()),\n filters: v.optional(v.string()),\n from: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n itemCategoryUidList: v.optional(v.string()),\n jobNumbers: v.optional(v.string()),\n operator: v.optional(v.string()),\n parentCategoryUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.string(),\n searchType: v.optional(v.string()),\n size: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sort: v.optional(v.string()),\n sourceFieldsList: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n useBrandFolderDoc: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /item-search/attributes params */\nexport const ItemSearchAttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheSiteId: v.optional(v.string()),\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n filters: v.optional(v.string()),\n q: v.string(),\n searchType: v.string(),\n});\n\n/** Schema for GET /items params */\nexport const ItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n itemId: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n online: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /query-string-redirect params */\nexport const QueryStringRedirectListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /suggestions params */\nexport const SuggestionsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n processCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n query: v.optional(v.string()),\n queryStringUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /suggestions/suggest params */\nexport const SuggestionsSuggestListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const QueryStringRedirectDataSchema = v.looseObject({\n queryStringRedirectUid: v.optional(v.number()),\n queryStringUid: v.optional(v.number()),\n queryStringRedirectLink: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n queryString: v.optional(v.nullable(v.string())),\n});\n\nexport const SuggestionsDataSchema = v.looseObject({\n suggestionsUid: v.optional(v.number()),\n queryStringUid: v.optional(v.number()),\n suggestionsString: v.optional(v.string()),\n suggestionsMetaphone: v.optional(v.nullable(v.string())),\n avgTotalResults: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for open-search service\n * Source: shared/specs/open-search.json\n * Generated: 2026-09-23T23:29:59Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n QueryStringRedirectDataSchema,\n SuggestionsDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/item-search',\n chain: 'itemSearch',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'discontinuedAny',\n 'fields',\n 'filters',\n 'from',\n 'itemCategoryUidList',\n 'jobNumbers',\n 'operator',\n 'parentCategoryUid',\n 'q',\n 'searchType',\n 'size',\n 'sort',\n 'sourceFieldsList',\n 'stockStatus',\n 'tags',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-search-facets',\n chain: 'itemSearchFacets',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'discontinuedAny',\n 'fields',\n 'filters',\n 'from',\n 'itemCategoryUidList',\n 'jobNumbers',\n 'operator',\n 'parentCategoryUid',\n 'q',\n 'searchType',\n 'size',\n 'sort',\n 'sourceFieldsList',\n 'stockStatus',\n 'tags',\n 'useBrandFolderDoc',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-search/attributes',\n chain: 'itemSearch.attributes',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['cacheSiteId', 'cacheTtl', 'filters', 'q', 'searchType'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/items',\n chain: 'items',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['itemId', 'limit', 'offset', 'online', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/items/refresh',\n chain: 'items.refresh',\n action: 'update',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/items/{invMastUid}',\n chain: 'items',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/items/{invMastUid}',\n chain: 'items',\n action: 'update',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/items/{invMastUid}/refresh',\n chain: 'items.refresh',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/query-string-redirect',\n chain: 'queryStringRedirect',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: QueryStringRedirectDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/query-string-redirect',\n chain: 'queryStringRedirect',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: QueryStringRedirectDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/query-string-redirect/{queryStringRedirectUid}',\n chain: 'queryStringRedirect',\n action: 'get',\n aliases: [],\n pathParams: ['queryStringRedirectUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: QueryStringRedirectDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/query-string-redirect/{queryStringRedirectUid}',\n chain: 'queryStringRedirect',\n action: 'update',\n aliases: [],\n pathParams: ['queryStringRedirectUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: QueryStringRedirectDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/query-string-redirect/{queryStringRedirectUid}',\n chain: 'queryStringRedirect',\n action: 'delete',\n aliases: [],\n pathParams: ['queryStringRedirectUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: QueryStringRedirectDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/suggestions',\n chain: 'suggestions',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'processCd', 'query', 'queryStringUid', 'statusCd'],\n edgeCache: true,\n responseSchema: SuggestionsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/suggestions/suggest',\n chain: 'suggestions.suggest',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/suggestions/{suggestionsUid}',\n chain: 'suggestions',\n action: 'get',\n aliases: [],\n pathParams: ['suggestionsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: SuggestionsDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated client for open-search service\n * Source: shared/specs/open-search.json\n * Generated: 2026-09-23T23:29:59Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { OpenSearchClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class OpenSearchClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly itemSearch: OpenSearchClientSpec['itemSearch'];\n readonly itemSearchFacets: OpenSearchClientSpec['itemSearchFacets'];\n readonly items: OpenSearchClientSpec['items'];\n readonly queryStringRedirect: OpenSearchClientSpec['queryStringRedirect'];\n readonly suggestions: OpenSearchClientSpec['suggestions'];\n\n // Data-only resources (unwrap .data from every response)\n readonly itemSearchData: OpenSearchClientSpec['itemSearch'];\n readonly itemSearchFacetsData: OpenSearchClientSpec['itemSearchFacets'];\n readonly itemsData: OpenSearchClientSpec['items'];\n readonly queryStringRedirectData: OpenSearchClientSpec['queryStringRedirect'];\n readonly suggestionsData: OpenSearchClientSpec['suggestions'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://open-search.augur-api.com') {\n super('open-search', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<OpenSearchClientSpec>(\n 'open-search',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.itemSearch = proxy.itemSearch;\n this.itemSearchFacets = proxy.itemSearchFacets;\n this.items = proxy.items;\n this.queryStringRedirect = proxy.queryStringRedirect;\n this.suggestions = proxy.suggestions;\n\n // Wire data proxy resources\n this.itemSearchData = dataProxy.itemSearch;\n this.itemSearchFacetsData = dataProxy.itemSearchFacets;\n this.itemsData = dataProxy.items;\n this.queryStringRedirectData = dataProxy.queryStringRedirect;\n this.suggestionsData = dataProxy.suggestions;\n }\n\n protected getServiceDescription(): string {\n return 'Product search engine powered by OpenSearch with autocomplete, faceted filtering, and query analytics';\n }\n}\n","/**\n * Generated Valibot schemas for items service\n * Source: shared/specs/items.json\n * Generated: 2026-09-28T15:25:33Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /attribute-groups params */\nexport const AttributeGroupsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /attribute-groups/{attributeGroupUid}/attributes params */\nexport const AttributeGroupsAttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /attributes params */\nexport const AttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /attributes/{attributeUid}/items params */\nexport const AttributesItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n attributeValueUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n excludeValues: v.optional(v.string()),\n includeValues: v.optional(v.string()),\n itemId: v.optional(v.string()),\n itemIdSearch: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /attributes/{attributeUid}/values params */\nexport const AttributesValuesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /brands params */\nexport const BrandsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /brands/{brandsUid} params */\nexport const BrandsGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n brandsId: v.optional(v.string()),\n});\n\n/** Schema for GET /brands/{brandsUid}/facets params */\nexport const BrandsFacetsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n discontinuedAny: v.optional(v.string()),\n filters: v.optional(v.string()),\n from: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n size: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sort: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n useBrandFolderDoc: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /brands/{brandsUid}/items params */\nexport const BrandsItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n displayOnWebFlag: v.optional(v.string()),\n fields: v.optional(v.string()),\n filters: v.optional(v.string()),\n includeStock: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n sortBy: v.optional(v.string()),\n tags: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /categories/lookup params */\nexport const CategoriesLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n path: v.optional(v.string()),\n rootItemCategoryId: v.optional(v.string()),\n});\n\n/** Schema for GET /categories/{itemCategoryUid} params */\nexport const CategoriesGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n childrenFilter: v.optional(v.string()),\n childrenLimit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n childrenOffset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n filters: v.optional(v.string()),\n includeUd: v.optional(v.string()),\n orderBy: v.optional(v.string()),\n path: v.optional(v.string()),\n productCollection: v.optional(v.string()),\n rootItemCategoryId: v.optional(v.string()),\n});\n\n/** Schema for GET /categories/{itemCategoryUid}/attributes params */\nexport const CategoriesAttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n includeSubCategories: v.optional(v.string()),\n productCollection: v.optional(v.string()),\n});\n\n/** Schema for GET /categories/{itemCategoryUid}/facets params */\nexport const CategoriesFacetsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n discontinuedAny: v.optional(v.string()),\n filters: v.optional(v.string()),\n from: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n size: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sort: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n useBrandFolderDoc: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /categories/{itemCategoryUid}/images params */\nexport const CategoriesImagesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /categories/{itemCategoryUid}/items params */\nexport const CategoriesItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n displayOnWebFlag: v.optional(v.string()),\n fields: v.optional(v.string()),\n filters: v.optional(v.string()),\n includeStock: v.optional(v.string()),\n jobNumbers: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n sortBy: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /contracts/{jobNo}/facets params */\nexport const ContractsFacetsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n discontinuedAny: v.optional(v.string()),\n filters: v.optional(v.string()),\n from: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n size: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sort: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n useBrandFolderDoc: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /contracts/{jobNo}/items params */\nexport const ContractsItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n displayOnWebFlag: v.optional(v.string()),\n fields: v.optional(v.string()),\n filters: v.optional(v.string()),\n includeStock: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n sortBy: v.optional(v.string()),\n tags: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-loc params */\nexport const InvLocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast params */\nexport const InvMastListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n itemCategoryUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n onlineCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n prefix: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast-sub-parts/{invMastUid} params */\nexport const InvMastSubPartsGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastLinksUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast-ud params */\nexport const InvMastUdListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdSince: v.optional(v.string()),\n invMastUdUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n modifiedSince: v.optional(v.string()),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast/lookup params */\nexport const InvMastLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n onlineCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.string(),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/alternate-code params */\nexport const InvMastAlternateCodeListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/attributes params */\nexport const InvMastAttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/attributes/{attributeUid}/values params */\nexport const InvMastAttributesValuesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n attributeValueUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/doc params */\nexport const InvMastDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n includePricing: v.optional(v.string()),\n itemId: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/faq params */\nexport const InvMastFaqListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/inv-accessory params */\nexport const InvMastInvAccessoryListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/inv-sub params */\nexport const InvMastInvSubListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/locations/{locationId}/bins params */\nexport const InvMastLocationsBinsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n excludeZero: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /item-category params */\nexport const ItemCategoryListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /item-category/lookup params */\nexport const ItemCategoryLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n path: v.optional(v.string()),\n rootItemCategoryId: v.optional(v.string()),\n});\n\n/** Schema for GET /item-favorites/{usersId}/items params */\nexport const ItemFavoritesItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n useItemDoc: v.optional(v.string()),\n});\n\n/** Schema for GET /item-uom params */\nexport const ItemUomListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdSince: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n modifiedSince: v.optional(v.string()),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n unitOfMeasure: v.optional(v.string()),\n});\n\n/** Schema for GET /item-wishlist/{usersId} params */\nexport const ItemWishlistGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /item-wishlist/{usersId}/hdr/{itemWishlistHdrUid} params */\nexport const ItemWishlistHdrGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /locations/{locationId}/bins params */\nexport const LocationsBinsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n bin: v.optional(v.string()),\n excludeZero: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /locations/{locationId}/bins/{bin} params */\nexport const LocationsBinsGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n excludeZero: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /p21/inv-mast params */\nexport const P21InvMastListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdSince: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n modifiedSince: v.optional(v.string()),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n onlineCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /variants params */\nexport const VariantsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /variants/{itemVariantHdrUid}/attributes params */\nexport const VariantsAttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /variants/{itemVariantHdrUid}/doc params */\nexport const VariantsDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n itemId: v.optional(v.string()),\n});\n\n/** Schema for GET /variants/{itemVariantHdrUid}/lines params */\nexport const VariantsLinesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const AttributeGroupsDataSchema = v.looseObject({\n attributeGroupUid: v.optional(v.number()),\n attributeGroupId: v.optional(v.string()),\n attributeGroupDesc: v.optional(v.nullable(v.string())),\n rowStatusFlag: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n createdBy: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n attributeGroupType: v.optional(v.number()),\n updateCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n typeCd: v.optional(v.number()),\n searchableCd: v.optional(v.number()),\n itemCount: v.optional(v.number()),\n});\n\nexport const AttributeGroupsAttributesDataSchema = v.looseObject({\n attributeXAttributeGroupUid: v.optional(v.number()),\n requiredFlag: v.optional(v.string()),\n rowStatusFlag: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n createdBy: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n attributeUid: v.optional(v.number()),\n attributeGroupUid: v.optional(v.number()),\n sequenceNo: v.optional(v.nullable(v.number())),\n updateCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n});\n\nexport const AttributesDataSchema = v.looseObject({\n attributeUid: v.optional(v.number()),\n attributeDesc: v.optional(v.nullable(v.string())),\n extendedDesc: v.optional(v.nullable(v.string())),\n attributeId: v.optional(v.string()),\n dataType: v.optional(v.number()),\n maxLength: v.optional(v.number()),\n noOfDecimal: v.optional(v.nullable(v.number())),\n rowStatusFlag: v.optional(v.number()),\n validationRequiredFlag: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n createdBy: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n cfdiAttributeType: v.optional(v.nullable(v.number())),\n updateCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n typeCd: v.optional(v.number()),\n activeValueCount: v.optional(v.number()),\n inactiveValueCount: v.optional(v.number()),\n deletedValueCount: v.optional(v.number()),\n});\n\nexport const AttributesData2Schema = v.looseObject({\n attributeUid: v.optional(v.number()),\n attributeDesc: v.optional(v.nullable(v.string())),\n extendedDesc: v.optional(v.nullable(v.string())),\n attributeId: v.optional(v.string()),\n dataType: v.optional(v.number()),\n maxLength: v.optional(v.number()),\n noOfDecimal: v.optional(v.nullable(v.number())),\n rowStatusFlag: v.optional(v.number()),\n validationRequiredFlag: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n createdBy: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n cfdiAttributeType: v.optional(v.nullable(v.number())),\n updateCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n typeCd: v.optional(v.number()),\n});\n\nexport const AttributesItemsDataSchema = v.looseObject({\n itemAttributeValueUid: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n attributeUid: v.optional(v.number()),\n attributeValue: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n createdBy: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n attributeValueUid: v.optional(v.number()),\n onlineCd: v.optional(v.number()),\n attributeDesc: v.optional(v.nullable(v.string())),\n attributeId: v.optional(v.string()),\n itemId: v.optional(v.string()),\n itemDesc: v.optional(v.nullable(v.string())),\n});\n\nexport const AttributesValuesDataSchema = v.looseObject({\n attributeValueUid: v.optional(v.number()),\n attributeUid: v.optional(v.number()),\n attributeValue: v.optional(v.string()),\n rowStatusFlag: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n createdBy: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n sequenceNo: v.optional(v.number()),\n itemCount: v.optional(v.number()),\n});\n\nexport const BrandsDataSchema = v.looseObject({\n brandsUid: v.optional(v.number()),\n brandsName: v.optional(v.string()),\n brandsId: v.optional(v.string()),\n brandsDesc: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n contentId: v.optional(v.nullable(v.number())),\n});\n\nexport const BrandsItemsDataSchema = v.looseObject({\n brandsXItemsUid: v.optional(v.number()),\n brandsUid: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const InvLocDataSchema = v.looseObject({\n companyId: v.optional(v.string()),\n locationId: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n qtyOnHand: v.optional(v.nullable(v.number())),\n qtyInProcess: v.optional(v.nullable(v.number())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n nextDueInPoDate: v.optional(v.nullable(v.string())),\n sellable: v.optional(v.nullable(v.string())),\n movingAverageCost: v.optional(v.nullable(v.number())),\n standardCost: v.optional(v.nullable(v.number())),\n protectedStockQty: v.optional(v.nullable(v.number())),\n invMin: v.optional(v.nullable(v.number())),\n invMax: v.optional(v.nullable(v.number())),\n safetyStock: v.optional(v.nullable(v.number())),\n stockable: v.optional(v.nullable(v.string())),\n averageMonthlyUsage: v.optional(v.nullable(v.number())),\n noCharge: v.optional(v.nullable(v.string())),\n price1: v.optional(v.nullable(v.number())),\n price2: v.optional(v.nullable(v.number())),\n price3: v.optional(v.nullable(v.number())),\n price4: v.optional(v.nullable(v.number())),\n price5: v.optional(v.nullable(v.number())),\n price6: v.optional(v.nullable(v.number())),\n price7: v.optional(v.nullable(v.number())),\n price8: v.optional(v.nullable(v.number())),\n price9: v.optional(v.nullable(v.number())),\n price10: v.optional(v.nullable(v.number())),\n orderQuantity: v.optional(v.nullable(v.number())),\n qtyAllocated: v.optional(v.nullable(v.number())),\n qtyBackordered: v.optional(v.nullable(v.number())),\n qtyInTransit: v.optional(v.nullable(v.number())),\n trackBins: v.optional(v.nullable(v.string())),\n primaryBin: v.optional(v.nullable(v.string())),\n qtyReservedDueIn: v.optional(v.nullable(v.number())),\n dateLastCounted: v.optional(v.nullable(v.string())),\n deadstockFlag: v.optional(v.string()),\n primarySupplierId: v.optional(v.nullable(v.number())),\n lastSaleDate: v.optional(v.nullable(v.string())),\n lastPurchaseDate: v.optional(v.nullable(v.string())),\n invLastChangedDate: v.optional(v.nullable(v.string())),\n minReplenishmentQty: v.optional(v.nullable(v.number())),\n discontinued: v.optional(v.string()),\n priceFamilyUid: v.optional(v.nullable(v.number())),\n deleteFlag: v.optional(v.nullable(v.string())),\n defaultSellingUnit: v.optional(v.nullable(v.string())),\n futureStandardCost: v.optional(v.nullable(v.number())),\n effectiveDate: v.optional(v.nullable(v.string())),\n restrictedFlag: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n productGroupId: v.optional(v.nullable(v.string())),\n purchaseDiscountGroup: v.optional(v.nullable(v.string())),\n salesDiscountGroup: v.optional(v.nullable(v.string())),\n purchaseClass: v.optional(v.nullable(v.string())),\n});\n\nexport const InvMastAttributesBulkDataSchema = v.looseObject({\n items: v.optional(v.string()),\n notFound: v.optional(v.string()),\n});\n\nexport const InvMastAttributesDataSchema = v.looseObject({\n itemAttributeValueUid: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n attributeUid: v.optional(v.number()),\n attributeValue: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n createdBy: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n attributeValueUid: v.optional(v.number()),\n onlineCd: v.optional(v.number()),\n});\n\nexport const InvMastFaqDataSchema = v.looseObject({\n invMastFaqUid: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n question: v.optional(v.string()),\n answer: v.optional(v.string()),\n generatedAnswer: v.optional(v.string()),\n sourceCount: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n relatedQuestionsUid: v.optional(v.number()),\n generateCd: v.optional(v.number()),\n extraPrompt: v.optional(v.string()),\n accurateFlag: v.optional(v.string()),\n qualityScore: v.optional(v.number()),\n});\n\nexport const ItemUomDataSchema = v.looseObject({\n unitOfMeasure: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n unitSize: v.optional(v.number()),\n sellingUnit: v.optional(v.nullable(v.string())),\n purchasingUnit: v.optional(v.nullable(v.string())),\n invMastUid: v.optional(v.number()),\n createdBy: v.optional(v.nullable(v.string())),\n itemUomUid: v.optional(v.number()),\n b2bUnitFlag: v.optional(v.string()),\n tallyFactor: v.optional(v.nullable(v.number())),\n wwmsFlag: v.optional(v.nullable(v.string())),\n prodOrderFactor: v.optional(v.nullable(v.number())),\n minimumOrderQty: v.optional(v.nullable(v.number())),\n updateCd: v.optional(v.number()),\n});\n\nexport const VariantsLinesDataSchema = v.looseObject({\n itemVariantLineUid: v.optional(v.number()),\n itemVariantHdrUid: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n primaryCd: v.optional(v.number()),\n sequenceNo: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for items service\n * Source: shared/specs/items.json\n * Generated: 2026-09-28T15:25:33Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n AttributeGroupsAttributesDataSchema,\n AttributeGroupsDataSchema,\n AttributesData2Schema,\n AttributesDataSchema,\n AttributesItemsDataSchema,\n AttributesValuesDataSchema,\n BrandsDataSchema,\n BrandsItemsDataSchema,\n InvLocDataSchema,\n InvMastAttributesBulkDataSchema,\n InvMastAttributesDataSchema,\n InvMastFaqDataSchema,\n ItemUomDataSchema,\n VariantsLinesDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/attribute-groups',\n chain: 'attributeGroups',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/attribute-groups',\n chain: 'attributeGroups',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributeGroupsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/attribute-groups/{attributeGroupUid}',\n chain: 'attributeGroups',\n action: 'get',\n aliases: [],\n pathParams: ['attributeGroupUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/attribute-groups/{attributeGroupUid}',\n chain: 'attributeGroups',\n action: 'update',\n aliases: [],\n pathParams: ['attributeGroupUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributeGroupsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/attribute-groups/{attributeGroupUid}',\n chain: 'attributeGroups',\n action: 'delete',\n aliases: [],\n pathParams: ['attributeGroupUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/attribute-groups/{attributeGroupUid}/attributes',\n chain: 'attributeGroups.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['attributeGroupUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/attribute-groups/{attributeGroupUid}/attributes',\n chain: 'attributeGroups.attributes',\n action: 'create',\n aliases: [],\n pathParams: ['attributeGroupUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/attribute-groups/{attributeGroupUid}/attributes/{attributeXAttributeGroupUid}',\n chain: 'attributeGroups.attributes',\n action: 'get',\n aliases: [],\n pathParams: ['attributeGroupUid', 'attributeXAttributeGroupUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/attribute-groups/{attributeGroupUid}/attributes/{attributeXAttributeGroupUid}',\n chain: 'attributeGroups.attributes',\n action: 'update',\n aliases: [],\n pathParams: ['attributeGroupUid', 'attributeXAttributeGroupUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributeGroupsAttributesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/attribute-groups/{attributeGroupUid}/attributes/{attributeXAttributeGroupUid}',\n chain: 'attributeGroups.attributes',\n action: 'delete',\n aliases: [],\n pathParams: ['attributeGroupUid', 'attributeXAttributeGroupUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/attributes',\n chain: 'attributes',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: AttributesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/attributes',\n chain: 'attributes',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributesData2Schema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/attributes/{attributeUid}',\n chain: 'attributes',\n action: 'get',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: AttributesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/attributes/{attributeUid}',\n chain: 'attributes',\n action: 'update',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributesData2Schema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/attributes/{attributeUid}',\n chain: 'attributes',\n action: 'delete',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/attributes/{attributeUid}/items',\n chain: 'attributes.items',\n action: 'list',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: [\n 'attributeValueUid',\n 'excludeValues',\n 'includeValues',\n 'itemId',\n 'itemIdSearch',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: AttributesItemsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/attributes/{attributeUid}/values',\n chain: 'attributes.values',\n action: 'list',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: AttributesValuesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/attributes/{attributeUid}/values',\n chain: 'attributes.values',\n action: 'create',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributesValuesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/attributes/{attributeUid}/values/{attributeValueUid}',\n chain: 'attributes.values',\n action: 'get',\n aliases: [],\n pathParams: ['attributeUid', 'attributeValueUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: AttributesValuesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/attributes/{attributeUid}/values/{attributeValueUid}',\n chain: 'attributes.values',\n action: 'update',\n aliases: [],\n pathParams: ['attributeUid', 'attributeValueUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributesValuesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/attributes/{attributeUid}/values/{attributeValueUid}',\n chain: 'attributes.values',\n action: 'delete',\n aliases: [],\n pathParams: ['attributeUid', 'attributeValueUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributesValuesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/brands',\n chain: 'brands',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: BrandsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/brands',\n chain: 'brands',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/brands/{brandsUid}',\n chain: 'brands',\n action: 'get',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: ['brandsId'],\n edgeCache: true,\n responseSchema: BrandsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/brands/{brandsUid}',\n chain: 'brands',\n action: 'update',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/brands/{brandsUid}',\n chain: 'brands',\n action: 'delete',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/brands/{brandsUid}/attributes',\n chain: 'brands.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/brands/{brandsUid}/facets',\n chain: 'brands.facets',\n action: 'list',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'discontinuedAny',\n 'filters',\n 'from',\n 'q',\n 'size',\n 'sort',\n 'stockStatus',\n 'tags',\n 'useBrandFolderDoc',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/brands/{brandsUid}/items',\n chain: 'brands.items',\n action: 'list',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'displayOnWebFlag',\n 'fields',\n 'filters',\n 'includeStock',\n 'limit',\n 'offset',\n 'q',\n 'sortBy',\n 'tags',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/brands/{brandsUid}/items',\n chain: 'brands.items',\n action: 'create',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsItemsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/brands/{brandsUid}/items/{brandsXItemsUid}',\n chain: 'brands.items',\n action: 'get',\n aliases: [],\n pathParams: ['brandsUid', 'brandsXItemsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: BrandsItemsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/brands/{brandsUid}/items/{brandsXItemsUid}',\n chain: 'brands.items',\n action: 'update',\n aliases: [],\n pathParams: ['brandsUid', 'brandsXItemsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsItemsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/brands/{brandsUid}/items/{brandsXItemsUid}',\n chain: 'brands.items',\n action: 'delete',\n aliases: [],\n pathParams: ['brandsUid', 'brandsXItemsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsItemsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/categories/lookup',\n chain: 'categories.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['cacheTtl', 'path', 'rootItemCategoryId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}',\n chain: 'categories',\n action: 'get',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [\n 'cacheTtl',\n 'childrenFilter',\n 'childrenLimit',\n 'childrenOffset',\n 'classId5ExcludeList',\n 'classId5List',\n 'filters',\n 'includeUd',\n 'orderBy',\n 'path',\n 'productCollection',\n 'rootItemCategoryId',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}/attributes',\n chain: 'categories.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: ['cacheTtl', 'includeSubCategories', 'productCollection'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}/facets',\n chain: 'categories.facets',\n action: 'list',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'discontinuedAny',\n 'filters',\n 'from',\n 'q',\n 'size',\n 'sort',\n 'stockStatus',\n 'tags',\n 'useBrandFolderDoc',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}/images',\n chain: 'categories.images',\n action: 'list',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: ['cacheTtl'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}/items',\n chain: 'categories.items',\n action: 'list',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [\n 'cacheTtl',\n 'classId5ExcludeList',\n 'classId5List',\n 'displayOnWebFlag',\n 'fields',\n 'filters',\n 'includeStock',\n 'jobNumbers',\n 'limit',\n 'offset',\n 'q',\n 'sortBy',\n 'stockStatus',\n 'tags',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contracts/{jobNo}/attributes',\n chain: 'contracts.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['jobNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contracts/{jobNo}/facets',\n chain: 'contracts.facets',\n action: 'list',\n aliases: [],\n pathParams: ['jobNo'],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'discontinuedAny',\n 'filters',\n 'from',\n 'q',\n 'size',\n 'sort',\n 'stockStatus',\n 'tags',\n 'useBrandFolderDoc',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contracts/{jobNo}/items',\n chain: 'contracts.items',\n action: 'list',\n aliases: [],\n pathParams: ['jobNo'],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'displayOnWebFlag',\n 'fields',\n 'filters',\n 'includeStock',\n 'limit',\n 'offset',\n 'q',\n 'sortBy',\n 'tags',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/internal/pdf',\n chain: 'internal.pdf',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-loc',\n chain: 'invLoc',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['invMastUid', 'limit', 'offset'],\n edgeCache: true,\n responseSchema: InvLocDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/inv-mast',\n chain: 'invMast',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['itemCategoryUid', 'limit', 'offset', 'onlineCd', 'prefix', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast-links/{invMastUid}',\n chain: 'invMastLinks',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast-sub-parts/{invMastUid}',\n chain: 'invMastSubParts',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['invMastLinksUid'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast-ud',\n chain: 'invMastUd',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'createdSince',\n 'invMastUdUid',\n 'invMastUid',\n 'limit',\n 'modifiedSince',\n 'offset',\n 'orderBy',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/inv-mast/attributes/bulk',\n chain: 'invMast.attributes.bulk',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastAttributesBulkDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast/lookup',\n chain: 'invMast.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'onlineCd', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}',\n chain: 'invMast',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/alternate-code',\n chain: 'invMast.alternateCode',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/attributes',\n chain: 'invMast.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/inv-mast/{invMastUid}/attributes',\n chain: 'invMast.attributes',\n action: 'create',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastAttributesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/attributes/{attributeUid}/values',\n chain: 'invMast.attributes.values',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid', 'attributeUid'],\n queryParams: ['attributeValueUid', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/inv-mast/{invMastUid}/attributes/{attributeUid}/values',\n chain: 'invMast.attributes.values',\n action: 'create',\n aliases: [],\n pathParams: ['invMastUid', 'attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastAttributesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast/{invMastUid}/attributes/{attributeUid}/values/{attributeValueUid}',\n chain: 'invMast.attributes.values',\n action: 'update',\n aliases: [],\n pathParams: ['invMastUid', 'attributeUid', 'attributeValueUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastAttributesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast/{invMastUid}/attributes/{attributeUid}/values/{attributeValueUid}',\n chain: 'invMast.attributes.values',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastUid', 'attributeUid', 'attributeValueUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/doc',\n chain: 'invMast.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['invMastUid'],\n queryParams: ['includePricing', 'itemId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/faq',\n chain: 'invMast.faq',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: InvMastFaqDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast/{invMastUid}/faq',\n chain: 'invMast.faq',\n action: 'create',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastFaqDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/faq/{invMastFaqUid}',\n chain: 'invMast.faq',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid', 'invMastFaqUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastFaqDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast/{invMastUid}/faq/{invMastFaqUid}',\n chain: 'invMast.faq',\n action: 'update',\n aliases: [],\n pathParams: ['invMastUid', 'invMastFaqUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastFaqDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast/{invMastUid}/faq/{invMastFaqUid}',\n chain: 'invMast.faq',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastUid', 'invMastFaqUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastFaqDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/inv-accessory',\n chain: 'invMast.invAccessory',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/inv-sub',\n chain: 'invMast.invSub',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/locations/{locationId}/bins',\n chain: 'invMast.locations.bins',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid', 'locationId'],\n queryParams: ['excludeZero', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/locations/{locationId}/bins/{bin}',\n chain: 'invMast.locations.bins',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid', 'locationId', 'bin'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/similar',\n chain: 'invMast.similar',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/stock',\n chain: 'invMast.stock',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-category',\n chain: 'itemCategory',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-category/lookup',\n chain: 'itemCategory.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['path', 'rootItemCategoryId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-category/{itemCategoryUid}',\n chain: 'itemCategory',\n action: 'get',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-category/{itemCategoryUid}/doc',\n chain: 'itemCategory.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['itemCategoryUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-favorites/{usersId}/items',\n chain: 'itemFavorites.items',\n action: 'list',\n aliases: [],\n pathParams: ['usersId'],\n queryParams: ['limit', 'offset', 'orderBy', 'useItemDoc'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/item-favorites/{usersId}/items',\n chain: 'itemFavorites.items',\n action: 'create',\n aliases: [],\n pathParams: ['usersId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-favorites/{usersId}/items/{invMastUid}',\n chain: 'itemFavorites.items',\n action: 'get',\n aliases: [],\n pathParams: ['usersId', 'invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/item-favorites/{usersId}/items/{invMastUid}',\n chain: 'itemFavorites.items',\n action: 'update',\n aliases: [],\n pathParams: ['usersId', 'invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/item-favorites/{usersId}/items/{invMastUid}',\n chain: 'itemFavorites.items',\n action: 'delete',\n aliases: [],\n pathParams: ['usersId', 'invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-uom',\n chain: 'itemUom',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'createdSince',\n 'deleteFlag',\n 'invMastUid',\n 'limit',\n 'modifiedSince',\n 'offset',\n 'orderBy',\n 'unitOfMeasure',\n ],\n edgeCache: true,\n responseSchema: ItemUomDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/item-uom/{itemUomUid}',\n chain: 'itemUom',\n action: 'get',\n aliases: [],\n pathParams: ['itemUomUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ItemUomDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/item-wishlist/{usersId}',\n chain: 'itemWishlist',\n action: 'get',\n aliases: [],\n pathParams: ['usersId'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/item-wishlist/{usersId}',\n chain: 'itemWishlist',\n action: 'create',\n aliases: [],\n pathParams: ['usersId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/item-wishlist/{usersId}/hdr/{itemWishlistHdrUid}',\n chain: 'itemWishlist.hdr',\n action: 'update',\n aliases: [],\n pathParams: ['usersId', 'itemWishlistHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/item-wishlist/{usersId}/hdr/{itemWishlistHdrUid}',\n chain: 'itemWishlist.hdr',\n action: 'delete',\n aliases: [],\n pathParams: ['usersId', 'itemWishlistHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-wishlist/{usersId}/hdr/{itemWishlistHdrUid}',\n chain: 'itemWishlist.hdr',\n action: 'get',\n aliases: [],\n pathParams: ['usersId', 'itemWishlistHdrUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/item-wishlist/{usersId}/hdr/{itemWishlistHdrUid}',\n chain: 'itemWishlist.hdr',\n action: 'create',\n aliases: [],\n pathParams: ['usersId', 'itemWishlistHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/item-wishlist/{usersId}/hdr/{itemWishlistHdrUid}/line/{itemWishlistLineUid}',\n chain: 'itemWishlist.hdr.line',\n action: 'delete',\n aliases: [],\n pathParams: ['usersId', 'itemWishlistHdrUid', 'itemWishlistLineUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/locations/{locationId}/bins',\n chain: 'locations.bins',\n action: 'list',\n aliases: [],\n pathParams: ['locationId'],\n queryParams: ['bin', 'excludeZero', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/locations/{locationId}/bins/{bin}',\n chain: 'locations.bins',\n action: 'get',\n aliases: [],\n pathParams: ['locationId', 'bin'],\n queryParams: ['excludeZero', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/p21/inv-mast',\n chain: 'p21.invMast',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'createdSince',\n 'limit',\n 'modifiedSince',\n 'offset',\n 'onlineCd',\n 'orderBy',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants',\n chain: 'variants',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/variants',\n chain: 'variants',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}',\n chain: 'variants',\n action: 'get',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/variants/{itemVariantHdrUid}',\n chain: 'variants',\n action: 'update',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/variants/{itemVariantHdrUid}',\n chain: 'variants',\n action: 'delete',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/attributes',\n chain: 'variants.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/variants/{itemVariantHdrUid}/attributes',\n chain: 'variants.attributes',\n action: 'create',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/attributes/{attributeUid}',\n chain: 'variants.attributes',\n action: 'get',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'attributeUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/variants/{itemVariantHdrUid}/attributes/{attributeUid}',\n chain: 'variants.attributes',\n action: 'update',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/variants/{itemVariantHdrUid}/attributes/{attributeUid}',\n chain: 'variants.attributes',\n action: 'delete',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/doc',\n chain: 'variants.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['itemVariantHdrUid'],\n queryParams: ['itemId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/lines',\n chain: 'variants.lines',\n action: 'list',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: VariantsLinesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/variants/{itemVariantHdrUid}/lines',\n chain: 'variants.lines',\n action: 'create',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: VariantsLinesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/lines/{itemVariantLineUid}',\n chain: 'variants.lines',\n action: 'get',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'itemVariantLineUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: VariantsLinesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/variants/{itemVariantHdrUid}/lines/{itemVariantLineUid}',\n chain: 'variants.lines',\n action: 'update',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'itemVariantLineUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: VariantsLinesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/variants/{itemVariantHdrUid}/lines/{itemVariantLineUid}',\n chain: 'variants.lines',\n action: 'delete',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'itemVariantLineUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: VariantsLinesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/similar',\n chain: 'variants.similar',\n action: 'list',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for items service\n * Source: shared/specs/items.json\n * Generated: 2026-09-28T15:25:33Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { ItemsClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class ItemsClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly attributeGroups: ItemsClientSpec['attributeGroups'];\n readonly attributes: ItemsClientSpec['attributes'];\n readonly brands: ItemsClientSpec['brands'];\n readonly categories: ItemsClientSpec['categories'];\n readonly contracts: ItemsClientSpec['contracts'];\n readonly internal: ItemsClientSpec['internal'];\n readonly invLoc: ItemsClientSpec['invLoc'];\n readonly invMast: ItemsClientSpec['invMast'];\n readonly invMastLinks: ItemsClientSpec['invMastLinks'];\n readonly invMastSubParts: ItemsClientSpec['invMastSubParts'];\n readonly invMastUd: ItemsClientSpec['invMastUd'];\n readonly itemCategory: ItemsClientSpec['itemCategory'];\n readonly itemFavorites: ItemsClientSpec['itemFavorites'];\n readonly itemUom: ItemsClientSpec['itemUom'];\n readonly itemWishlist: ItemsClientSpec['itemWishlist'];\n readonly locations: ItemsClientSpec['locations'];\n readonly p21: ItemsClientSpec['p21'];\n readonly variants: ItemsClientSpec['variants'];\n\n // Data-only resources (unwrap .data from every response)\n readonly attributeGroupsData: ItemsClientSpec['attributeGroups'];\n readonly attributesData: ItemsClientSpec['attributes'];\n readonly brandsData: ItemsClientSpec['brands'];\n readonly categoriesData: ItemsClientSpec['categories'];\n readonly contractsData: ItemsClientSpec['contracts'];\n readonly internalData: ItemsClientSpec['internal'];\n readonly invLocData: ItemsClientSpec['invLoc'];\n readonly invMastData: ItemsClientSpec['invMast'];\n readonly invMastLinksData: ItemsClientSpec['invMastLinks'];\n readonly invMastSubPartsData: ItemsClientSpec['invMastSubParts'];\n readonly invMastUdData: ItemsClientSpec['invMastUd'];\n readonly itemCategoryData: ItemsClientSpec['itemCategory'];\n readonly itemFavoritesData: ItemsClientSpec['itemFavorites'];\n readonly itemUomData: ItemsClientSpec['itemUom'];\n readonly itemWishlistData: ItemsClientSpec['itemWishlist'];\n readonly locationsData: ItemsClientSpec['locations'];\n readonly p21Data: ItemsClientSpec['p21'];\n readonly variantsData: ItemsClientSpec['variants'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://items.augur-api.com') {\n super('items', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<ItemsClientSpec>('items', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.attributeGroups = proxy.attributeGroups;\n this.attributes = proxy.attributes;\n this.brands = proxy.brands;\n this.categories = proxy.categories;\n this.contracts = proxy.contracts;\n this.internal = proxy.internal;\n this.invLoc = proxy.invLoc;\n this.invMast = proxy.invMast;\n this.invMastLinks = proxy.invMastLinks;\n this.invMastSubParts = proxy.invMastSubParts;\n this.invMastUd = proxy.invMastUd;\n this.itemCategory = proxy.itemCategory;\n this.itemFavorites = proxy.itemFavorites;\n this.itemUom = proxy.itemUom;\n this.itemWishlist = proxy.itemWishlist;\n this.locations = proxy.locations;\n this.p21 = proxy.p21;\n this.variants = proxy.variants;\n\n // Wire data proxy resources\n this.attributeGroupsData = dataProxy.attributeGroups;\n this.attributesData = dataProxy.attributes;\n this.brandsData = dataProxy.brands;\n this.categoriesData = dataProxy.categories;\n this.contractsData = dataProxy.contracts;\n this.internalData = dataProxy.internal;\n this.invLocData = dataProxy.invLoc;\n this.invMastData = dataProxy.invMast;\n this.invMastLinksData = dataProxy.invMastLinks;\n this.invMastSubPartsData = dataProxy.invMastSubParts;\n this.invMastUdData = dataProxy.invMastUd;\n this.itemCategoryData = dataProxy.itemCategory;\n this.itemFavoritesData = dataProxy.itemFavorites;\n this.itemUomData = dataProxy.itemUom;\n this.itemWishlistData = dataProxy.itemWishlist;\n this.locationsData = dataProxy.locations;\n this.p21Data = dataProxy.p21;\n this.variantsData = dataProxy.variants;\n }\n\n protected getServiceDescription(): string {\n return 'Product catalog and inventory management — items, categories, attributes, variants, brands, wishlists, and P21 inventory master data';\n }\n}\n","/**\n * Generated Valibot schemas for legacy service\n * Source: shared/specs/legacy.json\n * Generated: 2026-09-23T23:29:56Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /legacy/state params */\nexport const LegacyStateListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n twoLetterCode: v.optional(v.string()),\n});\n\n/** Schema for GET /legacy/state/{stateUid} params */\nexport const LegacyStateGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n twoLetterCode: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const CustomersTagsDataSchema = v.looseObject({\n customerTagsUid: v.optional(v.number()),\n customerId: v.optional(v.number()),\n tag: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n});\n\nexport const InvMastTagsDataSchema = v.looseObject({\n invMastTagsUid: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n tag: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n});\n\nexport const InvMastWebDescDataSchema = v.looseObject({\n invMastWebDescUid: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n webDesc1: v.optional(v.nullable(v.string())),\n webDesc2: v.optional(v.nullable(v.string())),\n webDesc3: v.optional(v.nullable(v.string())),\n webDesc4: v.optional(v.nullable(v.string())),\n webDescFull: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n active: v.optional(v.nullable(v.number())),\n dateLastModified: v.optional(v.string()),\n dateLastChecked: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n});\n\nexport const ItemCategoryDataSchema = v.looseObject({\n itemCategoryUid: v.optional(v.number()),\n itemCategoryId: v.optional(v.string()),\n itemCategoryDesc: v.optional(v.string()),\n article: v.optional(v.nullable(v.string())),\n boxFolderId: v.optional(v.nullable(v.string())),\n masterCategoryFlag: v.optional(v.string()),\n parentCategoryFlag: v.optional(v.string()),\n displayOnWebFlag: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n customerApproval: v.optional(v.nullable(v.string())),\n dateLastModified: v.optional(v.string()),\n dateLastChecked: v.optional(v.string()),\n article2: v.optional(v.nullable(v.string())),\n article3: v.optional(v.nullable(v.string())),\n article4: v.optional(v.nullable(v.string())),\n article5: v.optional(v.nullable(v.string())),\n sampleItemId: v.optional(v.nullable(v.string())),\n metaDesc: v.optional(v.nullable(v.string())),\n title: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n subCategoryImageFile: v.optional(v.nullable(v.string())),\n lastMaintainedBy: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n createdBy: v.optional(v.string()),\n catalogPage: v.optional(v.nullable(v.string())),\n displayMasterProductFlag: v.optional(v.string()),\n});\n\nexport const LegacyStateDataSchema = v.looseObject({\n stateUid: v.optional(v.number()),\n countryUid: v.optional(v.nullable(v.number())),\n twoLetterCode: v.optional(v.nullable(v.string())),\n stateName: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.nullable(v.string())),\n createdBy: v.optional(v.nullable(v.string())),\n dateLastModified: v.optional(v.nullable(v.string())),\n lastMaintainedBy: v.optional(v.nullable(v.string())),\n combinedFederalState1099No: v.optional(v.nullable(v.number())),\n telecheckStateCode: v.optional(v.nullable(v.number())),\n updateCd: v.optional(v.number()),\n active: v.optional(v.nullable(v.number())),\n taxRate: v.optional(v.nullable(v.number())),\n dateLastChecked: v.optional(v.nullable(v.string())),\n taxShipping: v.optional(v.nullable(v.number())),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for legacy service\n * Source: shared/specs/legacy.json\n * Generated: 2026-09-23T23:29:56Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n CustomersTagsDataSchema,\n InvMastTagsDataSchema,\n InvMastWebDescDataSchema,\n ItemCategoryDataSchema,\n LegacyStateDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/customers/{customerId}/tags',\n chain: 'customers.tags',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CustomersTagsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/customers/{customerId}/tags',\n chain: 'customers.tags',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomersTagsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customers/{customerId}/tags/{customerTagsUid}',\n chain: 'customers.tags',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CustomersTagsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/customers/{customerId}/tags/{customerTagsUid}',\n chain: 'customers.tags',\n action: 'update',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomersTagsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/customers/{customerId}/tags/{customerTagsUid}',\n chain: 'customers.tags',\n action: 'delete',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/also-bought',\n chain: 'invMast.alsoBought',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/tags',\n chain: 'invMast.tags',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastTagsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast/{invMastUid}/tags',\n chain: 'invMast.tags',\n action: 'create',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastTagsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/tags/{invMastTagsUid}',\n chain: 'invMast.tags',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid', 'invMastTagsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastTagsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast/{invMastUid}/tags/{invMastTagsUid}',\n chain: 'invMast.tags',\n action: 'update',\n aliases: [],\n pathParams: ['invMastUid', 'invMastTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastTagsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast/{invMastUid}/tags/{invMastTagsUid}',\n chain: 'invMast.tags',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastUid', 'invMastTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/web-desc',\n chain: 'invMast.webDesc',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastWebDescDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast/{invMastUid}/web-desc',\n chain: 'invMast.webDesc',\n action: 'create',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastWebDescDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/web-desc/{invMastWebDescUid}',\n chain: 'invMast.webDesc',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid', 'invMastWebDescUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastWebDescDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast/{invMastUid}/web-desc/{invMastWebDescUid}',\n chain: 'invMast.webDesc',\n action: 'update',\n aliases: [],\n pathParams: ['invMastUid', 'invMastWebDescUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastWebDescDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast/{invMastUid}/web-desc/{invMastWebDescUid}',\n chain: 'invMast.webDesc',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastUid', 'invMastWebDescUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-category/{itemCategoryUid}',\n chain: 'itemCategory',\n action: 'get',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ItemCategoryDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/legacy/state',\n chain: 'legacy.state',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'twoLetterCode'],\n edgeCache: true,\n responseSchema: LegacyStateDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/legacy/state',\n chain: 'legacy.state',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/legacy/state/{stateUid}',\n chain: 'legacy.state',\n action: 'get',\n aliases: [],\n pathParams: ['stateUid'],\n queryParams: ['twoLetterCode'],\n edgeCache: true,\n responseSchema: LegacyStateDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/legacy/state/{stateUid}',\n chain: 'legacy.state',\n action: 'update',\n aliases: [],\n pathParams: ['stateUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: LegacyStateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/legacy/state/{stateUid}',\n chain: 'legacy.state',\n action: 'delete',\n aliases: [],\n pathParams: ['stateUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/orders/{id}/reset',\n chain: 'orders.reset',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for legacy service\n * Source: shared/specs/legacy.json\n * Generated: 2026-09-23T23:29:56Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { LegacyClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class LegacyClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly customers: LegacyClientSpec['customers'];\n readonly invMast: LegacyClientSpec['invMast'];\n readonly itemCategory: LegacyClientSpec['itemCategory'];\n readonly legacy: LegacyClientSpec['legacy'];\n readonly orders: LegacyClientSpec['orders'];\n\n // Data-only resources (unwrap .data from every response)\n readonly customersData: LegacyClientSpec['customers'];\n readonly invMastData: LegacyClientSpec['invMast'];\n readonly itemCategoryData: LegacyClientSpec['itemCategory'];\n readonly legacyData: LegacyClientSpec['legacy'];\n readonly ordersData: LegacyClientSpec['orders'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://legacy.augur-api.com') {\n super('legacy', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<LegacyClientSpec>('legacy', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.customers = proxy.customers;\n this.invMast = proxy.invMast;\n this.itemCategory = proxy.itemCategory;\n this.legacy = proxy.legacy;\n this.orders = proxy.orders;\n\n // Wire data proxy resources\n this.customersData = dataProxy.customers;\n this.invMastData = dataProxy.invMast;\n this.itemCategoryData = dataProxy.itemCategory;\n this.legacyData = dataProxy.legacy;\n this.ordersData = dataProxy.orders;\n }\n\n protected getServiceDescription(): string {\n return 'Legacy Prophet 21 data mirror for inventory, customers, orders, pricing, and product attributes';\n }\n}\n","/**\n * Generated Valibot schemas for agr-site service\n * Source: shared/specs/agr-site.json\n * Generated: 2026-09-23T23:29:46Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /fyxer-transcript params */\nexport const FyxerTranscriptListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /geo-codes-postal-codes params */\nexport const GeoCodesPostalCodesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /open-search/embedding params */\nexport const OpenSearchEmbeddingListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n q: v.string(),\n});\n\n/** Schema for GET /postal-codes-x-shiptos params */\nexport const PostalCodesXShiptosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /settings params */\nexport const SettingsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n serviceName: v.string(),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /training params */\nexport const TrainingListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /training/{trainingSetUid}/conversations params */\nexport const TrainingConversationsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /training/{trainingSetUid}/conversations/{trainingConvUid}/messages params */\nexport const TrainingConversationsMessagesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /users/{userId}/addresses params */\nexport const UsersAddressesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n emailAddress: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const FyxerTranscriptDataSchema = v.looseObject({\n fyxerTranscriptHdrUid: v.optional(v.number()),\n link: v.optional(v.string()),\n summary: v.optional(v.nullable(v.string())),\n transcript: v.optional(v.nullable(v.string())),\n dateRecorded: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n title: v.optional(v.nullable(v.string())),\n});\n\nexport const GeoCodesPostalCodesDataSchema = v.looseObject({\n geoCodesPostalCodesUid: v.optional(v.number()),\n countryCode: v.optional(v.string()),\n postalCode: v.optional(v.string()),\n placeName: v.optional(v.string()),\n adminName1: v.optional(v.string()),\n adminCode1: v.optional(v.string()),\n adminName2: v.optional(v.nullable(v.string())),\n adminCode2: v.optional(v.nullable(v.string())),\n adminName3: v.optional(v.nullable(v.string())),\n adminCode3: v.optional(v.nullable(v.string())),\n latitude: v.optional(v.number()),\n longitude: v.optional(v.number()),\n accuracy: v.optional(v.nullable(v.number())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const NotificationsDataSchema = v.looseObject({\n notificationsUid: v.optional(v.number()),\n serviceName: v.optional(v.nullable(v.string())),\n dataTypeName: v.optional(v.nullable(v.string())),\n type: v.optional(v.nullable(v.string())),\n dataTypeUid: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const PostalCodesXShiptosDataSchema = v.looseObject({\n postalCodesXShiptosUid: v.optional(v.number()),\n postalCode: v.optional(v.string()),\n shipToId: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const SettingsDataSchema = v.looseObject({\n settingsUid: v.optional(v.number()),\n serviceName: v.optional(v.string()),\n name: v.optional(v.string()),\n value: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const TrainingDataSchema = v.looseObject({\n trainingSetUid: v.optional(v.number()),\n name: v.optional(v.string()),\n description: v.optional(v.nullable(v.string())),\n formatType: v.optional(v.nullable(v.string())),\n systemPrompt: v.optional(v.nullable(v.string())),\n developerPrompt: v.optional(v.nullable(v.string())),\n modelTarget: v.optional(v.nullable(v.string())),\n trainSplitPct: v.optional(v.number()),\n totalConversations: v.optional(v.number()),\n totalTokens: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n updateCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n});\n\nexport const TrainingConversationsDataSchema = v.looseObject({\n trainingConvUid: v.optional(v.number()),\n trainingSetUid: v.optional(v.number()),\n sourceType: v.optional(v.string()),\n generatorModel: v.optional(v.nullable(v.string())),\n serviceName: v.optional(v.nullable(v.string())),\n dataTypeName: v.optional(v.nullable(v.string())),\n dataTypeUid: v.optional(v.nullable(v.number())),\n category: v.optional(v.nullable(v.string())),\n qualityScore: v.optional(v.nullable(v.number())),\n splitType: v.optional(v.string()),\n totalTokens: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n updateCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n});\n\nexport const TrainingConversationsMessagesDataSchema = v.looseObject({\n trainingMsgUid: v.optional(v.number()),\n trainingConvUid: v.optional(v.number()),\n sequenceNo: v.optional(v.number()),\n role: v.optional(v.string()),\n channel: v.optional(v.nullable(v.string())),\n content: v.optional(v.nullable(v.string())),\n analysis: v.optional(v.nullable(v.string())),\n commentary: v.optional(v.nullable(v.string())),\n final: v.optional(v.nullable(v.string())),\n weight: v.optional(v.number()),\n tokens: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n updateCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n});\n\nexport const UsersAddressesDataSchema = v.looseObject({\n userAddressUid: v.optional(v.number()),\n userId: v.optional(v.number()),\n address1: v.optional(v.nullable(v.string())),\n address2: v.optional(v.nullable(v.string())),\n address3: v.optional(v.nullable(v.string())),\n city: v.optional(v.nullable(v.string())),\n state: v.optional(v.nullable(v.string())),\n postalCode: v.optional(v.nullable(v.string())),\n country: v.optional(v.nullable(v.string())),\n emailAddress: v.optional(v.nullable(v.string())),\n name: v.optional(v.nullable(v.string())),\n phoneNumberMain: v.optional(v.nullable(v.string())),\n phoneNumberMobile: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for agr-site service\n * Source: shared/specs/agr-site.json\n * Generated: 2026-09-23T23:29:46Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n FyxerTranscriptDataSchema,\n GeoCodesPostalCodesDataSchema,\n NotificationsDataSchema,\n PostalCodesXShiptosDataSchema,\n SettingsDataSchema,\n TrainingConversationsDataSchema,\n TrainingConversationsMessagesDataSchema,\n TrainingDataSchema,\n UsersAddressesDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/context/{siteId}',\n chain: 'context',\n action: 'get',\n aliases: [],\n pathParams: ['siteId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/datafiles',\n chain: 'datafiles',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/fyxer-transcript',\n chain: 'fyxerTranscript',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: FyxerTranscriptDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/fyxer-transcript',\n chain: 'fyxerTranscript',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: FyxerTranscriptDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/fyxer-transcript/{fyxerTranscriptHdrUid}',\n chain: 'fyxerTranscript',\n action: 'get',\n aliases: [],\n pathParams: ['fyxerTranscriptHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: FyxerTranscriptDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/fyxer-transcript/{fyxerTranscriptHdrUid}',\n chain: 'fyxerTranscript',\n action: 'update',\n aliases: [],\n pathParams: ['fyxerTranscriptHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: FyxerTranscriptDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/fyxer-transcript/{fyxerTranscriptHdrUid}',\n chain: 'fyxerTranscript',\n action: 'delete',\n aliases: [],\n pathParams: ['fyxerTranscriptHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/geo-codes-postal-codes',\n chain: 'geoCodesPostalCodes',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: GeoCodesPostalCodesDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/geo-codes-postal-codes/{geoCodesPostalCodesUid}',\n chain: 'geoCodesPostalCodes',\n action: 'get',\n aliases: [],\n pathParams: ['geoCodesPostalCodesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: GeoCodesPostalCodesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/meta-files/robots',\n chain: 'metaFiles.robots',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/notifications',\n chain: 'notifications',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: NotificationsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/open-search/embedding',\n chain: 'openSearch.embedding',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/postal-codes-x-shiptos',\n chain: 'postalCodesXShiptos',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PostalCodesXShiptosDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/postal-codes-x-shiptos',\n chain: 'postalCodesXShiptos',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PostalCodesXShiptosDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/postal-codes-x-shiptos/{postalCodesXShiptosUid}',\n chain: 'postalCodesXShiptos',\n action: 'get',\n aliases: [],\n pathParams: ['postalCodesXShiptosUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PostalCodesXShiptosDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/postal-codes-x-shiptos/{postalCodesXShiptosUid}',\n chain: 'postalCodesXShiptos',\n action: 'update',\n aliases: [],\n pathParams: ['postalCodesXShiptosUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PostalCodesXShiptosDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/postal-codes-x-shiptos/{postalCodesXShiptosUid}',\n chain: 'postalCodesXShiptos',\n action: 'delete',\n aliases: [],\n pathParams: ['postalCodesXShiptosUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PostalCodesXShiptosDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/settings',\n chain: 'settings',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'serviceName', 'statusCd'],\n edgeCache: true,\n responseSchema: SettingsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/settings',\n chain: 'settings',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: SettingsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/settings/{settingsUid}',\n chain: 'settings',\n action: 'get',\n aliases: [],\n pathParams: ['settingsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: SettingsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/settings/{settingsUid}',\n chain: 'settings',\n action: 'update',\n aliases: [],\n pathParams: ['settingsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: SettingsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/settings/{settingsUid}',\n chain: 'settings',\n action: 'delete',\n aliases: [],\n pathParams: ['settingsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/training',\n chain: 'training',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: TrainingDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/training',\n chain: 'training',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/training/{trainingSetUid}',\n chain: 'training',\n action: 'get',\n aliases: [],\n pathParams: ['trainingSetUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TrainingDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/training/{trainingSetUid}',\n chain: 'training',\n action: 'update',\n aliases: [],\n pathParams: ['trainingSetUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/training/{trainingSetUid}',\n chain: 'training',\n action: 'delete',\n aliases: [],\n pathParams: ['trainingSetUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/training/{trainingSetUid}/conversations',\n chain: 'training.conversations',\n action: 'list',\n aliases: [],\n pathParams: ['trainingSetUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: TrainingConversationsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/training/{trainingSetUid}/conversations',\n chain: 'training.conversations',\n action: 'create',\n aliases: [],\n pathParams: ['trainingSetUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}',\n chain: 'training.conversations',\n action: 'get',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TrainingConversationsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}',\n chain: 'training.conversations',\n action: 'update',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}',\n chain: 'training.conversations',\n action: 'delete',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}/messages',\n chain: 'training.conversations.messages',\n action: 'list',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: TrainingConversationsMessagesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}/messages',\n chain: 'training.conversations.messages',\n action: 'create',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsMessagesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}/messages/{trainingMsgUid}',\n chain: 'training.conversations.messages',\n action: 'get',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid', 'trainingMsgUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TrainingConversationsMessagesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}/messages/{trainingMsgUid}',\n chain: 'training.conversations.messages',\n action: 'update',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid', 'trainingMsgUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsMessagesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}/messages/{trainingMsgUid}',\n chain: 'training.conversations.messages',\n action: 'delete',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid', 'trainingMsgUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsMessagesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{userId}/addresses',\n chain: 'users.addresses',\n action: 'list',\n aliases: [],\n pathParams: ['userId'],\n queryParams: ['emailAddress', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: UsersAddressesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/users/{userId}/addresses',\n chain: 'users.addresses',\n action: 'create',\n aliases: [],\n pathParams: ['userId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersAddressesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{userId}/addresses/{userAddressUid}',\n chain: 'users.addresses',\n action: 'get',\n aliases: [],\n pathParams: ['userId', 'userAddressUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: UsersAddressesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/users/{userId}/addresses/{userAddressUid}',\n chain: 'users.addresses',\n action: 'update',\n aliases: [],\n pathParams: ['userId', 'userAddressUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersAddressesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/users/{userId}/addresses/{userAddressUid}',\n chain: 'users.addresses',\n action: 'delete',\n aliases: [],\n pathParams: ['userId', 'userAddressUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersAddressesDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated client for agr-site service\n * Source: shared/specs/agr-site.json\n * Generated: 2026-09-23T23:29:46Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { AgrSiteClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class AgrSiteClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly context: AgrSiteClientSpec['context'];\n readonly datafiles: AgrSiteClientSpec['datafiles'];\n readonly fyxerTranscript: AgrSiteClientSpec['fyxerTranscript'];\n readonly geoCodesPostalCodes: AgrSiteClientSpec['geoCodesPostalCodes'];\n readonly metaFiles: AgrSiteClientSpec['metaFiles'];\n readonly notifications: AgrSiteClientSpec['notifications'];\n readonly openSearch: AgrSiteClientSpec['openSearch'];\n readonly postalCodesXShiptos: AgrSiteClientSpec['postalCodesXShiptos'];\n readonly settings: AgrSiteClientSpec['settings'];\n readonly training: AgrSiteClientSpec['training'];\n readonly users: AgrSiteClientSpec['users'];\n\n // Data-only resources (unwrap .data from every response)\n readonly contextData: AgrSiteClientSpec['context'];\n readonly datafilesData: AgrSiteClientSpec['datafiles'];\n readonly fyxerTranscriptData: AgrSiteClientSpec['fyxerTranscript'];\n readonly geoCodesPostalCodesData: AgrSiteClientSpec['geoCodesPostalCodes'];\n readonly metaFilesData: AgrSiteClientSpec['metaFiles'];\n readonly notificationsData: AgrSiteClientSpec['notifications'];\n readonly openSearchData: AgrSiteClientSpec['openSearch'];\n readonly postalCodesXShiptosData: AgrSiteClientSpec['postalCodesXShiptos'];\n readonly settingsData: AgrSiteClientSpec['settings'];\n readonly trainingData: AgrSiteClientSpec['training'];\n readonly usersData: AgrSiteClientSpec['users'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://agr-site.augur-api.com') {\n super('agr-site', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<AgrSiteClientSpec>('agr-site', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.context = proxy.context;\n this.datafiles = proxy.datafiles;\n this.fyxerTranscript = proxy.fyxerTranscript;\n this.geoCodesPostalCodes = proxy.geoCodesPostalCodes;\n this.metaFiles = proxy.metaFiles;\n this.notifications = proxy.notifications;\n this.openSearch = proxy.openSearch;\n this.postalCodesXShiptos = proxy.postalCodesXShiptos;\n this.settings = proxy.settings;\n this.training = proxy.training;\n this.users = proxy.users;\n\n // Wire data proxy resources\n this.contextData = dataProxy.context;\n this.datafilesData = dataProxy.datafiles;\n this.fyxerTranscriptData = dataProxy.fyxerTranscript;\n this.geoCodesPostalCodesData = dataProxy.geoCodesPostalCodes;\n this.metaFilesData = dataProxy.metaFiles;\n this.notificationsData = dataProxy.notifications;\n this.openSearchData = dataProxy.openSearch;\n this.postalCodesXShiptosData = dataProxy.postalCodesXShiptos;\n this.settingsData = dataProxy.settings;\n this.trainingData = dataProxy.training;\n this.usersData = dataProxy.users;\n }\n\n protected getServiceDescription(): string {\n return 'Central site configuration hub managing settings, notifications, training data, and cross-service integrations per client';\n }\n}\n","/**\n * Generated Valibot schemas for customers service\n * Source: shared/specs/customers.json\n * Generated: 2026-09-28T15:25:30Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /contacts/{id}/customers params */\nexport const ContactsCustomersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n class5Id: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /customer params */\nexport const CustomerListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n class5Id: v.optional(v.string()),\n companyId: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/lookup params */\nexport const CustomerLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.string(),\n});\n\n/** Schema for GET /customer/{customerId}/address params */\nexport const CustomerAddressListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.string(),\n});\n\n/** Schema for GET /customer/{customerId}/addresses params */\nexport const CustomerAddressesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n emailAddress: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /customer/{customerId}/aging params */\nexport const CustomerAgingListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n asOf: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n shipToId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /customer/{customerId}/contacts params */\nexport const CustomerContactsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.string(),\n});\n\n/** Schema for GET /customer/{customerId}/invoices params */\nexport const CustomerInvoicesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n contactId: v.optional(v.string()),\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n paidInFull: v.optional(v.string()),\n q: v.string(),\n shipToId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /customer/{customerId}/orders params */\nexport const CustomerOrdersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n addressId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n cancelFlag: v.optional(v.string()),\n contactId: v.optional(v.string()),\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n fullDocument: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/purchased-items params */\nexport const CustomerPurchasedItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/quotes params */\nexport const CustomerQuotesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n addressId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n contactId: v.optional(v.string()),\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/rmas params */\nexport const CustomerRmasListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/sales-usage params */\nexport const CustomerSalesUsageListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invoicedFrom: v.optional(v.string()),\n invoicedTo: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n shipToId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n supplierId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n totalBy: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/ship-to params */\nexport const CustomerShipToListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/ship-to/lookup params */\nexport const CustomerShipToLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/tags params */\nexport const CustomerTagsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const CustomerAddressesDataSchema = v.looseObject({\n customerAddressUid: v.optional(v.number()),\n customerId: v.optional(v.number()),\n address1: v.optional(v.nullable(v.string())),\n address2: v.optional(v.nullable(v.string())),\n address3: v.optional(v.nullable(v.string())),\n city: v.optional(v.nullable(v.string())),\n state: v.optional(v.nullable(v.string())),\n postalCode: v.optional(v.nullable(v.string())),\n country: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n emailAddress: v.optional(v.nullable(v.string())),\n name: v.optional(v.nullable(v.string())),\n phoneNumberMain: v.optional(v.nullable(v.string())),\n phoneNumberMobile: v.optional(v.nullable(v.string())),\n});\n\nexport const CustomerAgingDataSchema = v.looseObject({\n customerId: v.optional(v.string()),\n asOf: v.optional(v.string()),\n bucketKeys: v.optional(v.string()),\n invoiceCount: v.optional(v.number()),\n totalBalance: v.optional(v.number()),\n totals: v.optional(v.string()),\n data: v.optional(v.string()),\n});\n\nexport const CustomerSalesUsageDataSchema = v.looseObject({\n customerId: v.optional(v.string()),\n invoicedFrom: v.optional(v.string()),\n invoicedTo: v.optional(v.string()),\n totalBy: v.optional(v.string()),\n bucketKeys: v.optional(v.string()),\n invoiceCount: v.optional(v.number()),\n linesFolded: v.optional(v.number()),\n itemCount: v.optional(v.number()),\n data: v.optional(v.string()),\n});\n\nexport const CustomerShipToDataSchema = v.looseObject({\n shipToId: v.optional(v.number()),\n customerId: v.optional(v.number()),\n companyId: v.optional(v.string()),\n defaultBranch: v.optional(v.string()),\n defaultCarrierId: v.optional(v.nullable(v.number())),\n preferredLocationId: v.optional(v.nullable(v.number())),\n deliveryInstructions: v.optional(v.nullable(v.string())),\n shippingRouteUid: v.optional(v.nullable(v.number())),\n routeCode: v.optional(v.nullable(v.string())),\n routeDescription: v.optional(v.nullable(v.string())),\n address: v.optional(v.string()),\n});\n\nexport const CustomerTagsDataSchema = v.looseObject({\n customerTagsUid: v.optional(v.number()),\n customerId: v.optional(v.number()),\n tag: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for customers service\n * Source: shared/specs/customers.json\n * Generated: 2026-09-28T15:25:30Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n CustomerAddressesDataSchema,\n CustomerAgingDataSchema,\n CustomerSalesUsageDataSchema,\n CustomerShipToDataSchema,\n CustomerTagsDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/contacts-ud/{id}',\n chain: 'contactsUd',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contacts/refresh',\n chain: 'contacts.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contacts/{id}/customers',\n chain: 'contacts.customers',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['class5Id', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contacts/{id}/doc',\n chain: 'contacts.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contacts/{id}/web-allowance',\n chain: 'contacts.webAllowance',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer',\n chain: 'customer',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['class5Id', 'companyId', 'deleteFlag', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/lookup',\n chain: 'customer.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/address',\n chain: 'customer.address',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/addresses',\n chain: 'customer.addresses',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['emailAddress', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: CustomerAddressesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/customer/{customerId}/addresses',\n chain: 'customer.addresses',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerAddressesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/addresses/{customerAddressUid}',\n chain: 'customer.addresses',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'customerAddressUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CustomerAddressesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/customer/{customerId}/addresses/{customerAddressUid}',\n chain: 'customer.addresses',\n action: 'update',\n aliases: [],\n pathParams: ['customerId', 'customerAddressUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerAddressesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/customer/{customerId}/addresses/{customerAddressUid}',\n chain: 'customer.addresses',\n action: 'delete',\n aliases: [],\n pathParams: ['customerId', 'customerAddressUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerAddressesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/aging',\n chain: 'customer.aging',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['asOf', 'limit', 'offset', 'orderBy', 'shipToId'],\n edgeCache: true,\n responseSchema: CustomerAgingDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/contacts',\n chain: 'customer.contacts',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/customer/{customerId}/contacts',\n chain: 'customer.contacts',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/doc',\n chain: 'customer.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/invoices',\n chain: 'customer.invoices',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [\n 'contactId',\n 'createdFrom',\n 'createdOn',\n 'createdTo',\n 'limit',\n 'offset',\n 'paidInFull',\n 'q',\n 'shipToId',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/invoices/{invoiceNo}',\n chain: 'customer.invoices',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'invoiceNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/orders',\n chain: 'customer.orders',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [\n 'addressId',\n 'cancelFlag',\n 'contactId',\n 'createdFrom',\n 'createdOn',\n 'createdTo',\n 'deleteFlag',\n 'fullDocument',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/orders/{orderNo}',\n chain: 'customer.orders',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'orderNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/purchased-items',\n chain: 'customer.purchasedItems',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/quotes',\n chain: 'customer.quotes',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [\n 'addressId',\n 'contactId',\n 'createdFrom',\n 'createdOn',\n 'createdTo',\n 'limit',\n 'offset',\n 'orderBy',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/quotes/{quoteNo}',\n chain: 'customer.quotes',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'quoteNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/rmas',\n chain: 'customer.rmas',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['createdFrom', 'createdOn', 'createdTo', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/rmas/{rmaNo}',\n chain: 'customer.rmas',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'rmaNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/sales-usage',\n chain: 'customer.salesUsage',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [\n 'invoicedFrom',\n 'invoicedTo',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n 'shipToId',\n 'supplierId',\n 'totalBy',\n ],\n edgeCache: true,\n responseSchema: CustomerSalesUsageDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/customer/{customerId}/ship-to',\n chain: 'customer.shipTo',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/ship-to',\n chain: 'customer.shipTo',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: CustomerShipToDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/ship-to/lookup',\n chain: 'customer.shipTo.lookup',\n action: 'get',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/ship-to/{shipToId}/freight-codes',\n chain: 'customer.shipTo.freightCodes',\n action: 'list',\n aliases: [],\n pathParams: ['customerId', 'shipToId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/tags',\n chain: 'customer.tags',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: CustomerTagsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/customer/{customerId}/tags',\n chain: 'customer.tags',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerTagsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/tags/{customerTagsUid}',\n chain: 'customer.tags',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CustomerTagsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/customer/{customerId}/tags/{customerTagsUid}',\n chain: 'customer.tags',\n action: 'update',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerTagsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/customer/{customerId}/tags/{customerTagsUid}',\n chain: 'customer.tags',\n action: 'delete',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerTagsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/oe-contacts-customer/refresh',\n chain: 'oeContactsCustomer.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/ship-to/refresh',\n chain: 'shipTo.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for customers service\n * Source: shared/specs/customers.json\n * Generated: 2026-09-28T15:25:30Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { CustomersClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class CustomersClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly contacts: CustomersClientSpec['contacts'];\n readonly contactsUd: CustomersClientSpec['contactsUd'];\n readonly customer: CustomersClientSpec['customer'];\n readonly oeContactsCustomer: CustomersClientSpec['oeContactsCustomer'];\n readonly shipTo: CustomersClientSpec['shipTo'];\n\n // Data-only resources (unwrap .data from every response)\n readonly contactsData: CustomersClientSpec['contacts'];\n readonly contactsUdData: CustomersClientSpec['contactsUd'];\n readonly customerData: CustomersClientSpec['customer'];\n readonly oeContactsCustomerData: CustomersClientSpec['oeContactsCustomer'];\n readonly shipToData: CustomersClientSpec['shipTo'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://customers.augur-api.com') {\n super('customers', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<CustomersClientSpec>(\n 'customers',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.contacts = proxy.contacts;\n this.contactsUd = proxy.contactsUd;\n this.customer = proxy.customer;\n this.oeContactsCustomer = proxy.oeContactsCustomer;\n this.shipTo = proxy.shipTo;\n\n // Wire data proxy resources\n this.contactsData = dataProxy.contacts;\n this.contactsUdData = dataProxy.contactsUd;\n this.customerData = dataProxy.customer;\n this.oeContactsCustomerData = dataProxy.oeContactsCustomer;\n this.shipToData = dataProxy.shipTo;\n }\n\n protected getServiceDescription(): string {\n return 'Customer master data including contacts, shipping addresses, invoices, rewards, and P21 customer sync';\n }\n}\n","/**\n * Generated Valibot schemas for orders service\n * Source: shared/specs/orders.json\n * Generated: 2026-09-23T23:30:00Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /oe-hdr/lookup params */\nexport const OeHdrLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n class1Id: v.optional(v.string()),\n completed: v.optional(v.string()),\n dateOrderCompleted: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n salesrepId: v.optional(v.string()),\n taker: v.optional(v.string()),\n});\n\n/** Schema for GET /oe-hdr/{orderNo}/doc params */\nexport const OeHdrDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n postalCode: v.optional(v.string()),\n});\n\n/** Schema for GET /pick-tickets params */\nexport const PickTicketsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n locationId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n orderNo: v.optional(v.string()),\n printedFlag: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /pick-tickets/{pickTicketNo}/lines params */\nexport const PickTicketsLinesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /po-hdr params */\nexport const PoHdrListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n complete: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n locationId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const PickTicketsDataSchema = v.looseObject({\n pickTicketNo: v.optional(v.number()),\n orderNo: v.optional(v.string()),\n companyId: v.optional(v.string()),\n carrierId: v.optional(v.nullable(v.number())),\n trackingNo: v.optional(v.nullable(v.string())),\n instructions: v.optional(v.nullable(v.string())),\n shipDate: v.optional(v.nullable(v.string())),\n invoiceNo: v.optional(v.nullable(v.number())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n locationId: v.optional(v.number()),\n deleteFlag: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n printedFlag: v.optional(v.nullable(v.string())),\n confirmableRowStatusFlag: v.optional(v.number()),\n directShipment: v.optional(v.nullable(v.string())),\n auxiliary: v.optional(v.string()),\n printDate: v.optional(v.nullable(v.string())),\n oePickTicketTypeCd: v.optional(v.nullable(v.number())),\n});\n\nexport const PickTicketsLinesDataSchema = v.looseObject({\n pickTicketNo: v.optional(v.number()),\n lineNumber: v.optional(v.number()),\n companyId: v.optional(v.string()),\n printQuantity: v.optional(v.nullable(v.number())),\n shipQuantity: v.optional(v.nullable(v.number())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n unitOfMeasure: v.optional(v.string()),\n unitSize: v.optional(v.number()),\n unitQuantity: v.optional(v.number()),\n oeLineNo: v.optional(v.number()),\n qtyRequested: v.optional(v.nullable(v.number())),\n qtyToPick: v.optional(v.nullable(v.number())),\n invMastUid: v.optional(v.number()),\n invoiceLineUid: v.optional(v.nullable(v.number())),\n qtyScanned: v.optional(v.nullable(v.number())),\n boxNumber: v.optional(v.nullable(v.string())),\n originalQtyToPick: v.optional(v.nullable(v.number())),\n updateCd: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for orders service\n * Source: shared/specs/orders.json\n * Generated: 2026-09-23T23:30:00Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n PickTicketsDataSchema,\n PickTicketsLinesDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/invoice-hdr/{invoiceNo}/reprint',\n chain: 'invoiceHdr.reprint',\n action: 'list',\n aliases: [],\n pathParams: ['invoiceNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/oe-hdr-salesrep/{salesrepId}/oe-hdr',\n chain: 'oeHdrSalesrep.oeHdr',\n action: 'list',\n aliases: [],\n pathParams: ['salesrepId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/oe-hdr-salesrep/{salesrepId}/oe-hdr/{orderNo}/doc',\n chain: 'oeHdrSalesrep.oeHdr.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['salesrepId', 'orderNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/oe-hdr/lookup',\n chain: 'oeHdr.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'class1Id',\n 'completed',\n 'dateOrderCompleted',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n 'salesrepId',\n 'taker',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/oe-hdr/{orderNo}/doc',\n chain: 'oeHdr.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['orderNo'],\n queryParams: ['postalCode'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/pick-tickets',\n chain: 'pickTickets',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'companyId',\n 'deleteFlag',\n 'limit',\n 'locationId',\n 'offset',\n 'orderBy',\n 'orderNo',\n 'printedFlag',\n 'q',\n ],\n edgeCache: true,\n responseSchema: PickTicketsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/pick-tickets/{pickTicketNo}',\n chain: 'pickTickets',\n action: 'get',\n aliases: [],\n pathParams: ['pickTicketNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PickTicketsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/pick-tickets/{pickTicketNo}/lines',\n chain: 'pickTickets.lines',\n action: 'list',\n aliases: [],\n pathParams: ['pickTicketNo'],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PickTicketsLinesDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/pick-tickets/{pickTicketNo}/lines/{lineNumber}',\n chain: 'pickTickets.lines',\n action: 'get',\n aliases: [],\n pathParams: ['pickTicketNo', 'lineNumber'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PickTicketsLinesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/po-hdr',\n chain: 'poHdr',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['complete', 'limit', 'locationId', 'offset', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/po-hdr/scan',\n chain: 'poHdr.scan',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/po-hdr/{poNo}',\n chain: 'poHdr',\n action: 'get',\n aliases: [],\n pathParams: ['poNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/po-hdr/{poNo}/doc',\n chain: 'poHdr.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['poNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","import { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { OrdersClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\n/**\n * Orders Service Client - OpenAPI Path Mirroring Implementation\n * @description Comprehensive order management functionality for the Augur platform covering the complete order lifecycle from creation through fulfillment, including order processing, invoicing, purchase orders, and sales representative management. Follows strict OpenAPI path mirroring pattern.\n *\n * @fullPath api.orders\n * @service orders\n * @domain order-management\n * @discoverable true\n * @searchTerms [\"orders\", \"order management\", \"purchase orders\", \"invoices\", \"sales orders\", \"order processing\", \"fulfillment\"]\n * @relatedEndpoints [\"api.customers.customer.list\", \"api.items.products.list\", \"api.pricing.job-pricing.create\", \"api.commerce.checkout.process\"]\n * @commonPatterns [\"Order lookup\", \"Order tracking\", \"Purchase order management\", \"Invoice processing\", \"Sales rep orders\"]\n * @functionalArea \"order-and-fulfillment-management\"\n * @workflow [\"order-processing\", \"purchase-order-workflow\", \"invoice-management\", \"sales-order-lifecycle\"]\n * @businessRules [\"Orders require valid customer and items\", \"Purchase orders track receiving status\", \"Invoices integrate with Prophet 21\", \"Access filtered by sales rep permissions\"]\n * @performance \"Supports pagination and filtering. Use edgeCache for frequently accessed data.\"\n *\n * @example\n * ```typescript\n * const api = new AugurAPI({ bearerToken: 'token', siteId: 'site' });\n *\n * // OpenAPI Path Mirroring Examples:\n * // /oe-hdr/lookup → api.orders.oeHdr.lookup.get()\n * const ordersResponse = await api.orders.oeHdr.lookup.get({ limit: 10, q: '12345' });\n * console.log(`Found ${ordersResponse.total} orders`);\n *\n * // /oe-hdr/{orderNo}/doc → api.orders.oeHdr.doc.get(orderNo)\n * const orderDoc = await api.orders.oeHdr.doc.get(12345678, { postalCode: '12345' });\n *\n * // /oe-hdr-salesrep/{salesrepId}/oe-hdr → api.orders.oeHdrSalesrep.oeHdr.list(salesrepId)\n * const repOrders = await api.orders.oeHdrSalesrep.oeHdr.list(12345);\n *\n * // /po-hdr/scan → api.orders.poHdr.scan.create(params)\n * const similarPOs = await api.orders.poHdr.scan.create({ vendorId: 'VENDOR001' });\n * ```\n */\nexport class OrdersClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly invoiceHdr: OrdersClientSpec['invoiceHdr'];\n readonly oeHdr: OrdersClientSpec['oeHdr'];\n readonly oeHdrSalesrep: OrdersClientSpec['oeHdrSalesrep'];\n readonly pickTickets: OrdersClientSpec['pickTickets'];\n readonly poHdr: OrdersClientSpec['poHdr'];\n\n // Data-only resources (unwrap .data from every response)\n readonly invoiceHdrData: OrdersClientSpec['invoiceHdr'];\n readonly oeHdrData: OrdersClientSpec['oeHdr'];\n readonly oeHdrSalesrepData: OrdersClientSpec['oeHdrSalesrep'];\n readonly pickTicketsData: OrdersClientSpec['pickTickets'];\n readonly poHdrData: OrdersClientSpec['poHdr'];\n\n /**\n * Create a new OrdersClient instance\n * @param http Configured HTTPClient instance with authentication\n * @param baseUrl Base URL for the Orders API (default: https://orders.augur-api.com)\n */\n constructor(http: HTTPClient, baseUrl: string = 'https://orders.augur-api.com') {\n super('orders', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes.\n return this.executeRequest(config, params, pathParams);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<OrdersClientSpec>('orders', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.invoiceHdr = proxy.invoiceHdr;\n this.oeHdr = proxy.oeHdr;\n this.oeHdrSalesrep = proxy.oeHdrSalesrep;\n this.pickTickets = proxy.pickTickets;\n this.poHdr = proxy.poHdr;\n\n // Wire data proxy resources\n this.invoiceHdrData = dataProxy.invoiceHdr;\n this.oeHdrData = dataProxy.oeHdr;\n this.oeHdrSalesrepData = dataProxy.oeHdrSalesrep;\n this.pickTicketsData = dataProxy.pickTickets;\n this.poHdrData = dataProxy.poHdr;\n }\n}\n","/**\n * Generated Valibot schemas for p21-pim service\n * Source: shared/specs/p21-pim.json\n * Generated: 2026-09-23T23:30:03Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /inv-mast-ext params */\nexport const InvMastExtListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast-files params */\nexport const InvMastFilesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast-text params */\nexport const InvMastTextListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n webDisplayTypeUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /items/{invMastUid}/suggest-display-desc params */\nexport const ItemsSuggestDisplayDescListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n model: v.optional(v.string()),\n});\n\n/** Schema for GET /items/{invMastUid}/suggest-web-desc params */\nexport const ItemsSuggestWebDescListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n model: v.optional(v.string()),\n});\n\n/** Schema for GET /podcasts params */\nexport const PodcastsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const InvMastExtDataSchema = v.looseObject({\n invMastExtUid: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n upcOrEan: v.optional(v.nullable(v.string())),\n upcOrEanId: v.optional(v.nullable(v.string())),\n upcOrEanPrefix: v.optional(v.nullable(v.string())),\n upcOrEanItem: v.optional(v.nullable(v.string())),\n attributeGroupUid: v.optional(v.nullable(v.number())),\n brandName: v.optional(v.nullable(v.string())),\n manufacturerName: v.optional(v.nullable(v.string())),\n partNumber: v.optional(v.nullable(v.string())),\n metaTitle: v.optional(v.nullable(v.string())),\n metaDescription: v.optional(v.nullable(v.string())),\n metaKeywords: v.optional(v.nullable(v.string())),\n});\n\nexport const InvMastFilesDataSchema = v.looseObject({\n invMastFilesUid: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n fileName: v.optional(v.string()),\n filePath: v.optional(v.string()),\n linkArea: v.optional(v.number()),\n rowStatusFlag: v.optional(v.number()),\n sequenceNo: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n fileDesc: v.optional(v.string()),\n});\n\nexport const InvMastTextDataSchema = v.looseObject({\n invMastTextUid: v.optional(v.number()),\n invMastUid: v.optional(v.number()),\n sequenceNo: v.optional(v.number()),\n textValue: v.optional(v.string()),\n displayOnWebFlag: v.optional(v.string()),\n webDisplayTypeUid: v.optional(v.number()),\n textTypeCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const PodcastsDataSchema = v.looseObject({\n podcastsUid: v.optional(v.number()),\n title: v.optional(v.nullable(v.string())),\n path: v.optional(v.nullable(v.string())),\n transcript: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for p21-pim service\n * Source: shared/specs/p21-pim.json\n * Generated: 2026-09-23T23:30:03Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n InvMastExtDataSchema,\n InvMastFilesDataSchema,\n InvMastTextDataSchema,\n PodcastsDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/inv-mast-ext',\n chain: 'invMastExt',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['invMastUid', 'limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: InvMastExtDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast-ext',\n chain: 'invMastExt',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastExtDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast-ext/{invMastExtUid}',\n chain: 'invMastExt',\n action: 'get',\n aliases: [],\n pathParams: ['invMastExtUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastExtDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast-ext/{invMastExtUid}',\n chain: 'invMastExt',\n action: 'update',\n aliases: [],\n pathParams: ['invMastExtUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastExtDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast-ext/{invMastExtUid}',\n chain: 'invMastExt',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastExtUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast-files',\n chain: 'invMastFiles',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['invMastUid', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: InvMastFilesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast-files',\n chain: 'invMastFiles',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastFilesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast-files/{invMastFilesUid}',\n chain: 'invMastFiles',\n action: 'get',\n aliases: [],\n pathParams: ['invMastFilesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastFilesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast-files/{invMastFilesUid}',\n chain: 'invMastFiles',\n action: 'update',\n aliases: [],\n pathParams: ['invMastFilesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastFilesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast-files/{invMastFilesUid}',\n chain: 'invMastFiles',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastFilesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast-text',\n chain: 'invMastText',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['invMastUid', 'limit', 'offset', 'orderBy', 'statusCd', 'webDisplayTypeUid'],\n edgeCache: true,\n responseSchema: InvMastTextDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast-text',\n chain: 'invMastText',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastTextDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast-text/{invMastTextUid}',\n chain: 'invMastText',\n action: 'get',\n aliases: [],\n pathParams: ['invMastTextUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastTextDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast-text/{invMastTextUid}',\n chain: 'invMastText',\n action: 'update',\n aliases: [],\n pathParams: ['invMastTextUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastTextDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast-text/{invMastTextUid}',\n chain: 'invMastText',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastTextUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/items/{invMastUid}/suggest-display-desc',\n chain: 'items.suggestDisplayDesc',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'model'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/items/{invMastUid}/suggest-web-desc',\n chain: 'items.suggestWebDesc',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'model'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/podcasts',\n chain: 'podcasts',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PodcastsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/podcasts',\n chain: 'podcasts',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/podcasts/{podcastsUid}',\n chain: 'podcasts',\n action: 'get',\n aliases: [],\n pathParams: ['podcastsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PodcastsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/podcasts/{podcastsUid}',\n chain: 'podcasts',\n action: 'update',\n aliases: [],\n pathParams: ['podcastsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/podcasts/{podcastsUid}',\n chain: 'podcasts',\n action: 'delete',\n aliases: [],\n pathParams: ['podcastsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for p21-pim service\n * Source: shared/specs/p21-pim.json\n * Generated: 2026-09-23T23:30:03Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { P21PimClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class P21PimClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly invMastExt: P21PimClientSpec['invMastExt'];\n readonly invMastFiles: P21PimClientSpec['invMastFiles'];\n readonly invMastText: P21PimClientSpec['invMastText'];\n readonly items: P21PimClientSpec['items'];\n readonly podcasts: P21PimClientSpec['podcasts'];\n\n // Data-only resources (unwrap .data from every response)\n readonly invMastExtData: P21PimClientSpec['invMastExt'];\n readonly invMastFilesData: P21PimClientSpec['invMastFiles'];\n readonly invMastTextData: P21PimClientSpec['invMastText'];\n readonly itemsData: P21PimClientSpec['items'];\n readonly podcastsData: P21PimClientSpec['podcasts'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://p21-pim.augur-api.com') {\n super('p21-pim', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<P21PimClientSpec>('p21-pim', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.invMastExt = proxy.invMastExt;\n this.invMastFiles = proxy.invMastFiles;\n this.invMastText = proxy.invMastText;\n this.items = proxy.items;\n this.podcasts = proxy.podcasts;\n\n // Wire data proxy resources\n this.invMastExtData = dataProxy.invMastExt;\n this.invMastFilesData = dataProxy.invMastFiles;\n this.invMastTextData = dataProxy.invMastText;\n this.itemsData = dataProxy.items;\n this.podcastsData = dataProxy.podcasts;\n }\n\n protected getServiceDescription(): string {\n return 'Product information management for rich content, media assets, and extended item descriptions';\n }\n}\n","/**\n * Generated Valibot schemas for payments service\n * Source: shared/specs/payments.json\n * Generated: 2026-09-23T23:30:05Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /moneris/pre-auth params */\nexport const MonerisPreAuthListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n amount: v.pipe(v.unknown(), v.transform(Number)),\n ccNumber: v.string(),\n expDate: v.string(),\n orderId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for GET /moneris/pre-auth-complete params */\nexport const MonerisPreAuthCompleteListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n amount: v.pipe(v.unknown(), v.transform(Number)),\n orderId: v.string(),\n testMode: v.optional(v.boolean()),\n txnNumber: v.string(),\n});\n\n/** Schema for POST /paypal/authorization/capture params */\nexport const PaypalAuthorizationCaptureCreateParamsSchema = v.looseObject({\n amount: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n authorizationId: v.string(),\n finalCapture: v.optional(v.boolean()),\n invoiceId: v.optional(v.string()),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paypal/authorization/void params */\nexport const PaypalAuthorizationVoidCreateParamsSchema = v.looseObject({\n authorizationId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paypal/capture/refund params */\nexport const PaypalCaptureRefundCreateParamsSchema = v.looseObject({\n amount: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n captureId: v.string(),\n invoiceId: v.optional(v.string()),\n noteToPayer: v.optional(v.string()),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paypal/order params */\nexport const PaypalOrderCreateParamsSchema = v.looseObject({\n amount: v.pipe(v.unknown(), v.transform(Number)),\n cancelUrl: v.optional(v.string()),\n currencyCode: v.optional(v.string()),\n intent: v.string(),\n invoiceId: v.optional(v.string()),\n returnUrl: v.optional(v.string()),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for GET /paypal/order-return params */\nexport const PaypalOrderReturnListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n payerId: v.optional(v.string()),\n siteId: v.string(),\n testMode: v.optional(v.boolean()),\n token: v.string(),\n});\n\n/** Schema for POST /paypal/order/authorize params */\nexport const PaypalOrderAuthorizeCreateParamsSchema = v.looseObject({\n orderId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paypal/order/capture params */\nexport const PaypalOrderCaptureCreateParamsSchema = v.looseObject({\n orderId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for GET /paypal/order/details params */\nexport const PaypalOrderDetailsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n orderId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for GET /paypal/refund params */\nexport const PaypalRefundListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n refundId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paypal/webhook params */\nexport const PaypalWebhookCreateParamsSchema = v.looseObject({\n siteId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paytrace/authorization params */\nexport const PaytraceAuthorizationCreateParamsSchema = v.looseObject({\n amount: v.pipe(v.unknown(), v.transform(Number)),\n billingAddress: v.optional(v.string()),\n creditCard: v.string(),\n csc: v.optional(v.string()),\n invoiceId: v.optional(v.string()),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paytrace/capture params */\nexport const PaytraceCaptureCreateParamsSchema = v.looseObject({\n amount: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n testMode: v.optional(v.boolean()),\n transactionId: v.string(),\n});\n\n/** Schema for POST /paytrace/refund params */\nexport const PaytraceRefundCreateParamsSchema = v.looseObject({\n amount: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n testMode: v.optional(v.boolean()),\n transactionId: v.string(),\n});\n\n/** Schema for POST /paytrace/sale params */\nexport const PaytraceSaleCreateParamsSchema = v.looseObject({\n amount: v.pipe(v.unknown(), v.transform(Number)),\n billingAddress: v.optional(v.string()),\n creditCard: v.string(),\n csc: v.optional(v.string()),\n invoiceId: v.optional(v.string()),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paytrace/void params */\nexport const PaytraceVoidCreateParamsSchema = v.looseObject({\n testMode: v.optional(v.boolean()),\n transactionId: v.string(),\n});\n\n/** Schema for GET /unified/account-query params */\nexport const UnifiedAccountQueryListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.string(),\n mode: v.optional(v.string()),\n transactionSetupId: v.string(),\n});\n\n/** Schema for GET /unified/billing-update params */\nexport const UnifiedBillingUpdateListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n address1: v.string(),\n address2: v.optional(v.string()),\n city: v.string(),\n mode: v.optional(v.string()),\n state: v.string(),\n transactionSetupId: v.string(),\n zip: v.string(),\n});\n\n/** Schema for GET /unified/card-info params */\nexport const UnifiedCardInfoListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n mode: v.optional(v.string()),\n transactionSetupId: v.string(),\n});\n\n/** Schema for GET /unified/surcharge params */\nexport const UnifiedSurchargeListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n amount: v.string(),\n country: v.string(),\n customerId: v.string(),\n fromState: v.string(),\n mode: v.optional(v.string()),\n paymentAccountId: v.string(),\n toState: v.string(),\n});\n\n/** Schema for GET /unified/transaction-response params */\nexport const UnifiedTransactionResponseListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n siteId: v.string(),\n});\n\n/** Schema for GET /unified/transaction-setup params */\nexport const UnifiedTransactionSetupListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.string(),\n mode: v.optional(v.string()),\n});\n\n/** Schema for GET /unified/validate params */\nexport const UnifiedValidateListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.string(),\n mode: v.optional(v.string()),\n transactionSetupId: v.string(),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for payments service\n * Source: shared/specs/payments.json\n * Generated: 2026-09-23T23:30:05Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'POST',\n path: '/element/payment',\n chain: 'element.payment',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/moneris/pre-auth',\n chain: 'moneris.preAuth',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'ccNumber', 'expDate', 'orderId', 'testMode'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/moneris/pre-auth-complete',\n chain: 'moneris.preAuthComplete',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'orderId', 'testMode', 'txnNumber'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/authorization/capture',\n chain: 'paypal.authorization.capture',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'authorizationId', 'finalCapture', 'invoiceId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/authorization/void',\n chain: 'paypal.authorization.void',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['authorizationId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/capture/refund',\n chain: 'paypal.capture.refund',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'captureId', 'invoiceId', 'noteToPayer', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/order',\n chain: 'paypal.order',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'amount',\n 'cancelUrl',\n 'currencyCode',\n 'intent',\n 'invoiceId',\n 'returnUrl',\n 'testMode',\n ],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/paypal/order-return',\n chain: 'paypal.orderReturn',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['payerId', 'siteId', 'testMode', 'token'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/order/authorize',\n chain: 'paypal.order.authorize',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['orderId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/order/capture',\n chain: 'paypal.order.capture',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['orderId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/paypal/order/details',\n chain: 'paypal.order.details',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['orderId', 'testMode'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/paypal/refund',\n chain: 'paypal.refund',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['refundId', 'testMode'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/webhook',\n chain: 'paypal.webhook',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['siteId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paytrace/authorization',\n chain: 'paytrace.authorization',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'billingAddress', 'creditCard', 'csc', 'invoiceId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paytrace/capture',\n chain: 'paytrace.capture',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'testMode', 'transactionId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paytrace/refund',\n chain: 'paytrace.refund',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'testMode', 'transactionId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paytrace/sale',\n chain: 'paytrace.sale',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'billingAddress', 'creditCard', 'csc', 'invoiceId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paytrace/void',\n chain: 'paytrace.void',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['testMode', 'transactionId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/account-query',\n chain: 'unified.accountQuery',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'mode', 'transactionSetupId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/billing-update',\n chain: 'unified.billingUpdate',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['address1', 'address2', 'city', 'mode', 'state', 'transactionSetupId', 'zip'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/card-info',\n chain: 'unified.cardInfo',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['mode', 'transactionSetupId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/surcharge',\n chain: 'unified.surcharge',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'amount',\n 'country',\n 'customerId',\n 'fromState',\n 'mode',\n 'paymentAccountId',\n 'toState',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/transaction-response',\n chain: 'unified.transactionResponse',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['siteId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/transaction-setup',\n chain: 'unified.transactionSetup',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'mode'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/validate',\n chain: 'unified.validate',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'mode', 'transactionSetupId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for payments service\n * Source: shared/specs/payments.json\n * Generated: 2026-09-23T23:30:05Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { PaymentsClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class PaymentsClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly element: PaymentsClientSpec['element'];\n readonly moneris: PaymentsClientSpec['moneris'];\n readonly paypal: PaymentsClientSpec['paypal'];\n readonly paytrace: PaymentsClientSpec['paytrace'];\n readonly unified: PaymentsClientSpec['unified'];\n\n // Data-only resources (unwrap .data from every response)\n readonly elementData: PaymentsClientSpec['element'];\n readonly monerisData: PaymentsClientSpec['moneris'];\n readonly paypalData: PaymentsClientSpec['paypal'];\n readonly paytraceData: PaymentsClientSpec['paytrace'];\n readonly unifiedData: PaymentsClientSpec['unified'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://payments.augur-api.com') {\n super('payments', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<PaymentsClientSpec>(\n 'payments',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.element = proxy.element;\n this.moneris = proxy.moneris;\n this.paypal = proxy.paypal;\n this.paytrace = proxy.paytrace;\n this.unified = proxy.unified;\n\n // Wire data proxy resources\n this.elementData = dataProxy.element;\n this.monerisData = dataProxy.moneris;\n this.paypalData = dataProxy.paypal;\n this.paytraceData = dataProxy.paytrace;\n this.unifiedData = dataProxy.unified;\n }\n\n protected getServiceDescription(): string {\n return 'Unified payment processing gateway supporting Moneris, PayTrace, and Element card transactions and PayPal orders';\n }\n}\n","/**\n * Generated Valibot schemas for agr-info service\n * Source: shared/specs/agr-info.json\n * Generated: 2026-09-23T23:29:43Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /microservices params */\nexport const MicroservicesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /rubrics params */\nexport const RubricsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /workflows params */\nexport const WorkflowsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n orderBy: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const MicroservicesDataSchema = v.looseObject({\n microservicesUid: v.optional(v.number()),\n name: v.optional(v.nullable(v.string())),\n id: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n});\n\nexport const RubricsDataSchema = v.looseObject({\n rubricsUid: v.optional(v.number()),\n title: v.optional(v.nullable(v.string())),\n id: v.optional(v.nullable(v.string())),\n content: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n});\n\nexport const WorkflowsDataSchema = v.looseObject({\n workflowsUid: v.optional(v.number()),\n workflowsId: v.optional(v.string()),\n title: v.optional(v.string()),\n description: v.optional(v.nullable(v.string())),\n services: v.optional(v.string()),\n workflow: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for agr-info service\n * Source: shared/specs/agr-info.json\n * Generated: 2026-09-23T23:29:43Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n MicroservicesDataSchema,\n RubricsDataSchema,\n WorkflowsDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'POST',\n path: '/akasha/generate',\n chain: 'akasha.generate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/context/{siteId}',\n chain: 'context',\n action: 'get',\n aliases: [],\n pathParams: ['siteId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/joomla/generate',\n chain: 'joomla.generate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/microservices',\n chain: 'microservices',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: MicroservicesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/microservices',\n chain: 'microservices',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: MicroservicesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/microservices/{microservicesUid}',\n chain: 'microservices',\n action: 'get',\n aliases: [],\n pathParams: ['microservicesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: MicroservicesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/microservices/{microservicesUid}',\n chain: 'microservices',\n action: 'update',\n aliases: [],\n pathParams: ['microservicesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: MicroservicesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/microservices/{microservicesUid}',\n chain: 'microservices',\n action: 'delete',\n aliases: [],\n pathParams: ['microservicesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/ollama/tags',\n chain: 'ollama.tags',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rubrics',\n chain: 'rubrics',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['orderBy'],\n edgeCache: true,\n responseSchema: RubricsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/rubrics',\n chain: 'rubrics',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rubrics/{rubricsUid}',\n chain: 'rubrics',\n action: 'get',\n aliases: [],\n pathParams: ['rubricsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: RubricsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/rubrics/{rubricsUid}',\n chain: 'rubrics',\n action: 'update',\n aliases: [],\n pathParams: ['rubricsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RubricsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/rubrics/{rubricsUid}',\n chain: 'rubrics',\n action: 'delete',\n aliases: [],\n pathParams: ['rubricsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/sites/validate',\n chain: 'sites.validate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/workflows',\n chain: 'workflows',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['orderBy'],\n edgeCache: true,\n responseSchema: WorkflowsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/workflows',\n chain: 'workflows',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: WorkflowsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/workflows/{workflowsUid}',\n chain: 'workflows',\n action: 'get',\n aliases: [],\n pathParams: ['workflowsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: WorkflowsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/workflows/{workflowsUid}',\n chain: 'workflows',\n action: 'update',\n aliases: [],\n pathParams: ['workflowsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WorkflowsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/workflows/{workflowsUid}',\n chain: 'workflows',\n action: 'delete',\n aliases: [],\n pathParams: ['workflowsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for agr-info service\n * Source: shared/specs/agr-info.json\n * Generated: 2026-09-23T23:29:43Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { AgrInfoClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class AgrInfoClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly akasha: AgrInfoClientSpec['akasha'];\n readonly context: AgrInfoClientSpec['context'];\n readonly joomla: AgrInfoClientSpec['joomla'];\n readonly microservices: AgrInfoClientSpec['microservices'];\n readonly ollama: AgrInfoClientSpec['ollama'];\n readonly rubrics: AgrInfoClientSpec['rubrics'];\n readonly sites: AgrInfoClientSpec['sites'];\n readonly workflows: AgrInfoClientSpec['workflows'];\n\n // Data-only resources (unwrap .data from every response)\n readonly akashaData: AgrInfoClientSpec['akasha'];\n readonly contextData: AgrInfoClientSpec['context'];\n readonly joomlaData: AgrInfoClientSpec['joomla'];\n readonly microservicesData: AgrInfoClientSpec['microservices'];\n readonly ollamaData: AgrInfoClientSpec['ollama'];\n readonly rubricsData: AgrInfoClientSpec['rubrics'];\n readonly sitesData: AgrInfoClientSpec['sites'];\n readonly workflowsData: AgrInfoClientSpec['workflows'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://agr-info.augur-api.com') {\n super('agr-info', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<AgrInfoClientSpec>('agr-info', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.akasha = proxy.akasha;\n this.context = proxy.context;\n this.joomla = proxy.joomla;\n this.microservices = proxy.microservices;\n this.ollama = proxy.ollama;\n this.rubrics = proxy.rubrics;\n this.sites = proxy.sites;\n this.workflows = proxy.workflows;\n\n // Wire data proxy resources\n this.akashaData = dataProxy.akasha;\n this.contextData = dataProxy.context;\n this.joomlaData = dataProxy.joomla;\n this.microservicesData = dataProxy.microservices;\n this.ollamaData = dataProxy.ollama;\n this.rubricsData = dataProxy.rubrics;\n this.sitesData = dataProxy.sites;\n this.workflowsData = dataProxy.workflows;\n }\n\n protected getServiceDescription(): string {\n return 'Knowledge management and contextual information aggregation from Basecamp, Joomla, and AI sources';\n }\n}\n","/**\n * Generated Valibot schemas for agr-int service\n * Source: shared/specs/agr-int.json\n * Generated: 2026-09-24T16:49:10Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /bundles params */\nexport const BundlesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n bundleId: v.optional(v.string()),\n bundleName: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n systemFlag: v.optional(v.string()),\n});\n\n/** Schema for GET /bundles/{bundlesUid}/resources params */\nexport const BundlesResourcesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /clients params */\nexport const ClientsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n usersUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /resources params */\nexport const ResourcesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n resourceId: v.optional(v.string()),\n resourceName: v.optional(v.string()),\n resourcePath: v.optional(v.string()),\n resourceType: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /roles params */\nexport const RolesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n roleId: v.optional(v.string()),\n roleName: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n systemFlag: v.optional(v.string()),\n});\n\n/** Schema for GET /roles/{rolesUid}/bundles params */\nexport const RolesBundlesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /users params */\nexport const UsersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n email: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n phoneNumber: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n username: v.optional(v.string()),\n});\n\n/** Schema for GET /users/{usersUid}/roles params */\nexport const UsersRolesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const BundlesDataSchema = v.looseObject({\n bundlesUid: v.optional(v.number()),\n bundleId: v.optional(v.string()),\n bundleName: v.optional(v.string()),\n description: v.optional(v.nullable(v.string())),\n systemFlag: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n menuGroup: v.optional(v.nullable(v.number())),\n});\n\nexport const BundlesResourcesDataSchema = v.looseObject({\n bundlesXResourcesUid: v.optional(v.number()),\n bundlesUid: v.optional(v.number()),\n resourcesUid: v.optional(v.number()),\n readCd: v.optional(v.number()),\n writeCd: v.optional(v.number()),\n executeCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const ClientsDataSchema = v.looseObject({\n clientsUid: v.optional(v.number()),\n clientId: v.optional(v.string()),\n clientSecret: v.optional(v.string()),\n usersUid: v.optional(v.number()),\n keyVersion: v.optional(v.number()),\n clientName: v.optional(v.string()),\n description: v.optional(v.nullable(v.string())),\n issuedById: v.optional(v.nullable(v.number())),\n issuedByUsername: v.optional(v.nullable(v.string())),\n retiredById: v.optional(v.nullable(v.number())),\n retiredByUsername: v.optional(v.nullable(v.string())),\n dateLastUsed: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const ClientsData2Schema = v.looseObject({\n clientsUid: v.optional(v.number()),\n clientId: v.optional(v.string()),\n usersUid: v.optional(v.number()),\n keyVersion: v.optional(v.number()),\n clientName: v.optional(v.string()),\n description: v.optional(v.nullable(v.string())),\n issuedById: v.optional(v.nullable(v.number())),\n issuedByUsername: v.optional(v.nullable(v.string())),\n statusCd: v.optional(v.number()),\n credential: v.optional(v.string()),\n});\n\nexport const ClientsValidateDataSchema = v.looseObject({\n valid: v.optional(v.boolean()),\n siteId: v.optional(v.string()),\n tokenUse: v.optional(v.string()),\n clientUid: v.optional(v.number()),\n clientId: v.optional(v.string()),\n usersUid: v.optional(v.number()),\n username: v.optional(v.string()),\n roles: v.optional(v.string()),\n bundles: v.optional(v.string()),\n resources: v.optional(v.string()),\n});\n\nexport const ClientsData3Schema = v.looseObject({\n clientsUid: v.optional(v.number()),\n clientId: v.optional(v.string()),\n clientSecret: v.optional(v.string()),\n usersUid: v.optional(v.number()),\n keyVersion: v.optional(v.number()),\n clientName: v.optional(v.string()),\n description: v.optional(v.nullable(v.string())),\n issuedById: v.optional(v.nullable(v.number())),\n issuedByUsername: v.optional(v.nullable(v.string())),\n retiredById: v.optional(v.nullable(v.number())),\n retiredByUsername: v.optional(v.nullable(v.string())),\n dateLastUsed: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n credential: v.optional(v.string()),\n});\n\nexport const ResourcesDataSchema = v.looseObject({\n resourcesUid: v.optional(v.number()),\n resourceId: v.optional(v.string()),\n resourceName: v.optional(v.string()),\n resourceType: v.optional(v.string()),\n resourcePath: v.optional(v.string()),\n description: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const RolesDataSchema = v.looseObject({\n rolesUid: v.optional(v.number()),\n roleId: v.optional(v.string()),\n roleName: v.optional(v.string()),\n description: v.optional(v.nullable(v.string())),\n systemFlag: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const RolesBundlesDataSchema = v.looseObject({\n rolesXBundlesUid: v.optional(v.number()),\n rolesUid: v.optional(v.number()),\n bundlesUid: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const UsersDataSchema = v.looseObject({\n usersUid: v.optional(v.number()),\n username: v.optional(v.string()),\n password: v.optional(v.string()),\n name: v.optional(v.nullable(v.string())),\n email: v.optional(v.string()),\n phoneNumber: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const UsersRotateDataSchema = v.looseObject({\n usersUid: v.optional(v.number()),\n username: v.optional(v.string()),\n token: v.optional(v.string()),\n});\n\nexport const UsersValidateDataSchema = v.looseObject({\n valid: v.optional(v.boolean()),\n scope: v.optional(v.string()),\n userId: v.optional(v.number()),\n username: v.optional(v.string()),\n email: v.optional(v.string()),\n name: v.optional(v.string()),\n roles: v.optional(v.string()),\n bundles: v.optional(v.string()),\n resources: v.optional(v.string()),\n});\n\nexport const UsersRolesDataSchema = v.looseObject({\n usersXRolesUid: v.optional(v.number()),\n usersUid: v.optional(v.number()),\n rolesUid: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for agr-int service\n * Source: shared/specs/agr-int.json\n * Generated: 2026-09-24T16:49:10Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n BundlesDataSchema,\n BundlesResourcesDataSchema,\n ClientsData2Schema,\n ClientsData3Schema,\n ClientsDataSchema,\n ClientsValidateDataSchema,\n ResourcesDataSchema,\n RolesBundlesDataSchema,\n RolesDataSchema,\n UsersDataSchema,\n UsersRolesDataSchema,\n UsersRotateDataSchema,\n UsersValidateDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/bundles',\n chain: 'bundles',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['bundleId', 'bundleName', 'limit', 'offset', 'orderBy', 'statusCd', 'systemFlag'],\n edgeCache: true,\n responseSchema: BundlesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/bundles',\n chain: 'bundles',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/bundles/{bundlesUid}',\n chain: 'bundles',\n action: 'get',\n aliases: [],\n pathParams: ['bundlesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: BundlesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/bundles/{bundlesUid}',\n chain: 'bundles',\n action: 'update',\n aliases: [],\n pathParams: ['bundlesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/bundles/{bundlesUid}',\n chain: 'bundles',\n action: 'delete',\n aliases: [],\n pathParams: ['bundlesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/bundles/{bundlesUid}/resources',\n chain: 'bundles.resources',\n action: 'list',\n aliases: [],\n pathParams: ['bundlesUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: BundlesResourcesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/bundles/{bundlesUid}/resources',\n chain: 'bundles.resources',\n action: 'create',\n aliases: [],\n pathParams: ['bundlesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesResourcesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/bundles/{bundlesUid}/resources/{bundlesXResourcesUid}',\n chain: 'bundles.resources',\n action: 'get',\n aliases: [],\n pathParams: ['bundlesUid', 'bundlesXResourcesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: BundlesResourcesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/bundles/{bundlesUid}/resources/{bundlesXResourcesUid}',\n chain: 'bundles.resources',\n action: 'update',\n aliases: [],\n pathParams: ['bundlesUid', 'bundlesXResourcesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesResourcesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/bundles/{bundlesUid}/resources/{bundlesXResourcesUid}',\n chain: 'bundles.resources',\n action: 'delete',\n aliases: [],\n pathParams: ['bundlesUid', 'bundlesXResourcesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesResourcesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/clients',\n chain: 'clients',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd', 'usersUid'],\n edgeCache: true,\n responseSchema: ClientsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/clients',\n chain: 'clients',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: ClientsData2Schema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/clients/validate',\n chain: 'clients.validate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: ClientsValidateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/clients/{clientsUid}',\n chain: 'clients',\n action: 'get',\n aliases: [],\n pathParams: ['clientsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ClientsData3Schema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/clients/{clientsUid}',\n chain: 'clients',\n action: 'update',\n aliases: [],\n pathParams: ['clientsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ClientsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/clients/{clientsUid}',\n chain: 'clients',\n action: 'delete',\n aliases: [],\n pathParams: ['clientsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ClientsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/resources',\n chain: 'resources',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'limit',\n 'offset',\n 'orderBy',\n 'resourceId',\n 'resourceName',\n 'resourcePath',\n 'resourceType',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: ResourcesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/resources',\n chain: 'resources',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: ResourcesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/resources/{resourcesUid}',\n chain: 'resources',\n action: 'get',\n aliases: [],\n pathParams: ['resourcesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ResourcesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/resources/{resourcesUid}',\n chain: 'resources',\n action: 'update',\n aliases: [],\n pathParams: ['resourcesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ResourcesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/resources/{resourcesUid}',\n chain: 'resources',\n action: 'delete',\n aliases: [],\n pathParams: ['resourcesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ResourcesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/roles',\n chain: 'roles',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'roleId', 'roleName', 'statusCd', 'systemFlag'],\n edgeCache: true,\n responseSchema: RolesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/roles',\n chain: 'roles',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/roles/{rolesUid}',\n chain: 'roles',\n action: 'get',\n aliases: [],\n pathParams: ['rolesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: RolesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/roles/{rolesUid}',\n chain: 'roles',\n action: 'update',\n aliases: [],\n pathParams: ['rolesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/roles/{rolesUid}',\n chain: 'roles',\n action: 'delete',\n aliases: [],\n pathParams: ['rolesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/roles/{rolesUid}/bundles',\n chain: 'roles.bundles',\n action: 'list',\n aliases: [],\n pathParams: ['rolesUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: RolesBundlesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/roles/{rolesUid}/bundles',\n chain: 'roles.bundles',\n action: 'create',\n aliases: [],\n pathParams: ['rolesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesBundlesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/roles/{rolesUid}/bundles/{rolesXBundlesUid}',\n chain: 'roles.bundles',\n action: 'get',\n aliases: [],\n pathParams: ['rolesUid', 'rolesXBundlesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: RolesBundlesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/roles/{rolesUid}/bundles/{rolesXBundlesUid}',\n chain: 'roles.bundles',\n action: 'update',\n aliases: [],\n pathParams: ['rolesUid', 'rolesXBundlesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesBundlesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/roles/{rolesUid}/bundles/{rolesXBundlesUid}',\n chain: 'roles.bundles',\n action: 'delete',\n aliases: [],\n pathParams: ['rolesUid', 'rolesXBundlesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesBundlesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users',\n chain: 'users',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['email', 'limit', 'offset', 'orderBy', 'phoneNumber', 'statusCd', 'username'],\n edgeCache: true,\n responseSchema: UsersDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/users',\n chain: 'users',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/users/rotate',\n chain: 'users.rotate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersRotateDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/users/validate',\n chain: 'users.validate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersValidateDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/users/verify',\n chain: 'users.verify',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersRotateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{usersUid}',\n chain: 'users',\n action: 'get',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: UsersDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/users/{usersUid}',\n chain: 'users',\n action: 'update',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/users/{usersUid}',\n chain: 'users',\n action: 'delete',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{usersUid}/roles',\n chain: 'users.roles',\n action: 'list',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: UsersRolesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/users/{usersUid}/roles',\n chain: 'users.roles',\n action: 'create',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersRolesDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{usersUid}/roles/{usersXRolesUid}',\n chain: 'users.roles',\n action: 'get',\n aliases: [],\n pathParams: ['usersUid', 'usersXRolesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: UsersRolesDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/users/{usersUid}/roles/{usersXRolesUid}',\n chain: 'users.roles',\n action: 'update',\n aliases: [],\n pathParams: ['usersUid', 'usersXRolesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersRolesDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/users/{usersUid}/roles/{usersXRolesUid}',\n chain: 'users.roles',\n action: 'delete',\n aliases: [],\n pathParams: ['usersUid', 'usersXRolesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersRolesDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated client for agr-int service\n * Source: shared/specs/agr-int.json\n * Generated: 2026-09-24T16:49:10Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { AgrIntClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class AgrIntClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly bundles: AgrIntClientSpec['bundles'];\n readonly clients: AgrIntClientSpec['clients'];\n readonly resources: AgrIntClientSpec['resources'];\n readonly roles: AgrIntClientSpec['roles'];\n readonly users: AgrIntClientSpec['users'];\n\n // Data-only resources (unwrap .data from every response)\n readonly bundlesData: AgrIntClientSpec['bundles'];\n readonly clientsData: AgrIntClientSpec['clients'];\n readonly resourcesData: AgrIntClientSpec['resources'];\n readonly rolesData: AgrIntClientSpec['roles'];\n readonly usersData: AgrIntClientSpec['users'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://agr-int.augur-api.com') {\n super('agr-int', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<AgrIntClientSpec>('agr-int', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.bundles = proxy.bundles;\n this.clients = proxy.clients;\n this.resources = proxy.resources;\n this.roles = proxy.roles;\n this.users = proxy.users;\n\n // Wire data proxy resources\n this.bundlesData = dataProxy.bundles;\n this.clientsData = dataProxy.clients;\n this.resourcesData = dataProxy.resources;\n this.rolesData = dataProxy.roles;\n this.usersData = dataProxy.users;\n }\n\n protected getServiceDescription(): string {\n return 'agr_int';\n }\n}\n","/**\n * Generated client for agr-work service\n * Source: shared/specs/agr-work.json\n * Generated: 2026-09-28T15:25:24Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\n\nexport class AgrWorkClient extends BaseServiceClient {\n constructor(http: HTTPClient, baseUrl: string = 'https://agr-work.augur-api.com') {\n super('agr-work', http, baseUrl);\n }\n\n protected getServiceDescription(): string {\n return 'Work tracking and task management for internal operations and job scheduling';\n }\n}\n","/**\n * Generated Valibot schemas for avalara service\n * Source: shared/specs/avalara.json\n * Generated: 2026-09-28T15:25:26Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for avalara service\n * Source: shared/specs/avalara.json\n * Generated: 2026-09-28T15:25:26Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'POST',\n path: '/rates',\n chain: 'rates',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for avalara service\n * Source: shared/specs/avalara.json\n * Generated: 2026-09-28T15:25:26Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { AvalaraClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class AvalaraClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly rates: AvalaraClientSpec['rates'];\n\n // Data-only resources (unwrap .data from every response)\n readonly ratesData: AvalaraClientSpec['rates'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://avalara.augur-api.com') {\n super('avalara', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<AvalaraClientSpec>('avalara', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.rates = proxy.rates;\n\n // Wire data proxy resources\n this.ratesData = dataProxy.rates;\n }\n\n protected getServiceDescription(): string {\n return 'Avalara tax rate calculation API integration for real-time sales tax on e-commerce transactions';\n }\n}\n","/**\n * Generated Valibot schemas for brand-folder service\n * Source: shared/specs/brand-folder.json\n * Generated: 2026-09-23T23:29:50Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /categories params */\nexport const CategoriesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const CategoriesDataSchema = v.looseObject({\n itemCategoryUid: v.optional(v.number()),\n itemCategoryId: v.optional(v.string()),\n itemCategoryDesc: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n rootCategoryId: v.optional(v.string()),\n labelsId: v.optional(v.nullable(v.string())),\n imagesAssetsId: v.optional(v.nullable(v.string())),\n roomScenesAssetsId: v.optional(v.nullable(v.string())),\n brochuresAssetsId: v.optional(v.nullable(v.string())),\n contractorsAssetsId: v.optional(v.nullable(v.string())),\n dateLastProcessed: v.optional(v.string()),\n dateLastCheckImages: v.optional(v.string()),\n dateLastCheckRoomScene: v.optional(v.string()),\n itemCategoryDescPc: v.optional(v.nullable(v.string())),\n dateLastUpload: v.optional(v.string()),\n leedAssetsId: v.optional(v.nullable(v.string())),\n colorsList: v.optional(v.nullable(v.string())),\n colorsCount: v.optional(v.number()),\n focusCd: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for brand-folder service\n * Source: shared/specs/brand-folder.json\n * Generated: 2026-09-23T23:29:50Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { CategoriesDataSchema, PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/categories',\n chain: 'categories',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: CategoriesDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/categories/focus',\n chain: 'categories.focus',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}',\n chain: 'categories',\n action: 'get',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CategoriesDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated client for brand-folder service\n * Source: shared/specs/brand-folder.json\n * Generated: 2026-09-23T23:29:50Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { BrandFolderClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class BrandFolderClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly categories: BrandFolderClientSpec['categories'];\n\n // Data-only resources (unwrap .data from every response)\n readonly categoriesData: BrandFolderClientSpec['categories'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://brand-folder.augur-api.com') {\n super('brand-folder', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<BrandFolderClientSpec>(\n 'brand-folder',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.categories = proxy.categories;\n\n // Wire data proxy resources\n this.categoriesData = dataProxy.categories;\n }\n\n protected getServiceDescription(): string {\n return 'Digital asset management for brand images, documents, and media with tagging and categorization';\n }\n}\n","/**\n * Generated Valibot schemas for gregorovich service\n * Source: shared/specs/gregorovich.json\n * Generated: 2026-09-23T23:29:53Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /chat-gpt/ask params */\nexport const ChatGptAskGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n question: v.string(),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for gregorovich service\n * Source: shared/specs/gregorovich.json\n * Generated: 2026-09-23T23:29:53Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/chat-gpt/ask',\n chain: 'chatGpt.ask',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['question'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/documents',\n chain: 'documents',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/ollama/generate',\n chain: 'ollama.generate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for gregorovich service\n * Source: shared/specs/gregorovich.json\n * Generated: 2026-09-23T23:29:53Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { GregorovichClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class GregorovichClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly chatGpt: GregorovichClientSpec['chatGpt'];\n readonly documents: GregorovichClientSpec['documents'];\n readonly ollama: GregorovichClientSpec['ollama'];\n\n // Data-only resources (unwrap .data from every response)\n readonly chatGptData: GregorovichClientSpec['chatGpt'];\n readonly documentsData: GregorovichClientSpec['documents'];\n readonly ollamaData: GregorovichClientSpec['ollama'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://gregorovich.augur-api.com') {\n super('gregorovich', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<GregorovichClientSpec>(\n 'gregorovich',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.chatGpt = proxy.chatGpt;\n this.documents = proxy.documents;\n this.ollama = proxy.ollama;\n\n // Wire data proxy resources\n this.chatGptData = dataProxy.chatGpt;\n this.documentsData = dataProxy.documents;\n this.ollamaData = dataProxy.ollama;\n }\n\n protected getServiceDescription(): string {\n return 'AI and LLM gateway providing RAG, embeddings, and chat via OpenAI, Groq, Ollama, and vLLM backends';\n }\n}\n","/**\n * Generated Valibot schemas for logistics service\n * Source: shared/specs/logistics.json\n * Generated: 2026-09-23T23:29:57Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /fedex/rates params */\nexport const FedexRatesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n fromAddress1: v.string(),\n fromCity: v.string(),\n fromCountryCode: v.optional(v.string()),\n fromPostalCode: v.string(),\n fromStateProvinceCode: v.string(),\n includeTransitTime: v.optional(v.string()),\n toAddress1: v.string(),\n toCity: v.string(),\n toCountryCode: v.optional(v.string()),\n toPostalCode: v.string(),\n toResidential: v.optional(v.boolean()),\n toStateProvinceCode: v.string(),\n weight: v.pipe(v.unknown(), v.transform(Number)),\n});\n\n/** Schema for GET /rts/brands params */\nexport const RtsBrandsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n search: v.optional(v.string()),\n});\n\n/** Schema for GET /rts/brands/{brandId}/machines params */\nexport const RtsBrandsMachinesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n search: v.optional(v.string()),\n});\n\n/** Schema for GET /rts/search/machines params */\nexport const RtsSearchMachinesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n q: v.string(),\n});\n\n/** Schema for GET /rts/tracks params */\nexport const RtsTracksListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n search: v.optional(v.string()),\n trackClass: v.optional(v.string()),\n});\n\n/** Schema for GET /shipping-methods params */\nexport const ShippingMethodsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n shippingMethodsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n shippingType: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /shipping-methods/{shippingMethodsUid} params */\nexport const ShippingMethodsGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n shippingMethodsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /shipvia/rates params */\nexport const ShipviaRatesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n carriers: v.optional(v.string()),\n dimensionUnit: v.optional(v.string()),\n fromCity: v.optional(v.string()),\n fromCountry: v.optional(v.string()),\n fromPostalCode: v.string(),\n fromState: v.optional(v.string()),\n locationId: v.pipe(v.unknown(), v.transform(Number)),\n packageHeight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageLength: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageWidth: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n residential: v.optional(v.boolean()),\n serviceType: v.optional(v.string()),\n toCity: v.optional(v.string()),\n toCountry: v.optional(v.string()),\n toPostalCode: v.string(),\n toState: v.optional(v.string()),\n totalWeight: v.pipe(v.unknown(), v.transform(Number)),\n weightUnit: v.string(),\n});\n\n/** Schema for GET /shipvia/rates/ltl params */\nexport const ShipviaRatesLtlListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n carriers: v.optional(v.string()),\n commodityClass: v.string(),\n commodityDescription: v.string(),\n deliveryInstructions: v.optional(v.string()),\n dimensionUnit: v.optional(v.string()),\n fromCity: v.optional(v.string()),\n fromCountry: v.optional(v.string()),\n fromPostalCode: v.string(),\n fromState: v.optional(v.string()),\n isHazMat: v.optional(v.boolean()),\n locationId: v.pipe(v.unknown(), v.transform(Number)),\n packageHeight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageLength: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageWidth: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packagingType: v.string(),\n pickupInstructions: v.optional(v.string()),\n quantity: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n toCity: v.optional(v.string()),\n toCountry: v.optional(v.string()),\n toPostalCode: v.string(),\n toState: v.optional(v.string()),\n totalWeight: v.pipe(v.unknown(), v.transform(Number)),\n weightUnit: v.string(),\n});\n\n/** Schema for GET /speedship/freight params */\nexport const SpeedshipFreightListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n deliveryInstructions: v.optional(v.string()),\n dimensionUnit: v.string(),\n fromAddressLine: v.string(),\n fromCity: v.string(),\n fromCompanyName: v.string(),\n fromCountryCode: v.string(),\n fromFirstName: v.string(),\n fromLastName: v.string(),\n fromPhone: v.string(),\n fromPostalCode: v.string(),\n fromState: v.string(),\n handlingCharge: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n handlingChargeUnit: v.optional(v.string()),\n international: v.optional(v.boolean()),\n maxPalletWeight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageHeight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageLength: v.pipe(v.unknown(), v.transform(Number)),\n packageWidth: v.pipe(v.unknown(), v.transform(Number)),\n pickupInstructions: v.optional(v.string()),\n productType: v.string(),\n quantity: v.pipe(v.unknown(), v.transform(Number)),\n responseFormat: v.string(),\n toAddressLine: v.string(),\n toCity: v.string(),\n toCompanyName: v.string(),\n toCountryCode: v.string(),\n toFirstName: v.string(),\n toLastName: v.string(),\n toPhone: v.string(),\n toPostalCode: v.string(),\n toRegion: v.string(),\n totalWeight: v.pipe(v.unknown(), v.transform(Number)),\n weightUnit: v.string(),\n});\n\n/** Schema for GET /ups/rates params */\nexport const UPSRatesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n fromAddress1: v.string(),\n fromCity: v.string(),\n fromCountryCode: v.optional(v.string()),\n fromPostalCode: v.string(),\n fromStateProvinceCode: v.string(),\n includeTransitTime: v.optional(v.string()),\n maxPackageWeight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n toAddress1: v.string(),\n toCity: v.string(),\n toCountryCode: v.optional(v.string()),\n toPostalCode: v.string(),\n toStateProvinceCode: v.string(),\n weight: v.pipe(v.unknown(), v.transform(Number)),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for logistics service\n * Source: shared/specs/logistics.json\n * Generated: 2026-09-23T23:29:57Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/fedex/rates',\n chain: 'fedex.rates',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'fromAddress1',\n 'fromCity',\n 'fromCountryCode',\n 'fromPostalCode',\n 'fromStateProvinceCode',\n 'includeTransitTime',\n 'toAddress1',\n 'toCity',\n 'toCountryCode',\n 'toPostalCode',\n 'toResidential',\n 'toStateProvinceCode',\n 'weight',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/brands',\n chain: 'rts.brands',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['search'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/brands/{brandId}/machines',\n chain: 'rts.brands.machines',\n action: 'list',\n aliases: [],\n pathParams: ['brandId'],\n queryParams: ['search'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/machines/{machineId}/tracks',\n chain: 'rts.machines.tracks',\n action: 'list',\n aliases: [],\n pathParams: ['machineId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/search/machines',\n chain: 'rts.search.machines',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/track/{trackId}',\n chain: 'rts.track',\n action: 'get',\n aliases: [],\n pathParams: ['trackId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/tracks',\n chain: 'rts.tracks',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['search', 'trackClass'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/shipping-methods',\n chain: 'shippingMethods',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'shippingMethodsId', 'shippingType', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/shipping-methods/{shippingMethodsUid}',\n chain: 'shippingMethods',\n action: 'get',\n aliases: [],\n pathParams: ['shippingMethodsUid'],\n queryParams: ['shippingMethodsId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/shipping-methods/{shippingMethodsUid}',\n chain: 'shippingMethods',\n action: 'update',\n aliases: [],\n pathParams: ['shippingMethodsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/shipping-methods/{shippingMethodsUid}',\n chain: 'shippingMethods',\n action: 'delete',\n aliases: [],\n pathParams: ['shippingMethodsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/shipvia/rates',\n chain: 'shipvia.rates',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'carriers',\n 'dimensionUnit',\n 'fromCity',\n 'fromCountry',\n 'fromPostalCode',\n 'fromState',\n 'locationId',\n 'packageHeight',\n 'packageLength',\n 'packageWidth',\n 'residential',\n 'serviceType',\n 'toCity',\n 'toCountry',\n 'toPostalCode',\n 'toState',\n 'totalWeight',\n 'weightUnit',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/shipvia/rates/ltl',\n chain: 'shipvia.rates.ltl',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'carriers',\n 'commodityClass',\n 'commodityDescription',\n 'deliveryInstructions',\n 'dimensionUnit',\n 'fromCity',\n 'fromCountry',\n 'fromPostalCode',\n 'fromState',\n 'isHazMat',\n 'locationId',\n 'packageHeight',\n 'packageLength',\n 'packageWidth',\n 'packagingType',\n 'pickupInstructions',\n 'quantity',\n 'toCity',\n 'toCountry',\n 'toPostalCode',\n 'toState',\n 'totalWeight',\n 'weightUnit',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/speedship/freight',\n chain: 'speedship.freight',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'deliveryInstructions',\n 'dimensionUnit',\n 'fromAddressLine',\n 'fromCity',\n 'fromCompanyName',\n 'fromCountryCode',\n 'fromFirstName',\n 'fromLastName',\n 'fromPhone',\n 'fromPostalCode',\n 'fromState',\n 'handlingCharge',\n 'handlingChargeUnit',\n 'international',\n 'maxPalletWeight',\n 'packageHeight',\n 'packageLength',\n 'packageWidth',\n 'pickupInstructions',\n 'productType',\n 'quantity',\n 'responseFormat',\n 'toAddressLine',\n 'toCity',\n 'toCompanyName',\n 'toCountryCode',\n 'toFirstName',\n 'toLastName',\n 'toPhone',\n 'toPostalCode',\n 'toRegion',\n 'totalWeight',\n 'weightUnit',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/ups/rates',\n chain: 'ups.rates',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'fromAddress1',\n 'fromCity',\n 'fromCountryCode',\n 'fromPostalCode',\n 'fromStateProvinceCode',\n 'includeTransitTime',\n 'maxPackageWeight',\n 'toAddress1',\n 'toCity',\n 'toCountryCode',\n 'toPostalCode',\n 'toStateProvinceCode',\n 'weight',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for logistics service\n * Source: shared/specs/logistics.json\n * Generated: 2026-09-23T23:29:57Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { LogisticsClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class LogisticsClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly fedex: LogisticsClientSpec['fedex'];\n readonly rts: LogisticsClientSpec['rts'];\n readonly shippingMethods: LogisticsClientSpec['shippingMethods'];\n readonly shipvia: LogisticsClientSpec['shipvia'];\n readonly speedship: LogisticsClientSpec['speedship'];\n readonly ups: LogisticsClientSpec['ups'];\n\n // Data-only resources (unwrap .data from every response)\n readonly fedexData: LogisticsClientSpec['fedex'];\n readonly rtsData: LogisticsClientSpec['rts'];\n readonly shippingMethodsData: LogisticsClientSpec['shippingMethods'];\n readonly shipviaData: LogisticsClientSpec['shipvia'];\n readonly speedshipData: LogisticsClientSpec['speedship'];\n readonly upsData: LogisticsClientSpec['ups'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://logistics.augur-api.com') {\n super('logistics', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<LogisticsClientSpec>(\n 'logistics',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.fedex = proxy.fedex;\n this.rts = proxy.rts;\n this.shippingMethods = proxy.shippingMethods;\n this.shipvia = proxy.shipvia;\n this.speedship = proxy.speedship;\n this.ups = proxy.ups;\n\n // Wire data proxy resources\n this.fedexData = dataProxy.fedex;\n this.rtsData = dataProxy.rts;\n this.shippingMethodsData = dataProxy.shippingMethods;\n this.shipviaData = dataProxy.shipvia;\n this.speedshipData = dataProxy.speedship;\n this.upsData = dataProxy.ups;\n }\n\n protected getServiceDescription(): string {\n return 'Multi-carrier shipping logistics for label generation, tracking, and delivery coordination';\n }\n}\n","/**\n * Generated Valibot schemas for p21-apis service\n * Source: shared/specs/p21-apis.json\n * Generated: 2026-09-23T23:30:01Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /trans-category/{categoryUid} params */\nexport const TransCategoryGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n categoryId: v.optional(v.string()),\n});\n\n/** Schema for PUT /trans-category/{categoryUid} params */\nexport const TransCategoryUpdateParamsSchema = v.looseObject({\n categoryId: v.optional(v.string()),\n});\n\n/** Schema for DELETE /trans-category/{categoryUid} params */\nexport const TransCategoryDeleteParamsSchema = v.looseObject({\n categoryId: v.optional(v.string()),\n});\n\n/** Schema for GET /trans-company/{companyUid} params */\nexport const TransCompanyGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n});\n\n/** Schema for PUT /trans-company/{companyUid} params */\nexport const TransCompanyUpdateParamsSchema = v.looseObject({\n companyId: v.optional(v.string()),\n});\n\n/** Schema for DELETE /trans-company/{companyUid} params */\nexport const TransCompanyDeleteParamsSchema = v.looseObject({\n companyId: v.optional(v.string()),\n});\n\n/** Schema for GET /trans-user/{usersUid} params */\nexport const TransUserGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n userId: v.optional(v.string()),\n});\n\n/** Schema for PUT /trans-user/{usersUid} params */\nexport const TransUserUpdateParamsSchema = v.looseObject({\n userId: v.optional(v.string()),\n});\n\n/** Schema for DELETE /trans-user/{usersUid} params */\nexport const TransUserDeleteParamsSchema = v.looseObject({\n userId: v.optional(v.string()),\n});\n\n/** Schema for GET /trans-web-display-type/{webDisplayTypeUid} params */\nexport const TransWebDisplayTypeGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n webDisplayTypeId: v.optional(v.string()),\n});\n\n/** Schema for PUT /trans-web-display-type/{webDisplayTypeUid} params */\nexport const TransWebDisplayTypeUpdateParamsSchema = v.looseObject({\n webDisplayTypeId: v.optional(v.string()),\n});\n\n/** Schema for DELETE /trans-web-display-type/{webDisplayTypeUid} params */\nexport const TransWebDisplayTypeDeleteParamsSchema = v.looseObject({\n webDisplayTypeId: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for p21-apis service\n * Source: shared/specs/p21-apis.json\n * Generated: 2026-09-23T23:30:01Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/entity-contacts/refresh',\n chain: 'entityContacts.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/entity-customers/refresh',\n chain: 'entityCustomers.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/trans-category',\n chain: 'transCategory',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-category/{categoryUid}',\n chain: 'transCategory',\n action: 'get',\n aliases: [],\n pathParams: ['categoryUid'],\n queryParams: ['categoryId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/trans-category/{categoryUid}',\n chain: 'transCategory',\n action: 'update',\n aliases: [],\n pathParams: ['categoryUid'],\n queryParams: ['categoryId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/trans-category/{categoryUid}',\n chain: 'transCategory',\n action: 'delete',\n aliases: [],\n pathParams: ['categoryUid'],\n queryParams: ['categoryId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/trans-company',\n chain: 'transCompany',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-company/{companyUid}',\n chain: 'transCompany',\n action: 'get',\n aliases: [],\n pathParams: ['companyUid'],\n queryParams: ['companyId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/trans-company/{companyUid}',\n chain: 'transCompany',\n action: 'update',\n aliases: [],\n pathParams: ['companyUid'],\n queryParams: ['companyId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/trans-company/{companyUid}',\n chain: 'transCompany',\n action: 'delete',\n aliases: [],\n pathParams: ['companyUid'],\n queryParams: ['companyId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-purchase-order-receipt/{poNo}',\n chain: 'transPurchaseOrderReceipt',\n action: 'get',\n aliases: [],\n pathParams: ['poNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/trans-purchase-order-receipt/{poNo}',\n chain: 'transPurchaseOrderReceipt',\n action: 'update',\n aliases: [],\n pathParams: ['poNo'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/trans-user',\n chain: 'transUser',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-user/{usersUid}',\n chain: 'transUser',\n action: 'get',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: ['userId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/trans-user/{usersUid}',\n chain: 'transUser',\n action: 'update',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: ['userId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/trans-user/{usersUid}',\n chain: 'transUser',\n action: 'delete',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: ['userId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/trans-web-display-type',\n chain: 'transWebDisplayType',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-web-display-type/defaults',\n chain: 'transWebDisplayType.defaults',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-web-display-type/definition',\n chain: 'transWebDisplayType.definition',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-web-display-type/{webDisplayTypeUid}',\n chain: 'transWebDisplayType',\n action: 'get',\n aliases: [],\n pathParams: ['webDisplayTypeUid'],\n queryParams: ['webDisplayTypeId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/trans-web-display-type/{webDisplayTypeUid}',\n chain: 'transWebDisplayType',\n action: 'update',\n aliases: [],\n pathParams: ['webDisplayTypeUid'],\n queryParams: ['webDisplayTypeId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/trans-web-display-type/{webDisplayTypeUid}',\n chain: 'transWebDisplayType',\n action: 'delete',\n aliases: [],\n pathParams: ['webDisplayTypeUid'],\n queryParams: ['webDisplayTypeId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for p21-apis service\n * Source: shared/specs/p21-apis.json\n * Generated: 2026-09-23T23:30:01Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { P21ApisClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class P21ApisClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly entityContacts: P21ApisClientSpec['entityContacts'];\n readonly entityCustomers: P21ApisClientSpec['entityCustomers'];\n readonly transCategory: P21ApisClientSpec['transCategory'];\n readonly transCompany: P21ApisClientSpec['transCompany'];\n readonly transPurchaseOrderReceipt: P21ApisClientSpec['transPurchaseOrderReceipt'];\n readonly transUser: P21ApisClientSpec['transUser'];\n readonly transWebDisplayType: P21ApisClientSpec['transWebDisplayType'];\n\n // Data-only resources (unwrap .data from every response)\n readonly entityContactsData: P21ApisClientSpec['entityContacts'];\n readonly entityCustomersData: P21ApisClientSpec['entityCustomers'];\n readonly transCategoryData: P21ApisClientSpec['transCategory'];\n readonly transCompanyData: P21ApisClientSpec['transCompany'];\n readonly transPurchaseOrderReceiptData: P21ApisClientSpec['transPurchaseOrderReceipt'];\n readonly transUserData: P21ApisClientSpec['transUser'];\n readonly transWebDisplayTypeData: P21ApisClientSpec['transWebDisplayType'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://p21-apis.augur-api.com') {\n super('p21-apis', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<P21ApisClientSpec>('p21-apis', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.entityContacts = proxy.entityContacts;\n this.entityCustomers = proxy.entityCustomers;\n this.transCategory = proxy.transCategory;\n this.transCompany = proxy.transCompany;\n this.transPurchaseOrderReceipt = proxy.transPurchaseOrderReceipt;\n this.transUser = proxy.transUser;\n this.transWebDisplayType = proxy.transWebDisplayType;\n\n // Wire data proxy resources\n this.entityContactsData = dataProxy.entityContacts;\n this.entityCustomersData = dataProxy.entityCustomers;\n this.transCategoryData = dataProxy.transCategory;\n this.transCompanyData = dataProxy.transCompany;\n this.transPurchaseOrderReceiptData = dataProxy.transPurchaseOrderReceipt;\n this.transUserData = dataProxy.transUser;\n this.transWebDisplayTypeData = dataProxy.transWebDisplayType;\n }\n\n protected getServiceDescription(): string {\n return 'Prophet 21 REST API abstraction for normalized CRUD operations on ERP entities';\n }\n}\n","/**\n * Generated Valibot schemas for p21-core service\n * Source: shared/specs/p21-core.json\n * Generated: 2026-09-23T23:30:02Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /address params */\nexport const AddressListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n carrierFlag: v.optional(v.string()),\n defaultCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n enabledCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /address/{id}/corp-address params */\nexport const AddressCorpAddressListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /address/{id}/enable params */\nexport const AddressEnableGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n enabledCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /cash-drawer params */\nexport const CashDrawerListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n drawerOpen: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /code-p21 params */\nexport const CodeP21ListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n codeNoList: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /company params */\nexport const CompanyListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /company/{companyUid} params */\nexport const CompanyGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n});\n\n/** Schema for GET /freight-code params */\nexport const FreightCodeListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n freightCodeId: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /freight-code/{freightCodeUid} params */\nexport const FreightCodeGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n freightCodeId: v.optional(v.string()),\n});\n\n/** Schema for GET /location params */\nexport const LocationListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n deleteFlag: v.optional(v.string()),\n includeAddress: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /location/{locationId} params */\nexport const LocationGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n includeAddress: v.optional(v.string()),\n});\n\n/** Schema for GET /payment-types params */\nexport const PaymentTypesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const CashDrawerDataSchema = v.looseObject({\n cashDrawerId: v.optional(v.string()),\n companyId: v.optional(v.string()),\n cashDrawerDescription: v.optional(v.string()),\n currentSequenceNo: v.optional(v.number()),\n openingBalance: v.optional(v.nullable(v.number())),\n withdrawals: v.optional(v.nullable(v.number())),\n deposits: v.optional(v.nullable(v.number())),\n currentBalance: v.optional(v.number()),\n drawerOpen: v.optional(v.string()),\n bankNo: v.optional(v.nullable(v.number())),\n cashOnHandAccountNumber: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n cashCardLoad: v.optional(v.nullable(v.number())),\n cashDrawerUid: v.optional(v.number()),\n locIdForBranchConflict: v.optional(v.nullable(v.number())),\n defaultCloseBranchId: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const CodeP21DataSchema = v.looseObject({\n codeUid: v.optional(v.number()),\n codeNo: v.optional(v.number()),\n languageId: v.optional(v.string()),\n codeDescription: v.optional(v.string()),\n rowStatusFlag: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n codeSubDescription: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n});\n\nexport const CompanyDataSchema = v.looseObject({\n companyUid: v.optional(v.number()),\n companyId: v.optional(v.string()),\n companyName: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n lastMaintainedBy: v.optional(v.string()),\n addressId: v.optional(v.nullable(v.number())),\n defaultSalesLocationId: v.optional(v.nullable(v.number())),\n freightCodeUid: v.optional(v.nullable(v.number())),\n upsAccountNo: v.optional(v.nullable(v.string())),\n defaultSourcePriceCd: v.optional(v.nullable(v.number())),\n defaultMultiplier: v.optional(v.nullable(v.number())),\n});\n\nexport const FreightCodeDataSchema = v.looseObject({\n freightCodeUid: v.optional(v.number()),\n companyId: v.optional(v.string()),\n freightCd: v.optional(v.string()),\n freightDesc: v.optional(v.string()),\n incomingFreight: v.optional(v.string()),\n outgoingFreight: v.optional(v.string()),\n incomingReduceCommission: v.optional(v.string()),\n outgoingIncreaseCommission: v.optional(v.string()),\n prorateMethodCodeNo: v.optional(v.number()),\n taxGroupId: v.optional(v.nullable(v.string())),\n revenueAccountNo: v.optional(v.string()),\n rowStatus: v.optional(v.number()),\n dateCreated: v.optional(v.nullable(v.string())),\n dateLastModified: v.optional(v.nullable(v.string())),\n lastMaintainedBy: v.optional(v.string()),\n freeFreightBasisCd: v.optional(v.nullable(v.number())),\n freeInFreightMin: v.optional(v.nullable(v.number())),\n freeOutFreightMin: v.optional(v.nullable(v.number())),\n directShipFreeFreightFlag: v.optional(v.nullable(v.string())),\n freeInFreightMinWeb: v.optional(v.nullable(v.number())),\n freeOutFreightMinWeb: v.optional(v.nullable(v.number())),\n handlingChargeOptionCd: v.optional(v.nullable(v.number())),\n externalTaxProductCodeIn: v.optional(v.nullable(v.string())),\n externalTaxProductCodeOut: v.optional(v.nullable(v.string())),\n incomingIncreaseCommission: v.optional(v.nullable(v.string())),\n paySpecialFlag: v.optional(v.nullable(v.string())),\n skipFirstShipmentFlag: v.optional(v.nullable(v.string())),\n excludeFromSalesMasterInquiry: v.optional(v.string()),\n deductibleFlag: v.optional(v.nullable(v.string())),\n freeColdFreight: v.optional(v.string()),\n freeHazmatFreight: v.optional(v.string()),\n freeExpressFreight: v.optional(v.string()),\n freeBulkFreight: v.optional(v.string()),\n fedexPaymentMethod: v.optional(v.nullable(v.number())),\n excludeDiscountedFreight: v.optional(v.string()),\n freeFreightDefaultFlag: v.optional(v.nullable(v.string())),\n outgoingAdjustCommissionByProfitFlag: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const LocationDataSchema = v.looseObject({\n locationId: v.optional(v.number()),\n companyId: v.optional(v.string()),\n defaultBranchId: v.optional(v.nullable(v.string())),\n deleteFlag: v.optional(v.string()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n lastMaintainedBy: v.optional(v.string()),\n locationName: v.optional(v.nullable(v.string())),\n lotBinIntegration: v.optional(v.nullable(v.string())),\n fedexLocAcctNo: v.optional(v.nullable(v.string())),\n fedexMeterNo: v.optional(v.nullable(v.string())),\n upsAccountNo: v.optional(v.nullable(v.string())),\n upsPickupTypeCd: v.optional(v.nullable(v.number())),\n upsCustomerTypeCd: v.optional(v.nullable(v.number())),\n upsOltAccessKey: v.optional(v.nullable(v.string())),\n upsOltPassword: v.optional(v.nullable(v.string())),\n upsOltUserId: v.optional(v.nullable(v.string())),\n distributionCenter: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for p21-core service\n * Source: shared/specs/p21-core.json\n * Generated: 2026-09-23T23:30:02Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n CashDrawerDataSchema,\n CodeP21DataSchema,\n CompanyDataSchema,\n FreightCodeDataSchema,\n LocationDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/address',\n chain: 'address',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'carrierFlag',\n 'defaultCd',\n 'enabledCd',\n 'limit',\n 'offset',\n 'orderBy',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/address/refresh',\n chain: 'address.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/address/{id}',\n chain: 'address',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/address/{id}/corp-address',\n chain: 'address.corpAddress',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/address/{id}/default',\n chain: 'address.default',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/address/{id}/enable',\n chain: 'address.enable',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['enabledCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/cash-drawer',\n chain: 'cashDrawer',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['companyId', 'drawerOpen', 'limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: CashDrawerDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/cash-drawer/{cashDrawerUid}',\n chain: 'cashDrawer',\n action: 'get',\n aliases: [],\n pathParams: ['cashDrawerUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CashDrawerDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/code-p21',\n chain: 'codeP21',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['codeNoList', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: CodeP21DataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/code-p21/{codeUid}',\n chain: 'codeP21',\n action: 'get',\n aliases: [],\n pathParams: ['codeUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CodeP21DataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/company',\n chain: 'company',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['companyId', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: CompanyDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/company/{companyUid}',\n chain: 'company',\n action: 'get',\n aliases: [],\n pathParams: ['companyUid'],\n queryParams: ['companyId'],\n edgeCache: true,\n responseSchema: CompanyDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/freight-code',\n chain: 'freightCode',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['companyId', 'freightCodeId', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: FreightCodeDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/freight-code/{freightCodeUid}',\n chain: 'freightCode',\n action: 'get',\n aliases: [],\n pathParams: ['freightCodeUid'],\n queryParams: ['freightCodeId'],\n edgeCache: true,\n responseSchema: FreightCodeDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/location',\n chain: 'location',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['deleteFlag', 'includeAddress', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: LocationDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/location/{locationId}',\n chain: 'location',\n action: 'get',\n aliases: [],\n pathParams: ['locationId'],\n queryParams: ['includeAddress'],\n edgeCache: true,\n responseSchema: LocationDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/payment-types',\n chain: 'paymentTypes',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for p21-core service\n * Source: shared/specs/p21-core.json\n * Generated: 2026-09-23T23:30:02Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { P21CoreClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class P21CoreClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly address: P21CoreClientSpec['address'];\n readonly cashDrawer: P21CoreClientSpec['cashDrawer'];\n readonly codeP21: P21CoreClientSpec['codeP21'];\n readonly company: P21CoreClientSpec['company'];\n readonly freightCode: P21CoreClientSpec['freightCode'];\n readonly location: P21CoreClientSpec['location'];\n readonly paymentTypes: P21CoreClientSpec['paymentTypes'];\n\n // Data-only resources (unwrap .data from every response)\n readonly addressData: P21CoreClientSpec['address'];\n readonly cashDrawerData: P21CoreClientSpec['cashDrawer'];\n readonly codeP21Data: P21CoreClientSpec['codeP21'];\n readonly companyData: P21CoreClientSpec['company'];\n readonly freightCodeData: P21CoreClientSpec['freightCode'];\n readonly locationData: P21CoreClientSpec['location'];\n readonly paymentTypesData: P21CoreClientSpec['paymentTypes'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://p21-core.augur-api.com') {\n super('p21-core', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<P21CoreClientSpec>('p21-core', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.address = proxy.address;\n this.cashDrawer = proxy.cashDrawer;\n this.codeP21 = proxy.codeP21;\n this.company = proxy.company;\n this.freightCode = proxy.freightCode;\n this.location = proxy.location;\n this.paymentTypes = proxy.paymentTypes;\n\n // Wire data proxy resources\n this.addressData = dataProxy.address;\n this.cashDrawerData = dataProxy.cashDrawer;\n this.codeP21Data = dataProxy.codeP21;\n this.companyData = dataProxy.company;\n this.freightCodeData = dataProxy.freightCode;\n this.locationData = dataProxy.location;\n this.paymentTypesData = dataProxy.paymentTypes;\n }\n\n protected getServiceDescription(): string {\n return 'Prophet 21 core reference data including companies, locations, users, payment types, and system settings';\n }\n}\n","/**\n * Generated Valibot schemas for p21-sism service\n * Source: shared/specs/p21-sism.json\n * Generated: 2026-09-23T23:30:04Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /import params */\nexport const ImportListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n excludeState: v.optional(v.string()),\n importState: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n referenceNo: v.optional(v.string()),\n sourceId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sourceName: v.optional(v.string()),\n});\n\n/** Schema for GET /import/daily-summary params */\nexport const ImportDailySummaryListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n days: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /import/recent params */\nexport const ImportRecentListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n excludeState: v.optional(v.string()),\n hours: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n importState: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sourceId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sourceName: v.optional(v.string()),\n});\n\n/** Schema for GET /import/stuck params */\nexport const ImportStuckListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n hours: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const ImportDailySummaryDataSchema = v.looseObject({\n date: v.optional(v.string()),\n total: v.optional(v.number()),\n initial: v.optional(v.number()),\n processing: v.optional(v.number()),\n processingCoupon: v.optional(v.number()),\n processCoupon: v.optional(v.number()),\n validate: v.optional(v.number()),\n validating: v.optional(v.number()),\n validated: v.optional(v.number()),\n processed: v.optional(v.number()),\n hold: v.optional(v.number()),\n delivering: v.optional(v.number()),\n delivered: v.optional(v.number()),\n importing: v.optional(v.number()),\n imported: v.optional(v.number()),\n redelivered: v.optional(v.number()),\n invalid: v.optional(v.number()),\n failed: v.optional(v.number()),\n error: v.optional(v.number()),\n cancelled: v.optional(v.number()),\n stopped: v.optional(v.number()),\n skipped: v.optional(v.number()),\n});\n\nexport const ImportDataSchema = v.looseObject({\n importUid: v.optional(v.number()),\n scheduledImportMasterUid: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n sourceName: v.optional(v.nullable(v.string())),\n sourceId: v.optional(v.number()),\n importState: v.optional(v.string()),\n jsonData: v.optional(v.nullable(v.string())),\n importStatusCd: v.optional(v.number()),\n importResults: v.optional(v.nullable(v.string())),\n referenceNo: v.optional(v.nullable(v.string())),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for p21-sism service\n * Source: shared/specs/p21-sism.json\n * Generated: 2026-09-23T23:30:04Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { ImportDailySummaryDataSchema, ImportDataSchema, PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/import',\n chain: 'import',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'createdFrom',\n 'createdOn',\n 'createdTo',\n 'excludeState',\n 'importState',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n 'referenceNo',\n 'sourceId',\n 'sourceName',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/import/daily-summary',\n chain: 'import.dailySummary',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['days'],\n edgeCache: true,\n responseSchema: ImportDailySummaryDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/import/recent',\n chain: 'import.recent',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'createdFrom',\n 'createdOn',\n 'createdTo',\n 'excludeState',\n 'hours',\n 'importState',\n 'limit',\n 'sourceId',\n 'sourceName',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/import/stuck',\n chain: 'import.stuck',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['hours', 'limit'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/import/{importUid}',\n chain: 'import',\n action: 'get',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ImportDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/import/{importUid}',\n chain: 'import',\n action: 'update',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ImportDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/import/{importUid}',\n chain: 'import',\n action: 'delete',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ImportDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/import/{importUid}/imp-oe-hdr',\n chain: 'import.impOeHdr',\n action: 'list',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/import/{importUid}/imp-oe-hdr',\n chain: 'import.impOeHdr',\n action: 'update',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/import/{importUid}/imp-oe-hdr-salesrep',\n chain: 'import.impOeHdrSalesrep',\n action: 'list',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/import/{importUid}/imp-oe-hdr-salesrep',\n chain: 'import.impOeHdrSalesrep',\n action: 'update',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/import/{importUid}/imp-oe-hdr-web',\n chain: 'import.impOeHdrWeb',\n action: 'list',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/scheduled-import-master/{scheduledImportMasterUid}/metadata/sftp',\n chain: 'scheduledImportMaster.metadata.sftp',\n action: 'create',\n aliases: [],\n pathParams: ['scheduledImportMasterUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for p21-sism service\n * Source: shared/specs/p21-sism.json\n * Generated: 2026-09-23T23:30:04Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { P21SismClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class P21SismClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly import: P21SismClientSpec['import'];\n readonly scheduledImportMaster: P21SismClientSpec['scheduledImportMaster'];\n\n // Data-only resources (unwrap .data from every response)\n readonly importData: P21SismClientSpec['import'];\n readonly scheduledImportMasterData: P21SismClientSpec['scheduledImportMaster'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://p21-sism.augur-api.com') {\n super('p21-sism', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<P21SismClientSpec>('p21-sism', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.import = proxy.import;\n this.scheduledImportMaster = proxy.scheduledImportMaster;\n\n // Wire data proxy resources\n this.importData = dataProxy.import;\n this.scheduledImportMasterData = dataProxy.scheduledImportMaster;\n }\n\n protected getServiceDescription(): string {\n return 'Prophet 21 staged import engine for batch processing orders, inventory, customers, and transactions';\n }\n}\n","/**\n * Generated Valibot schemas for shipping service\n * Source: shared/specs/shipping.json\n * Generated: 2026-09-28T15:25:46Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for shipping service\n * Source: shared/specs/shipping.json\n * Generated: 2026-09-28T15:25:46Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'POST',\n path: '/rates',\n chain: 'rates',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for shipping service\n * Source: shared/specs/shipping.json\n * Generated: 2026-09-28T15:25:46Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { ShippingClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class ShippingClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly rates: ShippingClientSpec['rates'];\n\n // Data-only resources (unwrap .data from every response)\n readonly ratesData: ShippingClientSpec['rates'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://shipping.augur-api.com') {\n super('shipping', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<ShippingClientSpec>(\n 'shipping',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.rates = proxy.rates;\n\n // Wire data proxy resources\n this.ratesData = dataProxy.rates;\n }\n\n protected getServiceDescription(): string {\n return 'Shipping rate aggregation and calculation across multiple carrier integrations';\n }\n}\n","/**\n * Generated Valibot schemas for smarty-streets service\n * Source: shared/specs/smarty-streets.json\n * Generated: 2026-09-28T15:25:48Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /us/lookup params */\nexport const UsLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n address1: v.string(),\n address2: v.string(),\n city: v.string(),\n postalCode: v.string(),\n state: v.string(),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for smarty-streets service\n * Source: shared/specs/smarty-streets.json\n * Generated: 2026-09-28T15:25:48Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/us/lookup',\n chain: 'us.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['address1', 'address2', 'city', 'postalCode', 'state'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for smarty-streets service\n * Source: shared/specs/smarty-streets.json\n * Generated: 2026-09-28T15:25:48Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { SmartyStreetsClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class SmartyStreetsClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly us: SmartyStreetsClientSpec['us'];\n\n // Data-only resources (unwrap .data from every response)\n readonly usData: SmartyStreetsClientSpec['us'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://smarty-streets.augur-api.com') {\n super('smarty-streets', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<SmartyStreetsClientSpec>(\n 'smarty-streets',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.us = proxy.us;\n\n // Wire data proxy resources\n this.usData = dataProxy.us;\n }\n\n protected getServiceDescription(): string {\n return 'SmartyStreets address validation and geocoding for shipping address standardization';\n }\n}\n","/**\n * Generated Valibot schemas for ups service\n * Source: shared/specs/ups.json\n * Generated: 2026-09-28T15:25:49Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /rates-shop params */\nexport const RatesShopListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheSiteId: v.optional(v.string()),\n fromAddress1: v.optional(v.string()),\n fromAddress2: v.optional(v.string()),\n fromAddress3: v.optional(v.string()),\n fromCity: v.optional(v.string()),\n fromCountryCode: v.optional(v.string()),\n fromPostalCode: v.optional(v.string()),\n fromStateProvinceCode: v.optional(v.string()),\n toAddress1: v.optional(v.string()),\n toAddress2: v.optional(v.string()),\n toAddress3: v.optional(v.string()),\n toCity: v.optional(v.string()),\n toCountryCode: v.optional(v.string()),\n toPostalCode: v.optional(v.string()),\n toStateProvinceCode: v.optional(v.string()),\n weight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for ups service\n * Source: shared/specs/ups.json\n * Generated: 2026-09-28T15:25:49Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/rates-shop',\n chain: 'ratesShop',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'cacheSiteId',\n 'fromAddress1',\n 'fromAddress2',\n 'fromAddress3',\n 'fromCity',\n 'fromCountryCode',\n 'fromPostalCode',\n 'fromStateProvinceCode',\n 'toAddress1',\n 'toAddress2',\n 'toAddress3',\n 'toCity',\n 'toCountryCode',\n 'toPostalCode',\n 'toStateProvinceCode',\n 'weight',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated client for ups service\n * Source: shared/specs/ups.json\n * Generated: 2026-09-28T15:25:49Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { UPSClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class UPSClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly ratesShop: UPSClientSpec['ratesShop'];\n\n // Data-only resources (unwrap .data from every response)\n readonly ratesShopData: UPSClientSpec['ratesShop'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://ups.augur-api.com') {\n super('ups', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<UPSClientSpec>('ups', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.ratesShop = proxy.ratesShop;\n\n // Wire data proxy resources\n this.ratesShopData = dataProxy.ratesShop;\n }\n\n protected getServiceDescription(): string {\n return 'UPS shipping integration for address validation, rate quoting, and OAuth-based API access';\n }\n}\n","/**\n * Generated Valibot schemas for basecamp2 service\n * Source: shared/specs/basecamp2.json\n * Generated: 2026-09-23T23:29:49Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /comments params */\nexport const CommentsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n creatorId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n todosId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /events params */\nexport const EventsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n eventTypeCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n id: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n peopleId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /metrics params */\nexport const MetricsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n assigneeId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n creatorId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n hasComments: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n isStale: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n needsResponse: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n projectsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n todosStatusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /people params */\nexport const PeopleListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n adminFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n trashedFlag: v.optional(v.string()),\n});\n\n/** Schema for GET /people/{id}/metrics params */\nexport const PeopleMetricsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n hasComments: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n isStale: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n needsResponse: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n todosStatusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /people/{id}/todos params */\nexport const PeopleTodosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n completedFlag: v.optional(v.string()),\n dueAt: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n projectsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /people/{personId}/projects/{projectId}/todos params */\nexport const PeopleProjectsTodosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n completedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /projects params */\nexport const ProjectsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n archivedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n trashedFlag: v.optional(v.string()),\n});\n\n/** Schema for GET /projects/{id}/metrics params */\nexport const ProjectsMetricsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n hasComments: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n isStale: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n needsResponse: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n todosStatusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /projects/{id}/todolists params */\nexport const ProjectsTodolistsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n completedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /projects/{id}/todos params */\nexport const ProjectsTodosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n assigneeId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n completedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /projects/{projectId}/todolists/{todolistId}/todos params */\nexport const ProjectsTodolistsTodosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n assigneeId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n completedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /todolists params */\nexport const TodolistsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n assigneeId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n completedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n projectsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /todos params */\nexport const TodosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n assigneeId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n completedFlag: v.optional(v.string()),\n dueAt: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n projectsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n todolistId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /todos-summary params */\nexport const TodosSummaryListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n akashaCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n processCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /todos/{id}/comments params */\nexport const TodosCommentsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /todos/{id}/events params */\nexport const TodosEventsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n eventTypeCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n peopleId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /todos/{id}/sessions params */\nexport const TodosSessionsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n sessionStatusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — .passthrough() allows extra)\n// =============================================================================\n\nexport const CommentsDataSchema = v.looseObject({\n id: v.optional(v.number()),\n content: v.optional(v.string()),\n updatedAt: v.optional(v.string()),\n createdAt: v.optional(v.string()),\n creatorId: v.optional(v.nullable(v.number())),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n todosId: v.optional(v.nullable(v.number())),\n vector: v.optional(v.nullable(v.string())),\n vectorCd: v.optional(v.number()),\n vectorFlag: v.optional(v.string()),\n dateLastVector: v.optional(v.string()),\n location: v.optional(v.nullable(v.string())),\n contentLength: v.optional(v.number()),\n tokenCount: v.optional(v.number()),\n});\n\nexport const EventsDataSchema = v.looseObject({\n id: v.optional(v.number()),\n eventNum: v.optional(v.number()),\n eventTypeCd: v.optional(v.number()),\n peopleId: v.optional(v.number()),\n eventAt: v.optional(v.string()),\n commentId: v.optional(v.nullable(v.number())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n todosSessionsUid: v.optional(v.nullable(v.number())),\n});\n\nexport const MetricsDataSchema = v.looseObject({\n id: v.optional(v.number()),\n projectsId: v.optional(v.nullable(v.number())),\n todolistId: v.optional(v.nullable(v.number())),\n assigneeId: v.optional(v.nullable(v.number())),\n creatorId: v.optional(v.number()),\n todosContent: v.optional(v.nullable(v.string())),\n todosStatusCd: v.optional(v.number()),\n isStale: v.optional(v.number()),\n hasComments: v.optional(v.number()),\n needsResponse: v.optional(v.number()),\n createdAt: v.optional(v.string()),\n completedAt: v.optional(v.nullable(v.string())),\n lastActivityAt: v.optional(v.string()),\n firstCommentAt: v.optional(v.nullable(v.string())),\n lastCommentAt: v.optional(v.nullable(v.string())),\n daysOpen: v.optional(v.nullable(v.number())),\n daysSinceLastEvent: v.optional(v.nullable(v.number())),\n daysToFirstComment: v.optional(v.nullable(v.number())),\n cycleTimeDays: v.optional(v.nullable(v.number())),\n commentCount: v.optional(v.number()),\n activeDaysCount: v.optional(v.number()),\n activitySpanDays: v.optional(v.nullable(v.number())),\n avgDaysBetweenActivity: v.optional(v.nullable(v.number())),\n lastCommenterId: v.optional(v.nullable(v.number())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const PeopleDataSchema = v.looseObject({\n id: v.optional(v.number()),\n identityId: v.optional(v.nullable(v.number())),\n name: v.optional(v.nullable(v.string())),\n emailAddress: v.optional(v.nullable(v.string())),\n adminFlag: v.optional(v.nullable(v.string())),\n trashedFlag: v.optional(v.nullable(v.string())),\n updatedAt: v.optional(v.string()),\n createdAt: v.optional(v.string()),\n url: v.optional(v.nullable(v.string())),\n appUrl: v.optional(v.nullable(v.string())),\n avatarUrl: v.optional(v.nullable(v.string())),\n fullsizeAvatarUrl: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const ProjectsDataSchema = v.looseObject({\n id: v.optional(v.number()),\n name: v.optional(v.nullable(v.string())),\n description: v.optional(v.nullable(v.string())),\n updatedAt: v.optional(v.string()),\n createdAt: v.optional(v.string()),\n lastEventAt: v.optional(v.string()),\n url: v.optional(v.nullable(v.string())),\n appUrl: v.optional(v.nullable(v.string())),\n templateFlag: v.optional(v.nullable(v.string())),\n archivedFlag: v.optional(v.nullable(v.string())),\n starredFlag: v.optional(v.nullable(v.string())),\n trashedFlag: v.optional(v.nullable(v.string())),\n draftFlag: v.optional(v.nullable(v.string())),\n isClientProjectFlag: v.optional(v.nullable(v.string())),\n color: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\nexport const TodolistsDataSchema = v.looseObject({\n id: v.optional(v.number()),\n name: v.optional(v.nullable(v.string())),\n description: v.optional(v.nullable(v.string())),\n updatedAt: v.optional(v.string()),\n createdAt: v.optional(v.string()),\n url: v.optional(v.nullable(v.string())),\n appUrl: v.optional(v.nullable(v.string())),\n completedFlag: v.optional(v.nullable(v.string())),\n privateFlag: v.optional(v.nullable(v.string())),\n trashedFlag: v.optional(v.nullable(v.string())),\n completedCount: v.optional(v.nullable(v.number())),\n remainingCount: v.optional(v.nullable(v.number())),\n creatorId: v.optional(v.nullable(v.number())),\n bucketId: v.optional(v.nullable(v.number())),\n updateCd: v.optional(v.number()),\n position: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n projectsId: v.optional(v.number()),\n});\n\nexport const TodosDataSchema = v.looseObject({\n id: v.optional(v.number()),\n todolistId: v.optional(v.nullable(v.number())),\n content: v.optional(v.nullable(v.string())),\n dueAt: v.optional(v.nullable(v.string())),\n dueOn: v.optional(v.nullable(v.string())),\n updatedAt: v.optional(v.string()),\n createdAt: v.optional(v.string()),\n completedAt: v.optional(v.nullable(v.string())),\n commentsCount: v.optional(v.nullable(v.number())),\n privateFlag: v.optional(v.nullable(v.string())),\n trashedFlag: v.optional(v.nullable(v.string())),\n creatorId: v.optional(v.nullable(v.number())),\n assigneeId: v.optional(v.nullable(v.number())),\n completedFlag: v.optional(v.nullable(v.string())),\n url: v.optional(v.nullable(v.string())),\n appUrl: v.optional(v.nullable(v.string())),\n updateCd: v.optional(v.number()),\n position: v.optional(v.number()),\n projectsId: v.optional(v.number()),\n detailJson: v.optional(v.nullable(v.string())),\n pullDetailCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n agrInfoCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n lastCommentAt: v.optional(v.string()),\n vector: v.optional(v.nullable(v.string())),\n vectorCd: v.optional(v.number()),\n vectorFlag: v.optional(v.string()),\n dateLastVector: v.optional(v.string()),\n});\n\nexport const TodosSummaryDataSchema = v.looseObject({\n id: v.optional(v.number()),\n summary: v.optional(v.nullable(v.string())),\n summaryTokens: v.optional(v.number()),\n context: v.optional(v.nullable(v.string())),\n contextTokens: v.optional(v.number()),\n modelName: v.optional(v.nullable(v.string())),\n vector: v.optional(v.nullable(v.string())),\n vectorCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n updateCd: v.optional(v.number()),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n akashaCd: v.optional(v.number()),\n complexityScore: v.optional(v.nullable(v.number())),\n complexityReason: v.optional(v.nullable(v.string())),\n estimatedMinutes: v.optional(v.nullable(v.number())),\n requiredServices: v.optional(v.nullable(v.string())),\n worthinessReason: v.optional(v.nullable(v.string())),\n});\n\nexport const TodosSessionsDataSchema = v.looseObject({\n todosSessionsUid: v.optional(v.number()),\n todosId: v.optional(v.number()),\n sessionNum: v.optional(v.number()),\n sessionStatusCd: v.optional(v.number()),\n subject: v.optional(v.nullable(v.string())),\n problem: v.optional(v.nullable(v.string())),\n investigation: v.optional(v.nullable(v.string())),\n plan: v.optional(v.nullable(v.string())),\n outcome: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for basecamp2 service\n * Source: shared/specs/basecamp2.json\n * Generated: 2026-09-23T23:29:49Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n CommentsDataSchema,\n EventsDataSchema,\n MetricsDataSchema,\n PeopleDataSchema,\n ProjectsDataSchema,\n TodolistsDataSchema,\n TodosDataSchema,\n TodosSessionsDataSchema,\n TodosSummaryDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/comments',\n chain: 'comments',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['creatorId', 'limit', 'offset', 'orderBy', 'todosId'],\n edgeCache: true,\n responseSchema: CommentsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/comments/{id}',\n chain: 'comments',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CommentsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/events',\n chain: 'events',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['eventTypeCd', 'id', 'limit', 'offset', 'orderBy', 'peopleId'],\n edgeCache: true,\n responseSchema: EventsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/metrics',\n chain: 'metrics',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'assigneeId',\n 'creatorId',\n 'hasComments',\n 'isStale',\n 'limit',\n 'needsResponse',\n 'offset',\n 'orderBy',\n 'projectsId',\n 'todosStatusCd',\n ],\n edgeCache: true,\n responseSchema: MetricsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/people',\n chain: 'people',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['adminFlag', 'limit', 'offset', 'orderBy', 'q', 'trashedFlag'],\n edgeCache: true,\n responseSchema: PeopleDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/people/{id}',\n chain: 'people',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PeopleDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/people/{id}/metrics',\n chain: 'people.metrics',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [\n 'hasComments',\n 'isStale',\n 'limit',\n 'needsResponse',\n 'offset',\n 'orderBy',\n 'todosStatusCd',\n ],\n edgeCache: true,\n responseSchema: MetricsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/people/{id}/todos',\n chain: 'people.todos',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['completedFlag', 'dueAt', 'limit', 'offset', 'orderBy', 'projectsId'],\n edgeCache: true,\n responseSchema: PeopleDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/people/{personId}/projects/{projectId}/todos',\n chain: 'people.projects.todos',\n action: 'list',\n aliases: [],\n pathParams: ['personId', 'projectId'],\n queryParams: ['completedFlag', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PeopleDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/projects',\n chain: 'projects',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['archivedFlag', 'limit', 'offset', 'orderBy', 'trashedFlag'],\n edgeCache: true,\n responseSchema: ProjectsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/projects/{id}',\n chain: 'projects',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ProjectsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/projects/{id}/metrics',\n chain: 'projects.metrics',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [\n 'hasComments',\n 'isStale',\n 'limit',\n 'needsResponse',\n 'offset',\n 'orderBy',\n 'todosStatusCd',\n ],\n edgeCache: true,\n responseSchema: MetricsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/projects/{id}/todolists',\n chain: 'projects.todolists',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['completedFlag', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: ProjectsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/projects/{id}/todos',\n chain: 'projects.todos',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['assigneeId', 'completedFlag', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: ProjectsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/projects/{projectId}/todolists/{todolistId}/todos',\n chain: 'projects.todolists.todos',\n action: 'list',\n aliases: [],\n pathParams: ['projectId', 'todolistId'],\n queryParams: ['assigneeId', 'completedFlag', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: ProjectsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todolists',\n chain: 'todolists',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['assigneeId', 'completedFlag', 'limit', 'offset', 'orderBy', 'projectsId'],\n edgeCache: true,\n responseSchema: TodolistsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todolists/{id}',\n chain: 'todolists',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TodolistsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos',\n chain: 'todos',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'assigneeId',\n 'completedFlag',\n 'dueAt',\n 'limit',\n 'offset',\n 'orderBy',\n 'projectsId',\n 'todolistId',\n ],\n edgeCache: true,\n responseSchema: TodosDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todos-summary',\n chain: 'todosSummary',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['akashaCd', 'limit', 'offset', 'processCd'],\n edgeCache: true,\n responseSchema: TodosSummaryDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todos-summary/{id}',\n chain: 'todosSummary',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TodosSummaryDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos/{id}',\n chain: 'todos',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TodosDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos/{id}/comments',\n chain: 'todos.comments',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: TodosDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todos/{id}/events',\n chain: 'todos.events',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['eventTypeCd', 'limit', 'offset', 'orderBy', 'peopleId'],\n edgeCache: true,\n responseSchema: EventsDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todos/{id}/events/{eventNum}',\n chain: 'todos.events',\n action: 'get',\n aliases: [],\n pathParams: ['id', 'eventNum'],\n queryParams: [],\n edgeCache: true,\n responseSchema: EventsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos/{id}/metrics',\n chain: 'todos.metrics',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: MetricsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos/{id}/sessions',\n chain: 'todos.sessions',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['limit', 'offset', 'orderBy', 'sessionStatusCd'],\n edgeCache: true,\n responseSchema: TodosSessionsDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/todos/{id}/sessions',\n chain: 'todos.sessions',\n action: 'create',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TodosSessionsDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos/{id}/sessions/{sessionId}',\n chain: 'todos.sessions',\n action: 'get',\n aliases: [],\n pathParams: ['id', 'sessionId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TodosSessionsDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/todos/{id}/sessions/{sessionId}',\n chain: 'todos.sessions',\n action: 'update',\n aliases: [],\n pathParams: ['id', 'sessionId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TodosSessionsDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/todos/{id}/sessions/{sessionId}',\n chain: 'todos.sessions',\n action: 'delete',\n aliases: [],\n pathParams: ['id', 'sessionId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TodosSessionsDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated client for basecamp2 service\n * Source: shared/specs/basecamp2.json\n * Generated: 2026-09-23T23:29:49Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { Basecamp2ClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class Basecamp2Client extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly comments: Basecamp2ClientSpec['comments'];\n readonly events: Basecamp2ClientSpec['events'];\n readonly metrics: Basecamp2ClientSpec['metrics'];\n readonly people: Basecamp2ClientSpec['people'];\n readonly projects: Basecamp2ClientSpec['projects'];\n readonly todolists: Basecamp2ClientSpec['todolists'];\n readonly todos: Basecamp2ClientSpec['todos'];\n readonly todosSummary: Basecamp2ClientSpec['todosSummary'];\n\n // Data-only resources (unwrap .data from every response)\n readonly commentsData: Basecamp2ClientSpec['comments'];\n readonly eventsData: Basecamp2ClientSpec['events'];\n readonly metricsData: Basecamp2ClientSpec['metrics'];\n readonly peopleData: Basecamp2ClientSpec['people'];\n readonly projectsData: Basecamp2ClientSpec['projects'];\n readonly todolistsData: Basecamp2ClientSpec['todolists'];\n readonly todosData: Basecamp2ClientSpec['todos'];\n readonly todosSummaryData: Basecamp2ClientSpec['todosSummary'];\n\n constructor(http: HTTPClient, baseUrl: string = 'https://basecamp2.augur-api.com') {\n super('basecamp2', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<Basecamp2ClientSpec>(\n 'basecamp2',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.comments = proxy.comments;\n this.events = proxy.events;\n this.metrics = proxy.metrics;\n this.people = proxy.people;\n this.projects = proxy.projects;\n this.todolists = proxy.todolists;\n this.todos = proxy.todos;\n this.todosSummary = proxy.todosSummary;\n\n // Wire data proxy resources\n this.commentsData = dataProxy.comments;\n this.eventsData = dataProxy.events;\n this.metricsData = dataProxy.metrics;\n this.peopleData = dataProxy.people;\n this.projectsData = dataProxy.projects;\n this.todolistsData = dataProxy.todolists;\n this.todosData = dataProxy.todos;\n this.todosSummaryData = dataProxy.todosSummary;\n }\n\n protected getServiceDescription(): string {\n return 'Basecamp project management integration syncing todos, projects, people, and conversation data with AI analytics';\n }\n}\n","import { HTTPClient } from './core/client';\nimport { AugurAPIConfig, AugurContext, ContextCreationError } from './core/config';\nimport { DiscoveryEndpoint as BaseDiscoveryEndpoint } from './core/base-client';\nimport { JoomlaClient } from './services/joomla';\nimport { CommerceClient } from './services/commerce';\nimport { PricingClient } from './services/pricing';\nimport { VMIClient } from './services/vmi';\nimport { OpenSearchClient } from './services/open-search';\nimport { ItemsClient } from './services/items';\nimport { LegacyClient } from './services/legacy';\nimport { AgrSiteClient } from './services/agr-site';\nimport { CustomersClient } from './services/customers';\nimport { OrdersClient } from './services/orders';\nimport { P21PimClient } from './services/p21-pim';\nimport { PaymentsClient } from './services/payments';\nimport { AgrInfoClient } from './services/agr-info';\nimport { AgrIntClient } from './services/agr-int';\nimport { AgrWorkClient } from './services/agr-work';\nimport { AvalaraClient } from './services/avalara';\nimport { BrandFolderClient } from './services/brand-folder';\nimport { GregorovichClient } from './services/gregorovich';\nimport { LogisticsClient } from './services/logistics';\nimport { P21ApisClient } from './services/p21-apis';\nimport { P21CoreClient } from './services/p21-core';\nimport { P21SismClient } from './services/p21-sism';\nimport { ShippingClient } from './services/shipping';\nimport { SmartyStreetsClient } from './services/smarty-streets';\nimport { UPSClient } from './services/ups';\nimport { Basecamp2Client } from './services/basecamp2';\n\n/**\n * Interface for discovery endpoint information - re-export base discovery endpoint\n */\nexport type DiscoveryEndpoint = BaseDiscoveryEndpoint;\n\n/**\n * Re-export context and error types for convenience\n */\nexport type { AugurContext } from './core/config';\nexport { ContextCreationError } from './core/config';\n\n/**\n * Interface for service discovery results\n */\nexport interface ServiceMap {\n /** Service name */\n serviceName: string;\n /** Service description */\n description: string;\n /** Base URL for the service */\n baseUrl: string;\n /** Number of discoverable endpoints */\n endpointCount: number;\n /** Array of discoverable endpoints */\n endpoints: DiscoveryEndpoint[];\n}\n\n/**\n * Interface for endpoint search results\n */\nexport interface EndpointSearchResult {\n /** The matching endpoint */\n endpoint: DiscoveryEndpoint;\n /** Relevance score (0-1) */\n score: number;\n /** Reason why this endpoint matched */\n matchReason: string;\n}\n\n/**\n * Main client factory for accessing Augur microservices\n *\n * @example\n * ```typescript\n * // Traditional approach\n * const api = new AugurAPI({\n * siteId: 'my-site-id',\n * bearerToken: 'my-bearer-token'\n * });\n *\n * // Context-aware approach (recommended)\n * const api = AugurAPI.fromContext(context);\n *\n * // Access Joomla service\n * const users = await api.joomla.users.list();\n *\n * // Access Commerce service\n * const cart = await api.commerce.cartHeaders.lookup({ userId: 123, customerId: 456, contactId: 789 });\n *\n * // Access Pricing service\n * const price = await api.pricing.getPrice({ customerId: 12345, itemId: 'ABC123', quantity: 10 });\n *\n * // Access VMI service\n * const warehouses = await api.vmi.warehouses.list({ customerId: 12345 });\n *\n * // Access OpenSearch service\n * const searchResults = await api.opensearch.itemSearch.search({ q: 'electrical wire', searchType: 'query' });\n *\n * // Access Items service\n * const product = await api.items.products.get(12345);\n * const categories = await api.items.categories.get(100);\n *\n * // Access Legacy service\n * const states = await api.legacy.states.list({ twoLetterCode: 'CA' });\n * const alsoBought = await api.legacy.inventory.getAlsoBought(12345);\n *\n * // Access AGR Site service\n * const health = await api.agrSite.getHealthCheck();\n * const settings = await api.agrSite.settings.list({ serviceName: 'commerce' });\n * const transcript = await api.agrSite.fyxerTranscripts.create({ link: 'https://example.com/doc.pdf' });\n *\n * // Access Customers service\n * const customers = await api.customers.customer.list({ limit: 10 });\n * const customer = await api.customers.customer.get(12345);\n * const contacts = await api.customers.customer.contacts.list(12345, { q: 'John' });\n * const newContact = await api.customers.customer.contacts.create(12345, {\n * firstName: 'Jane', lastName: 'Doe', email: 'jane@example.com'\n * });\n *\n * // Access Orders service\n * const orders = await api.orders.orders.lookup({ limit: 10, q: '12345' });\n * const orderDoc = await api.orders.orders.getDocument(12345678, { postalCode: '12345' });\n * const salesRepOrders = await api.orders.salesRep.getOrders(123);\n * const purchaseOrders = await api.orders.purchaseOrders.list({ complete: 'N', limit: 20 });\n * const invoiceReprint = await api.orders.invoices.reprint('INV123456');\n *\n * // Access P21 PIM service\n * const invExtensions = await api.p21Pim.inventoryMasterExtensions.list({ limit: 20 });\n * const displaySuggestions = await api.p21Pim.items.suggestDisplayDescription(12345);\n * const webSuggestions = await api.p21Pim.items.suggestWebDescription(12345, { limit: 5 });\n * const podcasts = await api.p21Pim.podcasts.list({ q: 'manufacturing' });\n *\n * // Access Payments service\n * const transactionSetup = await api.payments.unified.transactionSetup({ customerId: '123' });\n * const accountQuery = await api.payments.unified.accountQuery({\n * customerId: '123',\n * transactionSetupId: transactionSetup.data.transactionSetupId\n * });\n * const surcharge = await api.payments.unified.surcharge({\n * customerId: '123',\n * paymentAccountId: '456',\n * amount: '100.00',\n * fromState: 'CA',\n * toState: 'NY',\n * country: 'US'\n * });\n * ```\n */\nexport class AugurAPI {\n private config: AugurAPIConfig;\n private _joomla?: JoomlaClient;\n private _commerce?: CommerceClient;\n private _pricing?: PricingClient;\n private _vmi?: VMIClient;\n private _opensearch?: OpenSearchClient;\n private _items?: ItemsClient;\n private _legacy?: LegacyClient;\n private _agrSite?: AgrSiteClient;\n private _customers?: CustomersClient;\n private _orders?: OrdersClient;\n private _p21Pim?: P21PimClient;\n private _payments?: PaymentsClient;\n private _agrInfo?: AgrInfoClient;\n private _agrInt?: AgrIntClient;\n private _agrWork?: AgrWorkClient;\n private _avalara?: AvalaraClient;\n private _brandFolder?: BrandFolderClient;\n private _gregorovich?: GregorovichClient;\n private _logistics?: LogisticsClient;\n private _p21Apis?: P21ApisClient;\n private _p21Core?: P21CoreClient;\n private _p21Sism?: P21SismClient;\n private _shipping?: ShippingClient;\n private _smartyStreets?: SmartyStreetsClient;\n private _ups?: UPSClient;\n private _basecamp2?: Basecamp2Client;\n\n constructor(config: AugurAPIConfig) {\n this.config = config;\n }\n\n /**\n * Create AugurAPI client from context object\n *\n * Automatically extracts siteId and authentication token from context,\n * eliminating the need for manual configuration boilerplate.\n *\n * @param context Context object containing siteId and authentication\n * @param options Optional configuration overrides\n * @returns AugurAPI instance configured from context\n *\n * @example\n * ```typescript\n * // Instead of manual configuration:\n * const userJwt = await getToken({ req: request });\n * const api = new AugurAPI({ siteId: context.siteId, bearerToken: userJwt.jwtToken });\n *\n * // Simply use:\n * const api = AugurAPI.fromContext(context);\n *\n * // With optional overrides:\n * const api = AugurAPI.fromContext(context, { timeout: 10000 });\n * ```\n *\n * @throws {ContextCreationError} When context is invalid or missing required fields\n */\n static fromContext(context: AugurContext, options: Partial<AugurAPIConfig> = {}): AugurAPI {\n // Validate context\n if (!context) {\n throw new ContextCreationError('Context is required', 'context');\n }\n\n if (!context.siteId) {\n throw new ContextCreationError('Context must contain siteId', 'siteId');\n }\n\n // Extract bearer token from jwt or bearerToken field\n const bearerToken = context.jwt || context.bearerToken;\n if (!bearerToken) {\n throw new ContextCreationError(\n 'Context must contain jwt or bearerToken for authentication',\n 'bearerToken'\n );\n }\n\n // Create configuration from context\n const config: AugurAPIConfig = {\n siteId: context.siteId,\n bearerToken,\n ...options, // Allow overrides\n };\n\n return new AugurAPI(config);\n }\n\n /**\n * Access Joomla service endpoints\n */\n get joomla(): JoomlaClient {\n if (!this._joomla) {\n const httpClient = new HTTPClient('joomla', this.config);\n this._joomla = new JoomlaClient(httpClient);\n }\n return this._joomla;\n }\n\n /**\n * Access Commerce service endpoints\n */\n get commerce(): CommerceClient {\n if (!this._commerce) {\n const httpClient = new HTTPClient('commerce', this.config);\n this._commerce = new CommerceClient(httpClient);\n }\n return this._commerce;\n }\n\n /**\n * Access Pricing service endpoints\n */\n get pricing(): PricingClient {\n if (!this._pricing) {\n const httpClient = new HTTPClient('pricing', this.config);\n this._pricing = new PricingClient(httpClient);\n }\n return this._pricing;\n }\n\n /**\n * Access VMI (Vendor Managed Inventory) service endpoints\n */\n get vmi(): VMIClient {\n if (!this._vmi) {\n const httpClient = new HTTPClient('vmi', this.config);\n this._vmi = new VMIClient(httpClient);\n }\n return this._vmi;\n }\n\n /**\n * Access OpenSearch service endpoints\n */\n get opensearch(): OpenSearchClient {\n if (!this._opensearch) {\n const httpClient = new HTTPClient('open-search', this.config);\n this._opensearch = new OpenSearchClient(httpClient);\n }\n return this._opensearch;\n }\n\n /**\n * Access Items service endpoints\n */\n get items(): ItemsClient {\n if (!this._items) {\n const httpClient = new HTTPClient('items', this.config);\n this._items = new ItemsClient(httpClient);\n }\n return this._items;\n }\n\n /**\n * Access Legacy service endpoints\n */\n get legacy(): LegacyClient {\n if (!this._legacy) {\n const httpClient = new HTTPClient('legacy', this.config);\n this._legacy = new LegacyClient(httpClient);\n }\n return this._legacy;\n }\n\n /**\n * Access AGR Site service endpoints\n */\n get agrSite(): AgrSiteClient {\n if (!this._agrSite) {\n const httpClient = new HTTPClient('agr-site', this.config);\n this._agrSite = new AgrSiteClient(httpClient);\n }\n return this._agrSite;\n }\n\n /**\n * Access Customers service endpoints\n */\n get customers(): CustomersClient {\n if (!this._customers) {\n const httpClient = new HTTPClient('customers', this.config);\n this._customers = new CustomersClient(httpClient);\n }\n return this._customers;\n }\n\n /**\n * Access Orders service endpoints\n */\n get orders(): OrdersClient {\n if (!this._orders) {\n const httpClient = new HTTPClient('orders', this.config);\n this._orders = new OrdersClient(httpClient);\n }\n return this._orders;\n }\n\n /**\n * Access P21 PIM (Product Information Management) service endpoints\n */\n get p21Pim(): P21PimClient {\n if (!this._p21Pim) {\n const httpClient = new HTTPClient('p21-pim', this.config);\n this._p21Pim = new P21PimClient(httpClient);\n }\n return this._p21Pim;\n }\n\n /**\n * Access Payments service endpoints\n */\n get payments(): PaymentsClient {\n if (!this._payments) {\n const httpClient = new HTTPClient('payments', this.config);\n this._payments = new PaymentsClient(httpClient);\n }\n return this._payments;\n }\n\n /**\n * Access AGR Info service endpoints\n */\n get agrInfo(): AgrInfoClient {\n if (!this._agrInfo) {\n const httpClient = new HTTPClient('agr-info', this.config);\n this._agrInfo = new AgrInfoClient(httpClient);\n }\n return this._agrInfo;\n }\n\n /**\n * Access AGR Int (internal RBAC) service endpoints\n */\n get agrInt(): AgrIntClient {\n if (!this._agrInt) {\n const httpClient = new HTTPClient('agr-int', this.config);\n this._agrInt = new AgrIntClient(httpClient);\n }\n return this._agrInt;\n }\n\n /**\n * Access AGR Work service endpoints\n */\n get agrWork(): AgrWorkClient {\n if (!this._agrWork) {\n const httpClient = new HTTPClient('agr-work', this.config);\n this._agrWork = new AgrWorkClient(httpClient);\n }\n return this._agrWork;\n }\n\n /**\n * Access Avalara service endpoints\n */\n get avalara(): AvalaraClient {\n if (!this._avalara) {\n const httpClient = new HTTPClient('avalara', this.config);\n this._avalara = new AvalaraClient(httpClient);\n }\n return this._avalara;\n }\n\n /**\n * Access Brand Folder service endpoints\n */\n get brandFolder(): BrandFolderClient {\n if (!this._brandFolder) {\n const httpClient = new HTTPClient('brand-folder', this.config);\n this._brandFolder = new BrandFolderClient(httpClient);\n }\n return this._brandFolder;\n }\n\n /**\n * Access Gregorovich service endpoints\n */\n get gregorovich(): GregorovichClient {\n if (!this._gregorovich) {\n const httpClient = new HTTPClient('gregorovich', this.config);\n this._gregorovich = new GregorovichClient(httpClient);\n }\n return this._gregorovich;\n }\n\n /**\n * Access Logistics service endpoints\n */\n get logistics(): LogisticsClient {\n if (!this._logistics) {\n const httpClient = new HTTPClient('logistics', this.config);\n this._logistics = new LogisticsClient(httpClient);\n }\n return this._logistics;\n }\n\n /**\n * Access P21 APIs service endpoints\n */\n get p21Apis(): P21ApisClient {\n if (!this._p21Apis) {\n const httpClient = new HTTPClient('p21-apis', this.config);\n this._p21Apis = new P21ApisClient(httpClient);\n }\n return this._p21Apis;\n }\n\n /**\n * Access P21 Core service endpoints\n */\n get p21Core(): P21CoreClient {\n if (!this._p21Core) {\n const httpClient = new HTTPClient('p21-core', this.config);\n this._p21Core = new P21CoreClient(httpClient);\n }\n return this._p21Core;\n }\n\n /**\n * Access P21 SISM service endpoints\n */\n get p21Sism(): P21SismClient {\n if (!this._p21Sism) {\n const httpClient = new HTTPClient('p21-sism', this.config);\n this._p21Sism = new P21SismClient(httpClient);\n }\n return this._p21Sism;\n }\n\n /**\n * Access Shipping service endpoints\n */\n get shipping(): ShippingClient {\n if (!this._shipping) {\n const httpClient = new HTTPClient('shipping', this.config);\n this._shipping = new ShippingClient(httpClient);\n }\n return this._shipping;\n }\n\n /**\n * Access SmartyStreets service endpoints\n */\n get smartyStreets(): SmartyStreetsClient {\n if (!this._smartyStreets) {\n const httpClient = new HTTPClient('smarty-streets', this.config);\n this._smartyStreets = new SmartyStreetsClient(httpClient);\n }\n return this._smartyStreets;\n }\n\n /**\n * Access UPS service endpoints\n */\n get ups(): UPSClient {\n if (!this._ups) {\n const httpClient = new HTTPClient('ups', this.config);\n this._ups = new UPSClient(httpClient);\n }\n return this._ups;\n }\n\n /**\n * Access Basecamp2 service endpoints\n */\n get basecamp2(): Basecamp2Client {\n if (!this._basecamp2) {\n const httpClient = new HTTPClient('basecamp2', this.config);\n this._basecamp2 = new Basecamp2Client(httpClient);\n }\n return this._basecamp2;\n }\n\n /**\n * Update authentication token\n * @param bearerToken New bearer token\n */\n setAuthToken(bearerToken: string): void {\n this.config.bearerToken = bearerToken;\n // Reset clients to use new token\n this._joomla = undefined;\n this._commerce = undefined;\n this._pricing = undefined;\n this._vmi = undefined;\n this._opensearch = undefined;\n this._items = undefined;\n this._legacy = undefined;\n this._agrSite = undefined;\n this._customers = undefined;\n this._orders = undefined;\n this._p21Pim = undefined;\n this._payments = undefined;\n this._agrInfo = undefined;\n this._agrInt = undefined;\n this._agrWork = undefined;\n this._avalara = undefined;\n this._brandFolder = undefined;\n this._gregorovich = undefined;\n this._logistics = undefined;\n this._p21Apis = undefined;\n this._p21Core = undefined;\n this._p21Sism = undefined;\n this._shipping = undefined;\n this._smartyStreets = undefined;\n this._ups = undefined;\n this._basecamp2 = undefined;\n }\n\n /**\n * Update site ID\n * @param siteId New site ID\n */\n setSiteId(siteId: string): void {\n this.config.siteId = siteId;\n // Reset clients to use new site ID\n this._joomla = undefined;\n this._commerce = undefined;\n this._pricing = undefined;\n this._vmi = undefined;\n this._opensearch = undefined;\n this._items = undefined;\n this._legacy = undefined;\n this._agrSite = undefined;\n this._customers = undefined;\n this._orders = undefined;\n this._p21Pim = undefined;\n this._payments = undefined;\n this._agrInfo = undefined;\n this._agrInt = undefined;\n this._agrWork = undefined;\n this._avalara = undefined;\n this._brandFolder = undefined;\n this._gregorovich = undefined;\n this._logistics = undefined;\n this._p21Apis = undefined;\n this._p21Core = undefined;\n this._p21Sism = undefined;\n this._shipping = undefined;\n this._smartyStreets = undefined;\n this._ups = undefined;\n this._basecamp2 = undefined;\n }\n\n /**\n * Discover all available services and their capabilities\n *\n * Returns a complete service map showing all discoverable endpoints across\n * all microservices, enabling AI agents to understand the full API topology.\n *\n * @returns Promise<ServiceMap[]> Array of service maps with endpoint metadata\n *\n * @example\n * ```typescript\n * const api = new AugurAPI({ siteId: 'my-site', bearerToken: 'token' });\n * const services = await api.discover();\n *\n * // Find all user-related endpoints\n * const userEndpoints = services.flatMap(s => s.endpoints)\n * .filter(e => e.searchTerms.some(term => term.includes('user')));\n *\n * // Show service capabilities\n * services.forEach(service => {\n * console.log(`${service.serviceName}: ${service.endpointCount} endpoints`);\n * service.endpoints.forEach(endpoint => {\n * console.log(` ${endpoint.fullPath} - ${endpoint.description}`);\n * });\n * });\n * ```\n */\n async discover(): Promise<ServiceMap[]> {\n const services: ServiceMap[] = [];\n\n // Get all available service clients\n const serviceClients = [\n { name: 'joomla', client: this.joomla },\n { name: 'commerce', client: this.commerce },\n { name: 'pricing', client: this.pricing },\n { name: 'vmi', client: this.vmi },\n { name: 'opensearch', client: this.opensearch },\n { name: 'items', client: this.items },\n { name: 'legacy', client: this.legacy },\n { name: 'agrSite', client: this.agrSite },\n { name: 'customers', client: this.customers },\n { name: 'orders', client: this.orders },\n { name: 'p21Pim', client: this.p21Pim },\n { name: 'payments', client: this.payments },\n { name: 'agrInfo', client: this.agrInfo },\n { name: 'agrInt', client: this.agrInt },\n { name: 'agrWork', client: this.agrWork },\n { name: 'avalara', client: this.avalara },\n { name: 'brandFolder', client: this.brandFolder },\n { name: 'gregorovich', client: this.gregorovich },\n { name: 'logistics', client: this.logistics },\n { name: 'p21Apis', client: this.p21Apis },\n { name: 'p21Core', client: this.p21Core },\n { name: 'p21Sism', client: this.p21Sism },\n { name: 'shipping', client: this.shipping },\n { name: 'smartyStreets', client: this.smartyStreets },\n { name: 'ups', client: this.ups },\n { name: 'basecamp2', client: this.basecamp2 },\n ];\n\n for (const { name, client } of serviceClients) {\n try {\n // Get discovery metadata from each service client\n const metadata = client.getDiscoveryMetadata();\n\n services.push({\n serviceName: metadata.serviceName || name,\n description: metadata.description,\n baseUrl: metadata.baseUrl,\n endpointCount: metadata.endpoints.length,\n endpoints: metadata.endpoints,\n });\n } catch {\n // Silently skip services that don't support discovery\n continue;\n }\n }\n\n return services;\n }\n\n /**\n * Find endpoints by search term or functionality description\n *\n * Searches across all services to find endpoints that match the given search term.\n * Uses intelligent matching against endpoint descriptions, search terms, domains,\n * and common usage patterns.\n *\n * @param searchTerm The functionality or term to search for\n * @param options Search options for filtering and ranking\n * @returns Promise<EndpointSearchResult[]> Array of matching endpoints with relevance scores\n *\n * @example\n * ```typescript\n * const api = new AugurAPI({ siteId: 'my-site', bearerToken: 'token' });\n *\n * // Find user-related endpoints\n * const userEndpoints = await api.findEndpoint('users');\n * console.log(`Found ${userEndpoints.length} user-related endpoints`);\n *\n * // Find authentication endpoints\n * const authEndpoints = await api.findEndpoint('authentication');\n *\n * // Find inventory management\n * const inventoryEndpoints = await api.findEndpoint('inventory management');\n *\n * // Show results with scores\n * userEndpoints.forEach(result => {\n * console.log(`${result.endpoint.fullPath} (${result.score.toFixed(2)}) - ${result.matchReason}`);\n * });\n * ```\n */\n async findEndpoint(\n searchTerm: string,\n options: {\n /** Minimum relevance score (0-1, default: 0.1) */\n minScore?: number;\n /** Maximum number of results (default: 10) */\n maxResults?: number;\n /** Filter by specific service */\n service?: string;\n /** Filter by business domain */\n domain?: string;\n /** Include only GET endpoints */\n readOnly?: boolean;\n } = {}\n ): Promise<EndpointSearchResult[]> {\n const { minScore = 0.1, maxResults = 10, service, domain, readOnly = false } = options;\n\n // Handle empty search term\n if (!searchTerm.trim()) {\n return [];\n }\n\n // Get filtered endpoints\n const filteredEndpoints = await this.getFilteredEndpoints({ service, domain, readOnly });\n\n // Search and score endpoints\n const results = this.searchAndScoreEndpoints(filteredEndpoints, searchTerm, {\n domain,\n minScore,\n });\n\n // Sort by relevance score (highest first) and limit results\n return results.sort((a, b) => b.score - a.score).slice(0, maxResults);\n }\n\n /**\n * Get endpoints filtered by service, domain, and method options\n */\n private async getFilteredEndpoints(filters: {\n service?: string;\n domain?: string;\n readOnly?: boolean;\n }): Promise<DiscoveryEndpoint[]> {\n const { service, domain, readOnly } = filters;\n const services = await this.discover();\n let filteredEndpoints = services.flatMap(s => s.endpoints);\n\n if (service) {\n filteredEndpoints = filteredEndpoints.filter(e => e.service === service);\n }\n\n if (domain) {\n filteredEndpoints = filteredEndpoints.filter(e => e.domain === domain);\n }\n\n if (readOnly) {\n filteredEndpoints = filteredEndpoints.filter(e => e.method === 'GET');\n }\n\n return filteredEndpoints;\n }\n\n /**\n * Search and score endpoints against search term\n */\n private searchAndScoreEndpoints(\n endpoints: DiscoveryEndpoint[],\n searchTerm: string,\n options: { domain?: string; minScore: number }\n ): EndpointSearchResult[] {\n const { domain, minScore } = options;\n const results: EndpointSearchResult[] = [];\n const searchTermLower = searchTerm.toLowerCase();\n\n for (const endpoint of endpoints) {\n // Skip malformed endpoints\n if (!this.isValidEndpoint(endpoint)) {\n continue;\n }\n\n const { finalScore, finalMatchReason } = this.calculateFinalScore(\n endpoint,\n searchTermLower,\n domain\n );\n\n if (finalScore >= minScore) {\n results.push({\n endpoint,\n score: finalScore,\n matchReason: finalMatchReason,\n });\n }\n }\n\n return results;\n }\n\n /**\n * Check if endpoint has required fields\n */\n private isValidEndpoint(endpoint: DiscoveryEndpoint): boolean {\n return !!(endpoint.domain && endpoint.description && endpoint.method);\n }\n\n /**\n * Calculate final score with domain filter adjustments\n */\n private calculateFinalScore(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string,\n domain?: string\n ): { finalScore: number; finalMatchReason: string } {\n const { score, matchReason } = this.calculateEndpointRelevance(endpoint, searchTermLower);\n\n // If domain filter is applied and search score is 0, give minimal score\n if (domain && score === 0) {\n return {\n finalScore: 0.1,\n finalMatchReason: 'Domain filter match',\n };\n }\n\n return {\n finalScore: score,\n finalMatchReason: matchReason,\n };\n }\n\n /**\n * Calculate relevance score for an endpoint against a search term\n */\n private calculateEndpointRelevance(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; matchReason: string } {\n const exactMatches = this.calculateExactMatches(endpoint, searchTermLower);\n const partialMatches = this.calculatePartialMatches(endpoint, searchTermLower);\n\n // Process exact matches if found\n if (exactMatches.score > 0) {\n return this.processExactMatches(exactMatches, partialMatches);\n }\n\n // Fallback to multi-word or partial matches\n return this.processFallbackMatches(endpoint, searchTermLower, partialMatches);\n }\n\n /**\n * Process exact matches with appropriate combining logic\n */\n private processExactMatches(\n exactMatches: { score: number; reason: string },\n partialMatches: { score: number; reason: string }\n ): { score: number; matchReason: string } {\n // Service and search term matches are exclusive\n if (this.isExclusiveMatch(exactMatches.reason)) {\n return {\n score: exactMatches.score,\n matchReason: exactMatches.reason,\n };\n }\n\n // Combinable matches get partial score boost\n if (this.isCombinableMatch(exactMatches.reason)) {\n const totalScore = Math.min(exactMatches.score + partialMatches.score, 1.0);\n return {\n score: totalScore,\n matchReason: exactMatches.reason,\n };\n }\n\n // Default to exact match\n return {\n score: exactMatches.score,\n matchReason: exactMatches.reason,\n };\n }\n\n /**\n * Check if match type should be exclusive (no combining)\n */\n private isExclusiveMatch(reason: string): boolean {\n return reason === 'Service match' || reason.startsWith('Search term match');\n }\n\n /**\n * Check if match type can be combined with partial matches\n */\n private isCombinableMatch(reason: string): boolean {\n const combinableReasons = [\n 'Description match',\n 'Full path match',\n 'Path substring match',\n 'Domain match',\n 'Usage pattern match',\n ];\n return combinableReasons.includes(reason);\n }\n\n /**\n * Process fallback matches when no exact match found\n */\n private processFallbackMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string,\n partialMatches: { score: number; reason: string }\n ): { score: number; matchReason: string } {\n const multiWordMatches = this.calculateMultiWordMatches(endpoint, searchTermLower);\n\n if (multiWordMatches.score > partialMatches.score) {\n return {\n score: multiWordMatches.score,\n matchReason: multiWordMatches.reason,\n };\n }\n\n return {\n score: partialMatches.score,\n matchReason: partialMatches.reason || 'Low relevance match',\n };\n }\n\n /**\n * Calculate exact field matches with high scores\n */\n private calculateExactMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n // Check matches in priority order (not just highest score)\n\n // Priority 1: Exact field matches (domain, service, exact path, exact description)\n const exactMatch = this.checkExactFieldMatches(endpoint, searchTermLower);\n if (exactMatch.score > 0) {\n return exactMatch;\n }\n\n // Priority 2: Path and description substring matches (higher business value)\n const pathMatch = this.checkPathSubstringMatch(endpoint, searchTermLower);\n if (pathMatch.score > 0) {\n return pathMatch;\n }\n\n const descSubstringMatch = this.checkDescriptionSubstringMatch(endpoint, searchTermLower);\n if (descSubstringMatch.score > 0) {\n return descSubstringMatch;\n }\n\n // Priority 3: Search terms and patterns\n const termMatch = this.checkSearchTermsAndPatterns(endpoint, searchTermLower);\n if (termMatch.score > 0) {\n return termMatch;\n }\n\n // Priority 4: Other substring matches (domain, service)\n const otherSubstringMatch = this.checkOtherSubstringMatches(endpoint, searchTermLower);\n if (otherSubstringMatch.score > 0) {\n return otherSubstringMatch;\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Check for path substring matches\n */\n private checkPathSubstringMatch(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n if (\n endpoint.fullPath &&\n (endpoint.fullPath.toLowerCase().includes(searchTermLower) ||\n searchTermLower.includes(endpoint.fullPath.toLowerCase()))\n ) {\n return { score: 0.9, reason: 'Path substring match' };\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Check for description substring matches\n */\n private checkDescriptionSubstringMatch(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n if (endpoint.description && endpoint.description.toLowerCase().includes(searchTermLower)) {\n return { score: 0.65, reason: 'Description substring match' };\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Check for other substring matches (domain, service)\n */\n private checkOtherSubstringMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n if (endpoint.domain && endpoint.domain.toLowerCase().includes(searchTermLower)) {\n return { score: 0.5, reason: 'Domain match' };\n }\n\n if (endpoint.service && endpoint.service.toLowerCase().includes(searchTermLower)) {\n return { score: 0.3, reason: 'Service match' };\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Check for exact field matches\n */\n private checkExactFieldMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n if (endpoint.domain && endpoint.domain.toLowerCase() === searchTermLower) {\n return { score: 0.6, reason: 'Domain match' };\n }\n\n if (endpoint.service && endpoint.service.toLowerCase() === searchTermLower) {\n return { score: 0.3, reason: 'Service match' };\n }\n\n if (endpoint.fullPath && endpoint.fullPath.toLowerCase() === searchTermLower) {\n return { score: 1.0, reason: 'Full path match' };\n }\n\n if (endpoint.description && endpoint.description.toLowerCase() === searchTermLower) {\n return { score: 0.8, reason: 'Description match' };\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Check search terms and common patterns\n */\n private checkSearchTermsAndPatterns(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n if (Array.isArray(endpoint.searchTerms)) {\n const searchTermMatches = endpoint.searchTerms.filter(\n term => term && typeof term === 'string' && term.toLowerCase().includes(searchTermLower)\n );\n if (searchTermMatches.length > 0) {\n return { score: 0.7, reason: `Search term match: ${searchTermMatches[0]}` };\n }\n }\n\n if (Array.isArray(endpoint.commonPatterns)) {\n const patternMatches = endpoint.commonPatterns.filter(pattern => {\n if (!pattern || typeof pattern !== 'string') return false;\n const patternLower = pattern.toLowerCase();\n return patternLower.includes(searchTermLower);\n });\n if (patternMatches.length > 0) {\n return { score: 0.5, reason: 'Usage pattern match' };\n }\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Calculate partial word matches with lower scores\n */\n private calculatePartialMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string; matchReason?: string } {\n const allText = this.buildSearchableText(endpoint);\n const wordMatches = this.countWordMatches(searchTermLower, allText);\n\n return this.buildPartialMatchResult(wordMatches, searchTermLower);\n }\n\n /**\n * Build searchable text from endpoint fields\n */\n private buildSearchableText(endpoint: DiscoveryEndpoint): string {\n const searchTerms = Array.isArray(endpoint.searchTerms) ? endpoint.searchTerms : [];\n const commonPatterns = Array.isArray(endpoint.commonPatterns) ? endpoint.commonPatterns : [];\n\n return [\n endpoint.fullPath || '',\n endpoint.description || '',\n endpoint.domain || '',\n endpoint.service || '',\n ...searchTerms,\n ...commonPatterns,\n ]\n .filter(text => typeof text === 'string')\n .join(' ')\n .toLowerCase();\n }\n\n /**\n * Count matching words in text\n */\n private countWordMatches(searchTermLower: string, allText: string): number {\n const searchWords = searchTermLower.split(/\\s+/).filter(word => word.length > 0);\n let wordMatches = 0;\n\n for (const word of searchWords) {\n if (word.length > 2 && allText.includes(word)) {\n wordMatches++;\n }\n }\n\n return wordMatches;\n }\n\n /**\n * Build partial match result with score and reason\n */\n private buildPartialMatchResult(\n wordMatches: number,\n searchTermLower: string\n ): { score: number; reason: string; matchReason?: string } {\n if (wordMatches > 0) {\n const searchWords = searchTermLower.split(/\\s+/).filter(word => word.length > 0);\n const partialScore = (wordMatches / searchWords.length) * 0.2;\n const reasonText = `Partial word match (${wordMatches}/${searchWords.length})`;\n return {\n score: partialScore,\n reason: reasonText,\n matchReason: reasonText,\n };\n }\n\n return { score: 0, reason: '', matchReason: '' };\n }\n\n /**\n * Calculate multi-word matches by finding the best match for each word\n */\n private calculateMultiWordMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n const searchWords = searchTermLower.split(/\\s+/).filter(word => word.length > 0);\n\n // If only one word, fall back to exact matching\n if (searchWords.length <= 1) {\n return { score: 0, reason: '' };\n }\n\n let bestScore = 0;\n let bestReason = '';\n const matchedWords: string[] = [];\n\n // Check each word against the endpoint fields\n for (const word of searchWords) {\n const wordMatch = this.calculateExactMatches(endpoint, word);\n if (wordMatch.score > 0) {\n // Keep track of the highest scoring match\n if (wordMatch.score > bestScore) {\n bestScore = wordMatch.score;\n bestReason = wordMatch.reason;\n }\n matchedWords.push(word);\n }\n }\n\n // If we matched multiple words, boost the score\n if (matchedWords.length > 1) {\n // Base score is the best individual match, with bonus for additional matches\n const bonusScore = Math.min((matchedWords.length - 1) * 0.1, 0.3);\n const finalScore = Math.min(bestScore + bonusScore, 1.0);\n\n return {\n score: finalScore,\n reason: `Multi-word match (${matchedWords.length}/${searchWords.length} words): ${bestReason}`,\n };\n }\n\n // Single word match - return as-is\n if (bestScore > 0) {\n return {\n score: bestScore,\n reason: bestReason,\n };\n }\n\n return { score: 0, reason: '' };\n }\n}\n","import { AugurAPI } from '../client';\nimport type { BaseResponse } from '../core/schemas';\n\n/**\n * Cross-site authentication utility\n * @description Streamlined utility for authenticating users across different Augur sites\n * using augur_info privileges\n */\n\n/**\n * Parameters for cross-site authentication\n */\nexport interface CrossSiteAuthParams {\n /** Target site ID to authenticate against */\n targetSiteId: string;\n /** Username or email */\n username: string;\n /** User password */\n password: string;\n /** JWT token with augur_info admin privileges */\n augurInfoToken: string;\n}\n\n/**\n * Result of cross-site authentication\n */\nexport interface CrossSiteAuthResult {\n /** Whether authentication was successful */\n success: boolean;\n /** User ID if authentication succeeded */\n userId?: string;\n /** Username if authentication succeeded */\n username?: string;\n /** Email if authentication succeeded */\n email?: string;\n /** JWT token scoped to target site if authentication succeeded */\n token?: string;\n /** Target site ID */\n targetSiteId: string;\n /** Error message if authentication failed */\n error?: string;\n /** API client configured for target site (only if authentication succeeded) */\n targetSiteAPI?: AugurAPI;\n}\n\n/**\n * Authenticate a user against a target site using augur_info privileges\n * @description This utility function simplifies cross-site authentication by:\n * 1. Creating an augur_info API client with admin privileges\n * 2. Using verifyPassword with the target siteId in the request body\n * 3. Returning a ready-to-use API client for the target site on success\n *\n * @param params Cross-site authentication parameters\n * @returns Promise resolving to authentication result with optional target site API client\n *\n * @example\n * ```typescript\n * const result = await authenticateUserForSite({\n * targetSiteId: 'tenant_site_1',\n * username: 'user@tenant.com',\n * password: 'userpassword',\n * augurInfoToken: 'admin-jwt-token'\n * });\n *\n * if (result.success) {\n * // Use the pre-configured API client\n * const userData = await result.targetSiteAPI!.joomla.users.get(result.userId!);\n * console.log('User data:', userData);\n * } else {\n * console.error('Authentication failed:', result.error);\n * }\n * ```\n */\nexport async function authenticateUserForSite(\n params: CrossSiteAuthParams\n): Promise<CrossSiteAuthResult> {\n const { targetSiteId, username, password, augurInfoToken } = params;\n\n try {\n // Create augur_info API client with admin privileges\n const augurInfoAPI = new AugurAPI({\n siteId: 'augur_info',\n bearerToken: augurInfoToken,\n });\n\n // Perform cross-site authentication using existing verifyPassword method\n const authResponse = (await augurInfoAPI.joomla.users.verifyPassword.create({\n username,\n password,\n siteId: targetSiteId, // This tells the API to authenticate against the target site\n })) as unknown as BaseResponse<Record<string, unknown>>;\n\n const data = authResponse.data as Record<string, unknown>;\n if (data.isVerified) {\n // Create API client for target site with the returned token\n const targetSiteAPI = new AugurAPI({\n siteId: targetSiteId,\n bearerToken: data.token as string,\n });\n\n return {\n success: true,\n userId: (data.id as number | undefined)?.toString(),\n username: data.username as string | undefined,\n email: data.email as string | undefined,\n token: data.token as string,\n targetSiteId,\n targetSiteAPI,\n };\n } else {\n return {\n success: false,\n targetSiteId,\n error: 'Invalid username or password',\n };\n }\n } catch (error) {\n return {\n success: false,\n targetSiteId,\n error: error instanceof Error ? error.message : 'Authentication failed',\n };\n }\n}\n\n/**\n * Create a cross-site authentication function bound to specific augur_info credentials\n * @description Factory function for creating a reusable cross-site authenticator\n *\n * @param augurInfoToken JWT token with augur_info admin privileges\n * @returns Function that can authenticate users for any target site\n *\n * @example\n * ```typescript\n * // Create reusable authenticator\n * const crossSiteAuth = createCrossSiteAuthenticator('admin-jwt-token');\n *\n * // Use it for multiple sites\n * const result1 = await crossSiteAuth('tenant_site_1', 'user1@tenant.com', 'pass1');\n * const result2 = await crossSiteAuth('tenant_site_2', 'user2@tenant.com', 'pass2');\n * ```\n */\nexport function createCrossSiteAuthenticator(augurInfoToken: string) {\n return async (\n targetSiteId: string,\n username: string,\n password: string\n ): Promise<CrossSiteAuthResult> => {\n return authenticateUserForSite({\n targetSiteId,\n username,\n password,\n augurInfoToken,\n });\n };\n}\n","export const VERSION = '2026.9.5';\n\n// Main client\nexport { AugurAPI } from './client';\n\n// Utilities\nexport {\n authenticateUserForSite,\n createCrossSiteAuthenticator,\n type CrossSiteAuthParams,\n type CrossSiteAuthResult,\n} from './utils/cross-site-auth';\n\n// Core exports\nexport {\n AugurAPIConfig,\n AugurRequestConfig,\n AugurResponse,\n AugurRequestError,\n RequestConfig,\n type AugurContext,\n ContextCreationError,\n} from './core/config';\nexport {\n AugurAPIError,\n AugurError,\n ValidationError,\n AuthenticationError,\n NotFoundError,\n RateLimitError,\n InvalidArgumentError,\n} from './core/errors';\nexport {\n BaseResponseSchema,\n HealthCheckDataSchema,\n PaginationParamsSchema,\n WhoamiDataSchema,\n type BaseResponse,\n type HealthCheckData,\n type PingData,\n type WhoamiData,\n} from './core/schemas';\nexport { type ServiceMap, type DiscoveryEndpoint, type EndpointSearchResult } from './client';\n\n// Service exports\nexport { JoomlaClient } from './services/joomla';\nexport { CommerceClient } from './services/commerce';\nexport { PricingClient } from './services/pricing';\nexport { VMIClient } from './services/vmi';\nexport { OpenSearchClient } from './services/open-search';\nexport { ItemsClient } from './services/items';\nexport { LegacyClient } from './services/legacy';\nexport { AgrSiteClient } from './services/agr-site';\nexport { CustomersClient } from './services/customers';\nexport { OrdersClient } from './services/orders';\nexport { P21PimClient } from './services/p21-pim';\nexport { PaymentsClient } from './services/payments';\nexport { P21SismClient } from './services/p21-sism';\nexport { AgrInfoClient } from './services/agr-info';\nexport { AgrIntClient } from './services/agr-int';\nexport { AgrWorkClient } from './services/agr-work';\nexport { AvalaraClient } from './services/avalara';\nexport { BrandFolderClient } from './services/brand-folder';\nexport { GregorovichClient } from './services/gregorovich';\nexport { LogisticsClient } from './services/logistics';\nexport { P21ApisClient } from './services/p21-apis';\nexport { ShippingClient } from './services/shipping';\nexport { SmartyStreetsClient } from './services/smarty-streets';\nexport { UPSClient } from './services/ups';\nexport { Basecamp2Client } from './services/basecamp2';\nexport { P21CoreClient } from './services/p21-core';\n"],"mappings":"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","names":["record","_","v","v","v","normalise","endpoints","regex","v","endpoints","v","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","UsersListParamsSchema","PassthroughDataSchema","endpoints","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","CategoriesListParamsSchema","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","endpoints","endpoints"]}
1
+ {"version":3,"sources":["../src/core/config.ts","../src/core/errors.ts","../src/core/client.ts","../src/services/agr-info/generated/schemas.ts","../src/core/schemas.ts","../src/services/agr-info/generated/endpoints.ts","../src/services/agr-int/generated/schemas.ts","../src/services/agr-int/generated/endpoints.ts","../src/services/agr-site/generated/schemas.ts","../src/services/agr-site/generated/endpoints.ts","../src/services/agr-work/generated/endpoints.ts","../src/services/avalara/generated/schemas.ts","../src/services/avalara/generated/endpoints.ts","../src/services/basecamp2/generated/schemas.ts","../src/services/basecamp2/generated/endpoints.ts","../src/services/brand-folder/generated/schemas.ts","../src/services/brand-folder/generated/endpoints.ts","../src/services/commerce/generated/schemas.ts","../src/services/commerce/generated/endpoints.ts","../src/services/customers/generated/schemas.ts","../src/services/customers/generated/endpoints.ts","../src/services/gregorovich/generated/schemas.ts","../src/services/gregorovich/generated/endpoints.ts","../src/services/items/generated/schemas.ts","../src/services/items/generated/endpoints.ts","../src/services/joomla/generated/schemas.ts","../src/services/joomla/generated/endpoints.ts","../src/services/legacy/generated/schemas.ts","../src/services/legacy/generated/endpoints.ts","../src/services/logistics/generated/schemas.ts","../src/services/logistics/generated/endpoints.ts","../src/services/open-search/generated/schemas.ts","../src/services/open-search/generated/endpoints.ts","../src/services/orders/generated/schemas.ts","../src/services/orders/generated/endpoints.ts","../src/services/p21-apis/generated/schemas.ts","../src/services/p21-apis/generated/endpoints.ts","../src/services/p21-core/generated/schemas.ts","../src/services/p21-core/generated/endpoints.ts","../src/services/p21-pim/generated/schemas.ts","../src/services/p21-pim/generated/endpoints.ts","../src/services/p21-sism/generated/schemas.ts","../src/services/p21-sism/generated/endpoints.ts","../src/services/payments/generated/schemas.ts","../src/services/payments/generated/endpoints.ts","../src/services/pricing/generated/schemas.ts","../src/services/pricing/generated/endpoints.ts","../src/services/shipping/generated/schemas.ts","../src/services/shipping/generated/endpoints.ts","../src/services/smarty-streets/generated/schemas.ts","../src/services/smarty-streets/generated/endpoints.ts","../src/services/ups/generated/schemas.ts","../src/services/ups/generated/endpoints.ts","../src/services/vmi/generated/schemas.ts","../src/services/vmi/generated/endpoints.ts","../src/core/registry-tables.ts","../src/core/registry.ts","../src/core/common-schemas.ts","../src/core/path-validation.ts","../src/core/base-client.ts","../src/core/service-proxy.ts","../src/services/joomla/client.ts","../src/services/commerce/client.ts","../src/services/pricing/client.ts","../src/services/vmi/client.ts","../src/services/open-search/client.ts","../src/services/items/client.ts","../src/services/legacy/client.ts","../src/services/agr-site/client.ts","../src/services/customers/client.ts","../src/services/orders/client.ts","../src/services/p21-pim/client.ts","../src/services/payments/client.ts","../src/services/agr-info/client.ts","../src/services/agr-int/client.ts","../src/services/agr-work/client.ts","../src/services/avalara/client.ts","../src/services/brand-folder/client.ts","../src/services/gregorovich/client.ts","../src/services/logistics/client.ts","../src/services/p21-apis/client.ts","../src/services/p21-core/client.ts","../src/services/p21-sism/client.ts","../src/services/shipping/client.ts","../src/services/smarty-streets/client.ts","../src/services/ups/client.ts","../src/services/basecamp2/client.ts","../src/client.ts","../src/utils/cross-site-auth.ts","../src/index.ts"],"sourcesContent":["export interface AugurRequestConfig {\n url: string;\n method: string;\n headers: Record<string, string>;\n params?: Record<string, unknown>;\n data?: unknown;\n timeout?: number;\n signal?: AbortSignal;\n}\n\nexport interface AugurResponse<T = unknown> {\n data: T;\n status: number;\n statusText: string;\n headers: Record<string, string>;\n config: AugurRequestConfig;\n}\n\nexport interface AugurRequestError {\n message: string;\n config?: AugurRequestConfig;\n response?: AugurResponse;\n code?: string;\n}\n\nexport interface AugurAPIConfig {\n apiKey?: string;\n bearerToken?: string;\n siteId: string;\n baseUrl?: string;\n timeout?: number;\n retries?: number;\n retryDelay?: number;\n onRequest?: (config: AugurRequestConfig) => AugurRequestConfig | Promise<AugurRequestConfig>;\n onResponse?: <T = unknown>(\n response: AugurResponse<T>\n ) => AugurResponse<T> | Promise<AugurResponse<T>>;\n onError?: (error: AugurRequestError) => void | Promise<void>;\n}\n\nexport interface RequestConfig {\n timeout?: number;\n signal?: AbortSignal;\n headers?: Record<string, string>;\n responseType?: 'json' | 'text' | 'blob' | 'arraybuffer';\n}\n\nexport const DEFAULT_CONFIG = {\n timeout: 30000, // 30 seconds\n retries: 3,\n retryDelay: 1000, // 1 second\n};\n\n/**\n * Interface for context object containing authentication and site information\n */\nexport interface AugurContext {\n /** Site identifier */\n siteId: string;\n /** JWT bearer token for authentication */\n jwt?: string;\n /** Alternative bearer token field */\n bearerToken?: string;\n /** Request parameters */\n parameters?: Record<string, unknown>;\n /** Filter parameters */\n filters?: Record<string, unknown>;\n /** User ID */\n userId?: string | number;\n}\n\n/**\n * Context creation error for invalid or missing context data\n */\nexport class ContextCreationError extends Error {\n constructor(\n message: string,\n public readonly field?: string\n ) {\n super(message);\n this.name = 'ContextCreationError';\n }\n}\n","/** Validation issue — compatible with both Zod and Valibot error formats */\nexport interface ValidationIssue {\n path: (string | number)[];\n message: string;\n code: string;\n received?: unknown;\n expected?: unknown;\n}\n\nexport interface AugurAPIError extends Error {\n code: string;\n statusCode: number;\n service: string;\n endpoint: string;\n requestId?: string;\n validationErrors?: ValidationIssue[];\n}\n\nexport class AugurError extends Error implements AugurAPIError {\n public code: string;\n public statusCode: number;\n public service: string;\n public endpoint: string;\n public requestId?: string;\n public validationErrors?: ValidationIssue[];\n\n constructor(params: {\n message: string;\n code: string;\n statusCode: number;\n service: string;\n endpoint: string;\n requestId?: string;\n validationErrors?: ValidationIssue[];\n }) {\n super(params.message);\n this.name = 'AugurAPIError';\n this.code = params.code;\n this.statusCode = params.statusCode;\n this.service = params.service;\n this.endpoint = params.endpoint;\n this.requestId = params.requestId;\n this.validationErrors = params.validationErrors;\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, AugurError);\n }\n }\n}\n\nexport class ValidationError extends AugurError {\n constructor(params: {\n message: string;\n service: string;\n endpoint: string;\n validationErrors: ValidationIssue[];\n }) {\n super({\n ...params,\n code: 'VALIDATION_ERROR',\n statusCode: 400,\n });\n }\n\n /**\n * Format validation errors into human-readable messages\n * @returns Array of formatted error messages\n */\n getFormattedErrors(): string[] {\n if (!this.validationErrors) {\n return [];\n }\n\n return this.validationErrors.map(error => {\n const path = error.path.length > 0 ? error.path.join('.') : 'root';\n return `${path}: ${error.message}`;\n });\n }\n\n /**\n * Get detailed validation error information for debugging\n * @returns Object with detailed error information\n */\n getDetailedErrors(): Array<{\n path: string;\n message: string;\n code: string;\n received?: unknown;\n expected?: unknown;\n }> {\n if (!this.validationErrors) {\n return [];\n }\n\n return this.validationErrors.map(error => ({\n path: error.path.length > 0 ? error.path.join('.') : 'root',\n message: error.message,\n code: error.code,\n received: 'received' in error ? error.received : undefined,\n expected: 'expected' in error ? error.expected : undefined,\n }));\n }\n\n /**\n * Override toString to include formatted validation errors\n * @returns String representation with validation details\n */\n toString(): string {\n const baseMessage = super.toString();\n const formattedErrors = this.getFormattedErrors();\n\n if (formattedErrors.length > 0) {\n return `${baseMessage}\\nValidation errors:\\n${formattedErrors.map(err => ` - ${err}`).join('\\n')}`;\n }\n\n return baseMessage;\n }\n}\n\nexport class AuthenticationError extends AugurError {\n constructor(params: { message: string; service: string; endpoint: string }) {\n super({\n ...params,\n code: 'AUTHENTICATION_ERROR',\n statusCode: 401,\n });\n }\n}\n\nexport class NotFoundError extends AugurError {\n constructor(params: { message: string; service: string; endpoint: string }) {\n super({\n ...params,\n code: 'NOT_FOUND',\n statusCode: 404,\n });\n }\n}\n\nexport class RateLimitError extends AugurError {\n constructor(params: { message: string; service: string; endpoint: string }) {\n super({\n ...params,\n code: 'RATE_LIMIT_EXCEEDED',\n statusCode: 429,\n });\n }\n}\n\nexport class InvalidArgumentError extends AugurError {\n constructor(params: { message: string; service: string; endpoint: string }) {\n super({\n ...params,\n code: 'INVALID_ARGUMENT',\n statusCode: 400,\n });\n }\n}\n","import {\n AugurAPIConfig,\n AugurRequestConfig,\n AugurRequestError,\n AugurResponse,\n DEFAULT_CONFIG,\n RequestConfig,\n} from './config';\nimport { AugurError, AuthenticationError, NotFoundError, RateLimitError } from './errors';\n\n/**\n * Generates a unique key for request deduplication\n * @param method HTTP method\n * @param url Request URL\n * @param params Query parameters or request body\n * @returns Unique string key for this request\n */\nfunction generateRequestKey(method: string, url: string, params?: unknown): string {\n const paramsStr = params ? JSON.stringify(params, Object.keys(params as object).sort()) : '';\n return `${method}:${url}:${paramsStr}`;\n}\n\n/**\n * Calculates delay for exponential backoff with jitter\n * @param attempt Current attempt number (0-indexed)\n * @param baseDelay Base delay in milliseconds\n * @returns Delay in milliseconds with jitter\n */\nfunction calculateBackoffDelay(attempt: number, baseDelay: number): number {\n const exponentialDelay = baseDelay * Math.pow(2, attempt);\n const jitter = Math.random() * 0.3 * exponentialDelay; // 0-30% jitter\n return Math.min(exponentialDelay + jitter, 30000); // Cap at 30 seconds\n}\n\n/**\n * Determines if an error is retryable\n * @param error The error to check\n * @returns True if the request should be retried\n */\nfunction isRetryableError(error: unknown): boolean {\n // AugurError carries statusCode — only 4xx client errors (except 429) are NOT retryable\n if (error instanceof AugurError) {\n const status = error.statusCode;\n if (status >= 400 && status < 500 && status !== 429) {\n return false;\n }\n }\n\n // Everything else is retryable: network errors (statusCode 0), timeouts (AbortError),\n // rate limits (429), server errors (5xx), and unknown errors\n return true;\n}\n\n/**\n * Delays execution for specified milliseconds\n * @param ms Milliseconds to delay\n */\nfunction delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\n/**\n * Builds a full URL with query parameters\n */\nfunction buildUrlWithParams(url: string, params?: unknown): string {\n if (!params || typeof params !== 'object') {\n return url;\n }\n\n const searchParams = new URLSearchParams();\n const paramsObj = params as Record<string, unknown>;\n\n for (const [key, value] of Object.entries(paramsObj)) {\n if (value !== undefined && value !== null) {\n searchParams.append(key, String(value));\n }\n }\n\n const queryString = searchParams.toString();\n if (!queryString) {\n return url;\n }\n\n const separator = url.includes('?') ? '&' : '?';\n return `${url}${separator}${queryString}`;\n}\n\n/**\n * Converts fetch Headers to a plain Record\n */\nfunction headersToRecord(headers: Headers): Record<string, string> {\n const record: Record<string, string> = {};\n headers.forEach((value, key) => {\n record[key] = value;\n });\n return record;\n}\n\nexport class HTTPClient {\n private config: AugurAPIConfig;\n private serviceName: string;\n private inflightRequests: Map<string, Promise<unknown>> = new Map();\n\n constructor(serviceName: string, config: AugurAPIConfig) {\n this.serviceName = serviceName;\n this.config = { ...DEFAULT_CONFIG, ...config };\n }\n\n /**\n * Build request headers with auth\n */\n private buildRequestHeaders(url: string, requestConfig?: RequestConfig): Record<string, string> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'x-site-id': this.config.siteId,\n ...requestConfig?.headers,\n };\n\n const isPublicEndpoint = url.endsWith('/health-check') || url.endsWith('/ping');\n if (!isPublicEndpoint && this.config.bearerToken) {\n headers['Authorization'] = `Bearer ${this.config.bearerToken}`;\n }\n\n return headers;\n }\n\n /**\n * Handle non-ok fetch response: parse error, call hook, throw\n */\n private async handleFetchError(\n response: Response,\n augurConfig: AugurRequestConfig\n ): Promise<never> {\n let errorData: { message?: string; code?: string; requestId?: string } = {};\n try {\n errorData = (await response.json()) as typeof errorData;\n } catch {\n // Response body may not be JSON\n }\n\n if (this.config.onError) {\n const augurError: AugurRequestError = {\n message: errorData.message || `Request failed with status ${response.status}`,\n config: augurConfig,\n response: {\n data: errorData,\n status: response.status,\n statusText: response.statusText,\n headers: headersToRecord(response.headers),\n config: augurConfig,\n },\n };\n await this.config.onError(augurError);\n }\n\n this.handleHttpError({ status: response.status, data: errorData }, augurConfig.url);\n }\n\n /**\n * Handle successful fetch response: parse, call hook, return data\n */\n private async handleFetchSuccess<T>(\n response: Response,\n augurConfig: AugurRequestConfig\n ): Promise<T> {\n const responseData = (await response.json()) as T;\n\n const augurResponse: AugurResponse<T> = {\n data: responseData,\n status: response.status,\n statusText: response.statusText,\n headers: headersToRecord(response.headers),\n config: augurConfig,\n };\n\n if (this.config.onResponse) {\n const modified = await this.config.onResponse(augurResponse);\n return modified.data;\n }\n\n return responseData;\n }\n\n /**\n * Core request method using native fetch\n */\n private async request<T>(\n method: string,\n url: string,\n options: { params?: unknown; data?: unknown; config?: RequestConfig }\n ): Promise<T> {\n const { params, data, config: requestConfig } = options;\n const timeout = requestConfig?.timeout ?? this.config.timeout ?? DEFAULT_CONFIG.timeout;\n\n const headers = this.buildRequestHeaders(url, requestConfig);\n\n let augurConfig: AugurRequestConfig = {\n url,\n method,\n headers,\n params: params as Record<string, unknown>,\n data,\n timeout,\n };\n\n if (this.config.onRequest) {\n augurConfig = await this.config.onRequest(augurConfig);\n }\n\n const fullUrl = buildUrlWithParams(augurConfig.url, augurConfig.params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n const signal = requestConfig?.signal\n ? this.mergeSignals(requestConfig.signal, controller.signal)\n : controller.signal;\n\n try {\n const fetchOptions: RequestInit = {\n method: augurConfig.method,\n headers: augurConfig.headers,\n signal,\n };\n\n if (augurConfig.data !== undefined && method !== 'GET') {\n fetchOptions.body = JSON.stringify(augurConfig.data);\n }\n\n const response = await fetch(fullUrl, fetchOptions);\n\n if (!response.ok) {\n await this.handleFetchError(response, augurConfig);\n }\n\n return this.handleFetchSuccess<T>(response, augurConfig);\n } catch (error) {\n this.rethrowOrWrapError(error, url);\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n /**\n * Merge two AbortSignals — aborts when either fires\n */\n private mergeSignals(userSignal: AbortSignal, timeoutSignal: AbortSignal): AbortSignal {\n const controller = new AbortController();\n\n const onAbort = () => controller.abort();\n userSignal.addEventListener('abort', onAbort, { once: true });\n timeoutSignal.addEventListener('abort', onAbort, { once: true });\n\n // If either is already aborted, abort immediately\n if (userSignal.aborted || timeoutSignal.aborted) {\n controller.abort();\n }\n\n return controller.signal;\n }\n\n private handleHttpError(\n response: { status: number; data?: { message?: string; code?: string; requestId?: string } },\n endpoint: string\n ): never {\n const { status, data } = response;\n\n switch (status) {\n case 401:\n throw new AuthenticationError({\n message: data?.message || 'Authentication failed',\n service: this.serviceName,\n endpoint,\n });\n case 404:\n throw new NotFoundError({\n message: data?.message || 'Resource not found',\n service: this.serviceName,\n endpoint,\n });\n case 429:\n throw new RateLimitError({\n message: data?.message || 'Rate limit exceeded',\n service: this.serviceName,\n endpoint,\n });\n default:\n throw new AugurError({\n message: data?.message || `Request failed with status ${status}`,\n code: data?.code || 'API_ERROR',\n statusCode: status,\n service: this.serviceName,\n endpoint,\n requestId: data?.requestId,\n });\n }\n }\n\n /**\n * Re-throw known error types or wrap as network error\n */\n private rethrowOrWrapError(error: unknown, endpoint: string): never {\n if (error instanceof AugurError) {\n throw error;\n }\n\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw error;\n }\n\n this.handleNetworkError(error, endpoint);\n }\n\n private handleNetworkError(error: unknown, endpoint: string): never {\n throw new AugurError({\n message: (error as { message?: string }).message || 'Network error',\n code: 'NETWORK_ERROR',\n statusCode: 0,\n service: this.serviceName,\n endpoint,\n });\n }\n\n /**\n * Executes a single request attempt\n */\n private async executeAttempt<T>(\n requestFn: () => Promise<T>,\n attempt: number,\n maxRetries: number,\n baseDelay: number\n ): Promise<T> {\n try {\n return await requestFn();\n } catch (error) {\n // Don't retry if we've exhausted attempts or error is not retryable\n if (attempt >= maxRetries || !isRetryableError(error)) {\n throw error;\n }\n\n // Wait before retrying with exponential backoff\n const backoffDelay = calculateBackoffDelay(attempt, baseDelay);\n await delay(backoffDelay);\n\n // Recursive call for next attempt\n return this.executeAttempt(requestFn, attempt + 1, maxRetries, baseDelay);\n }\n }\n\n /**\n * Executes a request with retry logic\n */\n private async executeWithRetry<T>(requestFn: () => Promise<T>): Promise<T> {\n const maxRetries = this.config.retries ?? DEFAULT_CONFIG.retries;\n const baseDelay = this.config.retryDelay ?? DEFAULT_CONFIG.retryDelay;\n\n return this.executeAttempt(requestFn, 0, maxRetries, baseDelay);\n }\n\n /**\n * Transform edgeCache parameter to Cloudflare's cacheSiteId format\n *\n * Cloudflare expects cacheSiteId{suffix}=<siteId> where suffix indicates duration:\n * - '30s', '1m', '5m' for sub-hour caches\n * - 1, 2, 3, 4, 5, 8 for hourly caches\n *\n * Examples:\n * - edgeCache: '30s' → cacheSiteId30s: <siteId>\n * - edgeCache: '1m' → cacheSiteId1m: <siteId>\n * - edgeCache: '5m' → cacheSiteId5m: <siteId>\n * - edgeCache: 1 → cacheSiteId1: <siteId>\n * - edgeCache: 8 → cacheSiteId8: <siteId>\n *\n * @param params Original request parameters\n * @returns Parameters with edgeCache transformed to cacheSiteId{suffix}\n */\n private transformEdgeCacheParams(params?: unknown): unknown {\n if (!params || typeof params !== 'object') {\n return params;\n }\n\n const paramsObj = params as Record<string, unknown>;\n const edgeCache = paramsObj.edgeCache;\n\n // If no edgeCache param, return original params\n if (edgeCache === undefined || edgeCache === null) {\n return params;\n }\n\n // Valid sub-hour values (strings only)\n const validSubHourValues = ['30s', '1m', '5m'];\n // Valid hourly values (numbers 1-8, excluding 6 and 7)\n const validHourlyValues = [1, 2, 3, 4, 5, 8];\n\n let cacheSuffix: string;\n const edgeCacheStr = String(edgeCache);\n\n if (validSubHourValues.includes(edgeCacheStr)) {\n // Sub-hour cache: '30s', '1m', '5m'\n cacheSuffix = edgeCacheStr;\n } else {\n // Try to parse as hourly value\n const cacheHours = parseInt(edgeCacheStr, 10);\n if (!validHourlyValues.includes(cacheHours)) {\n // Invalid value - return params without transformation (remove edgeCache)\n const { edgeCache: _, ...rest } = paramsObj;\n return rest;\n }\n cacheSuffix = String(cacheHours);\n }\n\n // Transform to Cloudflare format: cacheSiteId{suffix}=<siteId>\n const { edgeCache: _, ...restParams } = paramsObj;\n const cacheKey = `cacheSiteId${cacheSuffix}`;\n\n return {\n ...restParams,\n [cacheKey]: this.config.siteId,\n };\n }\n\n async get<T>(url: string, params?: unknown, config?: RequestConfig): Promise<T> {\n // Transform edgeCache to cacheSiteId{N} format for Cloudflare\n const transformedParams = this.transformEdgeCacheParams(params);\n const requestKey = generateRequestKey('GET', url, transformedParams);\n\n // Check if identical request is already in-flight\n const inflight = this.inflightRequests.get(requestKey);\n if (inflight) {\n return inflight as Promise<T>;\n }\n\n // Create the request promise with retry logic\n const requestPromise = this.executeWithRetry(() =>\n this.request<T>('GET', url, { params: transformedParams, config })\n ).finally(() => {\n // Clean up after request completes (success or failure)\n this.inflightRequests.delete(requestKey);\n });\n\n // Store the promise for deduplication\n this.inflightRequests.set(requestKey, requestPromise);\n\n return requestPromise;\n }\n\n // The API declares query params on POST/PUT/DELETE as well as GET. `request`\n // already carries both a body and a query slot; these wrappers simply never\n // exposed the latter, leaving those params unreachable from the clients.\n async post<T>(url: string, data?: unknown, params?: unknown, config?: RequestConfig): Promise<T> {\n return this.request<T>('POST', url, {\n data,\n params: this.transformEdgeCacheParams(params),\n config,\n });\n }\n\n async put<T>(url: string, data?: unknown, params?: unknown, config?: RequestConfig): Promise<T> {\n return this.request<T>('PUT', url, {\n data,\n params: this.transformEdgeCacheParams(params),\n config,\n });\n }\n\n async delete<T>(url: string, params?: unknown, config?: RequestConfig): Promise<T> {\n return this.request<T>('DELETE', url, {\n params: this.transformEdgeCacheParams(params),\n config,\n });\n }\n}\n","/**\n * Generated Valibot schemas for agr-info service\n * Source: shared/specs/agr-info.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /microservices params */\nexport const MicroservicesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /rubrics params */\nexport const RubricsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /workflows params */\nexport const WorkflowsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n orderBy: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const MicroservicesListDataSchema = v.array(\n v.looseObject({\n microservicesUid: v.number(),\n name: v.nullable(v.string()),\n id: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n })\n);\n\nexport const MicroservicesCreateDataSchema = v.looseObject({\n microservicesUid: v.number(),\n name: v.nullable(v.string()),\n id: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n});\n\nexport const MicroservicesGetDataSchema = MicroservicesCreateDataSchema;\n\nexport const MicroservicesUpdateDataSchema = MicroservicesCreateDataSchema;\n\nexport const RubricsListDataSchema = v.array(\n v.looseObject({\n rubricsUid: v.number(),\n title: v.nullable(v.string()),\n id: v.nullable(v.string()),\n content: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n })\n);\n\nexport const RubricsGetDataSchema = v.looseObject({\n rubricsUid: v.number(),\n title: v.nullable(v.string()),\n id: v.nullable(v.string()),\n content: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n});\n\nexport const RubricsUpdateDataSchema = RubricsGetDataSchema;\n\nexport const WorkflowsListDataSchema = v.array(\n v.looseObject({\n workflowsUid: v.number(),\n workflowsId: v.string(),\n title: v.string(),\n description: v.nullable(v.string()),\n services: v.string(),\n workflow: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const WorkflowsCreateDataSchema = v.looseObject({\n workflowsUid: v.number(),\n workflowsId: v.string(),\n title: v.string(),\n description: v.nullable(v.string()),\n services: v.string(),\n workflow: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const WorkflowsGetDataSchema = WorkflowsCreateDataSchema;\n\nexport const WorkflowsUpdateDataSchema = WorkflowsCreateDataSchema;\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","import * as v from 'valibot';\n\n// Helper to log normalization warnings in development\nconst logNormalizationWarning = (message: string): void => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[augur-api] Response normalization: ${message}`);\n }\n};\n\n// Helper to normalize count field\nconst normalizeCount = (count: number, actualDataLength: number): number => {\n if (count === 0 && actualDataLength > 0) {\n logNormalizationWarning(`'count' was 0 but data has ${actualDataLength} items`);\n return actualDataLength;\n }\n return count;\n};\n\n// Helper to normalize total/totalResults bidirectional sync\nconst normalizeTotals = (\n total: number,\n totalResults: number\n): { total: number; totalResults: number } => {\n if (total === 0 && totalResults > 0) {\n logNormalizationWarning(`'total' was 0 but 'totalResults' is ${totalResults}`);\n return { total: totalResults, totalResults };\n }\n if (totalResults === 0 && total > 0) {\n logNormalizationWarning(`'totalResults' was 0 but 'total' is ${total}`);\n return { total, totalResults: total };\n }\n return { total, totalResults };\n};\n\n/** The metadata fields the response transform reads, independent of the data schema. */\ninterface ResponseMetadata {\n count: number;\n data: unknown;\n total: number;\n totalResults: number;\n}\n\n/** PHP JSON encoding quirk: empty arrays become objects {}, so accept either. */\ntype ArrayOrRecordSchema = v.UnionSchema<\n [\n v.ArraySchema<v.UnknownSchema, undefined>,\n v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>,\n ],\n undefined\n>;\n\n/** The envelope object every microservice response is wrapped in. */\ntype BaseResponseEnvelopeSchema<T extends v.GenericSchema> = v.LooseObjectSchema<\n {\n readonly count: v.NumberSchema<undefined>;\n readonly data: T;\n readonly message: v.StringSchema<undefined>;\n readonly options: ArrayOrRecordSchema;\n readonly params: ArrayOrRecordSchema;\n readonly status: v.NumberSchema<undefined>;\n readonly total: v.NumberSchema<undefined>;\n readonly totalResults: v.NumberSchema<undefined>;\n },\n undefined\n>;\n\ntype BaseResponseEnvelope<T extends v.GenericSchema> = v.InferOutput<BaseResponseEnvelopeSchema<T>>;\n\n/** Envelope schema piped through metadata normalization; output shape is unchanged. */\ntype BaseResponseSchemaType<T extends v.GenericSchema> = v.SchemaWithPipe<\n readonly [\n BaseResponseEnvelopeSchema<T>,\n v.TransformAction<BaseResponseEnvelope<T>, BaseResponseEnvelope<T>>,\n ]\n>;\n\nexport const BaseResponseSchema = <T extends v.GenericSchema>(\n dataSchema: T\n): BaseResponseSchemaType<T> =>\n v.pipe(\n v.looseObject({\n count: v.number(),\n data: dataSchema,\n message: v.string(),\n // oneOf format to handle PHP JSON encoding quirk: empty arrays become objects {}\n options: v.union([v.array(v.unknown()), v.record(v.string(), v.unknown())]),\n params: v.union([v.array(v.unknown()), v.record(v.string(), v.unknown())]),\n status: v.number(),\n total: v.number(),\n totalResults: v.number(),\n }),\n v.transform(data => {\n // During API refactoring, metadata fields may be inconsistent\n // We normalize them based on the actual data and bidirectional sync.\n // The looseObject above guarantees these fields; the generic `T` only\n // hides that from the type checker.\n const meta = data as ResponseMetadata;\n if (!Array.isArray(meta.data)) {\n return data;\n }\n\n const count = normalizeCount(meta.count, meta.data.length);\n const { total, totalResults } = normalizeTotals(meta.total, meta.totalResults);\n\n return { ...data, count, total, totalResults };\n })\n );\n\n// Standard health check data schema - same across all microservices\nexport const HealthCheckDataSchema = v.object({\n siteHash: v.string(),\n siteId: v.string(),\n});\n\n// Standard ping data schema - same across all microservices\nexport const PingDataSchema = v.literal('pong');\n\n// Standard whoami data schema - decoded JWT claims, same across all microservices.\n// Loose so new claims never fail validation; user fields are empty for system tokens.\nexport const WhoamiDataSchema = v.looseObject({\n siteId: v.string(),\n tokenType: v.string(),\n userId: v.number(),\n scope: v.optional(v.unknown()),\n username: v.optional(v.string()),\n email: v.optional(v.string()),\n name: v.optional(v.string()),\n});\n\n// Common pagination parameters\n// Note: HTTP query parameters are always strings, so we use coercion for numbers\nexport const PaginationParamsSchema = v.looseObject({\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// Edge cache duration parameter - supported values for Cloudflare cache rules\n// Supports both sub-hour caches ('30s', '1m', '5m') and hourly caches (1-8 hours)\n// Note: HTTP query parameters are always strings, but we also accept numbers for JavaScript usage\nexport const EdgeCacheParamsSchema = v.looseObject({\n edgeCache: v.optional(\n v.union([\n // Sub-hour caches (string only)\n v.literal('30s'),\n v.literal('1m'),\n v.literal('5m'),\n // Hourly caches (numbers)\n v.literal(1),\n v.literal(2),\n v.literal(3),\n v.literal(4),\n v.literal(5),\n v.literal(8),\n // Hourly caches (strings for HTTP compatibility)\n v.literal('1'),\n v.literal('2'),\n v.literal('3'),\n v.literal('4'),\n v.literal('5'),\n v.literal('8'),\n ])\n ),\n});\n\n// Type exports\nexport type BaseResponse<T> = {\n count: number;\n data: T;\n message: string;\n options: unknown[] | Record<string, unknown>; // Supports both array (new) and object (legacy PHP) formats\n params: unknown[] | Record<string, unknown>; // Supports both array (new) and object (legacy PHP) formats\n status: number;\n total: number; // Synced bidirectionally with totalResults\n totalResults: number; // Synced bidirectionally with total\n};\n\nexport type HealthCheckData = v.InferOutput<typeof HealthCheckDataSchema>;\nexport type PingData = v.InferOutput<typeof PingDataSchema>;\nexport type WhoamiData = v.InferOutput<typeof WhoamiDataSchema>;\n\n// Re-export valibot for use by generated schemas and resources\nexport { v };\n","/**\n * Generated endpoint data for agr-info service\n * Source: shared/specs/agr-info.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n MicroservicesCreateDataSchema,\n MicroservicesGetDataSchema,\n MicroservicesListDataSchema,\n MicroservicesUpdateDataSchema,\n RubricsGetDataSchema,\n RubricsListDataSchema,\n RubricsUpdateDataSchema,\n WorkflowsCreateDataSchema,\n WorkflowsGetDataSchema,\n WorkflowsListDataSchema,\n WorkflowsUpdateDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'POST',\n path: '/akasha/generate',\n chain: 'akasha.generate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/context/{siteId}',\n chain: 'context',\n action: 'get',\n aliases: [],\n pathParams: ['siteId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/joomla/generate',\n chain: 'joomla.generate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/microservices',\n chain: 'microservices',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: MicroservicesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/microservices',\n chain: 'microservices',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: MicroservicesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/microservices/{microservicesUid}',\n chain: 'microservices',\n action: 'get',\n aliases: [],\n pathParams: ['microservicesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: MicroservicesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/microservices/{microservicesUid}',\n chain: 'microservices',\n action: 'update',\n aliases: [],\n pathParams: ['microservicesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: MicroservicesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/microservices/{microservicesUid}',\n chain: 'microservices',\n action: 'delete',\n aliases: [],\n pathParams: ['microservicesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/ollama/tags',\n chain: 'ollama.tags',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rubrics',\n chain: 'rubrics',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['orderBy'],\n edgeCache: true,\n responseSchema: RubricsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/rubrics',\n chain: 'rubrics',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rubrics/{rubricsUid}',\n chain: 'rubrics',\n action: 'get',\n aliases: [],\n pathParams: ['rubricsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: RubricsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/rubrics/{rubricsUid}',\n chain: 'rubrics',\n action: 'update',\n aliases: [],\n pathParams: ['rubricsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RubricsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/rubrics/{rubricsUid}',\n chain: 'rubrics',\n action: 'delete',\n aliases: [],\n pathParams: ['rubricsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/sites/validate',\n chain: 'sites.validate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/workflows',\n chain: 'workflows',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['orderBy'],\n edgeCache: true,\n responseSchema: WorkflowsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/workflows',\n chain: 'workflows',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: WorkflowsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/workflows/{workflowsUid}',\n chain: 'workflows',\n action: 'get',\n aliases: [],\n pathParams: ['workflowsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: WorkflowsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/workflows/{workflowsUid}',\n chain: 'workflows',\n action: 'update',\n aliases: [],\n pathParams: ['workflowsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WorkflowsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/workflows/{workflowsUid}',\n chain: 'workflows',\n action: 'delete',\n aliases: [],\n pathParams: ['workflowsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for agr-int service\n * Source: shared/specs/agr-int.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /bundles params */\nexport const BundlesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n bundleId: v.optional(v.string()),\n bundleName: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n systemFlag: v.optional(v.string()),\n});\n\n/** Schema for GET /bundles/{bundlesUid}/resources params */\nexport const BundlesResourcesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /clients params */\nexport const ClientsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n usersUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /resources params */\nexport const ResourcesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n resourceId: v.optional(v.string()),\n resourceName: v.optional(v.string()),\n resourcePath: v.optional(v.string()),\n resourceType: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /roles params */\nexport const RolesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n roleId: v.optional(v.string()),\n roleName: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n systemFlag: v.optional(v.string()),\n});\n\n/** Schema for GET /roles/{rolesUid}/bundles params */\nexport const RolesBundlesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /users params */\nexport const UsersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n email: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n phoneNumber: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n username: v.optional(v.string()),\n});\n\n/** Schema for GET /users/{usersUid}/roles params */\nexport const UsersRolesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const BundlesListDataSchema = v.array(\n v.looseObject({\n bundlesUid: v.number(),\n bundleId: v.string(),\n bundleName: v.string(),\n description: v.nullable(v.string()),\n systemFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n menuGroup: v.nullable(v.number()),\n })\n);\n\nexport const BundlesCreateDataSchema = v.looseObject({\n bundlesUid: v.number(),\n bundleId: v.string(),\n bundleName: v.string(),\n description: v.nullable(v.string()),\n systemFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n menuGroup: v.nullable(v.number()),\n});\n\nexport const BundlesGetDataSchema = BundlesCreateDataSchema;\n\nexport const BundlesUpdateDataSchema = BundlesCreateDataSchema;\n\nexport const BundlesDeleteDataSchema = BundlesCreateDataSchema;\n\nexport const BundlesResourcesListDataSchema = v.array(\n v.looseObject({\n bundlesXResourcesUid: v.number(),\n bundlesUid: v.number(),\n resourcesUid: v.number(),\n readCd: v.number(),\n writeCd: v.number(),\n executeCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const BundlesResourcesCreateDataSchema = v.looseObject({\n bundlesXResourcesUid: v.number(),\n bundlesUid: v.number(),\n resourcesUid: v.number(),\n readCd: v.number(),\n writeCd: v.number(),\n executeCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const BundlesResourcesGetDataSchema = BundlesResourcesCreateDataSchema;\n\nexport const BundlesResourcesUpdateDataSchema = BundlesResourcesCreateDataSchema;\n\nexport const BundlesResourcesDeleteDataSchema = BundlesResourcesCreateDataSchema;\n\nexport const ClientsListDataSchema = v.array(\n v.looseObject({\n clientsUid: v.number(),\n clientId: v.string(),\n usersUid: v.number(),\n keyVersion: v.number(),\n clientName: v.string(),\n description: v.nullable(v.string()),\n issuedById: v.nullable(v.number()),\n issuedByUsername: v.nullable(v.string()),\n retiredById: v.nullable(v.number()),\n retiredByUsername: v.nullable(v.string()),\n dateLastUsed: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const ClientsCreateDataSchema = v.looseObject({\n clientsUid: v.optional(v.number()),\n clientId: v.optional(v.string()),\n usersUid: v.optional(v.number()),\n keyVersion: v.optional(v.number()),\n clientName: v.optional(v.string()),\n description: v.optional(v.nullable(v.string())),\n issuedById: v.optional(v.nullable(v.number())),\n issuedByUsername: v.optional(v.nullable(v.string())),\n statusCd: v.optional(v.number()),\n credential: v.optional(v.string()),\n});\n\nexport const ClientsValidateCreateDataSchema = v.looseObject({\n valid: v.optional(v.boolean()),\n siteId: v.optional(v.string()),\n tokenUse: v.optional(v.string()),\n clientUid: v.optional(v.number()),\n clientId: v.optional(v.string()),\n usersUid: v.optional(v.number()),\n username: v.optional(v.string()),\n roles: v.optional(v.array(v.string())),\n bundles: v.optional(v.array(v.string())),\n resources: v.optional(v.array(v.string())),\n});\n\nexport const ClientsGetDataSchema = v.looseObject({\n clientsUid: v.optional(v.number()),\n clientId: v.optional(v.string()),\n clientSecret: v.optional(v.string()),\n usersUid: v.optional(v.number()),\n keyVersion: v.optional(v.number()),\n clientName: v.optional(v.string()),\n description: v.optional(v.nullable(v.string())),\n issuedById: v.optional(v.nullable(v.number())),\n issuedByUsername: v.optional(v.nullable(v.string())),\n retiredById: v.optional(v.nullable(v.number())),\n retiredByUsername: v.optional(v.nullable(v.string())),\n dateLastUsed: v.optional(v.nullable(v.string())),\n dateCreated: v.optional(v.string()),\n dateLastModified: v.optional(v.string()),\n updateCd: v.optional(v.number()),\n statusCd: v.optional(v.number()),\n processCd: v.optional(v.number()),\n credential: v.optional(v.string()),\n});\n\nexport const ClientsUpdateDataSchema = v.looseObject({\n clientsUid: v.number(),\n clientId: v.string(),\n usersUid: v.number(),\n keyVersion: v.number(),\n clientName: v.string(),\n description: v.nullable(v.string()),\n issuedById: v.nullable(v.number()),\n issuedByUsername: v.nullable(v.string()),\n retiredById: v.nullable(v.number()),\n retiredByUsername: v.nullable(v.string()),\n dateLastUsed: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const ClientsDeleteDataSchema = ClientsUpdateDataSchema;\n\nexport const ResourcesListDataSchema = v.array(\n v.looseObject({\n resourcesUid: v.number(),\n resourceId: v.string(),\n resourceName: v.string(),\n resourceType: v.string(),\n resourcePath: v.string(),\n description: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const ResourcesCreateDataSchema = v.looseObject({\n resourcesUid: v.number(),\n resourceId: v.string(),\n resourceName: v.string(),\n resourceType: v.string(),\n resourcePath: v.string(),\n description: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const ResourcesGetDataSchema = ResourcesCreateDataSchema;\n\nexport const ResourcesUpdateDataSchema = ResourcesCreateDataSchema;\n\nexport const ResourcesDeleteDataSchema = ResourcesCreateDataSchema;\n\nexport const RolesListDataSchema = v.array(\n v.looseObject({\n rolesUid: v.number(),\n roleId: v.string(),\n roleName: v.string(),\n description: v.nullable(v.string()),\n systemFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const RolesCreateDataSchema = v.looseObject({\n rolesUid: v.number(),\n roleId: v.string(),\n roleName: v.string(),\n description: v.nullable(v.string()),\n systemFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const RolesGetDataSchema = RolesCreateDataSchema;\n\nexport const RolesUpdateDataSchema = RolesCreateDataSchema;\n\nexport const RolesDeleteDataSchema = RolesCreateDataSchema;\n\nexport const RolesBundlesListDataSchema = v.array(\n v.looseObject({\n rolesXBundlesUid: v.number(),\n rolesUid: v.number(),\n bundlesUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const RolesBundlesCreateDataSchema = v.looseObject({\n rolesXBundlesUid: v.number(),\n rolesUid: v.number(),\n bundlesUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const RolesBundlesGetDataSchema = RolesBundlesCreateDataSchema;\n\nexport const RolesBundlesUpdateDataSchema = RolesBundlesCreateDataSchema;\n\nexport const RolesBundlesDeleteDataSchema = RolesBundlesCreateDataSchema;\n\nexport const UsersListDataSchema = v.array(\n v.looseObject({\n usersUid: v.number(),\n username: v.string(),\n name: v.nullable(v.string()),\n email: v.string(),\n phoneNumber: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const UsersCreateDataSchema = v.looseObject({\n usersUid: v.number(),\n username: v.string(),\n name: v.nullable(v.string()),\n email: v.string(),\n phoneNumber: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const UsersRotateCreateDataSchema = v.looseObject({\n usersUid: v.number(),\n username: v.string(),\n token: v.optional(v.string()),\n});\n\nexport const UsersValidateCreateDataSchema = v.looseObject({\n valid: v.optional(v.boolean()),\n scope: v.optional(v.string()),\n userId: v.optional(v.number()),\n username: v.optional(v.string()),\n email: v.optional(v.string()),\n name: v.optional(v.string()),\n roles: v.optional(v.array(v.string())),\n bundles: v.optional(v.array(v.string())),\n resources: v.optional(v.array(v.string())),\n});\n\nexport const UsersVerifyCreateDataSchema = UsersRotateCreateDataSchema;\n\nexport const UsersGetDataSchema = UsersCreateDataSchema;\n\nexport const UsersUpdateDataSchema = UsersCreateDataSchema;\n\nexport const UsersDeleteDataSchema = UsersCreateDataSchema;\n\nexport const UsersRolesListDataSchema = v.array(\n v.looseObject({\n usersXRolesUid: v.number(),\n usersUid: v.number(),\n rolesUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const UsersRolesCreateDataSchema = v.looseObject({\n usersXRolesUid: v.number(),\n usersUid: v.number(),\n rolesUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const UsersRolesGetDataSchema = UsersRolesCreateDataSchema;\n\nexport const UsersRolesUpdateDataSchema = UsersRolesCreateDataSchema;\n\nexport const UsersRolesDeleteDataSchema = UsersRolesCreateDataSchema;\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for agr-int service\n * Source: shared/specs/agr-int.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n BundlesCreateDataSchema,\n BundlesDeleteDataSchema,\n BundlesGetDataSchema,\n BundlesListDataSchema,\n BundlesResourcesCreateDataSchema,\n BundlesResourcesDeleteDataSchema,\n BundlesResourcesGetDataSchema,\n BundlesResourcesListDataSchema,\n BundlesResourcesUpdateDataSchema,\n BundlesUpdateDataSchema,\n ClientsCreateDataSchema,\n ClientsDeleteDataSchema,\n ClientsGetDataSchema,\n ClientsListDataSchema,\n ClientsUpdateDataSchema,\n ClientsValidateCreateDataSchema,\n ResourcesCreateDataSchema,\n ResourcesDeleteDataSchema,\n ResourcesGetDataSchema,\n ResourcesListDataSchema,\n ResourcesUpdateDataSchema,\n RolesBundlesCreateDataSchema,\n RolesBundlesDeleteDataSchema,\n RolesBundlesGetDataSchema,\n RolesBundlesListDataSchema,\n RolesBundlesUpdateDataSchema,\n RolesCreateDataSchema,\n RolesDeleteDataSchema,\n RolesGetDataSchema,\n RolesListDataSchema,\n RolesUpdateDataSchema,\n UsersCreateDataSchema,\n UsersDeleteDataSchema,\n UsersGetDataSchema,\n UsersListDataSchema,\n UsersRolesCreateDataSchema,\n UsersRolesDeleteDataSchema,\n UsersRolesGetDataSchema,\n UsersRolesListDataSchema,\n UsersRolesUpdateDataSchema,\n UsersRotateCreateDataSchema,\n UsersUpdateDataSchema,\n UsersValidateCreateDataSchema,\n UsersVerifyCreateDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/bundles',\n chain: 'bundles',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['bundleId', 'bundleName', 'limit', 'offset', 'orderBy', 'statusCd', 'systemFlag'],\n edgeCache: true,\n responseSchema: BundlesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/bundles',\n chain: 'bundles',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/bundles/{bundlesUid}',\n chain: 'bundles',\n action: 'get',\n aliases: [],\n pathParams: ['bundlesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: BundlesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/bundles/{bundlesUid}',\n chain: 'bundles',\n action: 'update',\n aliases: [],\n pathParams: ['bundlesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/bundles/{bundlesUid}',\n chain: 'bundles',\n action: 'delete',\n aliases: [],\n pathParams: ['bundlesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/bundles/{bundlesUid}/resources',\n chain: 'bundles.resources',\n action: 'list',\n aliases: [],\n pathParams: ['bundlesUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: BundlesResourcesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/bundles/{bundlesUid}/resources',\n chain: 'bundles.resources',\n action: 'create',\n aliases: [],\n pathParams: ['bundlesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesResourcesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/bundles/{bundlesUid}/resources/{bundlesXResourcesUid}',\n chain: 'bundles.resources',\n action: 'get',\n aliases: [],\n pathParams: ['bundlesUid', 'bundlesXResourcesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: BundlesResourcesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/bundles/{bundlesUid}/resources/{bundlesXResourcesUid}',\n chain: 'bundles.resources',\n action: 'update',\n aliases: [],\n pathParams: ['bundlesUid', 'bundlesXResourcesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesResourcesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/bundles/{bundlesUid}/resources/{bundlesXResourcesUid}',\n chain: 'bundles.resources',\n action: 'delete',\n aliases: [],\n pathParams: ['bundlesUid', 'bundlesXResourcesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BundlesResourcesDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/clients',\n chain: 'clients',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd', 'usersUid'],\n edgeCache: true,\n responseSchema: ClientsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/clients',\n chain: 'clients',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: ClientsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/clients/validate',\n chain: 'clients.validate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: ClientsValidateCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/clients/{clientsUid}',\n chain: 'clients',\n action: 'get',\n aliases: [],\n pathParams: ['clientsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ClientsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/clients/{clientsUid}',\n chain: 'clients',\n action: 'update',\n aliases: [],\n pathParams: ['clientsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ClientsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/clients/{clientsUid}',\n chain: 'clients',\n action: 'delete',\n aliases: [],\n pathParams: ['clientsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ClientsDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/resources',\n chain: 'resources',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'limit',\n 'offset',\n 'orderBy',\n 'resourceId',\n 'resourceName',\n 'resourcePath',\n 'resourceType',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: ResourcesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/resources',\n chain: 'resources',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: ResourcesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/resources/{resourcesUid}',\n chain: 'resources',\n action: 'get',\n aliases: [],\n pathParams: ['resourcesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ResourcesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/resources/{resourcesUid}',\n chain: 'resources',\n action: 'update',\n aliases: [],\n pathParams: ['resourcesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ResourcesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/resources/{resourcesUid}',\n chain: 'resources',\n action: 'delete',\n aliases: [],\n pathParams: ['resourcesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ResourcesDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/roles',\n chain: 'roles',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'roleId', 'roleName', 'statusCd', 'systemFlag'],\n edgeCache: true,\n responseSchema: RolesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/roles',\n chain: 'roles',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/roles/{rolesUid}',\n chain: 'roles',\n action: 'get',\n aliases: [],\n pathParams: ['rolesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: RolesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/roles/{rolesUid}',\n chain: 'roles',\n action: 'update',\n aliases: [],\n pathParams: ['rolesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/roles/{rolesUid}',\n chain: 'roles',\n action: 'delete',\n aliases: [],\n pathParams: ['rolesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/roles/{rolesUid}/bundles',\n chain: 'roles.bundles',\n action: 'list',\n aliases: [],\n pathParams: ['rolesUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: RolesBundlesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/roles/{rolesUid}/bundles',\n chain: 'roles.bundles',\n action: 'create',\n aliases: [],\n pathParams: ['rolesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesBundlesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/roles/{rolesUid}/bundles/{rolesXBundlesUid}',\n chain: 'roles.bundles',\n action: 'get',\n aliases: [],\n pathParams: ['rolesUid', 'rolesXBundlesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: RolesBundlesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/roles/{rolesUid}/bundles/{rolesXBundlesUid}',\n chain: 'roles.bundles',\n action: 'update',\n aliases: [],\n pathParams: ['rolesUid', 'rolesXBundlesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesBundlesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/roles/{rolesUid}/bundles/{rolesXBundlesUid}',\n chain: 'roles.bundles',\n action: 'delete',\n aliases: [],\n pathParams: ['rolesUid', 'rolesXBundlesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RolesBundlesDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users',\n chain: 'users',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['email', 'limit', 'offset', 'orderBy', 'phoneNumber', 'statusCd', 'username'],\n edgeCache: true,\n responseSchema: UsersListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/users',\n chain: 'users',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/users/rotate',\n chain: 'users.rotate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersRotateCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/users/validate',\n chain: 'users.validate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersValidateCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/users/verify',\n chain: 'users.verify',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersVerifyCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{usersUid}',\n chain: 'users',\n action: 'get',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: UsersGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/users/{usersUid}',\n chain: 'users',\n action: 'update',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/users/{usersUid}',\n chain: 'users',\n action: 'delete',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{usersUid}/roles',\n chain: 'users.roles',\n action: 'list',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: UsersRolesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/users/{usersUid}/roles',\n chain: 'users.roles',\n action: 'create',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersRolesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{usersUid}/roles/{usersXRolesUid}',\n chain: 'users.roles',\n action: 'get',\n aliases: [],\n pathParams: ['usersUid', 'usersXRolesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: UsersRolesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/users/{usersUid}/roles/{usersXRolesUid}',\n chain: 'users.roles',\n action: 'update',\n aliases: [],\n pathParams: ['usersUid', 'usersXRolesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersRolesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/users/{usersUid}/roles/{usersXRolesUid}',\n chain: 'users.roles',\n action: 'delete',\n aliases: [],\n pathParams: ['usersUid', 'usersXRolesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersRolesDeleteDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated Valibot schemas for agr-site service\n * Source: shared/specs/agr-site.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /fyxer-transcript params */\nexport const FyxerTranscriptListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /geo-codes-postal-codes params */\nexport const GeoCodesPostalCodesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /open-search/embedding params */\nexport const OpenSearchEmbeddingListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n q: v.string(),\n});\n\n/** Schema for GET /postal-codes-x-shiptos params */\nexport const PostalCodesXShiptosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /settings params */\nexport const SettingsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n serviceName: v.string(),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /training params */\nexport const TrainingListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /training/{trainingSetUid}/conversations params */\nexport const TrainingConversationsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /training/{trainingSetUid}/conversations/{trainingConvUid}/messages params */\nexport const TrainingConversationsMessagesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /users/{userId}/addresses params */\nexport const UsersAddressesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n emailAddress: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const FyxerTranscriptListDataSchema = v.array(\n v.looseObject({\n fyxerTranscriptHdrUid: v.number(),\n link: v.string(),\n summary: v.nullable(v.string()),\n transcript: v.nullable(v.string()),\n dateRecorded: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n title: v.nullable(v.string()),\n })\n);\n\nexport const FyxerTranscriptCreateDataSchema = v.looseObject({\n fyxerTranscriptHdrUid: v.number(),\n link: v.string(),\n summary: v.nullable(v.string()),\n transcript: v.nullable(v.string()),\n dateRecorded: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n title: v.nullable(v.string()),\n});\n\nexport const FyxerTranscriptGetDataSchema = FyxerTranscriptCreateDataSchema;\n\nexport const FyxerTranscriptUpdateDataSchema = FyxerTranscriptCreateDataSchema;\n\nexport const GeoCodesPostalCodesListDataSchema = v.array(\n v.looseObject({\n geoCodesPostalCodesUid: v.number(),\n countryCode: v.string(),\n postalCode: v.string(),\n placeName: v.string(),\n adminName1: v.string(),\n adminCode1: v.string(),\n adminName2: v.nullable(v.string()),\n adminCode2: v.nullable(v.string()),\n adminName3: v.nullable(v.string()),\n adminCode3: v.nullable(v.string()),\n latitude: v.number(),\n longitude: v.number(),\n accuracy: v.nullable(v.number()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const GeoCodesPostalCodesGetDataSchema = v.looseObject({\n geoCodesPostalCodesUid: v.number(),\n countryCode: v.string(),\n postalCode: v.string(),\n placeName: v.string(),\n adminName1: v.string(),\n adminCode1: v.string(),\n adminName2: v.nullable(v.string()),\n adminCode2: v.nullable(v.string()),\n adminName3: v.nullable(v.string()),\n adminCode3: v.nullable(v.string()),\n latitude: v.number(),\n longitude: v.number(),\n accuracy: v.nullable(v.number()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const NotificationsCreateDataSchema = v.looseObject({\n notificationsUid: v.number(),\n serviceName: v.nullable(v.string()),\n dataTypeName: v.nullable(v.string()),\n type: v.nullable(v.string()),\n dataTypeUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const PostalCodesXShiptosListDataSchema = v.array(\n v.looseObject({\n postalCodesXShiptosUid: v.number(),\n postalCode: v.string(),\n shipToId: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const PostalCodesXShiptosCreateDataSchema = v.looseObject({\n postalCodesXShiptosUid: v.number(),\n postalCode: v.string(),\n shipToId: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const PostalCodesXShiptosGetDataSchema = PostalCodesXShiptosCreateDataSchema;\n\nexport const PostalCodesXShiptosUpdateDataSchema = PostalCodesXShiptosCreateDataSchema;\n\nexport const PostalCodesXShiptosDeleteDataSchema = PostalCodesXShiptosCreateDataSchema;\n\nexport const SettingsListDataSchema = v.array(\n v.looseObject({\n settingsUid: v.number(),\n serviceName: v.string(),\n name: v.string(),\n value: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const SettingsCreateDataSchema = v.looseObject({\n settingsUid: v.number(),\n serviceName: v.string(),\n name: v.string(),\n value: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const SettingsGetDataSchema = SettingsCreateDataSchema;\n\nexport const SettingsUpdateDataSchema = SettingsCreateDataSchema;\n\nexport const TrainingListDataSchema = v.array(\n v.looseObject({\n trainingSetUid: v.number(),\n name: v.string(),\n description: v.nullable(v.string()),\n formatType: v.nullable(v.string()),\n systemPrompt: v.nullable(v.string()),\n developerPrompt: v.nullable(v.string()),\n modelTarget: v.nullable(v.string()),\n trainSplitPct: v.number(),\n totalConversations: v.number(),\n totalTokens: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n updateCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n })\n);\n\nexport const TrainingCreateDataSchema = v.looseObject({\n trainingSetUid: v.number(),\n name: v.string(),\n description: v.nullable(v.string()),\n formatType: v.nullable(v.string()),\n systemPrompt: v.nullable(v.string()),\n developerPrompt: v.nullable(v.string()),\n modelTarget: v.nullable(v.string()),\n trainSplitPct: v.number(),\n totalConversations: v.number(),\n totalTokens: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n updateCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n});\n\nexport const TrainingGetDataSchema = TrainingCreateDataSchema;\n\nexport const TrainingUpdateDataSchema = TrainingCreateDataSchema;\n\nexport const TrainingDeleteDataSchema = TrainingCreateDataSchema;\n\nexport const TrainingConversationsListDataSchema = v.array(\n v.looseObject({\n trainingConvUid: v.number(),\n trainingSetUid: v.number(),\n sourceType: v.string(),\n generatorModel: v.nullable(v.string()),\n serviceName: v.nullable(v.string()),\n dataTypeName: v.nullable(v.string()),\n dataTypeUid: v.nullable(v.number()),\n category: v.nullable(v.string()),\n qualityScore: v.nullable(v.number()),\n splitType: v.string(),\n totalTokens: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n updateCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n })\n);\n\nexport const TrainingConversationsCreateDataSchema = v.looseObject({\n trainingConvUid: v.number(),\n trainingSetUid: v.number(),\n sourceType: v.string(),\n generatorModel: v.nullable(v.string()),\n serviceName: v.nullable(v.string()),\n dataTypeName: v.nullable(v.string()),\n dataTypeUid: v.nullable(v.number()),\n category: v.nullable(v.string()),\n qualityScore: v.nullable(v.number()),\n splitType: v.string(),\n totalTokens: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n updateCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n});\n\nexport const TrainingConversationsGetDataSchema = TrainingConversationsCreateDataSchema;\n\nexport const TrainingConversationsUpdateDataSchema = TrainingConversationsCreateDataSchema;\n\nexport const TrainingConversationsDeleteDataSchema = TrainingConversationsCreateDataSchema;\n\nexport const TrainingConversationsMessagesListDataSchema = v.array(\n v.looseObject({\n trainingMsgUid: v.number(),\n trainingConvUid: v.number(),\n sequenceNo: v.number(),\n role: v.string(),\n channel: v.nullable(v.string()),\n content: v.nullable(v.string()),\n analysis: v.nullable(v.string()),\n commentary: v.nullable(v.string()),\n final: v.nullable(v.string()),\n weight: v.number(),\n tokens: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n updateCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n })\n);\n\nexport const TrainingConversationsMessagesCreateDataSchema = v.looseObject({\n trainingMsgUid: v.number(),\n trainingConvUid: v.number(),\n sequenceNo: v.number(),\n role: v.string(),\n channel: v.nullable(v.string()),\n content: v.nullable(v.string()),\n analysis: v.nullable(v.string()),\n commentary: v.nullable(v.string()),\n final: v.nullable(v.string()),\n weight: v.number(),\n tokens: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n updateCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n});\n\nexport const TrainingConversationsMessagesGetDataSchema =\n TrainingConversationsMessagesCreateDataSchema;\n\nexport const TrainingConversationsMessagesUpdateDataSchema =\n TrainingConversationsMessagesCreateDataSchema;\n\nexport const TrainingConversationsMessagesDeleteDataSchema =\n TrainingConversationsMessagesCreateDataSchema;\n\nexport const UsersAddressesListDataSchema = v.array(\n v.looseObject({\n userAddressUid: v.number(),\n userId: v.number(),\n address1: v.nullable(v.string()),\n address2: v.nullable(v.string()),\n address3: v.nullable(v.string()),\n city: v.nullable(v.string()),\n state: v.nullable(v.string()),\n postalCode: v.nullable(v.string()),\n country: v.nullable(v.string()),\n emailAddress: v.nullable(v.string()),\n name: v.nullable(v.string()),\n phoneNumberMain: v.nullable(v.string()),\n phoneNumberMobile: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const UsersAddressesCreateDataSchema = v.looseObject({\n userAddressUid: v.number(),\n userId: v.number(),\n address1: v.nullable(v.string()),\n address2: v.nullable(v.string()),\n address3: v.nullable(v.string()),\n city: v.nullable(v.string()),\n state: v.nullable(v.string()),\n postalCode: v.nullable(v.string()),\n country: v.nullable(v.string()),\n emailAddress: v.nullable(v.string()),\n name: v.nullable(v.string()),\n phoneNumberMain: v.nullable(v.string()),\n phoneNumberMobile: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const UsersAddressesGetDataSchema = UsersAddressesCreateDataSchema;\n\nexport const UsersAddressesUpdateDataSchema = UsersAddressesCreateDataSchema;\n\nexport const UsersAddressesDeleteDataSchema = UsersAddressesCreateDataSchema;\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for agr-site service\n * Source: shared/specs/agr-site.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n FyxerTranscriptCreateDataSchema,\n FyxerTranscriptGetDataSchema,\n FyxerTranscriptListDataSchema,\n FyxerTranscriptUpdateDataSchema,\n GeoCodesPostalCodesGetDataSchema,\n GeoCodesPostalCodesListDataSchema,\n NotificationsCreateDataSchema,\n PostalCodesXShiptosCreateDataSchema,\n PostalCodesXShiptosDeleteDataSchema,\n PostalCodesXShiptosGetDataSchema,\n PostalCodesXShiptosListDataSchema,\n PostalCodesXShiptosUpdateDataSchema,\n SettingsCreateDataSchema,\n SettingsGetDataSchema,\n SettingsListDataSchema,\n SettingsUpdateDataSchema,\n TrainingConversationsCreateDataSchema,\n TrainingConversationsDeleteDataSchema,\n TrainingConversationsGetDataSchema,\n TrainingConversationsListDataSchema,\n TrainingConversationsMessagesCreateDataSchema,\n TrainingConversationsMessagesDeleteDataSchema,\n TrainingConversationsMessagesGetDataSchema,\n TrainingConversationsMessagesListDataSchema,\n TrainingConversationsMessagesUpdateDataSchema,\n TrainingConversationsUpdateDataSchema,\n TrainingCreateDataSchema,\n TrainingDeleteDataSchema,\n TrainingGetDataSchema,\n TrainingListDataSchema,\n TrainingUpdateDataSchema,\n UsersAddressesCreateDataSchema,\n UsersAddressesDeleteDataSchema,\n UsersAddressesGetDataSchema,\n UsersAddressesListDataSchema,\n UsersAddressesUpdateDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/context/{siteId}',\n chain: 'context',\n action: 'get',\n aliases: [],\n pathParams: ['siteId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/datafiles',\n chain: 'datafiles',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/fyxer-transcript',\n chain: 'fyxerTranscript',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: FyxerTranscriptListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/fyxer-transcript',\n chain: 'fyxerTranscript',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: FyxerTranscriptCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/fyxer-transcript/{fyxerTranscriptHdrUid}',\n chain: 'fyxerTranscript',\n action: 'get',\n aliases: [],\n pathParams: ['fyxerTranscriptHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: FyxerTranscriptGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/fyxer-transcript/{fyxerTranscriptHdrUid}',\n chain: 'fyxerTranscript',\n action: 'update',\n aliases: [],\n pathParams: ['fyxerTranscriptHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: FyxerTranscriptUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/fyxer-transcript/{fyxerTranscriptHdrUid}',\n chain: 'fyxerTranscript',\n action: 'delete',\n aliases: [],\n pathParams: ['fyxerTranscriptHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/geo-codes-postal-codes',\n chain: 'geoCodesPostalCodes',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: GeoCodesPostalCodesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/geo-codes-postal-codes/{geoCodesPostalCodesUid}',\n chain: 'geoCodesPostalCodes',\n action: 'get',\n aliases: [],\n pathParams: ['geoCodesPostalCodesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: GeoCodesPostalCodesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/meta-files/robots',\n chain: 'metaFiles.robots',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/notifications',\n chain: 'notifications',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: NotificationsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/open-search/embedding',\n chain: 'openSearch.embedding',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/postal-codes-x-shiptos',\n chain: 'postalCodesXShiptos',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PostalCodesXShiptosListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/postal-codes-x-shiptos',\n chain: 'postalCodesXShiptos',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PostalCodesXShiptosCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/postal-codes-x-shiptos/{postalCodesXShiptosUid}',\n chain: 'postalCodesXShiptos',\n action: 'get',\n aliases: [],\n pathParams: ['postalCodesXShiptosUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PostalCodesXShiptosGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/postal-codes-x-shiptos/{postalCodesXShiptosUid}',\n chain: 'postalCodesXShiptos',\n action: 'update',\n aliases: [],\n pathParams: ['postalCodesXShiptosUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PostalCodesXShiptosUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/postal-codes-x-shiptos/{postalCodesXShiptosUid}',\n chain: 'postalCodesXShiptos',\n action: 'delete',\n aliases: [],\n pathParams: ['postalCodesXShiptosUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PostalCodesXShiptosDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/settings',\n chain: 'settings',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'serviceName', 'statusCd'],\n edgeCache: true,\n responseSchema: SettingsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/settings',\n chain: 'settings',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: SettingsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/settings/{settingsUid}',\n chain: 'settings',\n action: 'get',\n aliases: [],\n pathParams: ['settingsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: SettingsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/settings/{settingsUid}',\n chain: 'settings',\n action: 'update',\n aliases: [],\n pathParams: ['settingsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: SettingsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/settings/{settingsUid}',\n chain: 'settings',\n action: 'delete',\n aliases: [],\n pathParams: ['settingsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/training',\n chain: 'training',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: TrainingListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/training',\n chain: 'training',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/training/{trainingSetUid}',\n chain: 'training',\n action: 'get',\n aliases: [],\n pathParams: ['trainingSetUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TrainingGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/training/{trainingSetUid}',\n chain: 'training',\n action: 'update',\n aliases: [],\n pathParams: ['trainingSetUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/training/{trainingSetUid}',\n chain: 'training',\n action: 'delete',\n aliases: [],\n pathParams: ['trainingSetUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/training/{trainingSetUid}/conversations',\n chain: 'training.conversations',\n action: 'list',\n aliases: [],\n pathParams: ['trainingSetUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: TrainingConversationsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/training/{trainingSetUid}/conversations',\n chain: 'training.conversations',\n action: 'create',\n aliases: [],\n pathParams: ['trainingSetUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}',\n chain: 'training.conversations',\n action: 'get',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TrainingConversationsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}',\n chain: 'training.conversations',\n action: 'update',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}',\n chain: 'training.conversations',\n action: 'delete',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}/messages',\n chain: 'training.conversations.messages',\n action: 'list',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: TrainingConversationsMessagesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}/messages',\n chain: 'training.conversations.messages',\n action: 'create',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsMessagesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}/messages/{trainingMsgUid}',\n chain: 'training.conversations.messages',\n action: 'get',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid', 'trainingMsgUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TrainingConversationsMessagesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}/messages/{trainingMsgUid}',\n chain: 'training.conversations.messages',\n action: 'update',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid', 'trainingMsgUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsMessagesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/training/{trainingSetUid}/conversations/{trainingConvUid}/messages/{trainingMsgUid}',\n chain: 'training.conversations.messages',\n action: 'delete',\n aliases: [],\n pathParams: ['trainingSetUid', 'trainingConvUid', 'trainingMsgUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TrainingConversationsMessagesDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{userId}/addresses',\n chain: 'users.addresses',\n action: 'list',\n aliases: [],\n pathParams: ['userId'],\n queryParams: ['emailAddress', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: UsersAddressesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/users/{userId}/addresses',\n chain: 'users.addresses',\n action: 'create',\n aliases: [],\n pathParams: ['userId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersAddressesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{userId}/addresses/{userAddressUid}',\n chain: 'users.addresses',\n action: 'get',\n aliases: [],\n pathParams: ['userId', 'userAddressUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: UsersAddressesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/users/{userId}/addresses/{userAddressUid}',\n chain: 'users.addresses',\n action: 'update',\n aliases: [],\n pathParams: ['userId', 'userAddressUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersAddressesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/users/{userId}/addresses/{userAddressUid}',\n chain: 'users.addresses',\n action: 'delete',\n aliases: [],\n pathParams: ['userId', 'userAddressUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersAddressesDeleteDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated endpoint data for agr-work service\n * Source: shared/specs/agr-work.json\n * Generated: 2026-09-28T15:25:24Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [];\n","/**\n * Generated Valibot schemas for avalara service\n * Source: shared/specs/avalara.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const RatesCreateDataSchema = v.number();\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for avalara service\n * Source: shared/specs/avalara.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { RatesCreateDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'POST',\n path: '/rates',\n chain: 'rates',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: RatesCreateDataSchema,\n responseType: 'scalar',\n },\n];\n","/**\n * Generated Valibot schemas for basecamp2 service\n * Source: shared/specs/basecamp2.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /comments params */\nexport const CommentsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n creatorId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n todosId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /events params */\nexport const EventsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n eventTypeCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n id: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n peopleId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /metrics params */\nexport const MetricsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n assigneeId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n creatorId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n hasComments: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n isStale: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n needsResponse: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n projectsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n todosStatusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /people params */\nexport const PeopleListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n adminFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n trashedFlag: v.optional(v.string()),\n});\n\n/** Schema for GET /people/{id}/metrics params */\nexport const PeopleMetricsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n hasComments: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n isStale: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n needsResponse: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n todosStatusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /people/{id}/todos params */\nexport const PeopleTodosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n completedFlag: v.optional(v.string()),\n dueAt: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n projectsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /people/{personId}/projects/{projectId}/todos params */\nexport const PeopleProjectsTodosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n completedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /projects params */\nexport const ProjectsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n archivedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n trashedFlag: v.optional(v.string()),\n});\n\n/** Schema for GET /projects/{id}/metrics params */\nexport const ProjectsMetricsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n hasComments: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n isStale: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n needsResponse: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n todosStatusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /projects/{id}/todolists params */\nexport const ProjectsTodolistsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n completedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /projects/{id}/todos params */\nexport const ProjectsTodosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n assigneeId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n completedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /projects/{projectId}/todolists/{todolistId}/todos params */\nexport const ProjectsTodolistsTodosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n assigneeId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n completedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /todolists params */\nexport const TodolistsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n assigneeId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n completedFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n projectsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /todos params */\nexport const TodosListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n assigneeId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n completedFlag: v.optional(v.string()),\n dueAt: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n projectsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n todolistId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /todos-summary params */\nexport const TodosSummaryListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n akashaCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n processCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /todos/{id}/comments params */\nexport const TodosCommentsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /todos/{id}/events params */\nexport const TodosEventsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n eventTypeCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n peopleId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /todos/{id}/sessions params */\nexport const TodosSessionsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n sessionStatusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const CommentsListDataSchema = v.array(\n v.looseObject({\n id: v.number(),\n content: v.string(),\n updatedAt: v.string(),\n createdAt: v.string(),\n creatorId: v.nullable(v.number()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n todosId: v.nullable(v.number()),\n vector: v.nullable(v.string()),\n vectorCd: v.number(),\n vectorFlag: v.string(),\n dateLastVector: v.string(),\n location: v.nullable(v.string()),\n contentLength: v.number(),\n tokenCount: v.number(),\n })\n);\n\nexport const CommentsGetDataSchema = v.looseObject({\n id: v.number(),\n content: v.string(),\n updatedAt: v.string(),\n createdAt: v.string(),\n creatorId: v.nullable(v.number()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n todosId: v.nullable(v.number()),\n vector: v.nullable(v.string()),\n vectorCd: v.number(),\n vectorFlag: v.string(),\n dateLastVector: v.string(),\n location: v.nullable(v.string()),\n contentLength: v.number(),\n tokenCount: v.number(),\n});\n\nexport const EventsListDataSchema = v.array(\n v.looseObject({\n id: v.number(),\n eventNum: v.number(),\n eventTypeCd: v.number(),\n peopleId: v.number(),\n eventAt: v.string(),\n commentId: v.nullable(v.number()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n todosSessionsUid: v.nullable(v.number()),\n })\n);\n\nexport const MetricsListDataSchema = v.array(\n v.looseObject({\n id: v.number(),\n projectsId: v.nullable(v.number()),\n todolistId: v.nullable(v.number()),\n assigneeId: v.nullable(v.number()),\n creatorId: v.number(),\n todosContent: v.nullable(v.string()),\n todosStatusCd: v.number(),\n isStale: v.number(),\n hasComments: v.number(),\n needsResponse: v.number(),\n createdAt: v.string(),\n completedAt: v.nullable(v.string()),\n lastActivityAt: v.string(),\n firstCommentAt: v.nullable(v.string()),\n lastCommentAt: v.nullable(v.string()),\n daysOpen: v.nullable(v.number()),\n daysSinceLastEvent: v.nullable(v.number()),\n daysToFirstComment: v.nullable(v.number()),\n cycleTimeDays: v.nullable(v.number()),\n commentCount: v.number(),\n activeDaysCount: v.number(),\n activitySpanDays: v.nullable(v.number()),\n avgDaysBetweenActivity: v.nullable(v.number()),\n lastCommenterId: v.nullable(v.number()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const PeopleListDataSchema = v.array(\n v.looseObject({\n id: v.number(),\n identityId: v.nullable(v.number()),\n name: v.nullable(v.string()),\n emailAddress: v.nullable(v.string()),\n adminFlag: v.nullable(v.string()),\n trashedFlag: v.nullable(v.string()),\n updatedAt: v.string(),\n createdAt: v.string(),\n url: v.nullable(v.string()),\n appUrl: v.nullable(v.string()),\n avatarUrl: v.nullable(v.string()),\n fullsizeAvatarUrl: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const PeopleGetDataSchema = v.looseObject({\n id: v.number(),\n identityId: v.nullable(v.number()),\n name: v.nullable(v.string()),\n emailAddress: v.nullable(v.string()),\n adminFlag: v.nullable(v.string()),\n trashedFlag: v.nullable(v.string()),\n updatedAt: v.string(),\n createdAt: v.string(),\n url: v.nullable(v.string()),\n appUrl: v.nullable(v.string()),\n avatarUrl: v.nullable(v.string()),\n fullsizeAvatarUrl: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const PeopleMetricsListDataSchema = MetricsListDataSchema;\n\nexport const PeopleTodosListDataSchema = PeopleListDataSchema;\n\nexport const PeopleProjectsTodosListDataSchema = PeopleListDataSchema;\n\nexport const ProjectsListDataSchema = v.array(\n v.looseObject({\n id: v.number(),\n name: v.nullable(v.string()),\n description: v.nullable(v.string()),\n updatedAt: v.string(),\n createdAt: v.string(),\n lastEventAt: v.string(),\n url: v.nullable(v.string()),\n appUrl: v.nullable(v.string()),\n templateFlag: v.nullable(v.string()),\n archivedFlag: v.nullable(v.string()),\n starredFlag: v.nullable(v.string()),\n trashedFlag: v.nullable(v.string()),\n draftFlag: v.nullable(v.string()),\n isClientProjectFlag: v.nullable(v.string()),\n color: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const ProjectsGetDataSchema = v.looseObject({\n id: v.number(),\n name: v.nullable(v.string()),\n description: v.nullable(v.string()),\n updatedAt: v.string(),\n createdAt: v.string(),\n lastEventAt: v.string(),\n url: v.nullable(v.string()),\n appUrl: v.nullable(v.string()),\n templateFlag: v.nullable(v.string()),\n archivedFlag: v.nullable(v.string()),\n starredFlag: v.nullable(v.string()),\n trashedFlag: v.nullable(v.string()),\n draftFlag: v.nullable(v.string()),\n isClientProjectFlag: v.nullable(v.string()),\n color: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const ProjectsMetricsListDataSchema = MetricsListDataSchema;\n\nexport const ProjectsTodolistsListDataSchema = ProjectsListDataSchema;\n\nexport const ProjectsTodosListDataSchema = ProjectsListDataSchema;\n\nexport const ProjectsTodolistsTodosListDataSchema = ProjectsListDataSchema;\n\nexport const TodolistsListDataSchema = v.array(\n v.looseObject({\n id: v.number(),\n name: v.nullable(v.string()),\n description: v.nullable(v.string()),\n updatedAt: v.string(),\n createdAt: v.string(),\n url: v.nullable(v.string()),\n appUrl: v.nullable(v.string()),\n completedFlag: v.nullable(v.string()),\n privateFlag: v.nullable(v.string()),\n trashedFlag: v.nullable(v.string()),\n completedCount: v.nullable(v.number()),\n remainingCount: v.nullable(v.number()),\n creatorId: v.nullable(v.number()),\n bucketId: v.nullable(v.number()),\n updateCd: v.number(),\n position: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n projectsId: v.number(),\n })\n);\n\nexport const TodolistsGetDataSchema = v.looseObject({\n id: v.number(),\n name: v.nullable(v.string()),\n description: v.nullable(v.string()),\n updatedAt: v.string(),\n createdAt: v.string(),\n url: v.nullable(v.string()),\n appUrl: v.nullable(v.string()),\n completedFlag: v.nullable(v.string()),\n privateFlag: v.nullable(v.string()),\n trashedFlag: v.nullable(v.string()),\n completedCount: v.nullable(v.number()),\n remainingCount: v.nullable(v.number()),\n creatorId: v.nullable(v.number()),\n bucketId: v.nullable(v.number()),\n updateCd: v.number(),\n position: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n projectsId: v.number(),\n});\n\nexport const TodosListDataSchema = v.array(\n v.looseObject({\n id: v.number(),\n todolistId: v.nullable(v.number()),\n content: v.nullable(v.string()),\n dueAt: v.nullable(v.string()),\n dueOn: v.nullable(v.string()),\n updatedAt: v.string(),\n createdAt: v.string(),\n completedAt: v.nullable(v.string()),\n commentsCount: v.nullable(v.number()),\n privateFlag: v.nullable(v.string()),\n trashedFlag: v.nullable(v.string()),\n creatorId: v.nullable(v.number()),\n assigneeId: v.nullable(v.number()),\n completedFlag: v.nullable(v.string()),\n url: v.nullable(v.string()),\n appUrl: v.nullable(v.string()),\n updateCd: v.number(),\n position: v.number(),\n projectsId: v.number(),\n detailJson: v.nullable(v.string()),\n pullDetailCd: v.number(),\n processCd: v.number(),\n agrInfoCd: v.number(),\n statusCd: v.number(),\n lastCommentAt: v.string(),\n vector: v.nullable(v.string()),\n vectorCd: v.number(),\n vectorFlag: v.string(),\n dateLastVector: v.string(),\n })\n);\n\nexport const TodosSummaryListDataSchema = v.array(\n v.looseObject({\n id: v.number(),\n summary: v.nullable(v.string()),\n summaryTokens: v.number(),\n context: v.nullable(v.string()),\n contextTokens: v.number(),\n modelName: v.nullable(v.string()),\n vector: v.nullable(v.string()),\n vectorCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n updateCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n akashaCd: v.number(),\n complexityScore: v.nullable(v.number()),\n complexityReason: v.nullable(v.string()),\n estimatedMinutes: v.nullable(v.number()),\n requiredServices: v.nullable(v.string()),\n worthinessReason: v.nullable(v.string()),\n })\n);\n\nexport const TodosSummaryGetDataSchema = v.looseObject({\n id: v.number(),\n summary: v.nullable(v.string()),\n summaryTokens: v.number(),\n context: v.nullable(v.string()),\n contextTokens: v.number(),\n modelName: v.nullable(v.string()),\n vector: v.nullable(v.string()),\n vectorCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n updateCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n akashaCd: v.number(),\n complexityScore: v.nullable(v.number()),\n complexityReason: v.nullable(v.string()),\n estimatedMinutes: v.nullable(v.number()),\n requiredServices: v.nullable(v.string()),\n worthinessReason: v.nullable(v.string()),\n});\n\nexport const TodosGetDataSchema = v.looseObject({\n id: v.number(),\n todolistId: v.nullable(v.number()),\n content: v.nullable(v.string()),\n dueAt: v.nullable(v.string()),\n dueOn: v.nullable(v.string()),\n updatedAt: v.string(),\n createdAt: v.string(),\n completedAt: v.nullable(v.string()),\n commentsCount: v.nullable(v.number()),\n privateFlag: v.nullable(v.string()),\n trashedFlag: v.nullable(v.string()),\n creatorId: v.nullable(v.number()),\n assigneeId: v.nullable(v.number()),\n completedFlag: v.nullable(v.string()),\n url: v.nullable(v.string()),\n appUrl: v.nullable(v.string()),\n updateCd: v.number(),\n position: v.number(),\n projectsId: v.number(),\n detailJson: v.nullable(v.string()),\n pullDetailCd: v.number(),\n processCd: v.number(),\n agrInfoCd: v.number(),\n statusCd: v.number(),\n lastCommentAt: v.string(),\n vector: v.nullable(v.string()),\n vectorCd: v.number(),\n vectorFlag: v.string(),\n dateLastVector: v.string(),\n});\n\nexport const TodosCommentsListDataSchema = TodosListDataSchema;\n\nexport const TodosEventsListDataSchema = EventsListDataSchema;\n\nexport const TodosEventsGetDataSchema = v.looseObject({\n id: v.number(),\n eventNum: v.number(),\n eventTypeCd: v.number(),\n peopleId: v.number(),\n eventAt: v.string(),\n commentId: v.nullable(v.number()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n todosSessionsUid: v.nullable(v.number()),\n});\n\nexport const TodosMetricsListDataSchema = v.looseObject({\n id: v.number(),\n projectsId: v.nullable(v.number()),\n todolistId: v.nullable(v.number()),\n assigneeId: v.nullable(v.number()),\n creatorId: v.number(),\n todosContent: v.nullable(v.string()),\n todosStatusCd: v.number(),\n isStale: v.number(),\n hasComments: v.number(),\n needsResponse: v.number(),\n createdAt: v.string(),\n completedAt: v.nullable(v.string()),\n lastActivityAt: v.string(),\n firstCommentAt: v.nullable(v.string()),\n lastCommentAt: v.nullable(v.string()),\n daysOpen: v.nullable(v.number()),\n daysSinceLastEvent: v.nullable(v.number()),\n daysToFirstComment: v.nullable(v.number()),\n cycleTimeDays: v.nullable(v.number()),\n commentCount: v.number(),\n activeDaysCount: v.number(),\n activitySpanDays: v.nullable(v.number()),\n avgDaysBetweenActivity: v.nullable(v.number()),\n lastCommenterId: v.nullable(v.number()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const TodosSessionsListDataSchema = v.array(\n v.looseObject({\n todosSessionsUid: v.number(),\n todosId: v.number(),\n sessionNum: v.number(),\n sessionStatusCd: v.number(),\n subject: v.nullable(v.string()),\n problem: v.nullable(v.string()),\n investigation: v.nullable(v.string()),\n plan: v.nullable(v.string()),\n outcome: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const TodosSessionsCreateDataSchema = v.looseObject({\n todosSessionsUid: v.number(),\n todosId: v.number(),\n sessionNum: v.number(),\n sessionStatusCd: v.number(),\n subject: v.nullable(v.string()),\n problem: v.nullable(v.string()),\n investigation: v.nullable(v.string()),\n plan: v.nullable(v.string()),\n outcome: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const TodosSessionsGetDataSchema = TodosSessionsCreateDataSchema;\n\nexport const TodosSessionsUpdateDataSchema = TodosSessionsCreateDataSchema;\n\nexport const TodosSessionsDeleteDataSchema = TodosSessionsCreateDataSchema;\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for basecamp2 service\n * Source: shared/specs/basecamp2.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n CommentsGetDataSchema,\n CommentsListDataSchema,\n EventsListDataSchema,\n MetricsListDataSchema,\n PeopleGetDataSchema,\n PeopleListDataSchema,\n PeopleMetricsListDataSchema,\n PeopleProjectsTodosListDataSchema,\n PeopleTodosListDataSchema,\n ProjectsGetDataSchema,\n ProjectsListDataSchema,\n ProjectsMetricsListDataSchema,\n ProjectsTodolistsListDataSchema,\n ProjectsTodolistsTodosListDataSchema,\n ProjectsTodosListDataSchema,\n TodolistsGetDataSchema,\n TodolistsListDataSchema,\n TodosCommentsListDataSchema,\n TodosEventsGetDataSchema,\n TodosEventsListDataSchema,\n TodosGetDataSchema,\n TodosListDataSchema,\n TodosMetricsListDataSchema,\n TodosSessionsCreateDataSchema,\n TodosSessionsDeleteDataSchema,\n TodosSessionsGetDataSchema,\n TodosSessionsListDataSchema,\n TodosSessionsUpdateDataSchema,\n TodosSummaryGetDataSchema,\n TodosSummaryListDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/comments',\n chain: 'comments',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['creatorId', 'limit', 'offset', 'orderBy', 'todosId'],\n edgeCache: true,\n responseSchema: CommentsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/comments/{id}',\n chain: 'comments',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CommentsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/events',\n chain: 'events',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['eventTypeCd', 'id', 'limit', 'offset', 'orderBy', 'peopleId'],\n edgeCache: true,\n responseSchema: EventsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/metrics',\n chain: 'metrics',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'assigneeId',\n 'creatorId',\n 'hasComments',\n 'isStale',\n 'limit',\n 'needsResponse',\n 'offset',\n 'orderBy',\n 'projectsId',\n 'todosStatusCd',\n ],\n edgeCache: true,\n responseSchema: MetricsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/people',\n chain: 'people',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['adminFlag', 'limit', 'offset', 'orderBy', 'q', 'trashedFlag'],\n edgeCache: true,\n responseSchema: PeopleListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/people/{id}',\n chain: 'people',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PeopleGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/people/{id}/metrics',\n chain: 'people.metrics',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [\n 'hasComments',\n 'isStale',\n 'limit',\n 'needsResponse',\n 'offset',\n 'orderBy',\n 'todosStatusCd',\n ],\n edgeCache: true,\n responseSchema: PeopleMetricsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/people/{id}/todos',\n chain: 'people.todos',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['completedFlag', 'dueAt', 'limit', 'offset', 'orderBy', 'projectsId'],\n edgeCache: true,\n responseSchema: PeopleTodosListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/people/{personId}/projects/{projectId}/todos',\n chain: 'people.projects.todos',\n action: 'list',\n aliases: [],\n pathParams: ['personId', 'projectId'],\n queryParams: ['completedFlag', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PeopleProjectsTodosListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/projects',\n chain: 'projects',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['archivedFlag', 'limit', 'offset', 'orderBy', 'trashedFlag'],\n edgeCache: true,\n responseSchema: ProjectsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/projects/{id}',\n chain: 'projects',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ProjectsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/projects/{id}/metrics',\n chain: 'projects.metrics',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [\n 'hasComments',\n 'isStale',\n 'limit',\n 'needsResponse',\n 'offset',\n 'orderBy',\n 'todosStatusCd',\n ],\n edgeCache: true,\n responseSchema: ProjectsMetricsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/projects/{id}/todolists',\n chain: 'projects.todolists',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['completedFlag', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: ProjectsTodolistsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/projects/{id}/todos',\n chain: 'projects.todos',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['assigneeId', 'completedFlag', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: ProjectsTodosListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/projects/{projectId}/todolists/{todolistId}/todos',\n chain: 'projects.todolists.todos',\n action: 'list',\n aliases: [],\n pathParams: ['projectId', 'todolistId'],\n queryParams: ['assigneeId', 'completedFlag', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: ProjectsTodolistsTodosListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todolists',\n chain: 'todolists',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['assigneeId', 'completedFlag', 'limit', 'offset', 'orderBy', 'projectsId'],\n edgeCache: true,\n responseSchema: TodolistsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todolists/{id}',\n chain: 'todolists',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TodolistsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos',\n chain: 'todos',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'assigneeId',\n 'completedFlag',\n 'dueAt',\n 'limit',\n 'offset',\n 'orderBy',\n 'projectsId',\n 'todolistId',\n ],\n edgeCache: true,\n responseSchema: TodosListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todos-summary',\n chain: 'todosSummary',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['akashaCd', 'limit', 'offset', 'processCd'],\n edgeCache: true,\n responseSchema: TodosSummaryListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todos-summary/{id}',\n chain: 'todosSummary',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TodosSummaryGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos/{id}',\n chain: 'todos',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TodosGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos/{id}/comments',\n chain: 'todos.comments',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: TodosCommentsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todos/{id}/events',\n chain: 'todos.events',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['eventTypeCd', 'limit', 'offset', 'orderBy', 'peopleId'],\n edgeCache: true,\n responseSchema: TodosEventsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/todos/{id}/events/{eventNum}',\n chain: 'todos.events',\n action: 'get',\n aliases: [],\n pathParams: ['id', 'eventNum'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TodosEventsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos/{id}/metrics',\n chain: 'todos.metrics',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TodosMetricsListDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos/{id}/sessions',\n chain: 'todos.sessions',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['limit', 'offset', 'orderBy', 'sessionStatusCd'],\n edgeCache: true,\n responseSchema: TodosSessionsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/todos/{id}/sessions',\n chain: 'todos.sessions',\n action: 'create',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TodosSessionsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/todos/{id}/sessions/{sessionId}',\n chain: 'todos.sessions',\n action: 'get',\n aliases: [],\n pathParams: ['id', 'sessionId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: TodosSessionsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/todos/{id}/sessions/{sessionId}',\n chain: 'todos.sessions',\n action: 'update',\n aliases: [],\n pathParams: ['id', 'sessionId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TodosSessionsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/todos/{id}/sessions/{sessionId}',\n chain: 'todos.sessions',\n action: 'delete',\n aliases: [],\n pathParams: ['id', 'sessionId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: TodosSessionsDeleteDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated Valibot schemas for brand-folder service\n * Source: shared/specs/brand-folder.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /categories params */\nexport const CategoriesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const CategoriesListDataSchema = v.array(\n v.looseObject({\n itemCategoryUid: v.number(),\n itemCategoryId: v.string(),\n itemCategoryDesc: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n rootCategoryId: v.string(),\n labelsId: v.nullable(v.string()),\n imagesAssetsId: v.nullable(v.string()),\n roomScenesAssetsId: v.nullable(v.string()),\n brochuresAssetsId: v.nullable(v.string()),\n contractorsAssetsId: v.nullable(v.string()),\n dateLastProcessed: v.string(),\n dateLastCheckImages: v.string(),\n dateLastCheckRoomScene: v.string(),\n itemCategoryDescPc: v.nullable(v.string()),\n dateLastUpload: v.string(),\n leedAssetsId: v.nullable(v.string()),\n colorsList: v.nullable(v.string()),\n colorsCount: v.number(),\n focusCd: v.number(),\n })\n);\n\nexport const CategoriesGetDataSchema = v.looseObject({\n itemCategoryUid: v.number(),\n itemCategoryId: v.string(),\n itemCategoryDesc: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n rootCategoryId: v.string(),\n labelsId: v.nullable(v.string()),\n imagesAssetsId: v.nullable(v.string()),\n roomScenesAssetsId: v.nullable(v.string()),\n brochuresAssetsId: v.nullable(v.string()),\n contractorsAssetsId: v.nullable(v.string()),\n dateLastProcessed: v.string(),\n dateLastCheckImages: v.string(),\n dateLastCheckRoomScene: v.string(),\n itemCategoryDescPc: v.nullable(v.string()),\n dateLastUpload: v.string(),\n leedAssetsId: v.nullable(v.string()),\n colorsList: v.nullable(v.string()),\n colorsCount: v.number(),\n focusCd: v.number(),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for brand-folder service\n * Source: shared/specs/brand-folder.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n CategoriesGetDataSchema,\n CategoriesListDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/categories',\n chain: 'categories',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: CategoriesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/categories/focus',\n chain: 'categories.focus',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}',\n chain: 'categories',\n action: 'get',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CategoriesGetDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated Valibot schemas for commerce service\n * Source: shared/specs/commerce.json\n * Generated: 2026-09-23T23:29:51Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /cart-hdr/list params */\nexport const CartHdrListListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n userId: v.pipe(v.unknown(), v.transform(Number)),\n});\n\n/** Schema for GET /cart-hdr/lookup params */\nexport const CartHdrLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cartToken: v.optional(v.string()),\n contactId: v.pipe(v.unknown(), v.transform(Number)),\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n userCartNo: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n userId: v.pipe(v.unknown(), v.transform(Number)),\n});\n\n/** Schema for GET /cart-hdr/{cartHdrUid}/also-bought params */\nexport const CartHdrAlsoBoughtListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /checkout/{checkoutUid}/doc params */\nexport const CheckoutDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cartHdrUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for commerce service\n * Source: shared/specs/commerce.json\n * Generated: 2026-09-23T23:29:51Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/cart-hdr/list',\n chain: 'cartHdr.list',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['userId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/cart-hdr/lookup',\n chain: 'cartHdr.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['cartToken', 'contactId', 'customerId', 'userCartNo', 'userId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/cart-hdr/{cartHdrUid}/also-bought',\n chain: 'cartHdr.alsoBought',\n action: 'list',\n aliases: [],\n pathParams: ['cartHdrUid'],\n queryParams: ['limit', 'offset'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/cart-line/{cartHdrUid}',\n chain: 'cartLine',\n action: 'get',\n aliases: [],\n pathParams: ['cartHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/cart-line/{cartHdrUid}',\n chain: 'cartLine',\n action: 'delete',\n aliases: [],\n pathParams: ['cartHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/cart-line/{cartHdrUid}/add',\n chain: 'cartLine.add',\n action: 'create',\n aliases: [],\n pathParams: ['cartHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/cart-line/{cartHdrUid}/lines/{lineNo}',\n chain: 'cartLine.lines',\n action: 'delete',\n aliases: [],\n pathParams: ['cartHdrUid', 'lineNo'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/cart-line/{cartHdrUid}/update',\n chain: 'cartLine.update',\n action: 'create',\n aliases: [],\n pathParams: ['cartHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/checkout',\n chain: 'checkout',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/checkout/{checkoutUid}',\n chain: 'checkout',\n action: 'get',\n aliases: [],\n pathParams: ['checkoutUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/checkout/{checkoutUid}/activate',\n chain: 'checkout.activate',\n action: 'update',\n aliases: [],\n pathParams: ['checkoutUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/checkout/{checkoutUid}/doc',\n chain: 'checkout.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['checkoutUid'],\n queryParams: ['cartHdrUid'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/checkout/{checkoutUid}/prophet21-hdr',\n chain: 'checkout.prophet21Hdr',\n action: 'create',\n aliases: [],\n pathParams: ['checkoutUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/checkout/{checkoutUid}/prophet21-hdr/{prophet21HdrUid}/prophet21-line',\n chain: 'checkout.prophet21Hdr.prophet21Line',\n action: 'create',\n aliases: [],\n pathParams: ['checkoutUid', 'prophet21HdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/checkout/{checkoutUid}/validate',\n chain: 'checkout.validate',\n action: 'update',\n aliases: [],\n pathParams: ['checkoutUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for customers service\n * Source: shared/specs/customers.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /contacts/{id}/customers params */\nexport const ContactsCustomersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n class5Id: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /customer params */\nexport const CustomerListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n class5Id: v.optional(v.string()),\n companyId: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/lookup params */\nexport const CustomerLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.string(),\n});\n\n/** Schema for GET /customer/{customerId}/address params */\nexport const CustomerAddressListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.string(),\n});\n\n/** Schema for GET /customer/{customerId}/addresses params */\nexport const CustomerAddressesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n emailAddress: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /customer/{customerId}/aging params */\nexport const CustomerAgingListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n asOf: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n shipToId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /customer/{customerId}/contacts params */\nexport const CustomerContactsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.string(),\n});\n\n/** Schema for GET /customer/{customerId}/invoices params */\nexport const CustomerInvoicesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n contactId: v.optional(v.string()),\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n paidInFull: v.optional(v.string()),\n q: v.string(),\n shipToId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /customer/{customerId}/orders params */\nexport const CustomerOrdersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n addressId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n cancelFlag: v.optional(v.string()),\n contactId: v.optional(v.string()),\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n fullDocument: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/purchased-items params */\nexport const CustomerPurchasedItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/quotes params */\nexport const CustomerQuotesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n addressId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n contactId: v.optional(v.string()),\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/rmas params */\nexport const CustomerRmasListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/sales-usage params */\nexport const CustomerSalesUsageListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invoicedFrom: v.optional(v.string()),\n invoicedTo: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n shipToId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n supplierId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n totalBy: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/ship-to params */\nexport const CustomerShipToListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/ship-to/lookup params */\nexport const CustomerShipToLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /customer/{customerId}/tags params */\nexport const CustomerTagsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const CustomerAddressesListDataSchema = v.array(\n v.looseObject({\n customerAddressUid: v.number(),\n customerId: v.number(),\n address1: v.nullable(v.string()),\n address2: v.nullable(v.string()),\n address3: v.nullable(v.string()),\n city: v.nullable(v.string()),\n state: v.nullable(v.string()),\n postalCode: v.nullable(v.string()),\n country: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n emailAddress: v.nullable(v.string()),\n name: v.nullable(v.string()),\n phoneNumberMain: v.nullable(v.string()),\n phoneNumberMobile: v.nullable(v.string()),\n })\n);\n\nexport const CustomerAddressesCreateDataSchema = v.looseObject({\n customerAddressUid: v.number(),\n customerId: v.number(),\n address1: v.nullable(v.string()),\n address2: v.nullable(v.string()),\n address3: v.nullable(v.string()),\n city: v.nullable(v.string()),\n state: v.nullable(v.string()),\n postalCode: v.nullable(v.string()),\n country: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n emailAddress: v.nullable(v.string()),\n name: v.nullable(v.string()),\n phoneNumberMain: v.nullable(v.string()),\n phoneNumberMobile: v.nullable(v.string()),\n});\n\nexport const CustomerAddressesGetDataSchema = CustomerAddressesCreateDataSchema;\n\nexport const CustomerAddressesUpdateDataSchema = CustomerAddressesCreateDataSchema;\n\nexport const CustomerAddressesDeleteDataSchema = CustomerAddressesCreateDataSchema;\n\nexport const CustomerAgingListDataSchema = v.looseObject({\n customerId: v.string(),\n asOf: v.string(),\n bucketKeys: v.array(v.string()),\n invoiceCount: v.number(),\n totalBalance: v.number(),\n totals: v.array(v.looseObject({ key: v.string(), balance: v.number(), invoices: v.number() })),\n data: v.array(\n v.looseObject({\n invoiceNo: v.string(),\n orderNo: v.nullable(v.string()),\n poNo: v.nullable(v.string()),\n ship2Name: v.nullable(v.string()),\n invoiceDate: v.string(),\n totalAmount: v.number(),\n amountPaid: v.number(),\n balance: v.number(),\n ageDays: v.number(),\n bucket: v.string(),\n })\n ),\n});\n\nexport const CustomerOrdersGetDataSchema = v.looseObject({\n orderNo: v.string(),\n customerId: v.number(),\n customerName: v.nullable(v.string()),\n jobName: v.nullable(v.string()),\n orderDate: v.nullable(v.string()),\n requestedDate: v.nullable(v.string()),\n cancelFlag: v.nullable(v.string()),\n completed: v.nullable(v.string()),\n deleteFlag: v.string(),\n poNo: v.nullable(v.string()),\n ship2Name: v.nullable(v.string()),\n ship2Add1: v.nullable(v.string()),\n ship2Add2: v.nullable(v.string()),\n ship2Add3: v.nullable(v.string()),\n ship2City: v.nullable(v.string()),\n ship2State: v.nullable(v.string()),\n ship2Zip: v.nullable(v.string()),\n ship2Country: v.nullable(v.string()),\n ship2EmailAddress: v.nullable(v.string()),\n shipToPhone: v.nullable(v.string()),\n deliveryInstructions: v.nullable(v.string()),\n class1Id: v.nullable(v.string()),\n class2Id: v.nullable(v.string()),\n class3Id: v.nullable(v.string()),\n class4Id: v.nullable(v.string()),\n class5Id: v.nullable(v.string()),\n contactId: v.nullable(v.string()),\n webReferenceNo: v.nullable(v.string()),\n orderStatus: v.string(),\n taker: v.nullable(v.string()),\n contactFirstName: v.nullable(v.string()),\n contactLastName: v.nullable(v.string()),\n carrierId: v.nullable(v.number()),\n carrierName: v.string(),\n lines: v.array(\n v.looseObject({\n invMastUid: v.number(),\n cancelFlag: v.nullable(v.string()),\n complete: v.nullable(v.string()),\n deleteFlag: v.string(),\n disposition: v.nullable(v.string()),\n itemDesc: v.nullable(v.string()),\n displayDesc: v.nullable(v.string()),\n itemId: v.string(),\n shortCode: v.nullable(v.string()),\n lineNo: v.number(),\n orderNo: v.string(),\n originalQtyOrdered: v.nullable(v.number()),\n qtyAllocated: v.nullable(v.number()),\n qtyCanceled: v.nullable(v.number()),\n qtyInvoiced: v.nullable(v.number()),\n qtyOnPickTickets: v.nullable(v.number()),\n qtyOrdered: v.nullable(v.number()),\n unitOfMeasure: v.nullable(v.string()),\n unitQuantity: v.number(),\n unitSize: v.number(),\n unitPrice: v.nullable(v.number()),\n extendedPrice: v.nullable(v.number()),\n oeLineUid: v.number(),\n parentOeLineUid: v.number(),\n trinityItemId: v.nullable(v.string()),\n trinityItemDesc: v.nullable(v.string()),\n agentItemId: v.nullable(v.string()),\n agentItemDesc: v.nullable(v.string()),\n })\n ),\n pickTickets: v.array(\n v.looseObject({\n pickTicketNo: v.number(),\n trackingNo: v.nullable(v.string()),\n orderNo: v.string(),\n invoiceNo: v.nullable(v.number()),\n shipDate: v.nullable(v.string()),\n printedFlag: v.nullable(v.string()),\n printDate: v.nullable(v.string()),\n instructions: v.nullable(v.string()),\n carrierId: v.nullable(v.number()),\n carrierName: v.string(),\n lines: v.array(\n v.looseObject({\n lineNumber: v.number(),\n shipQuantity: v.nullable(v.number()),\n qtyRequested: v.nullable(v.number()),\n invMastUid: v.number(),\n itemId: v.string(),\n itemDesc: v.nullable(v.string()),\n displayDesc: v.nullable(v.string()),\n trinityItemId: v.nullable(v.string()),\n trinityItemDesc: v.nullable(v.string()),\n agentItemId: v.nullable(v.string()),\n agentItemDesc: v.nullable(v.string()),\n })\n ),\n })\n ),\n});\n\nexport const CustomerQuotesListDataSchema = v.array(\n v.looseObject({\n orderNo: v.string(),\n customerId: v.number(),\n customerName: v.nullable(v.string()),\n jobName: v.nullable(v.string()),\n orderDate: v.nullable(v.string()),\n requestedDate: v.nullable(v.string()),\n cancelFlag: v.nullable(v.string()),\n completed: v.nullable(v.string()),\n deleteFlag: v.string(),\n poNo: v.nullable(v.string()),\n ship2Name: v.nullable(v.string()),\n ship2Add1: v.nullable(v.string()),\n ship2Add2: v.nullable(v.string()),\n ship2Add3: v.nullable(v.string()),\n ship2City: v.nullable(v.string()),\n ship2State: v.nullable(v.string()),\n ship2Zip: v.nullable(v.string()),\n ship2Country: v.nullable(v.string()),\n ship2EmailAddress: v.nullable(v.string()),\n shipToPhone: v.nullable(v.string()),\n deliveryInstructions: v.nullable(v.string()),\n class1Id: v.nullable(v.string()),\n class2Id: v.nullable(v.string()),\n class3Id: v.nullable(v.string()),\n class4Id: v.nullable(v.string()),\n class5Id: v.nullable(v.string()),\n contactId: v.nullable(v.string()),\n webReferenceNo: v.nullable(v.string()),\n orderStatus: v.string(),\n taker: v.nullable(v.string()),\n contactFirstName: v.nullable(v.string()),\n contactLastName: v.nullable(v.string()),\n carrierId: v.nullable(v.number()),\n carrierName: v.string(),\n lines: v.array(\n v.looseObject({\n invMastUid: v.number(),\n cancelFlag: v.nullable(v.string()),\n complete: v.nullable(v.string()),\n deleteFlag: v.string(),\n disposition: v.nullable(v.string()),\n itemDesc: v.nullable(v.string()),\n displayDesc: v.nullable(v.string()),\n itemId: v.string(),\n shortCode: v.nullable(v.string()),\n lineNo: v.number(),\n orderNo: v.string(),\n originalQtyOrdered: v.nullable(v.number()),\n qtyAllocated: v.nullable(v.number()),\n qtyCanceled: v.nullable(v.number()),\n qtyInvoiced: v.nullable(v.number()),\n qtyOnPickTickets: v.nullable(v.number()),\n qtyOrdered: v.nullable(v.number()),\n unitOfMeasure: v.nullable(v.string()),\n unitQuantity: v.number(),\n unitSize: v.number(),\n unitPrice: v.nullable(v.number()),\n extendedPrice: v.nullable(v.number()),\n oeLineUid: v.number(),\n parentOeLineUid: v.number(),\n trinityItemId: v.nullable(v.string()),\n trinityItemDesc: v.nullable(v.string()),\n agentItemId: v.nullable(v.string()),\n agentItemDesc: v.nullable(v.string()),\n })\n ),\n pickTickets: v.array(\n v.looseObject({\n pickTicketNo: v.number(),\n trackingNo: v.nullable(v.string()),\n orderNo: v.string(),\n invoiceNo: v.nullable(v.number()),\n shipDate: v.nullable(v.string()),\n printedFlag: v.nullable(v.string()),\n printDate: v.nullable(v.string()),\n instructions: v.nullable(v.string()),\n carrierId: v.nullable(v.number()),\n carrierName: v.string(),\n lines: v.array(\n v.looseObject({\n lineNumber: v.number(),\n shipQuantity: v.nullable(v.number()),\n qtyRequested: v.nullable(v.number()),\n invMastUid: v.number(),\n itemId: v.string(),\n itemDesc: v.nullable(v.string()),\n displayDesc: v.nullable(v.string()),\n trinityItemId: v.nullable(v.string()),\n trinityItemDesc: v.nullable(v.string()),\n agentItemId: v.nullable(v.string()),\n agentItemDesc: v.nullable(v.string()),\n })\n ),\n })\n ),\n })\n);\n\nexport const CustomerQuotesGetDataSchema = CustomerOrdersGetDataSchema;\n\nexport const CustomerRmasListDataSchema = CustomerQuotesListDataSchema;\n\nexport const CustomerRmasGetDataSchema = CustomerOrdersGetDataSchema;\n\nexport const CustomerSalesUsageListDataSchema = v.looseObject({\n customerId: v.string(),\n invoicedFrom: v.string(),\n invoicedTo: v.string(),\n totalBy: v.string(),\n bucketKeys: v.array(v.string()),\n invoiceCount: v.number(),\n linesFolded: v.number(),\n itemCount: v.number(),\n data: v.array(\n v.looseObject({\n itemId: v.string(),\n itemDesc: v.string(),\n unitOfMeasure: v.nullable(v.string()),\n salesUnitSize: v.nullable(v.number()),\n pricingUnitSize: v.nullable(v.number()),\n buckets: v.array(\n v.looseObject({\n key: v.string(),\n quantity: v.number(),\n total: v.number(),\n lines: v.number(),\n })\n ),\n })\n ),\n});\n\nexport const CustomerShipToListDataSchema = v.array(\n v.looseObject({\n shipToId: v.number(),\n customerId: v.number(),\n companyId: v.string(),\n defaultBranch: v.string(),\n defaultCarrierId: v.nullable(v.number()),\n preferredLocationId: v.nullable(v.number()),\n deliveryInstructions: v.nullable(v.string()),\n shippingRouteUid: v.nullable(v.number()),\n routeCode: v.nullable(v.string()),\n routeDescription: v.nullable(v.string()),\n address: v.looseObject({\n id: v.number(),\n name: v.string(),\n mailAddress1: v.nullable(v.string()),\n mailAddress2: v.nullable(v.string()),\n mailAddress3: v.nullable(v.string()),\n mailCity: v.nullable(v.string()),\n mailState: v.nullable(v.string()),\n mailPostalCode: v.nullable(v.string()),\n mailCountry: v.nullable(v.string()),\n physAddress1: v.nullable(v.string()),\n physAddress2: v.nullable(v.string()),\n physAddress3: v.nullable(v.string()),\n physCity: v.nullable(v.string()),\n physState: v.nullable(v.string()),\n physPostalCode: v.nullable(v.string()),\n physCountry: v.nullable(v.string()),\n class5Id: v.nullable(v.string()),\n centralPhoneNumber: v.nullable(v.string()),\n upsCode: v.nullable(v.string()),\n }),\n })\n);\n\nexport const CustomerTagsListDataSchema = v.array(\n v.looseObject({\n customerTagsUid: v.number(),\n customerId: v.number(),\n tag: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n })\n);\n\nexport const CustomerTagsCreateDataSchema = v.looseObject({\n customerTagsUid: v.number(),\n customerId: v.number(),\n tag: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n});\n\nexport const CustomerTagsGetDataSchema = CustomerTagsCreateDataSchema;\n\nexport const CustomerTagsUpdateDataSchema = CustomerTagsCreateDataSchema;\n\nexport const CustomerTagsDeleteDataSchema = CustomerTagsCreateDataSchema;\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for customers service\n * Source: shared/specs/customers.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n CustomerAddressesCreateDataSchema,\n CustomerAddressesDeleteDataSchema,\n CustomerAddressesGetDataSchema,\n CustomerAddressesListDataSchema,\n CustomerAddressesUpdateDataSchema,\n CustomerAgingListDataSchema,\n CustomerOrdersGetDataSchema,\n CustomerQuotesGetDataSchema,\n CustomerQuotesListDataSchema,\n CustomerRmasGetDataSchema,\n CustomerRmasListDataSchema,\n CustomerSalesUsageListDataSchema,\n CustomerShipToListDataSchema,\n CustomerTagsCreateDataSchema,\n CustomerTagsDeleteDataSchema,\n CustomerTagsGetDataSchema,\n CustomerTagsListDataSchema,\n CustomerTagsUpdateDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/contacts-ud/{id}',\n chain: 'contactsUd',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contacts/refresh',\n chain: 'contacts.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contacts/{id}/customers',\n chain: 'contacts.customers',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['class5Id', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contacts/{id}/doc',\n chain: 'contacts.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contacts/{id}/web-allowance',\n chain: 'contacts.webAllowance',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer',\n chain: 'customer',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['class5Id', 'companyId', 'deleteFlag', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/lookup',\n chain: 'customer.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/address',\n chain: 'customer.address',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/addresses',\n chain: 'customer.addresses',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['emailAddress', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: CustomerAddressesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/customer/{customerId}/addresses',\n chain: 'customer.addresses',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerAddressesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/addresses/{customerAddressUid}',\n chain: 'customer.addresses',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'customerAddressUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CustomerAddressesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/customer/{customerId}/addresses/{customerAddressUid}',\n chain: 'customer.addresses',\n action: 'update',\n aliases: [],\n pathParams: ['customerId', 'customerAddressUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerAddressesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/customer/{customerId}/addresses/{customerAddressUid}',\n chain: 'customer.addresses',\n action: 'delete',\n aliases: [],\n pathParams: ['customerId', 'customerAddressUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerAddressesDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/aging',\n chain: 'customer.aging',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['asOf', 'limit', 'offset', 'orderBy', 'shipToId'],\n edgeCache: true,\n responseSchema: CustomerAgingListDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/contacts',\n chain: 'customer.contacts',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/customer/{customerId}/contacts',\n chain: 'customer.contacts',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/doc',\n chain: 'customer.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/invoices',\n chain: 'customer.invoices',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [\n 'contactId',\n 'createdFrom',\n 'createdOn',\n 'createdTo',\n 'limit',\n 'offset',\n 'paidInFull',\n 'q',\n 'shipToId',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/invoices/{invoiceNo}',\n chain: 'customer.invoices',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'invoiceNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/orders',\n chain: 'customer.orders',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [\n 'addressId',\n 'cancelFlag',\n 'contactId',\n 'createdFrom',\n 'createdOn',\n 'createdTo',\n 'deleteFlag',\n 'fullDocument',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/orders/{orderNo}',\n chain: 'customer.orders',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'orderNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CustomerOrdersGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/purchased-items',\n chain: 'customer.purchasedItems',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/quotes',\n chain: 'customer.quotes',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [\n 'addressId',\n 'contactId',\n 'createdFrom',\n 'createdOn',\n 'createdTo',\n 'limit',\n 'offset',\n 'orderBy',\n ],\n edgeCache: true,\n responseSchema: CustomerQuotesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/quotes/{quoteNo}',\n chain: 'customer.quotes',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'quoteNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CustomerQuotesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/rmas',\n chain: 'customer.rmas',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['createdFrom', 'createdOn', 'createdTo', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: CustomerRmasListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/rmas/{rmaNo}',\n chain: 'customer.rmas',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'rmaNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CustomerRmasGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/sales-usage',\n chain: 'customer.salesUsage',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [\n 'invoicedFrom',\n 'invoicedTo',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n 'shipToId',\n 'supplierId',\n 'totalBy',\n ],\n edgeCache: true,\n responseSchema: CustomerSalesUsageListDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/customer/{customerId}/ship-to',\n chain: 'customer.shipTo',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/ship-to',\n chain: 'customer.shipTo',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: CustomerShipToListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/ship-to/lookup',\n chain: 'customer.shipTo.lookup',\n action: 'get',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/ship-to/{shipToId}/freight-codes',\n chain: 'customer.shipTo.freightCodes',\n action: 'list',\n aliases: [],\n pathParams: ['customerId', 'shipToId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/tags',\n chain: 'customer.tags',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: CustomerTagsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/customer/{customerId}/tags',\n chain: 'customer.tags',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerTagsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customer/{customerId}/tags/{customerTagsUid}',\n chain: 'customer.tags',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CustomerTagsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/customer/{customerId}/tags/{customerTagsUid}',\n chain: 'customer.tags',\n action: 'update',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerTagsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/customer/{customerId}/tags/{customerTagsUid}',\n chain: 'customer.tags',\n action: 'delete',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomerTagsDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/oe-contacts-customer/refresh',\n chain: 'oeContactsCustomer.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/ship-to/refresh',\n chain: 'shipTo.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for gregorovich service\n * Source: shared/specs/gregorovich.json\n * Generated: 2026-09-23T23:29:53Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /chat-gpt/ask params */\nexport const ChatGptAskGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n question: v.string(),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for gregorovich service\n * Source: shared/specs/gregorovich.json\n * Generated: 2026-09-23T23:29:53Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/chat-gpt/ask',\n chain: 'chatGpt.ask',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['question'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/documents',\n chain: 'documents',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/ollama/generate',\n chain: 'ollama.generate',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for items service\n * Source: shared/specs/items.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /attribute-groups params */\nexport const AttributeGroupsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /attribute-groups/{attributeGroupUid}/attributes params */\nexport const AttributeGroupsAttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /attributes params */\nexport const AttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /attributes/{attributeUid}/items params */\nexport const AttributesItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n attributeValueUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n excludeValues: v.optional(v.string()),\n includeValues: v.optional(v.string()),\n itemId: v.optional(v.string()),\n itemIdSearch: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /attributes/{attributeUid}/values params */\nexport const AttributesValuesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /brands params */\nexport const BrandsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /brands/{brandsUid} params */\nexport const BrandsGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n brandsId: v.optional(v.string()),\n});\n\n/** Schema for GET /brands/{brandsUid}/facets params */\nexport const BrandsFacetsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n discontinuedAny: v.optional(v.string()),\n filters: v.optional(v.string()),\n from: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n size: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sort: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n useBrandFolderDoc: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /brands/{brandsUid}/items params */\nexport const BrandsItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n displayOnWebFlag: v.optional(v.string()),\n fields: v.optional(v.string()),\n filters: v.optional(v.string()),\n includeStock: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n sortBy: v.optional(v.string()),\n tags: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /categories/lookup params */\nexport const CategoriesLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n path: v.optional(v.string()),\n rootItemCategoryId: v.optional(v.string()),\n});\n\n/** Schema for GET /categories/{itemCategoryUid} params */\nexport const CategoriesGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n childrenFilter: v.optional(v.string()),\n childrenLimit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n childrenOffset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n filters: v.optional(v.string()),\n includeUd: v.optional(v.string()),\n orderBy: v.optional(v.string()),\n path: v.optional(v.string()),\n productCollection: v.optional(v.string()),\n rootItemCategoryId: v.optional(v.string()),\n});\n\n/** Schema for GET /categories/{itemCategoryUid}/attributes params */\nexport const CategoriesAttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n includeSubCategories: v.optional(v.string()),\n productCollection: v.optional(v.string()),\n});\n\n/** Schema for GET /categories/{itemCategoryUid}/facets params */\nexport const CategoriesFacetsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n discontinuedAny: v.optional(v.string()),\n filters: v.optional(v.string()),\n from: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n size: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sort: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n useBrandFolderDoc: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /categories/{itemCategoryUid}/images params */\nexport const CategoriesImagesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /categories/{itemCategoryUid}/items params */\nexport const CategoriesItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n displayOnWebFlag: v.optional(v.string()),\n fields: v.optional(v.string()),\n filters: v.optional(v.string()),\n includeStock: v.optional(v.string()),\n jobNumbers: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n sortBy: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /contracts/{jobNo}/facets params */\nexport const ContractsFacetsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n discontinuedAny: v.optional(v.string()),\n filters: v.optional(v.string()),\n from: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n size: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sort: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n useBrandFolderDoc: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /contracts/{jobNo}/items params */\nexport const ContractsItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n displayOnWebFlag: v.optional(v.string()),\n fields: v.optional(v.string()),\n filters: v.optional(v.string()),\n includeStock: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n sortBy: v.optional(v.string()),\n tags: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-loc params */\nexport const InvLocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast params */\nexport const InvMastListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n itemCategoryUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n onlineCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n prefix: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast-sub-parts/{invMastUid} params */\nexport const InvMastSubPartsGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastLinksUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast-ud params */\nexport const InvMastUdListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdSince: v.optional(v.string()),\n invMastUdUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n modifiedSince: v.optional(v.string()),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast/lookup params */\nexport const InvMastLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n onlineCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.string(),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/alternate-code params */\nexport const InvMastAlternateCodeListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/attributes params */\nexport const InvMastAttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/attributes/{attributeUid}/values params */\nexport const InvMastAttributesValuesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n attributeValueUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/doc params */\nexport const InvMastDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n includePricing: v.optional(v.string()),\n itemId: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/faq params */\nexport const InvMastFaqListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/inv-accessory params */\nexport const InvMastInvAccessoryListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/inv-sub params */\nexport const InvMastInvSubListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-mast/{invMastUid}/locations/{locationId}/bins params */\nexport const InvMastLocationsBinsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n excludeZero: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /item-category params */\nexport const ItemCategoryListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /item-category/lookup params */\nexport const ItemCategoryLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n path: v.optional(v.string()),\n rootItemCategoryId: v.optional(v.string()),\n});\n\n/** Schema for GET /item-favorites/{usersId}/items params */\nexport const ItemFavoritesItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n useItemDoc: v.optional(v.string()),\n});\n\n/** Schema for GET /item-uom params */\nexport const ItemUomListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdSince: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n modifiedSince: v.optional(v.string()),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n unitOfMeasure: v.optional(v.string()),\n});\n\n/** Schema for GET /item-wishlist/{usersId} params */\nexport const ItemWishlistGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /item-wishlist/{usersId}/hdr/{itemWishlistHdrUid} params */\nexport const ItemWishlistHdrGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /locations/{locationId}/bins params */\nexport const LocationsBinsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n bin: v.optional(v.string()),\n excludeZero: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /locations/{locationId}/bins/{bin} params */\nexport const LocationsBinsGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n excludeZero: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /p21/inv-mast params */\nexport const P21InvMastListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdSince: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n modifiedSince: v.optional(v.string()),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n onlineCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /variants params */\nexport const VariantsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /variants/{itemVariantHdrUid}/attributes params */\nexport const VariantsAttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /variants/{itemVariantHdrUid}/doc params */\nexport const VariantsDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n itemId: v.optional(v.string()),\n});\n\n/** Schema for GET /variants/{itemVariantHdrUid}/lines params */\nexport const VariantsLinesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const AttributeGroupsCreateDataSchema = v.looseObject({\n attributeGroupUid: v.number(),\n attributeGroupId: v.string(),\n attributeGroupDesc: v.nullable(v.string()),\n rowStatusFlag: v.number(),\n dateCreated: v.string(),\n createdBy: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n attributeGroupType: v.number(),\n updateCd: v.number(),\n processCd: v.number(),\n statusCd: v.number(),\n typeCd: v.number(),\n searchableCd: v.number(),\n itemCount: v.number(),\n});\n\nexport const AttributeGroupsUpdateDataSchema = AttributeGroupsCreateDataSchema;\n\nexport const AttributeGroupsAttributesUpdateDataSchema = v.looseObject({\n attributeXAttributeGroupUid: v.number(),\n requiredFlag: v.string(),\n rowStatusFlag: v.number(),\n dateCreated: v.string(),\n createdBy: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n attributeUid: v.number(),\n attributeGroupUid: v.number(),\n sequenceNo: v.nullable(v.number()),\n updateCd: v.number(),\n processCd: v.number(),\n statusCd: v.number(),\n});\n\nexport const AttributesListDataSchema = v.array(\n v.looseObject({\n attributeUid: v.number(),\n attributeDesc: v.nullable(v.string()),\n extendedDesc: v.nullable(v.string()),\n attributeId: v.string(),\n dataType: v.number(),\n maxLength: v.number(),\n noOfDecimal: v.nullable(v.number()),\n rowStatusFlag: v.number(),\n validationRequiredFlag: v.string(),\n dateCreated: v.string(),\n createdBy: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n cfdiAttributeType: v.nullable(v.number()),\n updateCd: v.number(),\n processCd: v.number(),\n statusCd: v.number(),\n typeCd: v.number(),\n activeValueCount: v.number(),\n inactiveValueCount: v.number(),\n deletedValueCount: v.number(),\n })\n);\n\nexport const AttributesCreateDataSchema = v.looseObject({\n attributeUid: v.number(),\n attributeDesc: v.nullable(v.string()),\n extendedDesc: v.nullable(v.string()),\n attributeId: v.string(),\n dataType: v.number(),\n maxLength: v.number(),\n noOfDecimal: v.nullable(v.number()),\n rowStatusFlag: v.number(),\n validationRequiredFlag: v.string(),\n dateCreated: v.string(),\n createdBy: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n cfdiAttributeType: v.nullable(v.number()),\n updateCd: v.number(),\n processCd: v.number(),\n statusCd: v.number(),\n typeCd: v.number(),\n});\n\nexport const AttributesGetDataSchema = v.looseObject({\n attributeUid: v.number(),\n attributeDesc: v.nullable(v.string()),\n extendedDesc: v.nullable(v.string()),\n attributeId: v.string(),\n dataType: v.number(),\n maxLength: v.number(),\n noOfDecimal: v.nullable(v.number()),\n rowStatusFlag: v.number(),\n validationRequiredFlag: v.string(),\n dateCreated: v.string(),\n createdBy: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n cfdiAttributeType: v.nullable(v.number()),\n updateCd: v.number(),\n processCd: v.number(),\n statusCd: v.number(),\n typeCd: v.number(),\n activeValueCount: v.number(),\n inactiveValueCount: v.number(),\n deletedValueCount: v.number(),\n});\n\nexport const AttributesUpdateDataSchema = AttributesCreateDataSchema;\n\nexport const AttributesItemsListDataSchema = v.array(\n v.looseObject({\n itemAttributeValueUid: v.number(),\n invMastUid: v.number(),\n attributeUid: v.number(),\n attributeValue: v.nullable(v.string()),\n dateCreated: v.string(),\n createdBy: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n updateCd: v.number(),\n processCd: v.number(),\n statusCd: v.number(),\n attributeValueUid: v.number(),\n onlineCd: v.number(),\n attributeDesc: v.nullable(v.string()),\n attributeId: v.string(),\n itemId: v.string(),\n itemDesc: v.nullable(v.string()),\n })\n);\n\nexport const AttributesValuesListDataSchema = v.array(\n v.looseObject({\n attributeValueUid: v.number(),\n attributeUid: v.number(),\n attributeValue: v.string(),\n rowStatusFlag: v.number(),\n dateCreated: v.string(),\n createdBy: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n updateCd: v.number(),\n processCd: v.number(),\n statusCd: v.number(),\n sequenceNo: v.number(),\n itemCount: v.number(),\n })\n);\n\nexport const AttributesValuesCreateDataSchema = v.looseObject({\n attributeValueUid: v.number(),\n attributeUid: v.number(),\n attributeValue: v.string(),\n rowStatusFlag: v.number(),\n dateCreated: v.string(),\n createdBy: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n updateCd: v.number(),\n processCd: v.number(),\n statusCd: v.number(),\n sequenceNo: v.number(),\n itemCount: v.number(),\n});\n\nexport const AttributesValuesGetDataSchema = AttributesValuesCreateDataSchema;\n\nexport const AttributesValuesUpdateDataSchema = AttributesValuesCreateDataSchema;\n\nexport const AttributesValuesDeleteDataSchema = AttributesValuesCreateDataSchema;\n\nexport const BrandsListDataSchema = v.array(\n v.looseObject({\n brandsUid: v.number(),\n brandsName: v.string(),\n brandsId: v.string(),\n brandsDesc: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n contentId: v.nullable(v.number()),\n })\n);\n\nexport const BrandsCreateDataSchema = v.looseObject({\n brandsUid: v.number(),\n brandsName: v.string(),\n brandsId: v.string(),\n brandsDesc: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n contentId: v.nullable(v.number()),\n});\n\nexport const BrandsGetDataSchema = BrandsCreateDataSchema;\n\nexport const BrandsUpdateDataSchema = BrandsCreateDataSchema;\n\nexport const BrandsDeleteDataSchema = BrandsCreateDataSchema;\n\nexport const BrandsItemsCreateDataSchema = v.looseObject({\n brandsXItemsUid: v.number(),\n brandsUid: v.number(),\n invMastUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const BrandsItemsGetDataSchema = BrandsItemsCreateDataSchema;\n\nexport const BrandsItemsUpdateDataSchema = BrandsItemsCreateDataSchema;\n\nexport const BrandsItemsDeleteDataSchema = BrandsItemsCreateDataSchema;\n\nexport const InvLocListDataSchema = v.array(\n v.looseObject({\n companyId: v.string(),\n locationId: v.number(),\n invMastUid: v.number(),\n qtyOnHand: v.nullable(v.number()),\n qtyInProcess: v.nullable(v.number()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n nextDueInPoDate: v.nullable(v.string()),\n sellable: v.nullable(v.string()),\n movingAverageCost: v.nullable(v.number()),\n standardCost: v.nullable(v.number()),\n protectedStockQty: v.nullable(v.number()),\n invMin: v.nullable(v.number()),\n invMax: v.nullable(v.number()),\n safetyStock: v.nullable(v.number()),\n stockable: v.nullable(v.string()),\n averageMonthlyUsage: v.nullable(v.number()),\n noCharge: v.nullable(v.string()),\n price1: v.nullable(v.number()),\n price2: v.nullable(v.number()),\n price3: v.nullable(v.number()),\n price4: v.nullable(v.number()),\n price5: v.nullable(v.number()),\n price6: v.nullable(v.number()),\n price7: v.nullable(v.number()),\n price8: v.nullable(v.number()),\n price9: v.nullable(v.number()),\n price10: v.nullable(v.number()),\n orderQuantity: v.nullable(v.number()),\n qtyAllocated: v.nullable(v.number()),\n qtyBackordered: v.nullable(v.number()),\n qtyInTransit: v.nullable(v.number()),\n trackBins: v.nullable(v.string()),\n primaryBin: v.nullable(v.string()),\n qtyReservedDueIn: v.nullable(v.number()),\n dateLastCounted: v.nullable(v.string()),\n deadstockFlag: v.string(),\n primarySupplierId: v.nullable(v.number()),\n lastSaleDate: v.nullable(v.string()),\n lastPurchaseDate: v.nullable(v.string()),\n invLastChangedDate: v.nullable(v.string()),\n minReplenishmentQty: v.nullable(v.number()),\n discontinued: v.string(),\n priceFamilyUid: v.nullable(v.number()),\n deleteFlag: v.nullable(v.string()),\n defaultSellingUnit: v.nullable(v.string()),\n futureStandardCost: v.nullable(v.number()),\n effectiveDate: v.nullable(v.string()),\n restrictedFlag: v.nullable(v.string()),\n updateCd: v.number(),\n productGroupId: v.nullable(v.string()),\n purchaseDiscountGroup: v.nullable(v.string()),\n salesDiscountGroup: v.nullable(v.string()),\n purchaseClass: v.nullable(v.string()),\n })\n);\n\nexport const InvMastAttributesBulkCreateDataSchema = v.looseObject({\n items: v.array(\n v.looseObject({\n itemId: v.string(),\n invMastUid: v.number(),\n attributes: v.array(\n v.looseObject({ attributeName: v.string(), attributeValue: v.nullable(v.string()) })\n ),\n })\n ),\n notFound: v.array(v.string()),\n});\n\nexport const InvMastAttributesCreateDataSchema = v.looseObject({\n itemAttributeValueUid: v.number(),\n invMastUid: v.number(),\n attributeUid: v.number(),\n attributeValue: v.nullable(v.string()),\n dateCreated: v.string(),\n createdBy: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n updateCd: v.number(),\n processCd: v.number(),\n statusCd: v.number(),\n attributeValueUid: v.number(),\n onlineCd: v.number(),\n});\n\nexport const InvMastAttributesValuesCreateDataSchema = InvMastAttributesCreateDataSchema;\n\nexport const InvMastAttributesValuesUpdateDataSchema = InvMastAttributesCreateDataSchema;\n\nexport const InvMastFaqListDataSchema = v.array(\n v.looseObject({\n invMastFaqUid: v.number(),\n invMastUid: v.number(),\n question: v.string(),\n answer: v.string(),\n generatedAnswer: v.string(),\n sourceCount: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n relatedQuestionsUid: v.number(),\n generateCd: v.number(),\n extraPrompt: v.string(),\n accurateFlag: v.string(),\n qualityScore: v.number(),\n })\n);\n\nexport const InvMastFaqCreateDataSchema = InvMastFaqListDataSchema;\n\nexport const InvMastFaqGetDataSchema = v.looseObject({\n invMastFaqUid: v.number(),\n invMastUid: v.number(),\n question: v.string(),\n answer: v.string(),\n generatedAnswer: v.string(),\n sourceCount: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n relatedQuestionsUid: v.number(),\n generateCd: v.number(),\n extraPrompt: v.string(),\n accurateFlag: v.string(),\n qualityScore: v.number(),\n});\n\nexport const InvMastFaqUpdateDataSchema = InvMastFaqGetDataSchema;\n\nexport const InvMastFaqDeleteDataSchema = InvMastFaqGetDataSchema;\n\nexport const ItemUomListDataSchema = v.array(\n v.looseObject({\n unitOfMeasure: v.string(),\n deleteFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n unitSize: v.number(),\n sellingUnit: v.nullable(v.string()),\n purchasingUnit: v.nullable(v.string()),\n invMastUid: v.number(),\n createdBy: v.nullable(v.string()),\n itemUomUid: v.number(),\n b2bUnitFlag: v.string(),\n tallyFactor: v.nullable(v.number()),\n wwmsFlag: v.nullable(v.string()),\n prodOrderFactor: v.nullable(v.number()),\n minimumOrderQty: v.nullable(v.number()),\n updateCd: v.number(),\n })\n);\n\nexport const ItemUomGetDataSchema = v.looseObject({\n unitOfMeasure: v.string(),\n deleteFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n unitSize: v.number(),\n sellingUnit: v.nullable(v.string()),\n purchasingUnit: v.nullable(v.string()),\n invMastUid: v.number(),\n createdBy: v.nullable(v.string()),\n itemUomUid: v.number(),\n b2bUnitFlag: v.string(),\n tallyFactor: v.nullable(v.number()),\n wwmsFlag: v.nullable(v.string()),\n prodOrderFactor: v.nullable(v.number()),\n minimumOrderQty: v.nullable(v.number()),\n updateCd: v.number(),\n});\n\nexport const VariantsLinesListDataSchema = v.array(\n v.looseObject({\n itemVariantLineUid: v.number(),\n itemVariantHdrUid: v.number(),\n invMastUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n primaryCd: v.number(),\n sequenceNo: v.number(),\n })\n);\n\nexport const VariantsLinesCreateDataSchema = v.looseObject({\n itemVariantLineUid: v.number(),\n itemVariantHdrUid: v.number(),\n invMastUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n primaryCd: v.number(),\n sequenceNo: v.number(),\n});\n\nexport const VariantsLinesGetDataSchema = VariantsLinesCreateDataSchema;\n\nexport const VariantsLinesUpdateDataSchema = VariantsLinesCreateDataSchema;\n\nexport const VariantsLinesDeleteDataSchema = VariantsLinesCreateDataSchema;\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for items service\n * Source: shared/specs/items.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n AttributeGroupsAttributesUpdateDataSchema,\n AttributeGroupsCreateDataSchema,\n AttributeGroupsUpdateDataSchema,\n AttributesCreateDataSchema,\n AttributesGetDataSchema,\n AttributesItemsListDataSchema,\n AttributesListDataSchema,\n AttributesUpdateDataSchema,\n AttributesValuesCreateDataSchema,\n AttributesValuesDeleteDataSchema,\n AttributesValuesGetDataSchema,\n AttributesValuesListDataSchema,\n AttributesValuesUpdateDataSchema,\n BrandsCreateDataSchema,\n BrandsDeleteDataSchema,\n BrandsGetDataSchema,\n BrandsItemsCreateDataSchema,\n BrandsItemsDeleteDataSchema,\n BrandsItemsGetDataSchema,\n BrandsItemsUpdateDataSchema,\n BrandsListDataSchema,\n BrandsUpdateDataSchema,\n InvLocListDataSchema,\n InvMastAttributesBulkCreateDataSchema,\n InvMastAttributesCreateDataSchema,\n InvMastAttributesValuesCreateDataSchema,\n InvMastAttributesValuesUpdateDataSchema,\n InvMastFaqCreateDataSchema,\n InvMastFaqDeleteDataSchema,\n InvMastFaqGetDataSchema,\n InvMastFaqListDataSchema,\n InvMastFaqUpdateDataSchema,\n ItemUomGetDataSchema,\n ItemUomListDataSchema,\n VariantsLinesCreateDataSchema,\n VariantsLinesDeleteDataSchema,\n VariantsLinesGetDataSchema,\n VariantsLinesListDataSchema,\n VariantsLinesUpdateDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/attribute-groups',\n chain: 'attributeGroups',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/attribute-groups',\n chain: 'attributeGroups',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributeGroupsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/attribute-groups/{attributeGroupUid}',\n chain: 'attributeGroups',\n action: 'get',\n aliases: [],\n pathParams: ['attributeGroupUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/attribute-groups/{attributeGroupUid}',\n chain: 'attributeGroups',\n action: 'update',\n aliases: [],\n pathParams: ['attributeGroupUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributeGroupsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/attribute-groups/{attributeGroupUid}',\n chain: 'attributeGroups',\n action: 'delete',\n aliases: [],\n pathParams: ['attributeGroupUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/attribute-groups/{attributeGroupUid}/attributes',\n chain: 'attributeGroups.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['attributeGroupUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/attribute-groups/{attributeGroupUid}/attributes',\n chain: 'attributeGroups.attributes',\n action: 'create',\n aliases: [],\n pathParams: ['attributeGroupUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/attribute-groups/{attributeGroupUid}/attributes/{attributeXAttributeGroupUid}',\n chain: 'attributeGroups.attributes',\n action: 'get',\n aliases: [],\n pathParams: ['attributeGroupUid', 'attributeXAttributeGroupUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/attribute-groups/{attributeGroupUid}/attributes/{attributeXAttributeGroupUid}',\n chain: 'attributeGroups.attributes',\n action: 'update',\n aliases: [],\n pathParams: ['attributeGroupUid', 'attributeXAttributeGroupUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributeGroupsAttributesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/attribute-groups/{attributeGroupUid}/attributes/{attributeXAttributeGroupUid}',\n chain: 'attributeGroups.attributes',\n action: 'delete',\n aliases: [],\n pathParams: ['attributeGroupUid', 'attributeXAttributeGroupUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/attributes',\n chain: 'attributes',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: AttributesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/attributes',\n chain: 'attributes',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/attributes/{attributeUid}',\n chain: 'attributes',\n action: 'get',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: AttributesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/attributes/{attributeUid}',\n chain: 'attributes',\n action: 'update',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/attributes/{attributeUid}',\n chain: 'attributes',\n action: 'delete',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/attributes/{attributeUid}/items',\n chain: 'attributes.items',\n action: 'list',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: [\n 'attributeValueUid',\n 'excludeValues',\n 'includeValues',\n 'itemId',\n 'itemIdSearch',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: AttributesItemsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/attributes/{attributeUid}/values',\n chain: 'attributes.values',\n action: 'list',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: AttributesValuesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/attributes/{attributeUid}/values',\n chain: 'attributes.values',\n action: 'create',\n aliases: [],\n pathParams: ['attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributesValuesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/attributes/{attributeUid}/values/{attributeValueUid}',\n chain: 'attributes.values',\n action: 'get',\n aliases: [],\n pathParams: ['attributeUid', 'attributeValueUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: AttributesValuesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/attributes/{attributeUid}/values/{attributeValueUid}',\n chain: 'attributes.values',\n action: 'update',\n aliases: [],\n pathParams: ['attributeUid', 'attributeValueUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributesValuesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/attributes/{attributeUid}/values/{attributeValueUid}',\n chain: 'attributes.values',\n action: 'delete',\n aliases: [],\n pathParams: ['attributeUid', 'attributeValueUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: AttributesValuesDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/brands',\n chain: 'brands',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: BrandsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/brands',\n chain: 'brands',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/brands/{brandsUid}',\n chain: 'brands',\n action: 'get',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: ['brandsId'],\n edgeCache: true,\n responseSchema: BrandsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/brands/{brandsUid}',\n chain: 'brands',\n action: 'update',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/brands/{brandsUid}',\n chain: 'brands',\n action: 'delete',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/brands/{brandsUid}/attributes',\n chain: 'brands.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/brands/{brandsUid}/facets',\n chain: 'brands.facets',\n action: 'list',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'discontinuedAny',\n 'filters',\n 'from',\n 'q',\n 'size',\n 'sort',\n 'stockStatus',\n 'tags',\n 'useBrandFolderDoc',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/brands/{brandsUid}/items',\n chain: 'brands.items',\n action: 'list',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'displayOnWebFlag',\n 'fields',\n 'filters',\n 'includeStock',\n 'limit',\n 'offset',\n 'q',\n 'sortBy',\n 'tags',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/brands/{brandsUid}/items',\n chain: 'brands.items',\n action: 'create',\n aliases: [],\n pathParams: ['brandsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsItemsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/brands/{brandsUid}/items/{brandsXItemsUid}',\n chain: 'brands.items',\n action: 'get',\n aliases: [],\n pathParams: ['brandsUid', 'brandsXItemsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: BrandsItemsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/brands/{brandsUid}/items/{brandsXItemsUid}',\n chain: 'brands.items',\n action: 'update',\n aliases: [],\n pathParams: ['brandsUid', 'brandsXItemsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsItemsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/brands/{brandsUid}/items/{brandsXItemsUid}',\n chain: 'brands.items',\n action: 'delete',\n aliases: [],\n pathParams: ['brandsUid', 'brandsXItemsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: BrandsItemsDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/categories/lookup',\n chain: 'categories.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['cacheTtl', 'path', 'rootItemCategoryId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}',\n chain: 'categories',\n action: 'get',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [\n 'cacheTtl',\n 'childrenFilter',\n 'childrenLimit',\n 'childrenOffset',\n 'classId5ExcludeList',\n 'classId5List',\n 'filters',\n 'includeUd',\n 'orderBy',\n 'path',\n 'productCollection',\n 'rootItemCategoryId',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}/attributes',\n chain: 'categories.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: ['cacheTtl', 'includeSubCategories', 'productCollection'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}/facets',\n chain: 'categories.facets',\n action: 'list',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'discontinuedAny',\n 'filters',\n 'from',\n 'q',\n 'size',\n 'sort',\n 'stockStatus',\n 'tags',\n 'useBrandFolderDoc',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}/images',\n chain: 'categories.images',\n action: 'list',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: ['cacheTtl'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{itemCategoryUid}/items',\n chain: 'categories.items',\n action: 'list',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [\n 'cacheTtl',\n 'classId5ExcludeList',\n 'classId5List',\n 'displayOnWebFlag',\n 'fields',\n 'filters',\n 'includeStock',\n 'jobNumbers',\n 'limit',\n 'offset',\n 'q',\n 'sortBy',\n 'stockStatus',\n 'tags',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contracts/{jobNo}/attributes',\n chain: 'contracts.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['jobNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contracts/{jobNo}/facets',\n chain: 'contracts.facets',\n action: 'list',\n aliases: [],\n pathParams: ['jobNo'],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'discontinuedAny',\n 'filters',\n 'from',\n 'q',\n 'size',\n 'sort',\n 'stockStatus',\n 'tags',\n 'useBrandFolderDoc',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/contracts/{jobNo}/items',\n chain: 'contracts.items',\n action: 'list',\n aliases: [],\n pathParams: ['jobNo'],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'displayOnWebFlag',\n 'fields',\n 'filters',\n 'includeStock',\n 'limit',\n 'offset',\n 'q',\n 'sortBy',\n 'tags',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/internal/pdf',\n chain: 'internal.pdf',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-loc',\n chain: 'invLoc',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['invMastUid', 'limit', 'offset'],\n edgeCache: true,\n responseSchema: InvLocListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/inv-mast',\n chain: 'invMast',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['itemCategoryUid', 'limit', 'offset', 'onlineCd', 'prefix', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast-links/{invMastUid}',\n chain: 'invMastLinks',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast-sub-parts/{invMastUid}',\n chain: 'invMastSubParts',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['invMastLinksUid'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast-ud',\n chain: 'invMastUd',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'createdSince',\n 'invMastUdUid',\n 'invMastUid',\n 'limit',\n 'modifiedSince',\n 'offset',\n 'orderBy',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/inv-mast/attributes/bulk',\n chain: 'invMast.attributes.bulk',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastAttributesBulkCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast/lookup',\n chain: 'invMast.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'onlineCd', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}',\n chain: 'invMast',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/alternate-code',\n chain: 'invMast.alternateCode',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/attributes',\n chain: 'invMast.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/inv-mast/{invMastUid}/attributes',\n chain: 'invMast.attributes',\n action: 'create',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastAttributesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/attributes/{attributeUid}/values',\n chain: 'invMast.attributes.values',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid', 'attributeUid'],\n queryParams: ['attributeValueUid', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/inv-mast/{invMastUid}/attributes/{attributeUid}/values',\n chain: 'invMast.attributes.values',\n action: 'create',\n aliases: [],\n pathParams: ['invMastUid', 'attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastAttributesValuesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast/{invMastUid}/attributes/{attributeUid}/values/{attributeValueUid}',\n chain: 'invMast.attributes.values',\n action: 'update',\n aliases: [],\n pathParams: ['invMastUid', 'attributeUid', 'attributeValueUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastAttributesValuesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast/{invMastUid}/attributes/{attributeUid}/values/{attributeValueUid}',\n chain: 'invMast.attributes.values',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastUid', 'attributeUid', 'attributeValueUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/doc',\n chain: 'invMast.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['invMastUid'],\n queryParams: ['includePricing', 'itemId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/faq',\n chain: 'invMast.faq',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: InvMastFaqListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast/{invMastUid}/faq',\n chain: 'invMast.faq',\n action: 'create',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastFaqCreateDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/faq/{invMastFaqUid}',\n chain: 'invMast.faq',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid', 'invMastFaqUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastFaqGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast/{invMastUid}/faq/{invMastFaqUid}',\n chain: 'invMast.faq',\n action: 'update',\n aliases: [],\n pathParams: ['invMastUid', 'invMastFaqUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastFaqUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast/{invMastUid}/faq/{invMastFaqUid}',\n chain: 'invMast.faq',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastUid', 'invMastFaqUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastFaqDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/inv-accessory',\n chain: 'invMast.invAccessory',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/inv-sub',\n chain: 'invMast.invSub',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/locations/{locationId}/bins',\n chain: 'invMast.locations.bins',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid', 'locationId'],\n queryParams: ['excludeZero', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/locations/{locationId}/bins/{bin}',\n chain: 'invMast.locations.bins',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid', 'locationId', 'bin'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/similar',\n chain: 'invMast.similar',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/stock',\n chain: 'invMast.stock',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-category',\n chain: 'itemCategory',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-category/lookup',\n chain: 'itemCategory.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['path', 'rootItemCategoryId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-category/{itemCategoryUid}',\n chain: 'itemCategory',\n action: 'get',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-category/{itemCategoryUid}/doc',\n chain: 'itemCategory.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['itemCategoryUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-favorites/{usersId}/items',\n chain: 'itemFavorites.items',\n action: 'list',\n aliases: [],\n pathParams: ['usersId'],\n queryParams: ['limit', 'offset', 'orderBy', 'useItemDoc'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/item-favorites/{usersId}/items',\n chain: 'itemFavorites.items',\n action: 'create',\n aliases: [],\n pathParams: ['usersId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-favorites/{usersId}/items/{invMastUid}',\n chain: 'itemFavorites.items',\n action: 'get',\n aliases: [],\n pathParams: ['usersId', 'invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/item-favorites/{usersId}/items/{invMastUid}',\n chain: 'itemFavorites.items',\n action: 'update',\n aliases: [],\n pathParams: ['usersId', 'invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/item-favorites/{usersId}/items/{invMastUid}',\n chain: 'itemFavorites.items',\n action: 'delete',\n aliases: [],\n pathParams: ['usersId', 'invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-uom',\n chain: 'itemUom',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'createdSince',\n 'deleteFlag',\n 'invMastUid',\n 'limit',\n 'modifiedSince',\n 'offset',\n 'orderBy',\n 'unitOfMeasure',\n ],\n edgeCache: true,\n responseSchema: ItemUomListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/item-uom/{itemUomUid}',\n chain: 'itemUom',\n action: 'get',\n aliases: [],\n pathParams: ['itemUomUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ItemUomGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/item-wishlist/{usersId}',\n chain: 'itemWishlist',\n action: 'get',\n aliases: [],\n pathParams: ['usersId'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/item-wishlist/{usersId}',\n chain: 'itemWishlist',\n action: 'create',\n aliases: [],\n pathParams: ['usersId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/item-wishlist/{usersId}/hdr/{itemWishlistHdrUid}',\n chain: 'itemWishlist.hdr',\n action: 'update',\n aliases: [],\n pathParams: ['usersId', 'itemWishlistHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/item-wishlist/{usersId}/hdr/{itemWishlistHdrUid}',\n chain: 'itemWishlist.hdr',\n action: 'delete',\n aliases: [],\n pathParams: ['usersId', 'itemWishlistHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-wishlist/{usersId}/hdr/{itemWishlistHdrUid}',\n chain: 'itemWishlist.hdr',\n action: 'get',\n aliases: [],\n pathParams: ['usersId', 'itemWishlistHdrUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/item-wishlist/{usersId}/hdr/{itemWishlistHdrUid}',\n chain: 'itemWishlist.hdr',\n action: 'create',\n aliases: [],\n pathParams: ['usersId', 'itemWishlistHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/item-wishlist/{usersId}/hdr/{itemWishlistHdrUid}/line/{itemWishlistLineUid}',\n chain: 'itemWishlist.hdr.line',\n action: 'delete',\n aliases: [],\n pathParams: ['usersId', 'itemWishlistHdrUid', 'itemWishlistLineUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/locations/{locationId}/bins',\n chain: 'locations.bins',\n action: 'list',\n aliases: [],\n pathParams: ['locationId'],\n queryParams: ['bin', 'excludeZero', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/locations/{locationId}/bins/{bin}',\n chain: 'locations.bins',\n action: 'get',\n aliases: [],\n pathParams: ['locationId', 'bin'],\n queryParams: ['excludeZero', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/p21/inv-mast',\n chain: 'p21.invMast',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'createdSince',\n 'limit',\n 'modifiedSince',\n 'offset',\n 'onlineCd',\n 'orderBy',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants',\n chain: 'variants',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/variants',\n chain: 'variants',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}',\n chain: 'variants',\n action: 'get',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/variants/{itemVariantHdrUid}',\n chain: 'variants',\n action: 'update',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/variants/{itemVariantHdrUid}',\n chain: 'variants',\n action: 'delete',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/attributes',\n chain: 'variants.attributes',\n action: 'list',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/variants/{itemVariantHdrUid}/attributes',\n chain: 'variants.attributes',\n action: 'create',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/attributes/{attributeUid}',\n chain: 'variants.attributes',\n action: 'get',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'attributeUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/variants/{itemVariantHdrUid}/attributes/{attributeUid}',\n chain: 'variants.attributes',\n action: 'update',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/variants/{itemVariantHdrUid}/attributes/{attributeUid}',\n chain: 'variants.attributes',\n action: 'delete',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'attributeUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/doc',\n chain: 'variants.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['itemVariantHdrUid'],\n queryParams: ['itemId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/lines',\n chain: 'variants.lines',\n action: 'list',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: VariantsLinesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/variants/{itemVariantHdrUid}/lines',\n chain: 'variants.lines',\n action: 'create',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: VariantsLinesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/lines/{itemVariantLineUid}',\n chain: 'variants.lines',\n action: 'get',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'itemVariantLineUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: VariantsLinesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/variants/{itemVariantHdrUid}/lines/{itemVariantLineUid}',\n chain: 'variants.lines',\n action: 'update',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'itemVariantLineUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: VariantsLinesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/variants/{itemVariantHdrUid}/lines/{itemVariantLineUid}',\n chain: 'variants.lines',\n action: 'delete',\n aliases: [],\n pathParams: ['itemVariantHdrUid', 'itemVariantLineUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: VariantsLinesDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/variants/{itemVariantHdrUid}/similar',\n chain: 'variants.similar',\n action: 'list',\n aliases: [],\n pathParams: ['itemVariantHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for joomla service\n * Source: shared/specs/joomla.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /action-logs params */\nexport const ActionLogsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n extension: v.optional(v.string()),\n itemId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n userId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /categories params */\nexport const CategoriesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n extension: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n parentId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n published: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /content params */\nexport const ContentListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n categoryIdList: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n tagsList: v.optional(v.string()),\n});\n\n/** Schema for GET /content/{id} params */\nexport const ContentGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n alias: v.optional(v.string()),\n catid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /content/{id}/doc params */\nexport const ContentDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n alias: v.optional(v.string()),\n catid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /menu params */\nexport const MenuListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n menutype: v.optional(v.string()),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n parentId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n published: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /menu/{id}/doc params */\nexport const MenuDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n alias: v.optional(v.string()),\n});\n\n/** Schema for GET /modules params */\nexport const ModulesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n menuId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n module: v.optional(v.string()),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n position: v.optional(v.string()),\n published: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /modules/{id} params */\nexport const ModulesGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n normalize: v.optional(v.string()),\n});\n\n/** Schema for GET /tags params */\nexport const TagsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n catId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n parentId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /usergroups params */\nexport const UsergroupsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n orderBy: v.optional(v.string()),\n parentIdList: v.optional(v.string()),\n});\n\n/** Schema for GET /users params */\nexport const UsersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n accessLevelList: v.optional(v.string()),\n blocked: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n contactId: v.optional(v.string()),\n customerId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n hasContactId: v.optional(v.string()),\n hasCustomerId: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for POST /users params */\nexport const UsersCreateParamsSchema = v.looseObject({\n accessLevelList: v.optional(v.string()),\n customerId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /users/{id}/doc params */\nexport const UsersDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n includeShipTo: v.optional(v.string()),\n});\n\n/** Schema for GET /users/{id}/groups params */\nexport const UsersGroupsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /users/{id}/trinity params */\nexport const UsersTrinityListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const ActionLogsListDataSchema = v.array(\n v.looseObject({\n id: v.number(),\n messageLanguageKey: v.string(),\n message: v.string(),\n logDate: v.string(),\n extension: v.string(),\n userId: v.number(),\n itemId: v.number(),\n ipAddress: v.string(),\n })\n);\n\nexport const ActionLogsGetDataSchema = ActionLogsListDataSchema;\n\nexport const ModulesListDataSchema = v.array(\n v.looseObject({\n id: v.number(),\n assetId: v.number(),\n title: v.string(),\n note: v.string(),\n content: v.nullable(v.string()),\n ordering: v.number(),\n position: v.string(),\n checkedOut: v.number(),\n checkedOutTime: v.string(),\n publishUp: v.string(),\n publishDown: v.string(),\n published: v.number(),\n module: v.nullable(v.string()),\n access: v.number(),\n showtitle: v.number(),\n params: v.string(),\n clientId: v.number(),\n language: v.string(),\n })\n);\n\nexport const ModulesGetDataSchema = v.looseObject({\n id: v.number(),\n assetId: v.number(),\n title: v.string(),\n note: v.string(),\n content: v.nullable(v.string()),\n ordering: v.number(),\n position: v.string(),\n checkedOut: v.number(),\n checkedOutTime: v.string(),\n publishUp: v.string(),\n publishDown: v.string(),\n published: v.number(),\n module: v.nullable(v.string()),\n access: v.number(),\n showtitle: v.number(),\n params: v.string(),\n clientId: v.number(),\n language: v.string(),\n});\n\nexport const UsersVerifyPasswordCreateDataSchema = v.looseObject({\n id: v.number(),\n isVerified: v.boolean(),\n username: v.string(),\n token: v.string(),\n email: v.string(),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for joomla service\n * Source: shared/specs/joomla.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n ActionLogsGetDataSchema,\n ActionLogsListDataSchema,\n ModulesGetDataSchema,\n ModulesListDataSchema,\n UsersVerifyPasswordCreateDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/action-logs',\n chain: 'actionLogs',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['extension', 'itemId', 'limit', 'offset', 'orderBy', 'userId'],\n edgeCache: true,\n responseSchema: ActionLogsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/action-logs/{id}',\n chain: 'actionLogs',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ActionLogsGetDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/categories',\n chain: 'categories',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['extension', 'limit', 'offset', 'orderBy', 'parentId', 'published'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/categories/{id}',\n chain: 'categories',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/content',\n chain: 'content',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['categoryIdList', 'limit', 'offset', 'orderBy', 'q', 'tagsList'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/content/{id}',\n chain: 'content',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['alias', 'catid'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/content/{id}/doc',\n chain: 'content.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['id'],\n queryParams: ['alias', 'catid'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/menu',\n chain: 'menu',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'menutype', 'offset', 'orderBy', 'parentId', 'published'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/menu/{id}/doc',\n chain: 'menu.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['id'],\n queryParams: ['alias'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/modules',\n chain: 'modules',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'menuId', 'module', 'offset', 'orderBy', 'position', 'published', 'q'],\n edgeCache: true,\n responseSchema: ModulesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/modules/{id}',\n chain: 'modules',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['normalize'],\n edgeCache: true,\n responseSchema: ModulesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/tags',\n chain: 'tags',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['catId', 'limit', 'offset', 'orderBy', 'parentId', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/usergroups',\n chain: 'usergroups',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['orderBy', 'parentIdList'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/users',\n chain: 'users',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'accessLevelList',\n 'blocked',\n 'contactId',\n 'customerId',\n 'hasContactId',\n 'hasCustomerId',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/users',\n chain: 'users',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['accessLevelList', 'customerId', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/users/verify-password',\n chain: 'users.verifyPassword',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: UsersVerifyPasswordCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/users/{id}',\n chain: 'users',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/users/{id}',\n chain: 'users',\n action: 'update',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/users/{id}',\n chain: 'users',\n action: 'delete',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/users/{id}/doc',\n chain: 'users.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['id'],\n queryParams: ['includeShipTo'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/users/{id}/groups',\n chain: 'users.groups',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/users/{id}/groups',\n chain: 'users.groups',\n action: 'create',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/users/{id}/groups/{groupId}',\n chain: 'users.groups',\n action: 'get',\n aliases: [],\n pathParams: ['id', 'groupId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/users/{id}/groups/{groupId}',\n chain: 'users.groups',\n action: 'delete',\n aliases: [],\n pathParams: ['id', 'groupId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/users/{id}/trinity',\n chain: 'users.trinity',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for legacy service\n * Source: shared/specs/legacy.json\n * Generated: 2026-09-30T03:26:34Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /legacy/state params */\nexport const LegacyStateListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n twoLetterCode: v.optional(v.string()),\n});\n\n/** Schema for GET /legacy/state/{stateUid} params */\nexport const LegacyStateGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n twoLetterCode: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const CustomersTagsListDataSchema = v.array(\n v.looseObject({\n customerTagsUid: v.number(),\n customerId: v.number(),\n tag: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n })\n);\n\nexport const CustomersTagsCreateDataSchema = v.looseObject({\n customerTagsUid: v.number(),\n customerId: v.number(),\n tag: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n});\n\nexport const CustomersTagsGetDataSchema = CustomersTagsCreateDataSchema;\n\nexport const CustomersTagsUpdateDataSchema = CustomersTagsCreateDataSchema;\n\nexport const InvMastTagsListDataSchema = v.array(\n v.looseObject({\n invMastTagsUid: v.number(),\n invMastUid: v.number(),\n tag: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n })\n);\n\nexport const InvMastTagsCreateDataSchema = v.looseObject({\n invMastTagsUid: v.number(),\n invMastUid: v.number(),\n tag: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n});\n\nexport const InvMastTagsGetDataSchema = InvMastTagsCreateDataSchema;\n\nexport const InvMastTagsUpdateDataSchema = InvMastTagsCreateDataSchema;\n\nexport const InvMastWebDescListDataSchema = v.array(\n v.looseObject({\n invMastWebDescUid: v.number(),\n invMastUid: v.number(),\n webDesc1: v.nullable(v.string()),\n webDesc2: v.nullable(v.string()),\n webDesc3: v.nullable(v.string()),\n webDesc4: v.nullable(v.string()),\n webDescFull: v.nullable(v.string()),\n dateCreated: v.string(),\n active: v.nullable(v.number()),\n dateLastModified: v.string(),\n dateLastChecked: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n })\n);\n\nexport const InvMastWebDescCreateDataSchema = v.looseObject({\n invMastWebDescUid: v.number(),\n invMastUid: v.number(),\n webDesc1: v.nullable(v.string()),\n webDesc2: v.nullable(v.string()),\n webDesc3: v.nullable(v.string()),\n webDesc4: v.nullable(v.string()),\n webDescFull: v.nullable(v.string()),\n dateCreated: v.string(),\n active: v.nullable(v.number()),\n dateLastModified: v.string(),\n dateLastChecked: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n});\n\nexport const InvMastWebDescGetDataSchema = InvMastWebDescCreateDataSchema;\n\nexport const InvMastWebDescUpdateDataSchema = InvMastWebDescCreateDataSchema;\n\nexport const ItemCategoryGetDataSchema = v.looseObject({\n itemCategoryUid: v.number(),\n itemCategoryId: v.string(),\n itemCategoryDesc: v.string(),\n article: v.nullable(v.string()),\n boxFolderId: v.nullable(v.string()),\n masterCategoryFlag: v.string(),\n parentCategoryFlag: v.string(),\n displayOnWebFlag: v.string(),\n deleteFlag: v.string(),\n customerApproval: v.nullable(v.string()),\n dateLastModified: v.string(),\n dateLastChecked: v.string(),\n article2: v.nullable(v.string()),\n article3: v.nullable(v.string()),\n article4: v.nullable(v.string()),\n article5: v.nullable(v.string()),\n sampleItemId: v.nullable(v.string()),\n metaDesc: v.nullable(v.string()),\n title: v.nullable(v.string()),\n updateCd: v.number(),\n subCategoryImageFile: v.nullable(v.string()),\n lastMaintainedBy: v.string(),\n dateCreated: v.string(),\n createdBy: v.string(),\n catalogPage: v.nullable(v.string()),\n displayMasterProductFlag: v.string(),\n});\n\nexport const LegacyStateListDataSchema = v.array(\n v.looseObject({\n stateUid: v.number(),\n countryUid: v.nullable(v.number()),\n twoLetterCode: v.nullable(v.string()),\n stateName: v.nullable(v.string()),\n dateCreated: v.nullable(v.string()),\n createdBy: v.nullable(v.string()),\n dateLastModified: v.nullable(v.string()),\n lastMaintainedBy: v.nullable(v.string()),\n combinedFederalState1099No: v.nullable(v.number()),\n telecheckStateCode: v.nullable(v.number()),\n updateCd: v.number(),\n active: v.nullable(v.number()),\n taxRate: v.nullable(v.number()),\n dateLastChecked: v.nullable(v.string()),\n taxShipping: v.nullable(v.number()),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const LegacyStateGetDataSchema = v.looseObject({\n stateUid: v.number(),\n countryUid: v.nullable(v.number()),\n twoLetterCode: v.nullable(v.string()),\n stateName: v.nullable(v.string()),\n dateCreated: v.nullable(v.string()),\n createdBy: v.nullable(v.string()),\n dateLastModified: v.nullable(v.string()),\n lastMaintainedBy: v.nullable(v.string()),\n combinedFederalState1099No: v.nullable(v.number()),\n telecheckStateCode: v.nullable(v.number()),\n updateCd: v.number(),\n active: v.nullable(v.number()),\n taxRate: v.nullable(v.number()),\n dateLastChecked: v.nullable(v.string()),\n taxShipping: v.nullable(v.number()),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const LegacyStateUpdateDataSchema = LegacyStateGetDataSchema;\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for legacy service\n * Source: shared/specs/legacy.json\n * Generated: 2026-09-30T03:26:34Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n CustomersTagsCreateDataSchema,\n CustomersTagsGetDataSchema,\n CustomersTagsListDataSchema,\n CustomersTagsUpdateDataSchema,\n InvMastTagsCreateDataSchema,\n InvMastTagsGetDataSchema,\n InvMastTagsListDataSchema,\n InvMastTagsUpdateDataSchema,\n InvMastWebDescCreateDataSchema,\n InvMastWebDescGetDataSchema,\n InvMastWebDescListDataSchema,\n InvMastWebDescUpdateDataSchema,\n ItemCategoryGetDataSchema,\n LegacyStateGetDataSchema,\n LegacyStateListDataSchema,\n LegacyStateUpdateDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/customers/{customerId}/tags',\n chain: 'customers.tags',\n action: 'list',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CustomersTagsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/customers/{customerId}/tags',\n chain: 'customers.tags',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomersTagsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/customers/{customerId}/tags/{customerTagsUid}',\n chain: 'customers.tags',\n action: 'get',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CustomersTagsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/customers/{customerId}/tags/{customerTagsUid}',\n chain: 'customers.tags',\n action: 'update',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: CustomersTagsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/customers/{customerId}/tags/{customerTagsUid}',\n chain: 'customers.tags',\n action: 'delete',\n aliases: [],\n pathParams: ['customerId', 'customerTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/also-bought',\n chain: 'invMast.alsoBought',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/tags',\n chain: 'invMast.tags',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastTagsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast/{invMastUid}/tags',\n chain: 'invMast.tags',\n action: 'create',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastTagsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/tags/{invMastTagsUid}',\n chain: 'invMast.tags',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid', 'invMastTagsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastTagsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast/{invMastUid}/tags/{invMastTagsUid}',\n chain: 'invMast.tags',\n action: 'update',\n aliases: [],\n pathParams: ['invMastUid', 'invMastTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastTagsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast/{invMastUid}/tags/{invMastTagsUid}',\n chain: 'invMast.tags',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastUid', 'invMastTagsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/web-desc',\n chain: 'invMast.webDesc',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastWebDescListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast/{invMastUid}/web-desc',\n chain: 'invMast.webDesc',\n action: 'create',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastWebDescCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast/{invMastUid}/web-desc/{invMastWebDescUid}',\n chain: 'invMast.webDesc',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid', 'invMastWebDescUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastWebDescGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast/{invMastUid}/web-desc/{invMastWebDescUid}',\n chain: 'invMast.webDesc',\n action: 'update',\n aliases: [],\n pathParams: ['invMastUid', 'invMastWebDescUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastWebDescUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast/{invMastUid}/web-desc/{invMastWebDescUid}',\n chain: 'invMast.webDesc',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastUid', 'invMastWebDescUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-category/{itemCategoryUid}',\n chain: 'itemCategory',\n action: 'get',\n aliases: [],\n pathParams: ['itemCategoryUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ItemCategoryGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/legacy/state',\n chain: 'legacy.state',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'twoLetterCode'],\n edgeCache: true,\n responseSchema: LegacyStateListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/legacy/state',\n chain: 'legacy.state',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/legacy/state/{stateUid}',\n chain: 'legacy.state',\n action: 'get',\n aliases: [],\n pathParams: ['stateUid'],\n queryParams: ['twoLetterCode'],\n edgeCache: true,\n responseSchema: LegacyStateGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/legacy/state/{stateUid}',\n chain: 'legacy.state',\n action: 'update',\n aliases: [],\n pathParams: ['stateUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: LegacyStateUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/legacy/state/{stateUid}',\n chain: 'legacy.state',\n action: 'delete',\n aliases: [],\n pathParams: ['stateUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/orders/{id}/reset',\n chain: 'orders.reset',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for logistics service\n * Source: shared/specs/logistics.json\n * Generated: 2026-09-23T23:29:57Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /fedex/rates params */\nexport const FedexRatesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n fromAddress1: v.string(),\n fromCity: v.string(),\n fromCountryCode: v.optional(v.string()),\n fromPostalCode: v.string(),\n fromStateProvinceCode: v.string(),\n includeTransitTime: v.optional(v.string()),\n toAddress1: v.string(),\n toCity: v.string(),\n toCountryCode: v.optional(v.string()),\n toPostalCode: v.string(),\n toResidential: v.optional(v.boolean()),\n toStateProvinceCode: v.string(),\n weight: v.pipe(v.unknown(), v.transform(Number)),\n});\n\n/** Schema for GET /rts/brands params */\nexport const RtsBrandsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n search: v.optional(v.string()),\n});\n\n/** Schema for GET /rts/brands/{brandId}/machines params */\nexport const RtsBrandsMachinesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n search: v.optional(v.string()),\n});\n\n/** Schema for GET /rts/search/machines params */\nexport const RtsSearchMachinesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n q: v.string(),\n});\n\n/** Schema for GET /rts/tracks params */\nexport const RtsTracksListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n search: v.optional(v.string()),\n trackClass: v.optional(v.string()),\n});\n\n/** Schema for GET /shipping-methods params */\nexport const ShippingMethodsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n shippingMethodsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n shippingType: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /shipping-methods/{shippingMethodsUid} params */\nexport const ShippingMethodsGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n shippingMethodsId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /shipvia/rates params */\nexport const ShipviaRatesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n carriers: v.optional(v.string()),\n dimensionUnit: v.optional(v.string()),\n fromCity: v.optional(v.string()),\n fromCountry: v.optional(v.string()),\n fromPostalCode: v.string(),\n fromState: v.optional(v.string()),\n locationId: v.pipe(v.unknown(), v.transform(Number)),\n packageHeight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageLength: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageWidth: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n residential: v.optional(v.boolean()),\n serviceType: v.optional(v.string()),\n toCity: v.optional(v.string()),\n toCountry: v.optional(v.string()),\n toPostalCode: v.string(),\n toState: v.optional(v.string()),\n totalWeight: v.pipe(v.unknown(), v.transform(Number)),\n weightUnit: v.string(),\n});\n\n/** Schema for GET /shipvia/rates/ltl params */\nexport const ShipviaRatesLtlListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n carriers: v.optional(v.string()),\n commodityClass: v.string(),\n commodityDescription: v.string(),\n deliveryInstructions: v.optional(v.string()),\n dimensionUnit: v.optional(v.string()),\n fromCity: v.optional(v.string()),\n fromCountry: v.optional(v.string()),\n fromPostalCode: v.string(),\n fromState: v.optional(v.string()),\n isHazMat: v.optional(v.boolean()),\n locationId: v.pipe(v.unknown(), v.transform(Number)),\n packageHeight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageLength: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageWidth: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packagingType: v.string(),\n pickupInstructions: v.optional(v.string()),\n quantity: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n toCity: v.optional(v.string()),\n toCountry: v.optional(v.string()),\n toPostalCode: v.string(),\n toState: v.optional(v.string()),\n totalWeight: v.pipe(v.unknown(), v.transform(Number)),\n weightUnit: v.string(),\n});\n\n/** Schema for GET /speedship/freight params */\nexport const SpeedshipFreightListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n deliveryInstructions: v.optional(v.string()),\n dimensionUnit: v.string(),\n fromAddressLine: v.string(),\n fromCity: v.string(),\n fromCompanyName: v.string(),\n fromCountryCode: v.string(),\n fromFirstName: v.string(),\n fromLastName: v.string(),\n fromPhone: v.string(),\n fromPostalCode: v.string(),\n fromState: v.string(),\n handlingCharge: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n handlingChargeUnit: v.optional(v.string()),\n international: v.optional(v.boolean()),\n maxPalletWeight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageHeight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n packageLength: v.pipe(v.unknown(), v.transform(Number)),\n packageWidth: v.pipe(v.unknown(), v.transform(Number)),\n pickupInstructions: v.optional(v.string()),\n productType: v.string(),\n quantity: v.pipe(v.unknown(), v.transform(Number)),\n responseFormat: v.string(),\n toAddressLine: v.string(),\n toCity: v.string(),\n toCompanyName: v.string(),\n toCountryCode: v.string(),\n toFirstName: v.string(),\n toLastName: v.string(),\n toPhone: v.string(),\n toPostalCode: v.string(),\n toRegion: v.string(),\n totalWeight: v.pipe(v.unknown(), v.transform(Number)),\n weightUnit: v.string(),\n});\n\n/** Schema for GET /ups/rates params */\nexport const UPSRatesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n fromAddress1: v.string(),\n fromCity: v.string(),\n fromCountryCode: v.optional(v.string()),\n fromPostalCode: v.string(),\n fromStateProvinceCode: v.string(),\n includeTransitTime: v.optional(v.string()),\n maxPackageWeight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n toAddress1: v.string(),\n toCity: v.string(),\n toCountryCode: v.optional(v.string()),\n toPostalCode: v.string(),\n toStateProvinceCode: v.string(),\n weight: v.pipe(v.unknown(), v.transform(Number)),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for logistics service\n * Source: shared/specs/logistics.json\n * Generated: 2026-09-23T23:29:57Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/fedex/rates',\n chain: 'fedex.rates',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'fromAddress1',\n 'fromCity',\n 'fromCountryCode',\n 'fromPostalCode',\n 'fromStateProvinceCode',\n 'includeTransitTime',\n 'toAddress1',\n 'toCity',\n 'toCountryCode',\n 'toPostalCode',\n 'toResidential',\n 'toStateProvinceCode',\n 'weight',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/brands',\n chain: 'rts.brands',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['search'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/brands/{brandId}/machines',\n chain: 'rts.brands.machines',\n action: 'list',\n aliases: [],\n pathParams: ['brandId'],\n queryParams: ['search'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/machines/{machineId}/tracks',\n chain: 'rts.machines.tracks',\n action: 'list',\n aliases: [],\n pathParams: ['machineId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/search/machines',\n chain: 'rts.search.machines',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/track/{trackId}',\n chain: 'rts.track',\n action: 'get',\n aliases: [],\n pathParams: ['trackId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/rts/tracks',\n chain: 'rts.tracks',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['search', 'trackClass'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/shipping-methods',\n chain: 'shippingMethods',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'shippingMethodsId', 'shippingType', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/shipping-methods/{shippingMethodsUid}',\n chain: 'shippingMethods',\n action: 'get',\n aliases: [],\n pathParams: ['shippingMethodsUid'],\n queryParams: ['shippingMethodsId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/shipping-methods/{shippingMethodsUid}',\n chain: 'shippingMethods',\n action: 'update',\n aliases: [],\n pathParams: ['shippingMethodsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/shipping-methods/{shippingMethodsUid}',\n chain: 'shippingMethods',\n action: 'delete',\n aliases: [],\n pathParams: ['shippingMethodsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/shipvia/rates',\n chain: 'shipvia.rates',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'carriers',\n 'dimensionUnit',\n 'fromCity',\n 'fromCountry',\n 'fromPostalCode',\n 'fromState',\n 'locationId',\n 'packageHeight',\n 'packageLength',\n 'packageWidth',\n 'residential',\n 'serviceType',\n 'toCity',\n 'toCountry',\n 'toPostalCode',\n 'toState',\n 'totalWeight',\n 'weightUnit',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/shipvia/rates/ltl',\n chain: 'shipvia.rates.ltl',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'carriers',\n 'commodityClass',\n 'commodityDescription',\n 'deliveryInstructions',\n 'dimensionUnit',\n 'fromCity',\n 'fromCountry',\n 'fromPostalCode',\n 'fromState',\n 'isHazMat',\n 'locationId',\n 'packageHeight',\n 'packageLength',\n 'packageWidth',\n 'packagingType',\n 'pickupInstructions',\n 'quantity',\n 'toCity',\n 'toCountry',\n 'toPostalCode',\n 'toState',\n 'totalWeight',\n 'weightUnit',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/speedship/freight',\n chain: 'speedship.freight',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'deliveryInstructions',\n 'dimensionUnit',\n 'fromAddressLine',\n 'fromCity',\n 'fromCompanyName',\n 'fromCountryCode',\n 'fromFirstName',\n 'fromLastName',\n 'fromPhone',\n 'fromPostalCode',\n 'fromState',\n 'handlingCharge',\n 'handlingChargeUnit',\n 'international',\n 'maxPalletWeight',\n 'packageHeight',\n 'packageLength',\n 'packageWidth',\n 'pickupInstructions',\n 'productType',\n 'quantity',\n 'responseFormat',\n 'toAddressLine',\n 'toCity',\n 'toCompanyName',\n 'toCountryCode',\n 'toFirstName',\n 'toLastName',\n 'toPhone',\n 'toPostalCode',\n 'toRegion',\n 'totalWeight',\n 'weightUnit',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/ups/rates',\n chain: 'ups.rates',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'fromAddress1',\n 'fromCity',\n 'fromCountryCode',\n 'fromPostalCode',\n 'fromStateProvinceCode',\n 'includeTransitTime',\n 'maxPackageWeight',\n 'toAddress1',\n 'toCity',\n 'toCountryCode',\n 'toPostalCode',\n 'toStateProvinceCode',\n 'weight',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for open-search service\n * Source: shared/specs/open-search.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /item-search params */\nexport const ItemSearchListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n discontinuedAny: v.optional(v.string()),\n fields: v.optional(v.string()),\n filters: v.optional(v.string()),\n from: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n itemCategoryUidList: v.optional(v.string()),\n jobNumbers: v.optional(v.string()),\n operator: v.optional(v.string()),\n parentCategoryUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.string(),\n searchType: v.string(),\n size: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sort: v.optional(v.string()),\n sourceFieldsList: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /item-search-facets params */\nexport const ItemSearchFacetsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n classId5ExcludeList: v.optional(v.string()),\n classId5List: v.optional(v.string()),\n discontinuedAny: v.optional(v.string()),\n fields: v.optional(v.string()),\n filters: v.optional(v.string()),\n from: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n itemCategoryUidList: v.optional(v.string()),\n jobNumbers: v.optional(v.string()),\n operator: v.optional(v.string()),\n parentCategoryUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.string(),\n searchType: v.optional(v.string()),\n size: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sort: v.optional(v.string()),\n sourceFieldsList: v.optional(v.string()),\n stockStatus: v.optional(v.string()),\n tags: v.optional(v.string()),\n useBrandFolderDoc: v.optional(v.string()),\n variantFilter: v.optional(v.string()),\n});\n\n/** Schema for GET /item-search/attributes params */\nexport const ItemSearchAttributesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheSiteId: v.optional(v.string()),\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n filters: v.optional(v.string()),\n q: v.string(),\n searchType: v.string(),\n});\n\n/** Schema for GET /items params */\nexport const ItemsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n itemId: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n online: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /query-string-redirect params */\nexport const QueryStringRedirectListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /suggestions params */\nexport const SuggestionsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n processCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n query: v.optional(v.string()),\n queryStringUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /suggestions/suggest params */\nexport const SuggestionsSuggestListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const QueryStringRedirectListDataSchema = v.array(\n v.looseObject({\n queryStringRedirectUid: v.number(),\n queryStringUid: v.number(),\n queryStringRedirectLink: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n queryString: v.nullable(v.string()),\n })\n);\n\nexport const QueryStringRedirectCreateDataSchema = v.looseObject({\n queryStringRedirectUid: v.number(),\n queryStringUid: v.number(),\n queryStringRedirectLink: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n queryString: v.nullable(v.string()),\n});\n\nexport const QueryStringRedirectGetDataSchema = QueryStringRedirectCreateDataSchema;\n\nexport const QueryStringRedirectUpdateDataSchema = QueryStringRedirectCreateDataSchema;\n\nexport const QueryStringRedirectDeleteDataSchema = QueryStringRedirectCreateDataSchema;\n\nexport const SuggestionsListDataSchema = v.array(\n v.looseObject({\n suggestionsUid: v.number(),\n queryStringUid: v.number(),\n suggestionsString: v.string(),\n suggestionsMetaphone: v.nullable(v.string()),\n avgTotalResults: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const SuggestionsGetDataSchema = v.looseObject({\n suggestionsUid: v.number(),\n queryStringUid: v.number(),\n suggestionsString: v.string(),\n suggestionsMetaphone: v.nullable(v.string()),\n avgTotalResults: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for open-search service\n * Source: shared/specs/open-search.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n QueryStringRedirectCreateDataSchema,\n QueryStringRedirectDeleteDataSchema,\n QueryStringRedirectGetDataSchema,\n QueryStringRedirectListDataSchema,\n QueryStringRedirectUpdateDataSchema,\n SuggestionsGetDataSchema,\n SuggestionsListDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/item-search',\n chain: 'itemSearch',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'discontinuedAny',\n 'fields',\n 'filters',\n 'from',\n 'itemCategoryUidList',\n 'jobNumbers',\n 'operator',\n 'parentCategoryUid',\n 'q',\n 'searchType',\n 'size',\n 'sort',\n 'sourceFieldsList',\n 'stockStatus',\n 'tags',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-search-facets',\n chain: 'itemSearchFacets',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'classId5ExcludeList',\n 'classId5List',\n 'discontinuedAny',\n 'fields',\n 'filters',\n 'from',\n 'itemCategoryUidList',\n 'jobNumbers',\n 'operator',\n 'parentCategoryUid',\n 'q',\n 'searchType',\n 'size',\n 'sort',\n 'sourceFieldsList',\n 'stockStatus',\n 'tags',\n 'useBrandFolderDoc',\n 'variantFilter',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/item-search/attributes',\n chain: 'itemSearch.attributes',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['cacheSiteId', 'cacheTtl', 'filters', 'q', 'searchType'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/items',\n chain: 'items',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['itemId', 'limit', 'offset', 'online', 'statusCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/items/refresh',\n chain: 'items.refresh',\n action: 'update',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/items/{invMastUid}',\n chain: 'items',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/items/{invMastUid}',\n chain: 'items',\n action: 'update',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/items/{invMastUid}/refresh',\n chain: 'items.refresh',\n action: 'get',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/query-string-redirect',\n chain: 'queryStringRedirect',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: QueryStringRedirectListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/query-string-redirect',\n chain: 'queryStringRedirect',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: QueryStringRedirectCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/query-string-redirect/{queryStringRedirectUid}',\n chain: 'queryStringRedirect',\n action: 'get',\n aliases: [],\n pathParams: ['queryStringRedirectUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: QueryStringRedirectGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/query-string-redirect/{queryStringRedirectUid}',\n chain: 'queryStringRedirect',\n action: 'update',\n aliases: [],\n pathParams: ['queryStringRedirectUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: QueryStringRedirectUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/query-string-redirect/{queryStringRedirectUid}',\n chain: 'queryStringRedirect',\n action: 'delete',\n aliases: [],\n pathParams: ['queryStringRedirectUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: QueryStringRedirectDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/suggestions',\n chain: 'suggestions',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'processCd', 'query', 'queryStringUid', 'statusCd'],\n edgeCache: true,\n responseSchema: SuggestionsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/suggestions/suggest',\n chain: 'suggestions.suggest',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/suggestions/{suggestionsUid}',\n chain: 'suggestions',\n action: 'get',\n aliases: [],\n pathParams: ['suggestionsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: SuggestionsGetDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated Valibot schemas for orders service\n * Source: shared/specs/orders.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /oe-hdr/lookup params */\nexport const OeHdrLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n class1Id: v.optional(v.string()),\n completed: v.optional(v.string()),\n dateOrderCompleted: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n salesrepId: v.optional(v.string()),\n taker: v.optional(v.string()),\n});\n\n/** Schema for GET /oe-hdr/{orderNo}/doc params */\nexport const OeHdrDocListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n postalCode: v.optional(v.string()),\n});\n\n/** Schema for GET /pick-tickets params */\nexport const PickTicketsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n deleteFlag: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n locationId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n orderNo: v.optional(v.string()),\n printedFlag: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /pick-tickets/{pickTicketNo}/lines params */\nexport const PickTicketsLinesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /po-hdr params */\nexport const PoHdrListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n complete: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n locationId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /po-line params */\nexport const PoLineListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n complete: v.optional(v.string()),\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n poNo: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const OeHdrSalesrepOeHdrDocListDataSchema = v.looseObject({\n orderNo: v.string(),\n customerId: v.number(),\n customerName: v.nullable(v.string()),\n jobName: v.nullable(v.string()),\n orderDate: v.nullable(v.string()),\n requestedDate: v.nullable(v.string()),\n cancelFlag: v.nullable(v.string()),\n completed: v.nullable(v.string()),\n deleteFlag: v.string(),\n poNo: v.nullable(v.string()),\n ship2Name: v.nullable(v.string()),\n ship2Add1: v.nullable(v.string()),\n ship2Add2: v.nullable(v.string()),\n ship2Add3: v.nullable(v.string()),\n ship2City: v.nullable(v.string()),\n ship2State: v.nullable(v.string()),\n ship2Zip: v.nullable(v.string()),\n ship2Country: v.nullable(v.string()),\n ship2EmailAddress: v.nullable(v.string()),\n shipToPhone: v.nullable(v.string()),\n deliveryInstructions: v.nullable(v.string()),\n class1Id: v.nullable(v.string()),\n class2Id: v.nullable(v.string()),\n class3Id: v.nullable(v.string()),\n class4Id: v.nullable(v.string()),\n class5Id: v.nullable(v.string()),\n contactId: v.nullable(v.string()),\n webReferenceNo: v.nullable(v.string()),\n orderStatus: v.string(),\n taker: v.nullable(v.string()),\n contactFirstName: v.nullable(v.string()),\n contactLastName: v.nullable(v.string()),\n carrierId: v.nullable(v.number()),\n carrierName: v.string(),\n lines: v.array(\n v.looseObject({\n invMastUid: v.number(),\n cancelFlag: v.nullable(v.string()),\n complete: v.nullable(v.string()),\n deleteFlag: v.string(),\n disposition: v.nullable(v.string()),\n itemDesc: v.nullable(v.string()),\n displayDesc: v.nullable(v.string()),\n itemId: v.string(),\n shortCode: v.nullable(v.string()),\n lineNo: v.number(),\n orderNo: v.string(),\n originalQtyOrdered: v.nullable(v.number()),\n qtyAllocated: v.nullable(v.number()),\n qtyCanceled: v.nullable(v.number()),\n qtyInvoiced: v.nullable(v.number()),\n qtyOnPickTickets: v.nullable(v.number()),\n qtyOrdered: v.nullable(v.number()),\n unitOfMeasure: v.nullable(v.string()),\n unitQuantity: v.number(),\n unitSize: v.number(),\n unitPrice: v.nullable(v.number()),\n extendedPrice: v.nullable(v.number()),\n oeLineUid: v.number(),\n parentOeLineUid: v.number(),\n trinityItemId: v.nullable(v.string()),\n trinityItemDesc: v.nullable(v.string()),\n agentItemId: v.nullable(v.string()),\n agentItemDesc: v.nullable(v.string()),\n })\n ),\n pickTickets: v.array(\n v.looseObject({\n pickTicketNo: v.number(),\n trackingNo: v.nullable(v.string()),\n orderNo: v.string(),\n invoiceNo: v.nullable(v.number()),\n shipDate: v.nullable(v.string()),\n printedFlag: v.nullable(v.string()),\n printDate: v.nullable(v.string()),\n instructions: v.nullable(v.string()),\n carrierId: v.nullable(v.number()),\n carrierName: v.string(),\n lines: v.array(\n v.looseObject({\n lineNumber: v.number(),\n shipQuantity: v.nullable(v.number()),\n qtyRequested: v.nullable(v.number()),\n invMastUid: v.number(),\n itemId: v.string(),\n itemDesc: v.nullable(v.string()),\n displayDesc: v.nullable(v.string()),\n trinityItemId: v.nullable(v.string()),\n trinityItemDesc: v.nullable(v.string()),\n agentItemId: v.nullable(v.string()),\n agentItemDesc: v.nullable(v.string()),\n })\n ),\n })\n ),\n});\n\nexport const OeHdrDocListDataSchema = OeHdrSalesrepOeHdrDocListDataSchema;\n\nexport const PickTicketsListDataSchema = v.array(\n v.looseObject({\n pickTicketNo: v.number(),\n orderNo: v.string(),\n companyId: v.string(),\n carrierId: v.nullable(v.number()),\n trackingNo: v.nullable(v.string()),\n instructions: v.nullable(v.string()),\n shipDate: v.nullable(v.string()),\n invoiceNo: v.nullable(v.number()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n locationId: v.number(),\n deleteFlag: v.string(),\n updateCd: v.number(),\n printedFlag: v.nullable(v.string()),\n confirmableRowStatusFlag: v.number(),\n directShipment: v.nullable(v.string()),\n auxiliary: v.string(),\n printDate: v.nullable(v.string()),\n oePickTicketTypeCd: v.nullable(v.number()),\n })\n);\n\nexport const PickTicketsGetDataSchema = v.looseObject({\n pickTicketNo: v.number(),\n orderNo: v.string(),\n companyId: v.string(),\n carrierId: v.nullable(v.number()),\n trackingNo: v.nullable(v.string()),\n instructions: v.nullable(v.string()),\n shipDate: v.nullable(v.string()),\n invoiceNo: v.nullable(v.number()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n locationId: v.number(),\n deleteFlag: v.string(),\n updateCd: v.number(),\n printedFlag: v.nullable(v.string()),\n confirmableRowStatusFlag: v.number(),\n directShipment: v.nullable(v.string()),\n auxiliary: v.string(),\n printDate: v.nullable(v.string()),\n oePickTicketTypeCd: v.nullable(v.number()),\n});\n\nexport const PickTicketsLinesListDataSchema = v.array(\n v.looseObject({\n pickTicketNo: v.number(),\n lineNumber: v.number(),\n companyId: v.string(),\n printQuantity: v.nullable(v.number()),\n shipQuantity: v.nullable(v.number()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n unitOfMeasure: v.string(),\n unitSize: v.number(),\n unitQuantity: v.number(),\n oeLineNo: v.number(),\n qtyRequested: v.nullable(v.number()),\n qtyToPick: v.nullable(v.number()),\n invMastUid: v.number(),\n invoiceLineUid: v.nullable(v.number()),\n qtyScanned: v.nullable(v.number()),\n boxNumber: v.nullable(v.string()),\n originalQtyToPick: v.nullable(v.number()),\n updateCd: v.number(),\n })\n);\n\nexport const PickTicketsLinesGetDataSchema = v.looseObject({\n pickTicketNo: v.number(),\n lineNumber: v.number(),\n companyId: v.string(),\n printQuantity: v.nullable(v.number()),\n shipQuantity: v.nullable(v.number()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n unitOfMeasure: v.string(),\n unitSize: v.number(),\n unitQuantity: v.number(),\n oeLineNo: v.number(),\n qtyRequested: v.nullable(v.number()),\n qtyToPick: v.nullable(v.number()),\n invMastUid: v.number(),\n invoiceLineUid: v.nullable(v.number()),\n qtyScanned: v.nullable(v.number()),\n boxNumber: v.nullable(v.string()),\n originalQtyToPick: v.nullable(v.number()),\n updateCd: v.number(),\n});\n\nexport const PoLineListDataSchema = v.array(\n v.looseObject({\n poNo: v.number(),\n qtyOrdered: v.number(),\n qtyReceived: v.number(),\n receivedDate: v.nullable(v.string()),\n unitPrice: v.number(),\n companyNo: v.string(),\n mfgPartNo: v.nullable(v.string()),\n deleteFlag: v.string(),\n dateDue: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n nextDueInPoCost: v.nullable(v.number()),\n complete: v.string(),\n vouchCompleted: v.string(),\n cancelFlag: v.nullable(v.string()),\n inBoundCurryId: v.nullable(v.number()),\n accountNo: v.nullable(v.string()),\n qtyToVouch: v.nullable(v.number()),\n closedFlag: v.nullable(v.string()),\n itemDescription: v.nullable(v.string()),\n unitOfMeasure: v.nullable(v.string()),\n unitSize: v.number(),\n unitQuantity: v.number(),\n lineNo: v.number(),\n pricingBookId: v.nullable(v.string()),\n pricingBookItemId: v.nullable(v.string()),\n pricingBookSupplierId: v.nullable(v.number()),\n pricingBookDiscGrpId: v.nullable(v.string()),\n pricingBookEffectiveDate: v.nullable(v.string()),\n combinable: v.nullable(v.string()),\n calcType: v.nullable(v.string()),\n calcValue: v.nullable(v.number()),\n requiredDate: v.nullable(v.string()),\n nextBreak: v.nullable(v.number()),\n nextUtPrice: v.nullable(v.number()),\n baseUtPrice: v.number(),\n priceEdit: v.nullable(v.string()),\n newItem: v.nullable(v.string()),\n quantityChanged: v.nullable(v.string()),\n pricingUnit: v.nullable(v.string()),\n pricingUnitSize: v.nullable(v.number()),\n extendedDesc: v.nullable(v.string()),\n unitPriceDisplay: v.number(),\n invMastUid: v.number(),\n excludeFromLeadTime: v.string(),\n sourceType: v.nullable(v.number()),\n expDateUpdates: v.nullable(v.number()),\n poLineUid: v.number(),\n ediNewStatus: v.string(),\n lineType: v.nullable(v.string()),\n contractNumber: v.nullable(v.string()),\n createdBy: v.nullable(v.string()),\n parentPoLineNo: v.nullable(v.number()),\n supplierShipDate: v.nullable(v.string()),\n enteredAsCode: v.nullable(v.string()),\n gporRunUid: v.nullable(v.number()),\n purchasePricingPageUid: v.nullable(v.number()),\n expediteFlag: v.nullable(v.string()),\n originalUnitPriceDisplay: v.nullable(v.number()),\n retrievedByWms: v.nullable(v.string()),\n expediteNotes: v.nullable(v.string()),\n expediteFollowupFlag: v.string(),\n desiredReceiptLocationId: v.nullable(v.number()),\n acknowledgedDate: v.nullable(v.string()),\n countryOfOrigin: v.nullable(v.string()),\n b3Qty: v.number(),\n qtyReady: v.nullable(v.number()),\n qtyReadyUnitSize: v.nullable(v.number()),\n qtyReadyUom: v.nullable(v.string()),\n unitQtyReady: v.nullable(v.number()),\n bulkBuyFlag: v.nullable(v.string()),\n cadPurchaseCost: v.nullable(v.number()),\n listPriceMultiplier: v.nullable(v.number()),\n carrierStatus: v.nullable(v.string()),\n expectedShipDate: v.nullable(v.string()),\n dateDueLastModified: v.nullable(v.string()),\n acknowledged: v.nullable(v.string()),\n updateCd: v.number(),\n })\n);\n\nexport const PoLineGetDataSchema = v.looseObject({\n poNo: v.number(),\n qtyOrdered: v.number(),\n qtyReceived: v.number(),\n receivedDate: v.nullable(v.string()),\n unitPrice: v.number(),\n companyNo: v.string(),\n mfgPartNo: v.nullable(v.string()),\n deleteFlag: v.string(),\n dateDue: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n nextDueInPoCost: v.nullable(v.number()),\n complete: v.string(),\n vouchCompleted: v.string(),\n cancelFlag: v.nullable(v.string()),\n inBoundCurryId: v.nullable(v.number()),\n accountNo: v.nullable(v.string()),\n qtyToVouch: v.nullable(v.number()),\n closedFlag: v.nullable(v.string()),\n itemDescription: v.nullable(v.string()),\n unitOfMeasure: v.nullable(v.string()),\n unitSize: v.number(),\n unitQuantity: v.number(),\n lineNo: v.number(),\n pricingBookId: v.nullable(v.string()),\n pricingBookItemId: v.nullable(v.string()),\n pricingBookSupplierId: v.nullable(v.number()),\n pricingBookDiscGrpId: v.nullable(v.string()),\n pricingBookEffectiveDate: v.nullable(v.string()),\n combinable: v.nullable(v.string()),\n calcType: v.nullable(v.string()),\n calcValue: v.nullable(v.number()),\n requiredDate: v.nullable(v.string()),\n nextBreak: v.nullable(v.number()),\n nextUtPrice: v.nullable(v.number()),\n baseUtPrice: v.number(),\n priceEdit: v.nullable(v.string()),\n newItem: v.nullable(v.string()),\n quantityChanged: v.nullable(v.string()),\n pricingUnit: v.nullable(v.string()),\n pricingUnitSize: v.nullable(v.number()),\n extendedDesc: v.nullable(v.string()),\n unitPriceDisplay: v.number(),\n invMastUid: v.number(),\n excludeFromLeadTime: v.string(),\n sourceType: v.nullable(v.number()),\n expDateUpdates: v.nullable(v.number()),\n poLineUid: v.number(),\n ediNewStatus: v.string(),\n lineType: v.nullable(v.string()),\n contractNumber: v.nullable(v.string()),\n createdBy: v.nullable(v.string()),\n parentPoLineNo: v.nullable(v.number()),\n supplierShipDate: v.nullable(v.string()),\n enteredAsCode: v.nullable(v.string()),\n gporRunUid: v.nullable(v.number()),\n purchasePricingPageUid: v.nullable(v.number()),\n expediteFlag: v.nullable(v.string()),\n originalUnitPriceDisplay: v.nullable(v.number()),\n retrievedByWms: v.nullable(v.string()),\n expediteNotes: v.nullable(v.string()),\n expediteFollowupFlag: v.string(),\n desiredReceiptLocationId: v.nullable(v.number()),\n acknowledgedDate: v.nullable(v.string()),\n countryOfOrigin: v.nullable(v.string()),\n b3Qty: v.number(),\n qtyReady: v.nullable(v.number()),\n qtyReadyUnitSize: v.nullable(v.number()),\n qtyReadyUom: v.nullable(v.string()),\n unitQtyReady: v.nullable(v.number()),\n bulkBuyFlag: v.nullable(v.string()),\n cadPurchaseCost: v.nullable(v.number()),\n listPriceMultiplier: v.nullable(v.number()),\n carrierStatus: v.nullable(v.string()),\n expectedShipDate: v.nullable(v.string()),\n dateDueLastModified: v.nullable(v.string()),\n acknowledged: v.nullable(v.string()),\n updateCd: v.number(),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for orders service\n * Source: shared/specs/orders.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n OeHdrDocListDataSchema,\n OeHdrSalesrepOeHdrDocListDataSchema,\n PickTicketsGetDataSchema,\n PickTicketsLinesGetDataSchema,\n PickTicketsLinesListDataSchema,\n PickTicketsListDataSchema,\n PoLineGetDataSchema,\n PoLineListDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/invoice-hdr/{invoiceNo}/reprint',\n chain: 'invoiceHdr.reprint',\n action: 'list',\n aliases: [],\n pathParams: ['invoiceNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/oe-hdr-salesrep/{salesrepId}/oe-hdr',\n chain: 'oeHdrSalesrep.oeHdr',\n action: 'list',\n aliases: [],\n pathParams: ['salesrepId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/oe-hdr-salesrep/{salesrepId}/oe-hdr/{orderNo}/doc',\n chain: 'oeHdrSalesrep.oeHdr.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['salesrepId', 'orderNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: OeHdrSalesrepOeHdrDocListDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/oe-hdr/lookup',\n chain: 'oeHdr.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'class1Id',\n 'completed',\n 'dateOrderCompleted',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n 'salesrepId',\n 'taker',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/oe-hdr/{orderNo}/doc',\n chain: 'oeHdr.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['orderNo'],\n queryParams: ['postalCode'],\n edgeCache: true,\n responseSchema: OeHdrDocListDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/pick-tickets',\n chain: 'pickTickets',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'companyId',\n 'deleteFlag',\n 'limit',\n 'locationId',\n 'offset',\n 'orderBy',\n 'orderNo',\n 'printedFlag',\n 'q',\n ],\n edgeCache: true,\n responseSchema: PickTicketsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/pick-tickets/{pickTicketNo}',\n chain: 'pickTickets',\n action: 'get',\n aliases: [],\n pathParams: ['pickTicketNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PickTicketsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/pick-tickets/{pickTicketNo}/lines',\n chain: 'pickTickets.lines',\n action: 'list',\n aliases: [],\n pathParams: ['pickTicketNo'],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PickTicketsLinesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/pick-tickets/{pickTicketNo}/lines/{lineNumber}',\n chain: 'pickTickets.lines',\n action: 'get',\n aliases: [],\n pathParams: ['pickTicketNo', 'lineNumber'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PickTicketsLinesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/po-hdr',\n chain: 'poHdr',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['complete', 'limit', 'locationId', 'offset', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/po-hdr/scan',\n chain: 'poHdr.scan',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/po-hdr/{poNo}',\n chain: 'poHdr',\n action: 'get',\n aliases: [],\n pathParams: ['poNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/po-hdr/{poNo}/doc',\n chain: 'poHdr.doc',\n action: 'list',\n aliases: ['get'],\n pathParams: ['poNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/po-line',\n chain: 'poLine',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['complete', 'invMastUid', 'limit', 'offset', 'orderBy', 'poNo'],\n edgeCache: true,\n responseSchema: PoLineListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/po-line/{poLineUid}',\n chain: 'poLine',\n action: 'get',\n aliases: [],\n pathParams: ['poLineUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PoLineGetDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated Valibot schemas for p21-apis service\n * Source: shared/specs/p21-apis.json\n * Generated: 2026-09-23T23:30:01Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /trans-category/{categoryUid} params */\nexport const TransCategoryGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n categoryId: v.optional(v.string()),\n});\n\n/** Schema for PUT /trans-category/{categoryUid} params */\nexport const TransCategoryUpdateParamsSchema = v.looseObject({\n categoryId: v.optional(v.string()),\n});\n\n/** Schema for DELETE /trans-category/{categoryUid} params */\nexport const TransCategoryDeleteParamsSchema = v.looseObject({\n categoryId: v.optional(v.string()),\n});\n\n/** Schema for GET /trans-company/{companyUid} params */\nexport const TransCompanyGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n});\n\n/** Schema for PUT /trans-company/{companyUid} params */\nexport const TransCompanyUpdateParamsSchema = v.looseObject({\n companyId: v.optional(v.string()),\n});\n\n/** Schema for DELETE /trans-company/{companyUid} params */\nexport const TransCompanyDeleteParamsSchema = v.looseObject({\n companyId: v.optional(v.string()),\n});\n\n/** Schema for GET /trans-user/{usersUid} params */\nexport const TransUserGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n userId: v.optional(v.string()),\n});\n\n/** Schema for PUT /trans-user/{usersUid} params */\nexport const TransUserUpdateParamsSchema = v.looseObject({\n userId: v.optional(v.string()),\n});\n\n/** Schema for DELETE /trans-user/{usersUid} params */\nexport const TransUserDeleteParamsSchema = v.looseObject({\n userId: v.optional(v.string()),\n});\n\n/** Schema for GET /trans-web-display-type/{webDisplayTypeUid} params */\nexport const TransWebDisplayTypeGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n webDisplayTypeId: v.optional(v.string()),\n});\n\n/** Schema for PUT /trans-web-display-type/{webDisplayTypeUid} params */\nexport const TransWebDisplayTypeUpdateParamsSchema = v.looseObject({\n webDisplayTypeId: v.optional(v.string()),\n});\n\n/** Schema for DELETE /trans-web-display-type/{webDisplayTypeUid} params */\nexport const TransWebDisplayTypeDeleteParamsSchema = v.looseObject({\n webDisplayTypeId: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for p21-apis service\n * Source: shared/specs/p21-apis.json\n * Generated: 2026-09-23T23:30:01Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/entity-contacts/refresh',\n chain: 'entityContacts.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/entity-customers/refresh',\n chain: 'entityCustomers.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/trans-category',\n chain: 'transCategory',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-category/{categoryUid}',\n chain: 'transCategory',\n action: 'get',\n aliases: [],\n pathParams: ['categoryUid'],\n queryParams: ['categoryId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/trans-category/{categoryUid}',\n chain: 'transCategory',\n action: 'update',\n aliases: [],\n pathParams: ['categoryUid'],\n queryParams: ['categoryId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/trans-category/{categoryUid}',\n chain: 'transCategory',\n action: 'delete',\n aliases: [],\n pathParams: ['categoryUid'],\n queryParams: ['categoryId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/trans-company',\n chain: 'transCompany',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-company/{companyUid}',\n chain: 'transCompany',\n action: 'get',\n aliases: [],\n pathParams: ['companyUid'],\n queryParams: ['companyId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/trans-company/{companyUid}',\n chain: 'transCompany',\n action: 'update',\n aliases: [],\n pathParams: ['companyUid'],\n queryParams: ['companyId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/trans-company/{companyUid}',\n chain: 'transCompany',\n action: 'delete',\n aliases: [],\n pathParams: ['companyUid'],\n queryParams: ['companyId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-purchase-order-receipt/{poNo}',\n chain: 'transPurchaseOrderReceipt',\n action: 'get',\n aliases: [],\n pathParams: ['poNo'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/trans-purchase-order-receipt/{poNo}',\n chain: 'transPurchaseOrderReceipt',\n action: 'update',\n aliases: [],\n pathParams: ['poNo'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/trans-user',\n chain: 'transUser',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-user/{usersUid}',\n chain: 'transUser',\n action: 'get',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: ['userId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/trans-user/{usersUid}',\n chain: 'transUser',\n action: 'update',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: ['userId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/trans-user/{usersUid}',\n chain: 'transUser',\n action: 'delete',\n aliases: [],\n pathParams: ['usersUid'],\n queryParams: ['userId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/trans-web-display-type',\n chain: 'transWebDisplayType',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-web-display-type/defaults',\n chain: 'transWebDisplayType.defaults',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-web-display-type/definition',\n chain: 'transWebDisplayType.definition',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/trans-web-display-type/{webDisplayTypeUid}',\n chain: 'transWebDisplayType',\n action: 'get',\n aliases: [],\n pathParams: ['webDisplayTypeUid'],\n queryParams: ['webDisplayTypeId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/trans-web-display-type/{webDisplayTypeUid}',\n chain: 'transWebDisplayType',\n action: 'update',\n aliases: [],\n pathParams: ['webDisplayTypeUid'],\n queryParams: ['webDisplayTypeId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/trans-web-display-type/{webDisplayTypeUid}',\n chain: 'transWebDisplayType',\n action: 'delete',\n aliases: [],\n pathParams: ['webDisplayTypeUid'],\n queryParams: ['webDisplayTypeId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for p21-core service\n * Source: shared/specs/p21-core.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /address params */\nexport const AddressListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n carrierFlag: v.optional(v.string()),\n defaultCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n enabledCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /address/{id}/corp-address params */\nexport const AddressCorpAddressListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /address/{id}/enable params */\nexport const AddressEnableGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n enabledCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /cash-drawer params */\nexport const CashDrawerListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n drawerOpen: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /code-p21 params */\nexport const CodeP21ListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n codeNoList: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /company params */\nexport const CompanyListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /company/{companyUid} params */\nexport const CompanyGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n});\n\n/** Schema for GET /freight-code params */\nexport const FreightCodeListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n companyId: v.optional(v.string()),\n freightCodeId: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /freight-code/{freightCodeUid} params */\nexport const FreightCodeGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n freightCodeId: v.optional(v.string()),\n});\n\n/** Schema for GET /location params */\nexport const LocationListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n deleteFlag: v.optional(v.string()),\n includeAddress: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /location/{locationId} params */\nexport const LocationGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n includeAddress: v.optional(v.string()),\n});\n\n/** Schema for GET /payment-types params */\nexport const PaymentTypesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const CashDrawerListDataSchema = v.array(\n v.looseObject({\n cashDrawerId: v.string(),\n companyId: v.string(),\n cashDrawerDescription: v.string(),\n currentSequenceNo: v.number(),\n openingBalance: v.nullable(v.number()),\n withdrawals: v.nullable(v.number()),\n deposits: v.nullable(v.number()),\n currentBalance: v.number(),\n drawerOpen: v.string(),\n bankNo: v.nullable(v.number()),\n cashOnHandAccountNumber: v.string(),\n deleteFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n cashCardLoad: v.nullable(v.number()),\n cashDrawerUid: v.number(),\n locIdForBranchConflict: v.nullable(v.number()),\n defaultCloseBranchId: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const CashDrawerGetDataSchema = v.looseObject({\n cashDrawerId: v.string(),\n companyId: v.string(),\n cashDrawerDescription: v.string(),\n currentSequenceNo: v.number(),\n openingBalance: v.nullable(v.number()),\n withdrawals: v.nullable(v.number()),\n deposits: v.nullable(v.number()),\n currentBalance: v.number(),\n drawerOpen: v.string(),\n bankNo: v.nullable(v.number()),\n cashOnHandAccountNumber: v.string(),\n deleteFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n cashCardLoad: v.nullable(v.number()),\n cashDrawerUid: v.number(),\n locIdForBranchConflict: v.nullable(v.number()),\n defaultCloseBranchId: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const CodeP21ListDataSchema = v.array(\n v.looseObject({\n codeUid: v.number(),\n codeNo: v.number(),\n languageId: v.string(),\n codeDescription: v.string(),\n rowStatusFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n codeSubDescription: v.nullable(v.string()),\n updateCd: v.number(),\n })\n);\n\nexport const CodeP21GetDataSchema = v.looseObject({\n codeUid: v.number(),\n codeNo: v.number(),\n languageId: v.string(),\n codeDescription: v.string(),\n rowStatusFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n codeSubDescription: v.nullable(v.string()),\n updateCd: v.number(),\n});\n\nexport const CompanyListDataSchema = v.array(\n v.looseObject({\n companyUid: v.number(),\n companyId: v.string(),\n companyName: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n deleteFlag: v.string(),\n updateCd: v.number(),\n lastMaintainedBy: v.string(),\n addressId: v.nullable(v.number()),\n defaultSalesLocationId: v.nullable(v.number()),\n freightCodeUid: v.nullable(v.number()),\n upsAccountNo: v.nullable(v.string()),\n defaultSourcePriceCd: v.nullable(v.number()),\n defaultMultiplier: v.nullable(v.number()),\n })\n);\n\nexport const CompanyGetDataSchema = v.looseObject({\n companyUid: v.number(),\n companyId: v.string(),\n companyName: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n deleteFlag: v.string(),\n updateCd: v.number(),\n lastMaintainedBy: v.string(),\n addressId: v.nullable(v.number()),\n defaultSalesLocationId: v.nullable(v.number()),\n freightCodeUid: v.nullable(v.number()),\n upsAccountNo: v.nullable(v.string()),\n defaultSourcePriceCd: v.nullable(v.number()),\n defaultMultiplier: v.nullable(v.number()),\n});\n\nexport const FreightCodeListDataSchema = v.array(\n v.looseObject({\n freightCodeUid: v.number(),\n companyId: v.string(),\n freightCd: v.string(),\n freightDesc: v.string(),\n incomingFreight: v.string(),\n outgoingFreight: v.string(),\n incomingReduceCommission: v.string(),\n outgoingIncreaseCommission: v.string(),\n prorateMethodCodeNo: v.number(),\n taxGroupId: v.nullable(v.string()),\n revenueAccountNo: v.string(),\n rowStatus: v.number(),\n dateCreated: v.nullable(v.string()),\n dateLastModified: v.nullable(v.string()),\n lastMaintainedBy: v.string(),\n freeFreightBasisCd: v.nullable(v.number()),\n freeInFreightMin: v.nullable(v.number()),\n freeOutFreightMin: v.nullable(v.number()),\n directShipFreeFreightFlag: v.nullable(v.string()),\n freeInFreightMinWeb: v.nullable(v.number()),\n freeOutFreightMinWeb: v.nullable(v.number()),\n handlingChargeOptionCd: v.nullable(v.number()),\n externalTaxProductCodeIn: v.nullable(v.string()),\n externalTaxProductCodeOut: v.nullable(v.string()),\n incomingIncreaseCommission: v.nullable(v.string()),\n paySpecialFlag: v.nullable(v.string()),\n skipFirstShipmentFlag: v.nullable(v.string()),\n excludeFromSalesMasterInquiry: v.string(),\n deductibleFlag: v.nullable(v.string()),\n freeColdFreight: v.string(),\n freeHazmatFreight: v.string(),\n freeExpressFreight: v.string(),\n freeBulkFreight: v.string(),\n fedexPaymentMethod: v.nullable(v.number()),\n excludeDiscountedFreight: v.string(),\n freeFreightDefaultFlag: v.nullable(v.string()),\n outgoingAdjustCommissionByProfitFlag: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const FreightCodeGetDataSchema = v.looseObject({\n freightCodeUid: v.number(),\n companyId: v.string(),\n freightCd: v.string(),\n freightDesc: v.string(),\n incomingFreight: v.string(),\n outgoingFreight: v.string(),\n incomingReduceCommission: v.string(),\n outgoingIncreaseCommission: v.string(),\n prorateMethodCodeNo: v.number(),\n taxGroupId: v.nullable(v.string()),\n revenueAccountNo: v.string(),\n rowStatus: v.number(),\n dateCreated: v.nullable(v.string()),\n dateLastModified: v.nullable(v.string()),\n lastMaintainedBy: v.string(),\n freeFreightBasisCd: v.nullable(v.number()),\n freeInFreightMin: v.nullable(v.number()),\n freeOutFreightMin: v.nullable(v.number()),\n directShipFreeFreightFlag: v.nullable(v.string()),\n freeInFreightMinWeb: v.nullable(v.number()),\n freeOutFreightMinWeb: v.nullable(v.number()),\n handlingChargeOptionCd: v.nullable(v.number()),\n externalTaxProductCodeIn: v.nullable(v.string()),\n externalTaxProductCodeOut: v.nullable(v.string()),\n incomingIncreaseCommission: v.nullable(v.string()),\n paySpecialFlag: v.nullable(v.string()),\n skipFirstShipmentFlag: v.nullable(v.string()),\n excludeFromSalesMasterInquiry: v.string(),\n deductibleFlag: v.nullable(v.string()),\n freeColdFreight: v.string(),\n freeHazmatFreight: v.string(),\n freeExpressFreight: v.string(),\n freeBulkFreight: v.string(),\n fedexPaymentMethod: v.nullable(v.number()),\n excludeDiscountedFreight: v.string(),\n freeFreightDefaultFlag: v.nullable(v.string()),\n outgoingAdjustCommissionByProfitFlag: v.nullable(v.string()),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const LocationListDataSchema = v.array(\n v.looseObject({\n locationId: v.number(),\n companyId: v.string(),\n defaultBranchId: v.nullable(v.string()),\n deleteFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n locationName: v.nullable(v.string()),\n lotBinIntegration: v.nullable(v.string()),\n fedexLocAcctNo: v.nullable(v.string()),\n fedexMeterNo: v.nullable(v.string()),\n upsAccountNo: v.nullable(v.string()),\n upsPickupTypeCd: v.nullable(v.number()),\n upsCustomerTypeCd: v.nullable(v.number()),\n upsOltAccessKey: v.nullable(v.string()),\n upsOltPassword: v.nullable(v.string()),\n upsOltUserId: v.nullable(v.string()),\n distributionCenter: v.string(),\n updateCd: v.number(),\n })\n);\n\nexport const LocationGetDataSchema = v.looseObject({\n locationId: v.number(),\n companyId: v.string(),\n defaultBranchId: v.nullable(v.string()),\n deleteFlag: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n lastMaintainedBy: v.string(),\n locationName: v.nullable(v.string()),\n lotBinIntegration: v.nullable(v.string()),\n fedexLocAcctNo: v.nullable(v.string()),\n fedexMeterNo: v.nullable(v.string()),\n upsAccountNo: v.nullable(v.string()),\n upsPickupTypeCd: v.nullable(v.number()),\n upsCustomerTypeCd: v.nullable(v.number()),\n upsOltAccessKey: v.nullable(v.string()),\n upsOltPassword: v.nullable(v.string()),\n upsOltUserId: v.nullable(v.string()),\n distributionCenter: v.string(),\n updateCd: v.number(),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for p21-core service\n * Source: shared/specs/p21-core.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n CashDrawerGetDataSchema,\n CashDrawerListDataSchema,\n CodeP21GetDataSchema,\n CodeP21ListDataSchema,\n CompanyGetDataSchema,\n CompanyListDataSchema,\n FreightCodeGetDataSchema,\n FreightCodeListDataSchema,\n LocationGetDataSchema,\n LocationListDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/address',\n chain: 'address',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'carrierFlag',\n 'defaultCd',\n 'enabledCd',\n 'limit',\n 'offset',\n 'orderBy',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/address/refresh',\n chain: 'address.refresh',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/address/{id}',\n chain: 'address',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/address/{id}/corp-address',\n chain: 'address.corpAddress',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/address/{id}/default',\n chain: 'address.default',\n action: 'list',\n aliases: [],\n pathParams: ['id'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/address/{id}/enable',\n chain: 'address.enable',\n action: 'get',\n aliases: [],\n pathParams: ['id'],\n queryParams: ['enabledCd'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/cash-drawer',\n chain: 'cashDrawer',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['companyId', 'drawerOpen', 'limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: CashDrawerListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/cash-drawer/{cashDrawerUid}',\n chain: 'cashDrawer',\n action: 'get',\n aliases: [],\n pathParams: ['cashDrawerUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CashDrawerGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/code-p21',\n chain: 'codeP21',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['codeNoList', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: CodeP21ListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/code-p21/{codeUid}',\n chain: 'codeP21',\n action: 'get',\n aliases: [],\n pathParams: ['codeUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: CodeP21GetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/company',\n chain: 'company',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['companyId', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: CompanyListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/company/{companyUid}',\n chain: 'company',\n action: 'get',\n aliases: [],\n pathParams: ['companyUid'],\n queryParams: ['companyId'],\n edgeCache: true,\n responseSchema: CompanyGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/freight-code',\n chain: 'freightCode',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['companyId', 'freightCodeId', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: FreightCodeListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/freight-code/{freightCodeUid}',\n chain: 'freightCode',\n action: 'get',\n aliases: [],\n pathParams: ['freightCodeUid'],\n queryParams: ['freightCodeId'],\n edgeCache: true,\n responseSchema: FreightCodeGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/location',\n chain: 'location',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['deleteFlag', 'includeAddress', 'limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: LocationListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/location/{locationId}',\n chain: 'location',\n action: 'get',\n aliases: [],\n pathParams: ['locationId'],\n queryParams: ['includeAddress'],\n edgeCache: true,\n responseSchema: LocationGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/payment-types',\n chain: 'paymentTypes',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for p21-pim service\n * Source: shared/specs/p21-pim.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /inv-mast-ext params */\nexport const InvMastExtListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast-files params */\nexport const InvMastFilesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-mast-text params */\nexport const InvMastTextListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n webDisplayTypeUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /items/{invMastUid}/suggest-display-desc params */\nexport const ItemsSuggestDisplayDescListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n model: v.optional(v.string()),\n});\n\n/** Schema for GET /items/{invMastUid}/suggest-web-desc params */\nexport const ItemsSuggestWebDescListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n model: v.optional(v.string()),\n});\n\n/** Schema for GET /podcasts params */\nexport const PodcastsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const InvMastExtListDataSchema = v.array(\n v.looseObject({\n invMastExtUid: v.number(),\n invMastUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n upcOrEan: v.nullable(v.string()),\n upcOrEanId: v.nullable(v.string()),\n upcOrEanPrefix: v.nullable(v.string()),\n upcOrEanItem: v.nullable(v.string()),\n attributeGroupUid: v.nullable(v.number()),\n brandName: v.nullable(v.string()),\n manufacturerName: v.nullable(v.string()),\n partNumber: v.nullable(v.string()),\n metaTitle: v.nullable(v.string()),\n metaDescription: v.nullable(v.string()),\n metaKeywords: v.nullable(v.string()),\n })\n);\n\nexport const InvMastExtCreateDataSchema = v.looseObject({\n invMastExtUid: v.number(),\n invMastUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n upcOrEan: v.nullable(v.string()),\n upcOrEanId: v.nullable(v.string()),\n upcOrEanPrefix: v.nullable(v.string()),\n upcOrEanItem: v.nullable(v.string()),\n attributeGroupUid: v.nullable(v.number()),\n brandName: v.nullable(v.string()),\n manufacturerName: v.nullable(v.string()),\n partNumber: v.nullable(v.string()),\n metaTitle: v.nullable(v.string()),\n metaDescription: v.nullable(v.string()),\n metaKeywords: v.nullable(v.string()),\n});\n\nexport const InvMastExtGetDataSchema = InvMastExtCreateDataSchema;\n\nexport const InvMastExtUpdateDataSchema = InvMastExtCreateDataSchema;\n\nexport const InvMastFilesListDataSchema = v.array(\n v.looseObject({\n invMastFilesUid: v.number(),\n invMastUid: v.number(),\n fileName: v.string(),\n filePath: v.string(),\n linkArea: v.number(),\n rowStatusFlag: v.number(),\n sequenceNo: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n fileDesc: v.string(),\n })\n);\n\nexport const InvMastFilesCreateDataSchema = v.looseObject({\n invMastFilesUid: v.number(),\n invMastUid: v.number(),\n fileName: v.string(),\n filePath: v.string(),\n linkArea: v.number(),\n rowStatusFlag: v.number(),\n sequenceNo: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n fileDesc: v.string(),\n});\n\nexport const InvMastFilesGetDataSchema = InvMastFilesCreateDataSchema;\n\nexport const InvMastFilesUpdateDataSchema = InvMastFilesCreateDataSchema;\n\nexport const InvMastTextListDataSchema = v.array(\n v.looseObject({\n invMastTextUid: v.number(),\n invMastUid: v.number(),\n sequenceNo: v.number(),\n textValue: v.string(),\n displayOnWebFlag: v.string(),\n webDisplayTypeUid: v.number(),\n textTypeCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const InvMastTextCreateDataSchema = v.looseObject({\n invMastTextUid: v.number(),\n invMastUid: v.number(),\n sequenceNo: v.number(),\n textValue: v.string(),\n displayOnWebFlag: v.string(),\n webDisplayTypeUid: v.number(),\n textTypeCd: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const InvMastTextGetDataSchema = InvMastTextCreateDataSchema;\n\nexport const InvMastTextUpdateDataSchema = InvMastTextCreateDataSchema;\n\nexport const PodcastsListDataSchema = v.array(\n v.looseObject({\n podcastsUid: v.number(),\n title: v.nullable(v.string()),\n path: v.nullable(v.string()),\n transcript: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const PodcastsGetDataSchema = v.looseObject({\n podcastsUid: v.number(),\n title: v.nullable(v.string()),\n path: v.nullable(v.string()),\n transcript: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for p21-pim service\n * Source: shared/specs/p21-pim.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n InvMastExtCreateDataSchema,\n InvMastExtGetDataSchema,\n InvMastExtListDataSchema,\n InvMastExtUpdateDataSchema,\n InvMastFilesCreateDataSchema,\n InvMastFilesGetDataSchema,\n InvMastFilesListDataSchema,\n InvMastFilesUpdateDataSchema,\n InvMastTextCreateDataSchema,\n InvMastTextGetDataSchema,\n InvMastTextListDataSchema,\n InvMastTextUpdateDataSchema,\n PodcastsGetDataSchema,\n PodcastsListDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/inv-mast-ext',\n chain: 'invMastExt',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['invMastUid', 'limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: InvMastExtListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast-ext',\n chain: 'invMastExt',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastExtCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast-ext/{invMastExtUid}',\n chain: 'invMastExt',\n action: 'get',\n aliases: [],\n pathParams: ['invMastExtUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastExtGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast-ext/{invMastExtUid}',\n chain: 'invMastExt',\n action: 'update',\n aliases: [],\n pathParams: ['invMastExtUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastExtUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast-ext/{invMastExtUid}',\n chain: 'invMastExt',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastExtUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast-files',\n chain: 'invMastFiles',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['invMastUid', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: InvMastFilesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast-files',\n chain: 'invMastFiles',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastFilesCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast-files/{invMastFilesUid}',\n chain: 'invMastFiles',\n action: 'get',\n aliases: [],\n pathParams: ['invMastFilesUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastFilesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast-files/{invMastFilesUid}',\n chain: 'invMastFiles',\n action: 'update',\n aliases: [],\n pathParams: ['invMastFilesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastFilesUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast-files/{invMastFilesUid}',\n chain: 'invMastFiles',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastFilesUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-mast-text',\n chain: 'invMastText',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['invMastUid', 'limit', 'offset', 'orderBy', 'statusCd', 'webDisplayTypeUid'],\n edgeCache: true,\n responseSchema: InvMastTextListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-mast-text',\n chain: 'invMastText',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastTextCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-mast-text/{invMastTextUid}',\n chain: 'invMastText',\n action: 'get',\n aliases: [],\n pathParams: ['invMastTextUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvMastTextGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-mast-text/{invMastTextUid}',\n chain: 'invMastText',\n action: 'update',\n aliases: [],\n pathParams: ['invMastTextUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvMastTextUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-mast-text/{invMastTextUid}',\n chain: 'invMastText',\n action: 'delete',\n aliases: [],\n pathParams: ['invMastTextUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/items/{invMastUid}/suggest-display-desc',\n chain: 'items.suggestDisplayDesc',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'model'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/items/{invMastUid}/suggest-web-desc',\n chain: 'items.suggestWebDesc',\n action: 'list',\n aliases: [],\n pathParams: ['invMastUid'],\n queryParams: ['limit', 'model'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/podcasts',\n chain: 'podcasts',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: PodcastsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/podcasts',\n chain: 'podcasts',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/podcasts/{podcastsUid}',\n chain: 'podcasts',\n action: 'get',\n aliases: [],\n pathParams: ['podcastsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PodcastsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/podcasts/{podcastsUid}',\n chain: 'podcasts',\n action: 'update',\n aliases: [],\n pathParams: ['podcastsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/podcasts/{podcastsUid}',\n chain: 'podcasts',\n action: 'delete',\n aliases: [],\n pathParams: ['podcastsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for p21-sism service\n * Source: shared/specs/p21-sism.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /import params */\nexport const ImportListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n excludeState: v.optional(v.string()),\n importState: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n referenceNo: v.optional(v.string()),\n sourceId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sourceName: v.optional(v.string()),\n});\n\n/** Schema for GET /import/daily-summary params */\nexport const ImportDailySummaryListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n days: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /import/recent params */\nexport const ImportRecentListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n createdFrom: v.optional(v.string()),\n createdOn: v.optional(v.string()),\n createdTo: v.optional(v.string()),\n excludeState: v.optional(v.string()),\n hours: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n importState: v.optional(v.string()),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sourceId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n sourceName: v.optional(v.string()),\n});\n\n/** Schema for GET /import/stuck params */\nexport const ImportStuckListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n hours: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const ImportDailySummaryListDataSchema = v.looseObject({\n date: v.string(),\n total: v.number(),\n initial: v.number(),\n processing: v.number(),\n processingCoupon: v.number(),\n processCoupon: v.number(),\n validate: v.number(),\n validating: v.number(),\n validated: v.number(),\n processed: v.number(),\n hold: v.number(),\n delivering: v.number(),\n delivered: v.number(),\n importing: v.number(),\n imported: v.number(),\n redelivered: v.number(),\n invalid: v.number(),\n failed: v.number(),\n error: v.number(),\n cancelled: v.number(),\n stopped: v.number(),\n skipped: v.number(),\n});\n\nexport const ImportGetDataSchema = v.looseObject({\n importUid: v.number(),\n scheduledImportMasterUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n sourceName: v.nullable(v.string()),\n sourceId: v.number(),\n importState: v.string(),\n jsonData: v.nullable(v.string()),\n importStatusCd: v.number(),\n importResults: v.nullable(v.string()),\n referenceNo: v.nullable(v.string()),\n});\n\nexport const ImportUpdateDataSchema = ImportGetDataSchema;\n\nexport const ImportDeleteDataSchema = ImportGetDataSchema;\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for p21-sism service\n * Source: shared/specs/p21-sism.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n ImportDailySummaryListDataSchema,\n ImportDeleteDataSchema,\n ImportGetDataSchema,\n ImportUpdateDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/import',\n chain: 'import',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'createdFrom',\n 'createdOn',\n 'createdTo',\n 'excludeState',\n 'importState',\n 'limit',\n 'offset',\n 'orderBy',\n 'q',\n 'referenceNo',\n 'sourceId',\n 'sourceName',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/import/daily-summary',\n chain: 'import.dailySummary',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['days'],\n edgeCache: true,\n responseSchema: ImportDailySummaryListDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/import/recent',\n chain: 'import.recent',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'createdFrom',\n 'createdOn',\n 'createdTo',\n 'excludeState',\n 'hours',\n 'importState',\n 'limit',\n 'sourceId',\n 'sourceName',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/import/stuck',\n chain: 'import.stuck',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['hours', 'limit'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/import/{importUid}',\n chain: 'import',\n action: 'get',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ImportGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/import/{importUid}',\n chain: 'import',\n action: 'update',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ImportUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/import/{importUid}',\n chain: 'import',\n action: 'delete',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ImportDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/import/{importUid}/imp-oe-hdr',\n chain: 'import.impOeHdr',\n action: 'list',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/import/{importUid}/imp-oe-hdr',\n chain: 'import.impOeHdr',\n action: 'update',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/import/{importUid}/imp-oe-hdr-salesrep',\n chain: 'import.impOeHdrSalesrep',\n action: 'list',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/import/{importUid}/imp-oe-hdr-salesrep',\n chain: 'import.impOeHdrSalesrep',\n action: 'update',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/import/{importUid}/imp-oe-hdr-web',\n chain: 'import.impOeHdrWeb',\n action: 'list',\n aliases: [],\n pathParams: ['importUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/scheduled-import-master/{scheduledImportMasterUid}/metadata/sftp',\n chain: 'scheduledImportMaster.metadata.sftp',\n action: 'create',\n aliases: [],\n pathParams: ['scheduledImportMasterUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for payments service\n * Source: shared/specs/payments.json\n * Generated: 2026-09-23T23:30:05Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /moneris/pre-auth params */\nexport const MonerisPreAuthListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n amount: v.pipe(v.unknown(), v.transform(Number)),\n ccNumber: v.string(),\n expDate: v.string(),\n orderId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for GET /moneris/pre-auth-complete params */\nexport const MonerisPreAuthCompleteListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n amount: v.pipe(v.unknown(), v.transform(Number)),\n orderId: v.string(),\n testMode: v.optional(v.boolean()),\n txnNumber: v.string(),\n});\n\n/** Schema for POST /paypal/authorization/capture params */\nexport const PaypalAuthorizationCaptureCreateParamsSchema = v.looseObject({\n amount: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n authorizationId: v.string(),\n finalCapture: v.optional(v.boolean()),\n invoiceId: v.optional(v.string()),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paypal/authorization/void params */\nexport const PaypalAuthorizationVoidCreateParamsSchema = v.looseObject({\n authorizationId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paypal/capture/refund params */\nexport const PaypalCaptureRefundCreateParamsSchema = v.looseObject({\n amount: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n captureId: v.string(),\n invoiceId: v.optional(v.string()),\n noteToPayer: v.optional(v.string()),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paypal/order params */\nexport const PaypalOrderCreateParamsSchema = v.looseObject({\n amount: v.pipe(v.unknown(), v.transform(Number)),\n cancelUrl: v.optional(v.string()),\n currencyCode: v.optional(v.string()),\n intent: v.string(),\n invoiceId: v.optional(v.string()),\n returnUrl: v.optional(v.string()),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for GET /paypal/order-return params */\nexport const PaypalOrderReturnListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n payerId: v.optional(v.string()),\n siteId: v.string(),\n testMode: v.optional(v.boolean()),\n token: v.string(),\n});\n\n/** Schema for POST /paypal/order/authorize params */\nexport const PaypalOrderAuthorizeCreateParamsSchema = v.looseObject({\n orderId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paypal/order/capture params */\nexport const PaypalOrderCaptureCreateParamsSchema = v.looseObject({\n orderId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for GET /paypal/order/details params */\nexport const PaypalOrderDetailsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n orderId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for GET /paypal/refund params */\nexport const PaypalRefundListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n refundId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paypal/webhook params */\nexport const PaypalWebhookCreateParamsSchema = v.looseObject({\n siteId: v.string(),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paytrace/authorization params */\nexport const PaytraceAuthorizationCreateParamsSchema = v.looseObject({\n amount: v.pipe(v.unknown(), v.transform(Number)),\n billingAddress: v.optional(v.string()),\n creditCard: v.string(),\n csc: v.optional(v.string()),\n invoiceId: v.optional(v.string()),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paytrace/capture params */\nexport const PaytraceCaptureCreateParamsSchema = v.looseObject({\n amount: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n testMode: v.optional(v.boolean()),\n transactionId: v.string(),\n});\n\n/** Schema for POST /paytrace/refund params */\nexport const PaytraceRefundCreateParamsSchema = v.looseObject({\n amount: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n testMode: v.optional(v.boolean()),\n transactionId: v.string(),\n});\n\n/** Schema for POST /paytrace/sale params */\nexport const PaytraceSaleCreateParamsSchema = v.looseObject({\n amount: v.pipe(v.unknown(), v.transform(Number)),\n billingAddress: v.optional(v.string()),\n creditCard: v.string(),\n csc: v.optional(v.string()),\n invoiceId: v.optional(v.string()),\n testMode: v.optional(v.boolean()),\n});\n\n/** Schema for POST /paytrace/void params */\nexport const PaytraceVoidCreateParamsSchema = v.looseObject({\n testMode: v.optional(v.boolean()),\n transactionId: v.string(),\n});\n\n/** Schema for GET /unified/account-query params */\nexport const UnifiedAccountQueryListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.string(),\n mode: v.optional(v.string()),\n transactionSetupId: v.string(),\n});\n\n/** Schema for GET /unified/billing-update params */\nexport const UnifiedBillingUpdateListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n address1: v.string(),\n address2: v.optional(v.string()),\n city: v.string(),\n mode: v.optional(v.string()),\n state: v.string(),\n transactionSetupId: v.string(),\n zip: v.string(),\n});\n\n/** Schema for GET /unified/card-info params */\nexport const UnifiedCardInfoListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n mode: v.optional(v.string()),\n transactionSetupId: v.string(),\n});\n\n/** Schema for GET /unified/surcharge params */\nexport const UnifiedSurchargeListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n amount: v.string(),\n country: v.string(),\n customerId: v.string(),\n fromState: v.string(),\n mode: v.optional(v.string()),\n paymentAccountId: v.string(),\n toState: v.string(),\n});\n\n/** Schema for GET /unified/transaction-response params */\nexport const UnifiedTransactionResponseListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n siteId: v.string(),\n});\n\n/** Schema for GET /unified/transaction-setup params */\nexport const UnifiedTransactionSetupListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.string(),\n mode: v.optional(v.string()),\n});\n\n/** Schema for GET /unified/validate params */\nexport const UnifiedValidateListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.string(),\n mode: v.optional(v.string()),\n transactionSetupId: v.string(),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for payments service\n * Source: shared/specs/payments.json\n * Generated: 2026-09-23T23:30:05Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'POST',\n path: '/element/payment',\n chain: 'element.payment',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/moneris/pre-auth',\n chain: 'moneris.preAuth',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'ccNumber', 'expDate', 'orderId', 'testMode'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/moneris/pre-auth-complete',\n chain: 'moneris.preAuthComplete',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'orderId', 'testMode', 'txnNumber'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/authorization/capture',\n chain: 'paypal.authorization.capture',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'authorizationId', 'finalCapture', 'invoiceId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/authorization/void',\n chain: 'paypal.authorization.void',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['authorizationId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/capture/refund',\n chain: 'paypal.capture.refund',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'captureId', 'invoiceId', 'noteToPayer', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/order',\n chain: 'paypal.order',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'amount',\n 'cancelUrl',\n 'currencyCode',\n 'intent',\n 'invoiceId',\n 'returnUrl',\n 'testMode',\n ],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/paypal/order-return',\n chain: 'paypal.orderReturn',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['payerId', 'siteId', 'testMode', 'token'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/order/authorize',\n chain: 'paypal.order.authorize',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['orderId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/order/capture',\n chain: 'paypal.order.capture',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['orderId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/paypal/order/details',\n chain: 'paypal.order.details',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['orderId', 'testMode'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/paypal/refund',\n chain: 'paypal.refund',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['refundId', 'testMode'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paypal/webhook',\n chain: 'paypal.webhook',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['siteId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paytrace/authorization',\n chain: 'paytrace.authorization',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'billingAddress', 'creditCard', 'csc', 'invoiceId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paytrace/capture',\n chain: 'paytrace.capture',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'testMode', 'transactionId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paytrace/refund',\n chain: 'paytrace.refund',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'testMode', 'transactionId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paytrace/sale',\n chain: 'paytrace.sale',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['amount', 'billingAddress', 'creditCard', 'csc', 'invoiceId', 'testMode'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/paytrace/void',\n chain: 'paytrace.void',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: ['testMode', 'transactionId'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/account-query',\n chain: 'unified.accountQuery',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'mode', 'transactionSetupId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/billing-update',\n chain: 'unified.billingUpdate',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['address1', 'address2', 'city', 'mode', 'state', 'transactionSetupId', 'zip'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/card-info',\n chain: 'unified.cardInfo',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['mode', 'transactionSetupId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/surcharge',\n chain: 'unified.surcharge',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'amount',\n 'country',\n 'customerId',\n 'fromState',\n 'mode',\n 'paymentAccountId',\n 'toState',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/transaction-response',\n chain: 'unified.transactionResponse',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['siteId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/transaction-setup',\n chain: 'unified.transactionSetup',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'mode'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/unified/validate',\n chain: 'unified.validate',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'mode', 'transactionSetupId'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for pricing service\n * Source: shared/specs/pricing.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /job-price-hdr params */\nexport const JobPriceHdrListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n});\n\n/** Schema for GET /job-price-hdr/{jobPriceHdrUid}/lines params */\nexport const JobPriceHdrLinesListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n invMastUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /price-engine params */\nexport const PriceEngineListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheSiteId: v.optional(v.string()),\n cacheTtl: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n cartItems: v.optional(v.string()),\n companyId: v.optional(v.string()),\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n itemId: v.string(),\n quantity: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n shipToId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n unitOfMeasure: v.optional(v.string()),\n});\n\n/** Schema for GET /web-pricing params */\nexport const WebPricingListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /web-pricing/{webPricingUid}/customers params */\nexport const WebPricingCustomersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const JobPriceHdrListDataSchema = v.array(\n v.looseObject({\n jobPriceHdrUid: v.number(),\n jobNo: v.string(),\n jobDescription: v.nullable(v.string()),\n companyId: v.string(),\n customerId: v.nullable(v.number()),\n salesLocId: v.nullable(v.number()),\n contractNo: v.nullable(v.string()),\n contactId: v.nullable(v.string()),\n startDate: v.string(),\n endDate: v.string(),\n shipToId: v.nullable(v.number()),\n approved: v.nullable(v.string()),\n cancelled: v.nullable(v.string()),\n taker: v.string(),\n poNo: v.nullable(v.string()),\n rowStatusFlag: v.number(),\n dateLastModified: v.string(),\n dateCreated: v.string(),\n lastMaintainedBy: v.string(),\n corpAddressId: v.nullable(v.number()),\n salesrepId: v.nullable(v.string()),\n currencyLineUid: v.nullable(v.number()),\n currencyConversion: v.string(),\n consignmentFlag: v.string(),\n contractTypeCd: v.number(),\n extendedDesc: v.nullable(v.string()),\n noOfPeriods: v.nullable(v.number()),\n cadChaContractCd: v.nullable(v.number()),\n cadChaSupplierId: v.nullable(v.number()),\n cadChaQuoteNo: v.nullable(v.string()),\n cadChaLocationId: v.nullable(v.number()),\n anniversaryDate: v.nullable(v.string()),\n useTotesFlag: v.nullable(v.string()),\n handHeldAddFlag: v.nullable(v.string()),\n updateCd: v.number(),\n })\n);\n\nexport const JobPriceHdrGetDataSchema = v.looseObject({\n jobPriceHdrUid: v.number(),\n jobNo: v.string(),\n jobDescription: v.nullable(v.string()),\n companyId: v.string(),\n customerId: v.nullable(v.number()),\n salesLocId: v.nullable(v.number()),\n contractNo: v.nullable(v.string()),\n contactId: v.nullable(v.string()),\n startDate: v.string(),\n endDate: v.string(),\n shipToId: v.nullable(v.number()),\n approved: v.nullable(v.string()),\n cancelled: v.nullable(v.string()),\n taker: v.string(),\n poNo: v.nullable(v.string()),\n rowStatusFlag: v.number(),\n dateLastModified: v.string(),\n dateCreated: v.string(),\n lastMaintainedBy: v.string(),\n corpAddressId: v.nullable(v.number()),\n salesrepId: v.nullable(v.string()),\n currencyLineUid: v.nullable(v.number()),\n currencyConversion: v.string(),\n consignmentFlag: v.string(),\n contractTypeCd: v.number(),\n extendedDesc: v.nullable(v.string()),\n noOfPeriods: v.nullable(v.number()),\n cadChaContractCd: v.nullable(v.number()),\n cadChaSupplierId: v.nullable(v.number()),\n cadChaQuoteNo: v.nullable(v.string()),\n cadChaLocationId: v.nullable(v.number()),\n anniversaryDate: v.nullable(v.string()),\n useTotesFlag: v.nullable(v.string()),\n handHeldAddFlag: v.nullable(v.string()),\n updateCd: v.number(),\n});\n\nexport const JobPriceHdrLinesListDataSchema = v.array(\n v.looseObject({\n jobPriceLineUid: v.number(),\n jobPriceHdrUid: v.number(),\n invMastUid: v.nullable(v.number()),\n uom: v.nullable(v.string()),\n unitSize: v.nullable(v.number()),\n pricingMethod: v.nullable(v.number()),\n sourcePrice: v.nullable(v.number()),\n price: v.nullable(v.number()),\n qtyOrdered: v.nullable(v.number()),\n qtyMaximum: v.nullable(v.number()),\n otherCostTypeCd: v.nullable(v.number()),\n otherCostValue: v.nullable(v.number()),\n otherCostSourceCd: v.nullable(v.number()),\n otherCostCalcMethodCd: v.nullable(v.number()),\n otherCostCalcValue: v.nullable(v.number()),\n commissionCostTypeCd: v.nullable(v.number()),\n commissionCostValue: v.nullable(v.number()),\n commissionCostSourceCd: v.nullable(v.number()),\n commissionCostCalcMethodCd: v.nullable(v.number()),\n commissionCostCalcValue: v.nullable(v.number()),\n rowStatusFlag: v.number(),\n dateLastModified: v.string(),\n dateCreated: v.string(),\n lastMaintainedBy: v.string(),\n multiplier: v.nullable(v.number()),\n lineNo: v.number(),\n sourceLocationId: v.nullable(v.number()),\n customerPartNo: v.nullable(v.string()),\n expirationDate: v.nullable(v.string()),\n vendorAuthNo: v.nullable(v.string()),\n poCost: v.nullable(v.number()),\n currencyId: v.nullable(v.number()),\n discountGroupId: v.nullable(v.string()),\n custPoNo: v.nullable(v.string()),\n itemCategoryUid: v.nullable(v.number()),\n subCategoryUid: v.nullable(v.number()),\n productGroupId: v.nullable(v.string()),\n terminalId: v.nullable(v.number()),\n contractLineCostPageUid: v.nullable(v.number()),\n contractLinePricePageUid: v.nullable(v.number()),\n budgetCd: v.nullable(v.string()),\n itemRevisionUid: v.nullable(v.number()),\n lineStartDate: v.nullable(v.string()),\n initialCommitmentAmount: v.nullable(v.number()),\n commitmentAmount: v.nullable(v.number()),\n totalCommitmentAmount: v.nullable(v.number()),\n pickFee: v.nullable(v.number()),\n cadPurchaseCost: v.nullable(v.number()),\n startingVirtualInventoryQty: v.nullable(v.number()),\n snapshotCost: v.nullable(v.number()),\n minimumMccCode: v.nullable(v.string()),\n commissionClassId: v.nullable(v.string()),\n commissionOverridePercent: v.nullable(v.number()),\n updateCd: v.number(),\n })\n);\n\nexport const JobPriceHdrLinesGetDataSchema = v.looseObject({\n jobPriceLineUid: v.number(),\n jobPriceHdrUid: v.number(),\n invMastUid: v.nullable(v.number()),\n uom: v.nullable(v.string()),\n unitSize: v.nullable(v.number()),\n pricingMethod: v.nullable(v.number()),\n sourcePrice: v.nullable(v.number()),\n price: v.nullable(v.number()),\n qtyOrdered: v.nullable(v.number()),\n qtyMaximum: v.nullable(v.number()),\n otherCostTypeCd: v.nullable(v.number()),\n otherCostValue: v.nullable(v.number()),\n otherCostSourceCd: v.nullable(v.number()),\n otherCostCalcMethodCd: v.nullable(v.number()),\n otherCostCalcValue: v.nullable(v.number()),\n commissionCostTypeCd: v.nullable(v.number()),\n commissionCostValue: v.nullable(v.number()),\n commissionCostSourceCd: v.nullable(v.number()),\n commissionCostCalcMethodCd: v.nullable(v.number()),\n commissionCostCalcValue: v.nullable(v.number()),\n rowStatusFlag: v.number(),\n dateLastModified: v.string(),\n dateCreated: v.string(),\n lastMaintainedBy: v.string(),\n multiplier: v.nullable(v.number()),\n lineNo: v.number(),\n sourceLocationId: v.nullable(v.number()),\n customerPartNo: v.nullable(v.string()),\n expirationDate: v.nullable(v.string()),\n vendorAuthNo: v.nullable(v.string()),\n poCost: v.nullable(v.number()),\n currencyId: v.nullable(v.number()),\n discountGroupId: v.nullable(v.string()),\n custPoNo: v.nullable(v.string()),\n itemCategoryUid: v.nullable(v.number()),\n subCategoryUid: v.nullable(v.number()),\n productGroupId: v.nullable(v.string()),\n terminalId: v.nullable(v.number()),\n contractLineCostPageUid: v.nullable(v.number()),\n contractLinePricePageUid: v.nullable(v.number()),\n budgetCd: v.nullable(v.string()),\n itemRevisionUid: v.nullable(v.number()),\n lineStartDate: v.nullable(v.string()),\n initialCommitmentAmount: v.nullable(v.number()),\n commitmentAmount: v.nullable(v.number()),\n totalCommitmentAmount: v.nullable(v.number()),\n pickFee: v.nullable(v.number()),\n cadPurchaseCost: v.nullable(v.number()),\n startingVirtualInventoryQty: v.nullable(v.number()),\n snapshotCost: v.nullable(v.number()),\n minimumMccCode: v.nullable(v.string()),\n commissionClassId: v.nullable(v.string()),\n commissionOverridePercent: v.nullable(v.number()),\n updateCd: v.number(),\n});\n\nexport const PriceEngineListDataSchema = v.looseObject({\n unitPrice: v.number(),\n pricedFrom: v.union([\n v.picklist([\n 'jobPricing',\n 'sourceCd',\n 'libraryPrice',\n 'libraryMultiplier',\n 'defaultCompanyPrice',\n ]),\n v.boolean(),\n ]),\n priceType: v.union([v.picklist(['J', 'S', 'L', 'C']), v.boolean()]),\n jobPrice: v.union([v.number(), v.boolean()]),\n listPrice: v.number(),\n customer: v.looseObject({\n customerId: v.number(),\n valid: v.boolean(),\n sourcePriceCd: v.union([v.number(), v.boolean()]),\n sourcePriceDesc: v.nullable(v.string()),\n pricingMethodCd: v.nullable(v.number()),\n pricingMethodDesc: v.nullable(v.string()),\n hasJobPricing: v.boolean(),\n jobPricingEnabled: v.boolean(),\n corpAddressId: v.nullable(v.number()),\n corpAddressJobCount: v.number(),\n customerShipToJobCount: v.number(),\n }),\n item: v.looseObject({\n itemId: v.string(),\n valid: v.boolean(),\n invMastUid: v.nullable(v.number()),\n quantity: v.number(),\n unitOfMeasure: v.nullable(v.string()),\n }),\n options: v.array(v.unknown()),\n messages: v.array(v.string()),\n jobNo: v.optional(v.nullable(v.string())),\n jobPriceHdrUid: v.optional(v.nullable(v.number())),\n contractNo: v.optional(v.nullable(v.string())),\n libraryPriceData: v.optional(\n v.nullable(\n v.union([\n v.looseObject({\n unitPrice: v.union([v.number(), v.boolean()]),\n sourcePrice: v.nullable(v.number()),\n quantity: v.number(),\n pricePageUid: v.number(),\n pricePageDescription: v.string(),\n pricePageCdType: v.number(),\n pricePageCdDesc: v.string(),\n effectiveDate: v.string(),\n expirationDate: v.string(),\n itemId: v.string(),\n invMastUid: v.number(),\n pricingMethodCd: v.number(),\n pricingMethodCdDesc: v.string(),\n sourcePriceCd: v.number(),\n sourcePriceCdDesc: v.string(),\n calculationMethodCd: v.number(),\n calculationMethodCdDesc: v.string(),\n totalingMethodCd: v.number(),\n totalingMethodCdDesc: v.string(),\n calculatorType: v.string(),\n purchasePricingUnit: v.nullable(v.string()),\n purchasePricingUnitSize: v.nullable(v.number()),\n salesPricingUnit: v.nullable(v.string()),\n salesPricingUnitSize: v.nullable(v.number()),\n unitOfMeasure: v.nullable(v.string()),\n unitOfMeasureSize: v.nullable(v.number()),\n defaultSellingUnit: v.nullable(v.string()),\n defaultSellingUnitSize: v.nullable(v.number()),\n defaultPurchasingUnit: v.nullable(v.string()),\n defaultPurchasingUnitSize: v.nullable(v.number()),\n baseUnit: v.nullable(v.string()),\n baseUnitSize: v.nullable(v.number()),\n multiplier: v.union([v.number(), v.number()]),\n breaks: v.array(\n v.looseObject({\n calculationValue: v.nullable(v.number()),\n break: v.nullable(v.number()),\n startQuantity: v.number(),\n endQuantity: v.nullable(v.number()),\n unitPrice: v.union([v.number(), v.boolean()]),\n })\n ),\n baseSize: v.optional(v.nullable(v.number())),\n basePrice: v.optional(v.nullable(v.number())),\n potentialCostValue: v.optional(v.nullable(v.number())),\n costPageUid: v.optional(v.nullable(v.number())),\n costPageDescription: v.optional(v.nullable(v.string())),\n costPageMatched: v.optional(v.nullable(v.boolean())),\n costSource: v.optional(v.nullable(v.string())),\n lastReceivedPoCostSupplierId: v.optional(v.nullable(v.number())),\n invLocProductGroupId: v.optional(v.nullable(v.string())),\n pricePageProductGroupId: v.optional(v.nullable(v.string())),\n pricePageSupplierId: v.optional(v.nullable(v.number())),\n pricePageDiscountGroupId: v.optional(v.nullable(v.string())),\n pricePageMfgClassId: v.optional(v.nullable(v.string())),\n pricePagePriceFamilyUid: v.optional(v.nullable(v.number())),\n invLocSalesDiscountGroup: v.optional(v.nullable(v.string())),\n invLocPriceFamilyUid: v.optional(v.nullable(v.number())),\n }),\n v.looseObject({\n unitPrice: v.union([v.number(), v.boolean()]),\n pricedFrom: v.optional(v.nullable(v.string())),\n sourcePrice: v.optional(v.nullable(v.number())),\n sourcePriceCd: v.optional(v.nullable(v.number())),\n multiplier: v.optional(v.nullable(v.number())),\n priceLibraryUid: v.optional(v.nullable(v.number())),\n unitOfMeasureSize: v.optional(v.nullable(v.number())),\n }),\n ])\n )\n ),\n defaultCompanyPrice: v.optional(\n v.looseObject({\n unitPrice: v.union([v.number(), v.boolean()]),\n purchasePricingUnitSize: v.nullable(v.number()),\n sourceTypeCd: v.number(),\n sourceTypeDesc: v.nullable(v.string()),\n unitOfMeasure: v.string(),\n unitOfMeasureSize: v.number(),\n basePrice: v.number(),\n baseSize: v.number(),\n })\n ),\n webPrice: v.optional(v.union([v.number(), v.boolean()])),\n});\n\nexport const PriceEngineCreateDataSchema = v.looseObject({\n customerId: v.number(),\n shipToId: v.number(),\n itemCount: v.number(),\n items: v.array(\n v.looseObject({\n itemId: v.string(),\n quantity: v.number(),\n unitOfMeasure: v.string(),\n priceEngine: v.looseObject({\n unitPrice: v.number(),\n pricedFrom: v.union([\n v.picklist([\n 'jobPricing',\n 'sourceCd',\n 'libraryPrice',\n 'libraryMultiplier',\n 'defaultCompanyPrice',\n ]),\n v.boolean(),\n ]),\n priceType: v.union([v.picklist(['J', 'S', 'L', 'C']), v.boolean()]),\n jobPrice: v.union([v.number(), v.boolean()]),\n listPrice: v.number(),\n customer: v.looseObject({\n customerId: v.number(),\n valid: v.boolean(),\n sourcePriceCd: v.union([v.number(), v.boolean()]),\n sourcePriceDesc: v.nullable(v.string()),\n pricingMethodCd: v.nullable(v.number()),\n pricingMethodDesc: v.nullable(v.string()),\n hasJobPricing: v.boolean(),\n jobPricingEnabled: v.boolean(),\n corpAddressId: v.nullable(v.number()),\n corpAddressJobCount: v.number(),\n customerShipToJobCount: v.number(),\n }),\n item: v.looseObject({\n itemId: v.string(),\n valid: v.boolean(),\n invMastUid: v.nullable(v.number()),\n quantity: v.number(),\n unitOfMeasure: v.nullable(v.string()),\n }),\n options: v.array(v.unknown()),\n messages: v.array(v.string()),\n jobNo: v.optional(v.nullable(v.string())),\n jobPriceHdrUid: v.optional(v.nullable(v.number())),\n contractNo: v.optional(v.nullable(v.string())),\n libraryPriceData: v.optional(\n v.nullable(\n v.union([\n v.looseObject({\n unitPrice: v.union([v.number(), v.boolean()]),\n sourcePrice: v.nullable(v.number()),\n quantity: v.number(),\n pricePageUid: v.number(),\n pricePageDescription: v.string(),\n pricePageCdType: v.number(),\n pricePageCdDesc: v.string(),\n effectiveDate: v.string(),\n expirationDate: v.string(),\n itemId: v.string(),\n invMastUid: v.number(),\n pricingMethodCd: v.number(),\n pricingMethodCdDesc: v.string(),\n sourcePriceCd: v.number(),\n sourcePriceCdDesc: v.string(),\n calculationMethodCd: v.number(),\n calculationMethodCdDesc: v.string(),\n totalingMethodCd: v.number(),\n totalingMethodCdDesc: v.string(),\n calculatorType: v.string(),\n purchasePricingUnit: v.nullable(v.string()),\n purchasePricingUnitSize: v.nullable(v.number()),\n salesPricingUnit: v.nullable(v.string()),\n salesPricingUnitSize: v.nullable(v.number()),\n unitOfMeasure: v.nullable(v.string()),\n unitOfMeasureSize: v.nullable(v.number()),\n defaultSellingUnit: v.nullable(v.string()),\n defaultSellingUnitSize: v.nullable(v.number()),\n defaultPurchasingUnit: v.nullable(v.string()),\n defaultPurchasingUnitSize: v.nullable(v.number()),\n baseUnit: v.nullable(v.string()),\n baseUnitSize: v.nullable(v.number()),\n multiplier: v.union([v.number(), v.number()]),\n breaks: v.array(\n v.looseObject({\n calculationValue: v.nullable(v.number()),\n break: v.nullable(v.number()),\n startQuantity: v.number(),\n endQuantity: v.nullable(v.number()),\n unitPrice: v.union([v.number(), v.boolean()]),\n })\n ),\n baseSize: v.optional(v.nullable(v.number())),\n basePrice: v.optional(v.nullable(v.number())),\n potentialCostValue: v.optional(v.nullable(v.number())),\n costPageUid: v.optional(v.nullable(v.number())),\n costPageDescription: v.optional(v.nullable(v.string())),\n costPageMatched: v.optional(v.nullable(v.boolean())),\n costSource: v.optional(v.nullable(v.string())),\n lastReceivedPoCostSupplierId: v.optional(v.nullable(v.number())),\n invLocProductGroupId: v.optional(v.nullable(v.string())),\n pricePageProductGroupId: v.optional(v.nullable(v.string())),\n pricePageSupplierId: v.optional(v.nullable(v.number())),\n pricePageDiscountGroupId: v.optional(v.nullable(v.string())),\n pricePageMfgClassId: v.optional(v.nullable(v.string())),\n pricePagePriceFamilyUid: v.optional(v.nullable(v.number())),\n invLocSalesDiscountGroup: v.optional(v.nullable(v.string())),\n invLocPriceFamilyUid: v.optional(v.nullable(v.number())),\n }),\n v.looseObject({\n unitPrice: v.union([v.number(), v.boolean()]),\n pricedFrom: v.optional(v.nullable(v.string())),\n sourcePrice: v.optional(v.nullable(v.number())),\n sourcePriceCd: v.optional(v.nullable(v.number())),\n multiplier: v.optional(v.nullable(v.number())),\n priceLibraryUid: v.optional(v.nullable(v.number())),\n unitOfMeasureSize: v.optional(v.nullable(v.number())),\n }),\n ])\n )\n ),\n defaultCompanyPrice: v.optional(\n v.looseObject({\n unitPrice: v.union([v.number(), v.boolean()]),\n purchasePricingUnitSize: v.nullable(v.number()),\n sourceTypeCd: v.number(),\n sourceTypeDesc: v.nullable(v.string()),\n unitOfMeasure: v.string(),\n unitOfMeasureSize: v.number(),\n basePrice: v.number(),\n baseSize: v.number(),\n })\n ),\n webPrice: v.optional(v.union([v.number(), v.boolean()])),\n }),\n })\n ),\n});\n\nexport const TaxEngineCreateDataSchema = v.looseObject({\n taxEstimate: v.number(),\n customerId: v.number(),\n postalCode: v.union([v.string(), v.number(), v.number()]),\n taxRate: v.number(),\n items: v.array(\n v.looseObject({\n itemId: v.string(),\n invMastUid: v.number(),\n quantity: v.number(),\n unitOfMeasure: v.nullable(v.string()),\n unitPrice: v.union([v.number(), v.boolean()]),\n taxEstimate: v.number(),\n })\n ),\n});\n\nexport const WebPricingListDataSchema = v.array(\n v.looseObject({\n webPricingUid: v.number(),\n name: v.string(),\n description: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n statusCd: v.number(),\n updateCd: v.number(),\n processCd: v.number(),\n sequenceNo: v.number(),\n customerMode: v.string(),\n minQty: v.nullable(v.number()),\n maxQty: v.nullable(v.number()),\n discountPct: v.number(),\n effectiveDate: v.nullable(v.string()),\n expirationDate: v.nullable(v.string()),\n })\n);\n\nexport const WebPricingCreateDataSchema = v.looseObject({\n webPricingUid: v.number(),\n name: v.string(),\n description: v.nullable(v.string()),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n statusCd: v.number(),\n updateCd: v.number(),\n processCd: v.number(),\n sequenceNo: v.number(),\n customerMode: v.string(),\n minQty: v.nullable(v.number()),\n maxQty: v.nullable(v.number()),\n discountPct: v.number(),\n effectiveDate: v.nullable(v.string()),\n expirationDate: v.nullable(v.string()),\n});\n\nexport const WebPricingGetDataSchema = WebPricingCreateDataSchema;\n\nexport const WebPricingUpdateDataSchema = WebPricingCreateDataSchema;\n\nexport const WebPricingDeleteDataSchema = WebPricingCreateDataSchema;\n\nexport const WebPricingCustomersListDataSchema = v.array(\n v.looseObject({\n webPricingXCustomerUid: v.number(),\n webPricingUid: v.number(),\n customerId: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n statusCd: v.number(),\n updateCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const WebPricingCustomersCreateDataSchema = v.looseObject({\n webPricingXCustomerUid: v.number(),\n webPricingUid: v.number(),\n customerId: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n statusCd: v.number(),\n updateCd: v.number(),\n processCd: v.number(),\n});\n\nexport const WebPricingCustomersGetDataSchema = WebPricingCustomersCreateDataSchema;\n\nexport const WebPricingCustomersUpdateDataSchema = WebPricingCustomersCreateDataSchema;\n\nexport const WebPricingCustomersDeleteDataSchema = WebPricingCustomersCreateDataSchema;\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for pricing service\n * Source: shared/specs/pricing.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n JobPriceHdrGetDataSchema,\n JobPriceHdrLinesGetDataSchema,\n JobPriceHdrLinesListDataSchema,\n JobPriceHdrListDataSchema,\n PriceEngineCreateDataSchema,\n PriceEngineListDataSchema,\n TaxEngineCreateDataSchema,\n WebPricingCreateDataSchema,\n WebPricingCustomersCreateDataSchema,\n WebPricingCustomersDeleteDataSchema,\n WebPricingCustomersGetDataSchema,\n WebPricingCustomersListDataSchema,\n WebPricingCustomersUpdateDataSchema,\n WebPricingDeleteDataSchema,\n WebPricingGetDataSchema,\n WebPricingListDataSchema,\n WebPricingUpdateDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/job-price-hdr',\n chain: 'jobPriceHdr',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'q'],\n edgeCache: true,\n responseSchema: JobPriceHdrListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/job-price-hdr/{jobPriceHdrUid}',\n chain: 'jobPriceHdr',\n action: 'get',\n aliases: [],\n pathParams: ['jobPriceHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: JobPriceHdrGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/job-price-hdr/{jobPriceHdrUid}/lines',\n chain: 'jobPriceHdr.lines',\n action: 'list',\n aliases: [],\n pathParams: ['jobPriceHdrUid'],\n queryParams: ['invMastUid', 'limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: JobPriceHdrLinesListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/job-price-hdr/{jobPriceHdrUid}/lines/{jobPriceLineUid}',\n chain: 'jobPriceHdr.lines',\n action: 'get',\n aliases: [],\n pathParams: ['jobPriceHdrUid', 'jobPriceLineUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: JobPriceHdrLinesGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/price-engine',\n chain: 'priceEngine',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'cacheSiteId',\n 'cacheTtl',\n 'cartItems',\n 'companyId',\n 'customerId',\n 'itemId',\n 'quantity',\n 'shipToId',\n 'unitOfMeasure',\n ],\n edgeCache: true,\n responseSchema: PriceEngineListDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/price-engine',\n chain: 'priceEngine',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PriceEngineCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/tax-engine',\n chain: 'taxEngine',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: TaxEngineCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/web-pricing',\n chain: 'webPricing',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: WebPricingListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/web-pricing',\n chain: 'webPricing',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/web-pricing/{webPricingUid}',\n chain: 'webPricing',\n action: 'get',\n aliases: [],\n pathParams: ['webPricingUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: WebPricingGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/web-pricing/{webPricingUid}',\n chain: 'webPricing',\n action: 'update',\n aliases: [],\n pathParams: ['webPricingUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/web-pricing/{webPricingUid}',\n chain: 'webPricing',\n action: 'delete',\n aliases: [],\n pathParams: ['webPricingUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/web-pricing/{webPricingUid}/customers',\n chain: 'webPricing.customers',\n action: 'list',\n aliases: [],\n pathParams: ['webPricingUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: WebPricingCustomersListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/web-pricing/{webPricingUid}/customers',\n chain: 'webPricing.customers',\n action: 'create',\n aliases: [],\n pathParams: ['webPricingUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingCustomersCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/web-pricing/{webPricingUid}/customers/{customerId}',\n chain: 'webPricing.customers',\n action: 'get',\n aliases: [],\n pathParams: ['webPricingUid', 'customerId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: WebPricingCustomersGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/web-pricing/{webPricingUid}/customers/{customerId}',\n chain: 'webPricing.customers',\n action: 'update',\n aliases: [],\n pathParams: ['webPricingUid', 'customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingCustomersUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/web-pricing/{webPricingUid}/customers/{customerId}',\n chain: 'webPricing.customers',\n action: 'delete',\n aliases: [],\n pathParams: ['webPricingUid', 'customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WebPricingCustomersDeleteDataSchema,\n responseType: 'object',\n },\n];\n","/**\n * Generated Valibot schemas for shipping service\n * Source: shared/specs/shipping.json\n * Generated: 2026-09-28T15:25:46Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for shipping service\n * Source: shared/specs/shipping.json\n * Generated: 2026-09-28T15:25:46Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'POST',\n path: '/rates',\n chain: 'rates',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for smarty-streets service\n * Source: shared/specs/smarty-streets.json\n * Generated: 2026-09-28T15:25:48Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /us/lookup params */\nexport const UsLookupGetParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n address1: v.string(),\n address2: v.string(),\n city: v.string(),\n postalCode: v.string(),\n state: v.string(),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for smarty-streets service\n * Source: shared/specs/smarty-streets.json\n * Generated: 2026-09-28T15:25:48Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/us/lookup',\n chain: 'us.lookup',\n action: 'get',\n aliases: [],\n pathParams: [],\n queryParams: ['address1', 'address2', 'city', 'postalCode', 'state'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for ups service\n * Source: shared/specs/ups.json\n * Generated: 2026-09-28T15:25:49Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /rates-shop params */\nexport const RatesShopListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n cacheSiteId: v.optional(v.string()),\n fromAddress1: v.optional(v.string()),\n fromAddress2: v.optional(v.string()),\n fromAddress3: v.optional(v.string()),\n fromCity: v.optional(v.string()),\n fromCountryCode: v.optional(v.string()),\n fromPostalCode: v.optional(v.string()),\n fromStateProvinceCode: v.optional(v.string()),\n toAddress1: v.optional(v.string()),\n toAddress2: v.optional(v.string()),\n toAddress3: v.optional(v.string()),\n toCity: v.optional(v.string()),\n toCountryCode: v.optional(v.string()),\n toPostalCode: v.optional(v.string()),\n toStateProvinceCode: v.optional(v.string()),\n weight: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for ups service\n * Source: shared/specs/ups.json\n * Generated: 2026-09-28T15:25:49Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport { PassthroughDataSchema } from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/rates-shop',\n chain: 'ratesShop',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'cacheSiteId',\n 'fromAddress1',\n 'fromAddress2',\n 'fromAddress3',\n 'fromCity',\n 'fromCountryCode',\n 'fromPostalCode',\n 'fromStateProvinceCode',\n 'toAddress1',\n 'toAddress2',\n 'toAddress3',\n 'toCity',\n 'toCountryCode',\n 'toPostalCode',\n 'toStateProvinceCode',\n 'weight',\n ],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Generated Valibot schemas for vmi service\n * Source: shared/specs/vmi.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport * as v from 'valibot';\nimport { EdgeCacheParamsSchema } from '../../../core/schemas';\n\n/** Schema for GET /distributors params */\nexport const DistributorsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /inv-profile-hdr params */\nexport const InvProfileHdrListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n});\n\n/** Schema for GET /inv-profile-hdr/{invProfileHdrUid}/inv-profile-line params */\nexport const InvProfileHdrInvProfileLineListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /products params */\nexport const ProductsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n distributorsUid: v.pipe(v.unknown(), v.transform(Number)),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n prefix: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /products/find params */\nexport const ProductsFindListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n prefix: v.optional(v.string()),\n});\n\n/** Schema for GET /restock-hdr params */\nexport const RestockHdrListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n distributorsUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n warehouseUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /sections params */\nexport const SectionsListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /warehouse params */\nexport const WarehouseListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n customerId: v.pipe(v.unknown(), v.transform(Number)),\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n q: v.optional(v.string()),\n statusCd: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n usersId: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /warehouse/{warehouseUid}/availability params */\nexport const WarehouseAvailabilityListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n q: v.string(),\n});\n\n/** Schema for GET /warehouse/{warehouseUid}/replenish params */\nexport const WarehouseReplenishListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n distributorsUid: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n});\n\n/** Schema for GET /warehouse/{warehouseUid}/users params */\nexport const WarehouseUsersListParamsSchema = v.looseObject({\n ...EdgeCacheParamsSchema.entries,\n limit: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n offset: v.optional(v.pipe(v.unknown(), v.transform(Number))),\n orderBy: v.optional(v.string()),\n statusCdList: v.optional(v.string()),\n});\n\n/** Schema for POST /warehouse/{warehouseUid}/users params */\nexport const WarehouseUsersCreateParamsSchema = v.looseObject({\n makePrimaryUser: v.optional(v.string()),\n});\n\n// =============================================================================\n// Response Data Schemas (MINIMUM fields — looseObject allows extra)\n// =============================================================================\n\nexport const DistributorsListDataSchema = v.array(\n v.looseObject({\n distributorsUid: v.number(),\n customerId: v.number(),\n distributorsId: v.string(),\n distributorsName: v.string(),\n distributorsDesc: v.string(),\n distributorsEmail: v.string(),\n distributorsAccount: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const DistributorsCreateDataSchema = v.looseObject({\n distributorsUid: v.number(),\n customerId: v.number(),\n distributorsId: v.string(),\n distributorsName: v.string(),\n distributorsDesc: v.string(),\n distributorsEmail: v.string(),\n distributorsAccount: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const DistributorsGetDataSchema = DistributorsCreateDataSchema;\n\nexport const DistributorsUpdateDataSchema = DistributorsCreateDataSchema;\n\nexport const DistributorsDeleteDataSchema = DistributorsCreateDataSchema;\n\nexport const DistributorsProductsCreateDataSchema = v.array(\n v.looseObject({\n productsUid: v.number(),\n distributorsUid: v.number(),\n productsId: v.string(),\n productsDesc: v.string(),\n defaultSellingUnit: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n upcOrEanId: v.nullable(v.string()),\n imageUrl: v.nullable(v.string()),\n partNumber: v.nullable(v.string()),\n })\n);\n\nexport const InvProfileHdrCreateDataSchema = v.looseObject({\n invProfileHdrUid: v.number(),\n invProfileHdrId: v.string(),\n invProfileHdrDesc: v.string(),\n customerId: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const InvProfileHdrUpdateDataSchema = InvProfileHdrCreateDataSchema;\n\nexport const InvProfileHdrInvProfileLineListDataSchema = v.array(\n v.looseObject({\n invProfileLineUid: v.number(),\n invProfileHdrUid: v.number(),\n invMastUid: v.number(),\n invProfileLineType: v.string(),\n invProfileHdrMinQty: v.number(),\n invProfileHdrMaxQty: v.number(),\n invProfileHdrReorderQty: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n sectionsUid: v.number(),\n keywords: v.nullable(v.string()),\n })\n);\n\nexport const InvProfileHdrInvProfileLineCreateDataSchema = v.looseObject({\n invProfileLineUid: v.number(),\n invProfileHdrUid: v.number(),\n invMastUid: v.number(),\n invProfileLineType: v.string(),\n invProfileHdrMinQty: v.number(),\n invProfileHdrMaxQty: v.number(),\n invProfileHdrReorderQty: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n sectionsUid: v.number(),\n keywords: v.nullable(v.string()),\n});\n\nexport const InvProfileHdrInvProfileLineGetDataSchema = InvProfileHdrInvProfileLineCreateDataSchema;\n\nexport const InvProfileHdrInvProfileLineUpdateDataSchema =\n InvProfileHdrInvProfileLineCreateDataSchema;\n\nexport const InvProfileHdrInvProfileLineDeleteDataSchema =\n InvProfileHdrInvProfileLineCreateDataSchema;\n\nexport const ProductsListDataSchema = DistributorsProductsCreateDataSchema;\n\nexport const ProductsFindListDataSchema = DistributorsProductsCreateDataSchema;\n\nexport const ProductsGetDataSchema = v.looseObject({\n productsUid: v.number(),\n distributorsUid: v.number(),\n productsId: v.string(),\n productsDesc: v.string(),\n defaultSellingUnit: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n upcOrEanId: v.nullable(v.string()),\n imageUrl: v.nullable(v.string()),\n partNumber: v.nullable(v.string()),\n});\n\nexport const ProductsUpdateDataSchema = ProductsGetDataSchema;\n\nexport const ProductsDeleteDataSchema = ProductsGetDataSchema;\n\nexport const ProductsEnableUpdateDataSchema = DistributorsProductsCreateDataSchema;\n\nexport const RestockHdrListDataSchema = v.array(\n v.looseObject({\n restockHdrUid: v.number(),\n warehouseUid: v.number(),\n distributorsUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n jsonData: v.nullable(v.string()),\n processState: v.string(),\n poNo: v.nullable(v.string()),\n usersId: v.number(),\n customerId: v.number(),\n contactId: v.nullable(v.string()),\n deliveryInstructions: v.nullable(v.string()),\n })\n);\n\nexport const RestockHdrCreateDataSchema = v.looseObject({\n restockHdrUid: v.number(),\n warehouseUid: v.number(),\n distributorsUid: v.number(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n jsonData: v.nullable(v.string()),\n processState: v.string(),\n poNo: v.nullable(v.string()),\n usersId: v.number(),\n customerId: v.number(),\n contactId: v.nullable(v.string()),\n deliveryInstructions: v.nullable(v.string()),\n});\n\nexport const RestockHdrGetDataSchema = RestockHdrCreateDataSchema;\n\nexport const RestockHdrUpdateDataSchema = RestockHdrCreateDataSchema;\n\nexport const RestockHdrDeleteDataSchema = RestockHdrCreateDataSchema;\n\nexport const SectionsListDataSchema = v.array(\n v.looseObject({\n sectionsUid: v.number(),\n customerId: v.number(),\n sectionsId: v.string(),\n sectionsName: v.string(),\n sectionsDesc: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n })\n);\n\nexport const SectionsCreateDataSchema = v.looseObject({\n sectionsUid: v.number(),\n customerId: v.number(),\n sectionsId: v.string(),\n sectionsName: v.string(),\n sectionsDesc: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n});\n\nexport const SectionsGetDataSchema = SectionsCreateDataSchema;\n\nexport const SectionsUpdateDataSchema = SectionsCreateDataSchema;\n\nexport const SectionsDeleteDataSchema = SectionsCreateDataSchema;\n\nexport const WarehouseListDataSchema = v.array(\n v.looseObject({\n warehouseUid: v.number(),\n warehouseId: v.string(),\n warehouseName: v.string(),\n warehouseDesc: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n customerId: v.number(),\n invProfileHdrUid: v.number(),\n })\n);\n\nexport const WarehouseCreateDataSchema = v.looseObject({\n warehouseUid: v.number(),\n warehouseId: v.string(),\n warehouseName: v.string(),\n warehouseDesc: v.string(),\n dateCreated: v.string(),\n dateLastModified: v.string(),\n updateCd: v.number(),\n statusCd: v.number(),\n processCd: v.number(),\n customerId: v.number(),\n invProfileHdrUid: v.number(),\n});\n\nexport const WarehouseGetDataSchema = WarehouseCreateDataSchema;\n\nexport const WarehouseUpdateDataSchema = WarehouseCreateDataSchema;\n\nexport const WarehouseDeleteDataSchema = WarehouseCreateDataSchema;\n\n/** Passthrough data schema for undocumented endpoints */\nexport const PassthroughDataSchema = v.record(v.string(), v.unknown());\n","/**\n * Generated endpoint data for vmi service\n * Source: shared/specs/vmi.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport type * as v from 'valibot';\nimport {\n DistributorsCreateDataSchema,\n DistributorsDeleteDataSchema,\n DistributorsGetDataSchema,\n DistributorsListDataSchema,\n DistributorsProductsCreateDataSchema,\n DistributorsUpdateDataSchema,\n InvProfileHdrCreateDataSchema,\n InvProfileHdrInvProfileLineCreateDataSchema,\n InvProfileHdrInvProfileLineDeleteDataSchema,\n InvProfileHdrInvProfileLineGetDataSchema,\n InvProfileHdrInvProfileLineListDataSchema,\n InvProfileHdrInvProfileLineUpdateDataSchema,\n InvProfileHdrUpdateDataSchema,\n ProductsDeleteDataSchema,\n ProductsEnableUpdateDataSchema,\n ProductsFindListDataSchema,\n ProductsGetDataSchema,\n ProductsListDataSchema,\n ProductsUpdateDataSchema,\n RestockHdrCreateDataSchema,\n RestockHdrDeleteDataSchema,\n RestockHdrGetDataSchema,\n RestockHdrListDataSchema,\n RestockHdrUpdateDataSchema,\n SectionsCreateDataSchema,\n SectionsDeleteDataSchema,\n SectionsGetDataSchema,\n SectionsListDataSchema,\n SectionsUpdateDataSchema,\n WarehouseCreateDataSchema,\n WarehouseDeleteDataSchema,\n WarehouseGetDataSchema,\n WarehouseListDataSchema,\n WarehouseUpdateDataSchema,\n PassthroughDataSchema,\n} from './schemas';\n\nexport interface EndpointDef {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: string[];\n pathParams: string[];\n queryParams: string[];\n edgeCache: boolean;\n responseSchema: v.GenericSchema;\n responseType: 'object' | 'array' | 'scalar' | 'passthrough';\n}\n\nexport const endpoints: EndpointDef[] = [\n {\n method: 'GET',\n path: '/distributors',\n chain: 'distributors',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: DistributorsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/distributors',\n chain: 'distributors',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: DistributorsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/distributors/{distributorsUid}',\n chain: 'distributors',\n action: 'get',\n aliases: [],\n pathParams: ['distributorsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: DistributorsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/distributors/{distributorsUid}',\n chain: 'distributors',\n action: 'update',\n aliases: [],\n pathParams: ['distributorsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: DistributorsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/distributors/{distributorsUid}',\n chain: 'distributors',\n action: 'delete',\n aliases: [],\n pathParams: ['distributorsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: DistributorsDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/distributors/{distributorsUid}/enable',\n chain: 'distributors.enable',\n action: 'update',\n aliases: [],\n pathParams: ['distributorsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/distributors/{distributorsUid}/products',\n chain: 'distributors.products',\n action: 'create',\n aliases: [],\n pathParams: ['distributorsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: DistributorsProductsCreateDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/inv-profile-hdr',\n chain: 'invProfileHdr',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'limit', 'offset', 'orderBy'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/inv-profile-hdr',\n chain: 'invProfileHdr',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvProfileHdrCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/inv-profile-hdr/{customerId}/upload',\n chain: 'invProfileHdr.upload',\n action: 'create',\n aliases: [],\n pathParams: ['customerId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-profile-hdr/{invProfileHdrUid}',\n chain: 'invProfileHdr',\n action: 'get',\n aliases: [],\n pathParams: ['invProfileHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/inv-profile-hdr/{invProfileHdrUid}',\n chain: 'invProfileHdr',\n action: 'update',\n aliases: [],\n pathParams: ['invProfileHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvProfileHdrUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-profile-hdr/{invProfileHdrUid}',\n chain: 'invProfileHdr',\n action: 'delete',\n aliases: [],\n pathParams: ['invProfileHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/inv-profile-hdr/{invProfileHdrUid}/inv-profile-line',\n chain: 'invProfileHdr.invProfileLine',\n action: 'list',\n aliases: [],\n pathParams: ['invProfileHdrUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'q', 'statusCd'],\n edgeCache: true,\n responseSchema: InvProfileHdrInvProfileLineListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/inv-profile-hdr/{invProfileHdrUid}/inv-profile-line',\n chain: 'invProfileHdr.invProfileLine',\n action: 'create',\n aliases: [],\n pathParams: ['invProfileHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvProfileHdrInvProfileLineCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/inv-profile-hdr/{invProfileHdrUid}/inv-profile-line/{invProfileLineUid}',\n chain: 'invProfileHdr.invProfileLine',\n action: 'get',\n aliases: [],\n pathParams: ['invProfileHdrUid', 'invProfileLineUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: InvProfileHdrInvProfileLineGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/inv-profile-hdr/{invProfileHdrUid}/inv-profile-line/{invProfileLineUid}',\n chain: 'invProfileHdr.invProfileLine',\n action: 'update',\n aliases: [],\n pathParams: ['invProfileHdrUid', 'invProfileLineUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvProfileHdrInvProfileLineUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/inv-profile-hdr/{invProfileHdrUid}/inv-profile-line/{invProfileLineUid}',\n chain: 'invProfileHdr.invProfileLine',\n action: 'delete',\n aliases: [],\n pathParams: ['invProfileHdrUid', 'invProfileLineUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: InvProfileHdrInvProfileLineDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/products',\n chain: 'products',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: [\n 'customerId',\n 'distributorsUid',\n 'limit',\n 'offset',\n 'orderBy',\n 'prefix',\n 'q',\n 'statusCd',\n ],\n edgeCache: true,\n responseSchema: ProductsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/products/find',\n chain: 'products.find',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'prefix'],\n edgeCache: true,\n responseSchema: ProductsFindListDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/products/{productsUid}',\n chain: 'products',\n action: 'get',\n aliases: [],\n pathParams: ['productsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: ProductsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/products/{productsUid}',\n chain: 'products',\n action: 'update',\n aliases: [],\n pathParams: ['productsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ProductsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/products/{productsUid}',\n chain: 'products',\n action: 'delete',\n aliases: [],\n pathParams: ['productsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ProductsDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/products/{productsUid}/enable',\n chain: 'products.enable',\n action: 'update',\n aliases: [],\n pathParams: ['productsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: ProductsEnableUpdateDataSchema,\n responseType: 'array',\n },\n {\n method: 'GET',\n path: '/restock-hdr',\n chain: 'restockHdr',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['distributorsUid', 'limit', 'offset', 'orderBy', 'warehouseUid'],\n edgeCache: true,\n responseSchema: RestockHdrListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/restock-hdr',\n chain: 'restockHdr',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: RestockHdrCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/restock-hdr/{restockHdrUid}',\n chain: 'restockHdr',\n action: 'get',\n aliases: [],\n pathParams: ['restockHdrUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: RestockHdrGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/restock-hdr/{restockHdrUid}',\n chain: 'restockHdr',\n action: 'update',\n aliases: [],\n pathParams: ['restockHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RestockHdrUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/restock-hdr/{restockHdrUid}',\n chain: 'restockHdr',\n action: 'delete',\n aliases: [],\n pathParams: ['restockHdrUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: RestockHdrDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/sections',\n chain: 'sections',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'limit', 'offset', 'orderBy', 'statusCd'],\n edgeCache: true,\n responseSchema: SectionsListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/sections',\n chain: 'sections',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: SectionsCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/sections/{sectionsUid}',\n chain: 'sections',\n action: 'get',\n aliases: [],\n pathParams: ['sectionsUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: SectionsGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/sections/{sectionsUid}',\n chain: 'sections',\n action: 'update',\n aliases: [],\n pathParams: ['sectionsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: SectionsUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/sections/{sectionsUid}',\n chain: 'sections',\n action: 'delete',\n aliases: [],\n pathParams: ['sectionsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: SectionsDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/sections/{sectionsUid}/enable',\n chain: 'sections.enable',\n action: 'update',\n aliases: [],\n pathParams: ['sectionsUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/warehouse',\n chain: 'warehouse',\n action: 'list',\n aliases: [],\n pathParams: [],\n queryParams: ['customerId', 'limit', 'offset', 'orderBy', 'q', 'statusCd', 'usersId'],\n edgeCache: true,\n responseSchema: WarehouseListDataSchema,\n responseType: 'array',\n },\n {\n method: 'POST',\n path: '/warehouse',\n chain: 'warehouse',\n action: 'create',\n aliases: [],\n pathParams: [],\n queryParams: [],\n edgeCache: false,\n responseSchema: WarehouseCreateDataSchema,\n responseType: 'object',\n },\n {\n method: 'GET',\n path: '/warehouse/{warehouseUid}',\n chain: 'warehouse',\n action: 'get',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: true,\n responseSchema: WarehouseGetDataSchema,\n responseType: 'object',\n },\n {\n method: 'PUT',\n path: '/warehouse/{warehouseUid}',\n chain: 'warehouse',\n action: 'update',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WarehouseUpdateDataSchema,\n responseType: 'object',\n },\n {\n method: 'DELETE',\n path: '/warehouse/{warehouseUid}',\n chain: 'warehouse',\n action: 'delete',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: WarehouseDeleteDataSchema,\n responseType: 'object',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/adjust',\n chain: 'warehouse.adjust',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/warehouse/{warehouseUid}/availability',\n chain: 'warehouse.availability',\n action: 'list',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: ['q'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/warehouse/{warehouseUid}/enable',\n chain: 'warehouse.enable',\n action: 'update',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/receive',\n chain: 'warehouse.receive',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/warehouse/{warehouseUid}/replenish',\n chain: 'warehouse.replenish',\n action: 'list',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: ['distributorsUid'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/replenish',\n chain: 'warehouse.replenish',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/transfer',\n chain: 'warehouse.transfer',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/usage',\n chain: 'warehouse.usage',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/warehouse/{warehouseUid}/users',\n chain: 'warehouse.users',\n action: 'list',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: ['limit', 'offset', 'orderBy', 'statusCdList'],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'POST',\n path: '/warehouse/{warehouseUid}/users',\n chain: 'warehouse.users',\n action: 'create',\n aliases: [],\n pathParams: ['warehouseUid'],\n queryParams: ['makePrimaryUser'],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'GET',\n path: '/warehouse/{warehouseUid}/users/{usersId}',\n chain: 'warehouse.users',\n action: 'get',\n aliases: [],\n pathParams: ['warehouseUid', 'usersId'],\n queryParams: [],\n edgeCache: true,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'PUT',\n path: '/warehouse/{warehouseUid}/users/{usersId}',\n chain: 'warehouse.users',\n action: 'update',\n aliases: [],\n pathParams: ['warehouseUid', 'usersId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n {\n method: 'DELETE',\n path: '/warehouse/{warehouseUid}/users/{usersId}',\n chain: 'warehouse.users',\n action: 'delete',\n aliases: [],\n pathParams: ['warehouseUid', 'usersId'],\n queryParams: [],\n edgeCache: false,\n responseSchema: PassthroughDataSchema,\n responseType: 'passthrough',\n },\n];\n","/**\n * Every service's generated endpoint table, which registry.ts derives entries from.\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-registry.py\n */\nimport { endpoints as agrInfo } from '../services/agr-info/generated/endpoints';\nimport { endpoints as agrInt } from '../services/agr-int/generated/endpoints';\nimport { endpoints as agrSite } from '../services/agr-site/generated/endpoints';\nimport { endpoints as agrWork } from '../services/agr-work/generated/endpoints';\nimport { endpoints as avalara } from '../services/avalara/generated/endpoints';\nimport { endpoints as basecamp2 } from '../services/basecamp2/generated/endpoints';\nimport { endpoints as brandFolder } from '../services/brand-folder/generated/endpoints';\nimport { endpoints as commerce } from '../services/commerce/generated/endpoints';\nimport { endpoints as customers } from '../services/customers/generated/endpoints';\nimport { endpoints as gregorovich } from '../services/gregorovich/generated/endpoints';\nimport { endpoints as items } from '../services/items/generated/endpoints';\nimport { endpoints as joomla } from '../services/joomla/generated/endpoints';\nimport { endpoints as legacy } from '../services/legacy/generated/endpoints';\nimport { endpoints as logistics } from '../services/logistics/generated/endpoints';\nimport { endpoints as openSearch } from '../services/open-search/generated/endpoints';\nimport { endpoints as orders } from '../services/orders/generated/endpoints';\nimport { endpoints as p21Apis } from '../services/p21-apis/generated/endpoints';\nimport { endpoints as p21Core } from '../services/p21-core/generated/endpoints';\nimport { endpoints as p21Pim } from '../services/p21-pim/generated/endpoints';\nimport { endpoints as p21Sism } from '../services/p21-sism/generated/endpoints';\nimport { endpoints as payments } from '../services/payments/generated/endpoints';\nimport { endpoints as pricing } from '../services/pricing/generated/endpoints';\nimport { endpoints as shipping } from '../services/shipping/generated/endpoints';\nimport { endpoints as smartyStreets } from '../services/smarty-streets/generated/endpoints';\nimport { endpoints as ups } from '../services/ups/generated/endpoints';\nimport { endpoints as vmi } from '../services/vmi/generated/endpoints';\n\n/** [kebab service name, endpoint table] */\nexport const REGISTRY_TABLES = [\n ['agr-info', agrInfo],\n ['agr-int', agrInt],\n ['agr-site', agrSite],\n ['agr-work', agrWork],\n ['avalara', avalara],\n ['basecamp2', basecamp2],\n ['brand-folder', brandFolder],\n ['commerce', commerce],\n ['customers', customers],\n ['gregorovich', gregorovich],\n ['items', items],\n ['joomla', joomla],\n ['legacy', legacy],\n ['logistics', logistics],\n ['open-search', openSearch],\n ['orders', orders],\n ['p21-apis', p21Apis],\n ['p21-core', p21Core],\n ['p21-pim', p21Pim],\n ['p21-sism', p21Sism],\n ['payments', payments],\n ['pricing', pricing],\n ['shipping', shipping],\n ['smarty-streets', smartyStreets],\n ['ups', ups],\n ['vmi', vmi],\n] as const;\n","/**\n * Endpoint registry: one language-neutral entry per endpoint the SDK exposes.\n *\n * Entries are derived from the per-service endpoint tables the proxies already\n * bundle, so the registry adds no data to the bundle. They are built on first\n * use and cached; nothing is computed unless endpoints() is called. The result\n * equals shared/registry.json (tests/core/registry.test.ts). The contract is\n * wiki/Endpoint-Registry.md.\n */\nimport { REGISTRY_TABLES } from './registry-tables';\n\n/** Bumped only when a field is removed or renamed, the id rule changes, or call() changes. */\nexport const REGISTRY_VERSION = 1;\n\n/** One endpoint in the registry. */\nexport interface EndpointEntry {\n /** `camelCase(service).chain.action`, e.g. `items.invMast.doc.list` */\n readonly id: string;\n /** Kebab wire name, e.g. `open-search` */\n readonly service: string;\n readonly method: 'GET' | 'POST' | 'PUT' | 'DELETE';\n /** Path template, e.g. `/inv-mast/{invMastUid}/doc` */\n readonly path: string;\n /** Path params in URL order */\n readonly pathParams: readonly string[];\n readonly queryParams: readonly string[];\n /** Alternative action names; an alias id is `service.chain.alias` */\n readonly aliases: readonly string[];\n readonly hasBody: boolean;\n readonly auth: 'none' | 'site' | 'bearer';\n readonly edgeCache: boolean;\n /** Omitted unless set; a read is `readOnly ?? method === 'GET'` */\n readonly readOnly?: boolean;\n}\n\n/** The fields of a generated EndpointDef the registry reads. */\ninterface TableRow {\n method: string;\n path: string;\n chain: string;\n action: string;\n aliases: readonly string[];\n pathParams: readonly string[];\n queryParams: readonly string[];\n edgeCache: boolean;\n}\n\n/** Every service has these, from one fixed template: [chain, path, auth]. */\nconst BASE_ENDPOINTS = [\n ['healthCheck', '/health-check', 'site'],\n ['ping', '/ping', 'none'],\n ['whoami', '/whoami', 'bearer'],\n] as const;\n\nconst NO_PARAMS: readonly string[] = Object.freeze([]);\n\n/** Kebab wire name → camelCase id root: open-search → openSearch. */\nfunction serviceId(service: string): string {\n return service.replace(/-(.)/g, (_, c: string) => c.toUpperCase());\n}\n\n/** A generated endpoint as an entry, with the contract's key order. */\nfunction fromRow(service: string, row: TableRow): EndpointEntry {\n return Object.freeze({\n id: `${serviceId(service)}.${row.chain}.${row.action}`,\n service,\n method: row.method as EndpointEntry['method'],\n path: row.path,\n pathParams: Object.freeze([...row.pathParams]),\n queryParams: Object.freeze([...row.queryParams]),\n aliases: Object.freeze([...row.aliases]),\n hasBody: row.method === 'POST' || row.method === 'PUT',\n auth: 'bearer' as const,\n edgeCache: row.edgeCache,\n });\n}\n\n/** The healthCheck/ping/whoami entries for one service. */\nfunction baseEntries(service: string): EndpointEntry[] {\n return BASE_ENDPOINTS.map(([chain, path, auth]) =>\n Object.freeze({\n id: `${serviceId(service)}.${chain}.get`,\n service,\n method: 'GET' as const,\n path,\n pathParams: NO_PARAMS,\n queryParams: NO_PARAMS,\n aliases: NO_PARAMS,\n hasBody: false,\n auth,\n edgeCache: false,\n })\n );\n}\n\nlet cache: readonly EndpointEntry[] | undefined;\n\n/** Build every entry once, sorted by id (code-unit order, like the Python generator). */\nfunction build(): readonly EndpointEntry[] {\n const entries = REGISTRY_TABLES.flatMap(([service, table]) => [\n ...table.map((row: TableRow) => fromRow(service, row)),\n ...baseEntries(service),\n ]);\n // Ids are unique, so the comparator never needs to return 0.\n entries.sort((a, b) => (a.id < b.id ? -1 : 1));\n return Object.freeze(entries);\n}\n\n/** Every registry entry, sorted by id. Entries are frozen; the array is a fresh copy. */\nexport function registryEntries(): EndpointEntry[] {\n cache ??= build();\n return [...cache];\n}\n","import * as v from 'valibot';\nimport {\n BaseResponseSchema,\n EdgeCacheParamsSchema,\n HealthCheckDataSchema,\n PingDataSchema,\n WhoamiDataSchema,\n} from './schemas';\n\n/**\n * Common schemas shared across all microservices\n *\n * This module contains frequently used schemas to reduce duplication\n * and ensure consistency across all API clients.\n */\n\n// Health check schemas - standardized across all services\nexport const CommonHealthCheckResponseSchema = BaseResponseSchema(HealthCheckDataSchema);\n\nexport const CommonPingResponseSchema = BaseResponseSchema(PingDataSchema);\n\nexport const CommonWhoamiResponseSchema = BaseResponseSchema(WhoamiDataSchema);\n\n// Multi-layer caching parameters - used across all services (generated param types extend this)\nexport type EdgeCacheParams = v.InferOutput<typeof EdgeCacheParamsSchema>;\n","import { InvalidArgumentError } from './errors';\n\n/**\n * Normalise placeholder/key names by stripping `-` and `_` and lowercasing,\n * so `customerNo`, `customer_no`, and `customer-no` all compare equal.\n *\n * @requires name ∈ string\n * @ensures result ∈ string ∧ result contains no `[-_]` ∧ result is lowercase\n */\nconst normalise = (name: string): string => name.replace(/[-_]/g, '').toLowerCase();\n\n/**\n * Numeric placeholder name suffixes/exact-matches.\n *\n * The Augur API placeholder naming convention encodes parameter type in the\n * placeholder name itself: any placeholder whose normalised form is `id` or\n * `linenumber`, or ends with `id`, `uid`, `no`, `num`, or `number`, is an\n * integer. All other placeholders are treated as strings.\n *\n * This is verified against every path template in the merged specs; out of\n * 93 distinct placeholders, only the names in STRING_OVERRIDES are typed as\n * `string` despite an integer-looking suffix.\n */\nconst NUMERIC_EXACT = new Set(['id', 'linenumber']);\nconst NUMERIC_SUFFIX_RE = /(?:id|uid|no|num|number)$/;\n\n/**\n * Placeholder names typed as `string` in OpenAPI despite an integer-looking\n * suffix. The classifier MUST treat these as string to avoid false rejections\n * of legitimate non-numeric identifiers.\n *\n * Re-derived from shared/specs/*.json on 2026-07-28.\n *\n * Known ambiguity: `customerId` and `invMastUid` are typed `integer` in most\n * services but `string` in `legacy` (POST /customers/{customerId}/tags, POST\n * /inv-mast/{invMastUid}/tags). They stay classified numeric — the integer\n * typing is the majority and the stricter check.\n */\nconst STRING_OVERRIDES = new Set([\n 'siteid',\n 'pono',\n 'importuid',\n 'scheduledimportmasteruid',\n 'grantid',\n 'salesrepid',\n]);\n\n/**\n * Classify a placeholder name as numeric or string-typed.\n *\n * @requires placeholder ∈ string ∧ placeholder is non-empty\n * @ensures result ∈ {true, false}\n * @trusted Decision drives the validation regex applied to the substituted\n * value. A misclassification here either lets a bad value through\n * (numeric → string) or rejects a valid value (string → numeric).\n * The classifier is intentionally conservative: it only marks names\n * that clearly encode an integer in the API surface.\n */\nexport const isNumericPlaceholder = (placeholder: string): boolean => {\n const normalised = normalise(placeholder);\n if (STRING_OVERRIDES.has(normalised)) return false;\n if (NUMERIC_EXACT.has(normalised)) return true;\n return NUMERIC_SUFFIX_RE.test(normalised);\n};\n\n/**\n * Integer-shaped string: optional leading `-`, then one or more digits.\n * Rejects: `NaN`, `null`, `undefined`, `\"\"`, `\"3.14\"`, `\"1e9\"`, `\"1 \"`.\n */\nconst INTEGER_RE = /^-?\\d+$/;\n\n/**\n * Validate a path-segment value before it is interpolated into the URL.\n *\n * For numeric placeholders the value MUST match `/^-?\\d+$/` — toxic stringified\n * primitives (`\"NaN\"`, `\"null\"`, `\"undefined\"`) and empty strings are rejected.\n *\n * For string placeholders only the empty string is rejected; arbitrary content\n * is allowed because the API may legitimately accept values like `\"NaN\"` as a\n * username, bin code, or free-form identifier.\n *\n * @requires pathTemplate ∈ string ∧ placeholder ∈ string ∧ value ∈ string\n * @ensures (this function returns) ⇒ value is safe to interpolate into the URL path\n * @ensures (this function throws InvalidArgumentError) ⇒ value would have produced a malformed URL\n * @trusted Last line of defence before the value reaches the wire. Misses here\n * translate to malformed URLs hitting upstream services, which in the\n * observed ampro-online incident caused 500s and ~406 MB OOM.\n */\nexport const validatePathSegment = (\n pathTemplate: string,\n placeholder: string,\n value: string\n): void => {\n const isNumeric = isNumericPlaceholder(placeholder);\n\n if (isNumeric) {\n if (!INTEGER_RE.test(value)) {\n throw new InvalidArgumentError({\n message: `Invalid path parameter '${placeholder}': expected an integer, received ${JSON.stringify(value)}`,\n service: 'http-client',\n endpoint: pathTemplate,\n });\n }\n return;\n }\n\n if (value === '') {\n throw new InvalidArgumentError({\n message: `Invalid path parameter '${placeholder}': expected a non-empty string, received ${JSON.stringify(value)}`,\n service: 'http-client',\n endpoint: pathTemplate,\n });\n }\n};\n","import { HTTPClient } from './client';\nimport {\n CommonHealthCheckResponseSchema,\n CommonPingResponseSchema,\n CommonWhoamiResponseSchema,\n} from './common-schemas';\nimport { ValidationError } from './errors';\nimport { validatePathSegment } from './path-validation';\nimport { registryEntries, type EndpointEntry } from './registry';\nimport { type HealthCheckData, type PingData, type WhoamiData } from './schemas';\nimport * as v from 'valibot';\n\n/**\n * Interface for discovery metadata that AI agents can use to navigate services\n */\nexport interface DiscoveryEndpoint {\n /** Complete API path (e.g., api.joomla.users.list) */\n fullPath: string;\n /** Service name (e.g., joomla, items) */\n service: string;\n /** Business domain (e.g., user-management, content-management) */\n domain: string;\n /** HTTP method (GET, POST, PUT, DELETE) */\n method: string;\n /** Endpoint URL path */\n path: string;\n /** Description of what this endpoint does */\n description: string;\n /** Array of search terms for AI navigation */\n searchTerms: string[];\n /** Related endpoints across services */\n relatedEndpoints: string[];\n /** Common usage patterns in natural language */\n commonPatterns: string[];\n /** Reference to data-only method alternative */\n dataMethod?: string;\n /** Whether this endpoint is discoverable by AI agents */\n discoverable: boolean;\n}\n\n/**\n * Interface for service discovery metadata\n */\nexport interface ServiceDiscoveryMetadata {\n /** Service name */\n serviceName: string;\n /** Service description */\n description: string;\n /** Base URL for the service */\n baseUrl: string;\n /** Array of discoverable endpoints */\n endpoints: DiscoveryEndpoint[];\n}\n\n/**\n * Map a registry entry to the discovery shape (the registry has no descriptions,\n * so `description` is the method and path template).\n */\nfunction toDiscoveryEndpoint(entry: EndpointEntry): DiscoveryEndpoint {\n return {\n fullPath: `api.${entry.id}`,\n service: entry.service,\n domain: entry.service,\n method: entry.method,\n path: entry.path,\n description: `${entry.method} ${entry.path}`,\n searchTerms: [],\n relatedEndpoints: [],\n commonPatterns: [],\n discoverable: true,\n };\n}\n\n/**\n * HTTP method types for API operations\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';\n\n/**\n * Configuration for API endpoint operations\n */\nexport interface EndpointConfig {\n /** HTTP method for the request */\n method: HTTPMethod;\n /** Endpoint path (will be prefixed with baseUrl) */\n path: string;\n /** Valibot schema for validating request parameters */\n paramsSchema?: v.GenericSchema;\n /** Valibot schema for validating response data */\n responseSchema: v.GenericSchema;\n /** Whether this endpoint requires authentication (default: true) */\n requiresAuth?: boolean;\n}\n\n/**\n * Standard API response structure - REQUIRED for all services (8-field format)\n * This is the ONLY acceptable response format for all APIs\n */\nexport interface BaseResponse<T> {\n /** Number of items in current response */\n count: number;\n /** Response data of type T */\n data: T;\n /** Response message */\n message: string;\n /** Additional options for the response */\n options: unknown[] | Record<string, unknown>; // Supports both array (new) and object (legacy PHP) formats\n /** Parameters used in the request */\n params: unknown[] | Record<string, unknown>; // Supports both array (new) and object (legacy PHP) formats\n /** HTTP status code */\n status: number;\n /** Total items in dataset */\n total: number;\n /** Total results available */\n totalResults: number;\n}\n\n/**\n * Abstract base class for all service clients\n *\n * Provides standardized error handling, validation, and request processing\n * to eliminate boilerplate code across service implementations.\n *\n * @example\n * ```typescript\n * class MyServiceClient extends BaseServiceClient {\n * constructor(http: HTTPClient, baseUrl?: string) {\n * super('myservice', http, baseUrl || 'https://myservice.augur-api.com');\n * }\n *\n * // Simple method using executeRequest\n * async getUser(id: number) {\n * return this.executeRequest({\n * method: 'GET',\n * path: `/users/${id}`,\n * responseSchema: UserResponseSchema\n * });\n * }\n *\n * // Method with parameters\n * async listUsers(params?: UserListParams) {\n * return this.executeRequest({\n * method: 'GET',\n * path: '/users',\n * paramsSchema: UserListParamsSchema,\n * responseSchema: UserListResponseSchema\n * }, params);\n * }\n * }\n * ```\n */\nexport abstract class BaseServiceClient {\n protected readonly serviceName: string;\n protected readonly http: HTTPClient;\n protected readonly baseUrl: string;\n\n // Base endpoints served by every service. Auth is chosen by URL suffix in\n // HTTPClient: /ping and /health-check skip Bearer, /whoami sends it.\n\n /** GET /health-check: service health (x-site-id, no Bearer) */\n readonly healthCheck = {\n get: (): Promise<BaseResponse<HealthCheckData>> =>\n this.getBaseEndpoint('/health-check', CommonHealthCheckResponseSchema),\n };\n\n /** GET /health-check, unwrapped to `.data` */\n readonly healthCheckData = {\n get: async (): Promise<HealthCheckData> => (await this.healthCheck.get()).data,\n };\n\n /** GET /ping: liveness check (no auth) */\n readonly ping = {\n get: (): Promise<BaseResponse<PingData>> =>\n this.getBaseEndpoint('/ping', CommonPingResponseSchema),\n };\n\n /** GET /ping, unwrapped to `.data` */\n readonly pingData = {\n get: async (): Promise<PingData> => (await this.ping.get()).data,\n };\n\n /** GET /whoami: decoded JWT claims (x-site-id + Bearer) */\n readonly whoami = {\n get: (): Promise<BaseResponse<WhoamiData>> =>\n this.getBaseEndpoint('/whoami', CommonWhoamiResponseSchema),\n };\n\n /** GET /whoami, unwrapped to `.data` */\n readonly whoamiData = {\n get: async (): Promise<WhoamiData> => (await this.whoami.get()).data,\n };\n\n /**\n * Create a new service client instance\n * @param serviceName Name of the service (used for error reporting)\n * @param http Configured HTTPClient instance\n * @param baseUrl Base URL for the service API\n */\n constructor(serviceName: string, http: HTTPClient, baseUrl: string) {\n this.serviceName = serviceName;\n this.http = http;\n this.baseUrl = baseUrl;\n }\n\n /**\n * Execute a standardized API request with automatic validation and error handling\n *\n * This method handles all the common patterns:\n * - Parameter validation with Valibot schemas\n * - HTTP request execution\n * - Response validation\n * - Consistent error handling and reporting\n *\n * @param config Endpoint configuration including method, path, and schemas\n * @param params Optional request parameters (query params for GET, body for POST/PUT)\n * @param pathParams Optional path parameters for URL substitution\n * @returns Promise resolving to the validated response data\n * @throws ValidationError When parameters or response validation fails\n * @throws AugurError For HTTP errors (handled by HTTPClient interceptors)\n */\n protected async executeRequest<TParams = unknown, TResponse = unknown>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string | number>,\n query?: unknown\n ): Promise<TResponse> {\n const endpoint = this.buildEndpointPath(config.path, pathParams);\n\n try {\n const validatedParams = this.validateParameters(config, params);\n const response = await this.executeHttpRequest(config, endpoint, validatedParams, query);\n const validatedResponse = v.parse(config.responseSchema, response);\n return validatedResponse as TResponse;\n } catch (error) {\n if (error instanceof v.ValiError) {\n // Mark if this is a response validation error (not parameter validation)\n throw this.createValidationError(error, config, params, endpoint, 'response');\n }\n throw error;\n }\n }\n\n /**\n * GET one of the parameterless base endpoints (health-check, ping, whoami)\n */\n private getBaseEndpoint<TResponse>(\n path: string,\n responseSchema: v.GenericSchema\n ): Promise<TResponse> {\n return this.executeRequest<undefined, TResponse>({ method: 'GET', path, responseSchema });\n }\n\n /**\n * Validate request parameters using the provided schema\n */\n private validateParameters<TParams>(\n config: EndpointConfig,\n params?: TParams\n ): TParams | undefined {\n if (config.paramsSchema) {\n try {\n // Always validate when schema is provided, treating undefined as empty object\n return v.parse(config.paramsSchema, params ?? {}) as TParams;\n } catch (error) {\n if (error instanceof v.ValiError) {\n // Mark parameter validation errors specifically\n throw this.createValidationError(error, config, params, config.path, 'params');\n }\n throw error;\n }\n }\n return params;\n }\n\n /**\n * Execute HTTP request based on the configured method\n *\n * For GET, `validatedParams` IS the query string. For POST/PUT it is the\n * request body, and `query` carries the query string alongside it — the API\n * declares query params on write methods too, and DELETE previously dropped\n * them entirely.\n */\n private async executeHttpRequest<TParams>(\n config: EndpointConfig,\n endpoint: string,\n validatedParams?: TParams,\n query?: unknown\n ): Promise<unknown> {\n const url = `${this.baseUrl}${endpoint}`;\n // Forward `query` only when present, so call arity stays exactly as before\n // for the endpoints that have no write-method query params.\n const rest: [] | [unknown] = query === undefined ? [] : [query];\n\n switch (config.method) {\n case 'GET':\n return await this.http.get(url, validatedParams);\n case 'POST':\n return await this.http.post(url, validatedParams, ...rest);\n case 'PUT':\n return await this.http.put(url, validatedParams, ...rest);\n case 'DELETE':\n return await this.http.delete(url, ...rest);\n default:\n throw new Error(`Unsupported HTTP method: ${config.method}`);\n }\n }\n\n /**\n * Create a detailed validation error with context information\n */\n private createValidationError<TParams>(\n valibotError: v.ValiError<v.GenericSchema>,\n config: EndpointConfig,\n params: TParams | undefined,\n endpoint: string,\n errorType?: 'params' | 'response'\n ): ValidationError {\n let message = 'Invalid parameters or response';\n let contextInfo = '';\n\n if (errorType === 'params') {\n message = 'Invalid request parameters';\n contextInfo = `\\nProvided parameters: ${JSON.stringify(params, null, 2)}`;\n } else if (errorType === 'response') {\n message = 'Invalid API response structure';\n contextInfo =\n '\\nThis appears to be a response validation error. The API returned data in an unexpected format during API refactoring.';\n } else {\n // Fallback logic for when error type is not specified\n const hasParamSchema = !!config.paramsSchema;\n if (hasParamSchema && params !== undefined) {\n message = 'Invalid request parameters';\n contextInfo = `\\nProvided parameters: ${JSON.stringify(params, null, 2)}`;\n } else if (!hasParamSchema) {\n message = 'Invalid API response structure';\n contextInfo =\n '\\nThis appears to be a response validation error. The API returned data in an unexpected format.';\n }\n }\n\n const validationError = new ValidationError({\n message,\n service: this.serviceName,\n endpoint,\n validationErrors: valibotError.issues.map(issue => ({\n path: (issue.path ?? []).map(segment => segment.key as string | number),\n message: issue.message,\n // Typed as always present, but issues built outside valibot can lack it\n code: issue.type ?? 'unknown',\n })),\n });\n\n if (contextInfo) {\n validationError.message += contextInfo;\n }\n\n return validationError;\n }\n\n /**\n * Build endpoint path with optional path parameter substitution\n *\n * @param pathTemplate Path template with {param} placeholders\n * @param pathParams Object containing parameter values\n * @returns Processed endpoint path\n *\n * @example\n * ```typescript\n * buildEndpointPath('/users/{id}', { id: '123' }) // returns '/users/123'\n * buildEndpointPath('/health-check') // returns '/health-check'\n * ```\n */\n private buildEndpointPath(\n pathTemplate: string,\n pathParams?: Record<string, string | number>\n ): string {\n if (!pathParams) {\n return pathTemplate;\n }\n\n // Normalise a string to lowercase-no-separators for fuzzy matching.\n // Handles camelCase, kebab-case, and snake_case path param mismatches\n // (e.g. pathParams key \"salesRepId\" matching placeholder \"{salesrep-id}\").\n const normalise = (s: string): string => s.replace(/[-_]/g, '').toLowerCase();\n\n let path = pathTemplate;\n for (const [key, value] of Object.entries(pathParams)) {\n const stringValue = String(value);\n // Try exact match first (fast path)\n if (path.includes(`{${key}}`)) {\n validatePathSegment(pathTemplate, key, stringValue);\n path = path.replace(`{${key}}`, stringValue);\n } else {\n // Fallback: match by normalised name\n const normKey = normalise(key);\n path = path.replace(/\\{([^}]+)\\}/g, (match, placeholder: string) => {\n if (normalise(placeholder) === normKey) {\n validatePathSegment(pathTemplate, placeholder, stringValue);\n return stringValue;\n }\n return match;\n });\n }\n }\n\n return path;\n }\n\n /**\n * Get discovery metadata for this service client\n *\n * Built from the endpoint registry, so it lists every endpoint this service\n * exposes, including healthCheck, ping and whoami.\n *\n * @returns ServiceDiscoveryMetadata containing service info and endpoint metadata\n */\n getDiscoveryMetadata(): ServiceDiscoveryMetadata {\n const endpoints = registryEntries()\n .filter(entry => entry.service === this.serviceName)\n .map(toDiscoveryEndpoint);\n\n return {\n serviceName: this.serviceName,\n description: this.getServiceDescription(),\n baseUrl: this.baseUrl,\n endpoints,\n };\n }\n\n /**\n * Get service description - can be overridden by subclasses\n */\n protected getServiceDescription(): string {\n return `${this.serviceName} service client for Augur API`;\n }\n}\n","/**\n * Runtime service proxy — creates a typed client from endpoint spec data.\n *\n * Instead of hand-writing resource files, the proxy dynamically routes\n * method calls to the correct API endpoint using the merged spec.\n *\n * The proxy calls through executeRequest (BaseServiceClient) to preserve:\n * - Valibot param/response validation\n * - Error handling\n * - Test spy compatibility (tests spy on executeRequest)\n *\n * @example\n * ```typescript\n * const proxy = createServiceProxy('items', boundExecuteRequest, endpoints);\n * const doc = await proxy.invMast.doc.get(0, { itemId: 'WAFL112' });\n * ```\n */\n\nimport * as v from 'valibot';\nimport type { HTTPMethod } from './base-client';\nimport type { BaseResponse } from './schemas';\nimport type { EndpointDef } from '../services/items/generated/endpoints';\n\n/** What `.data` holds for a response type; `unknown` when it isn't a BaseResponse. */\ntype DataOf<R> = R extends BaseResponse<infer D> ? D : unknown;\n\n/**\n * The type of a data proxy: every method that resolves to `BaseResponse<D>`\n * resolves to `D` instead, at any depth. Mirrors what createDataProxy does at\n * runtime, so `client.fooData.get()` is typed as the unwrapped `.data`.\n */\nexport type DataOnly<T> = T extends (...args: infer A) => Promise<infer R>\n ? ((...args: A) => Promise<DataOf<R>>) & { [K in keyof T]: DataOnly<T[K]> }\n : T extends object\n ? { [K in keyof T]: DataOnly<T[K]> }\n : T;\n// chainToPath is available for the reverse mapping (used by the proxy at runtime)\n// Currently the proxy passes the path template to executeRequest which handles substitution\n\n/**\n * The executeRequest function signature from BaseServiceClient.\n * Resource factories receive this as a bound function.\n */\ntype ExecuteRequestFn = <TParams = unknown, TResponse = unknown>(\n config: {\n method: HTTPMethod;\n path: string;\n paramsSchema?: v.GenericSchema;\n responseSchema: v.GenericSchema;\n },\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n) => Promise<TResponse>;\n\n/** Generic passthrough response schema — accepts any API response shape.\n * Runtime validation is lenient: data accepts any shape.\n * Typed responses are compile-time only (via generated interfaces in types.ts). */\nconst PassthroughResponseSchema = v.looseObject({\n count: v.number(),\n data: v.unknown(),\n message: v.string(),\n options: v.unknown(),\n params: v.unknown(),\n status: v.number(),\n total: v.number(),\n totalResults: v.number(),\n});\n\n/** Generic passthrough params schema — accepts any params */\nconst PassthroughParamsSchema = v.looseObject({});\n\n/** Trie node for endpoint lookup */\ninterface EndpointNode {\n actions: Map<string, EndpointDef>;\n children: Map<string, EndpointNode>;\n}\n\n/**\n * Build a trie from endpoint definitions for fast chain → endpoint lookup.\n */\nfunction buildEndpointTrie(endpoints: EndpointDef[]): EndpointNode {\n const root: EndpointNode = { actions: new Map(), children: new Map() };\n\n for (const ep of endpoints) {\n const parts = ep.chain.split('.');\n let node = root;\n\n for (const part of parts) {\n if (!node.children.has(part)) {\n node.children.set(part, { actions: new Map(), children: new Map() });\n }\n node = node.children.get(part)!;\n }\n\n node.actions.set(ep.action, ep);\n for (const alias of ep.aliases) {\n node.actions.set(alias, ep);\n }\n }\n\n return root;\n}\n\n/**\n * Create a proxy-based resource tree from endpoint definitions.\n *\n * @param serviceName - Service name for error messages\n * @param executeRequest - Bound executeRequest from BaseServiceClient\n * @param endpoints - Endpoint definitions from the generated spec\n */\nexport function createServiceProxy<T>(\n serviceName: string,\n executeRequest: ExecuteRequestFn,\n endpoints: EndpointDef[]\n): T {\n const trie = buildEndpointTrie(endpoints);\n return createNodeObject(serviceName, executeRequest, trie) as T;\n}\n\n/**\n * Build a real object from a trie node.\n *\n * Uses a plain object (not Proxy) so jest.spyOn works on methods.\n * Methods are materialized as stable properties.\n */\nfunction createNodeObject(\n serviceName: string,\n executeRequest: ExecuteRequestFn,\n node: EndpointNode\n): Record<string, unknown> {\n const obj: Record<string, unknown> = {};\n\n // Materialize action methods\n for (const [action, endpoint] of node.actions.entries()) {\n obj[action] = createActionFunction(serviceName, executeRequest, endpoint);\n }\n\n // Recurse into children\n for (const [childName, childNode] of node.children.entries()) {\n obj[childName] = createNodeObject(serviceName, executeRequest, childNode);\n }\n\n return obj;\n}\n\n/** Consume leading positional args as path params, returning the trailing rest. */\nfunction splitPathArgs(\n pathParams: string[],\n args: unknown[]\n): { pathParamMap: Record<string, string>; rest: unknown[] } {\n const pathParamMap: Record<string, string> = {};\n let index = 0;\n for (const name of pathParams) {\n if (index >= args.length) {\n break;\n }\n pathParamMap[name] = String(args[index]);\n index++;\n }\n return { pathParamMap, rest: args.slice(index) };\n}\n\n/**\n * Decide which trailing arg is the request body and which is the query string.\n *\n * GET has no body, so its trailing arg is the query. POST/PUT take the body\n * first and the query second — the API declares query params on write methods\n * too, and folding them into the body would send them to the wrong place.\n * DELETE has no body either, so its trailing arg is the query; it used to be\n * accepted as `params` and then dropped on the floor.\n */\nfunction splitBodyAndQuery(method: HTTPMethod, rest: unknown[]): { body: unknown; query: unknown } {\n if (method === 'POST' || method === 'PUT') {\n return { body: rest[0], query: rest[1] };\n }\n if (method === 'DELETE') {\n return { body: undefined, query: rest[0] };\n }\n return { body: rest[0], query: undefined };\n}\n\n/**\n * Accept legacy snake_case query-param keys and send them under the camelCase\n * name the API expects.\n *\n * Four services (commerce, basecamp2, p21-apis, p21-pim) shipped generated\n * types declaring snake_case params — `cart_hdr_uid` rather than `cartHdrUid`.\n * The client sends keys verbatim, so those params never reached the API and\n * the filters they were meant to apply silently did nothing.\n *\n * Correcting the names alone would break every call site written against the\n * old types. This bridge keeps both spellings working: a snake_case key is\n * renamed only when its camelCase form is a param the endpoint actually\n * declares, so unrelated keys pass through untouched. An explicit camelCase\n * value always wins over a snake_case duplicate.\n *\n * Deprecation path: once consumers are on camelCase, delete this function and\n * its call sites — nothing else depends on it.\n */\nexport function normaliseLegacyParamCase(params: unknown, declared: string[]): unknown {\n if (!params || typeof params !== 'object' || Array.isArray(params) || declared.length === 0) {\n return params;\n }\n\n const source = params as Record<string, unknown>;\n const wanted = new Set(declared);\n // Spread rather than copying key-by-key: `out[key] = value` would invoke the\n // `__proto__` setter for a caller-supplied `__proto__` key, mutating the\n // prototype instead of copying a property. Params can originate from a user\n // query string in a server action, so that key is reachable. Spread always\n // creates own properties, leaving a hostile key inert.\n const out: Record<string, unknown> = { ...source };\n let renamed = false;\n\n for (const [key, value] of Object.entries(source)) {\n const camel = key.replace(/_([a-z0-9])/g, (_m, c: string) => c.toUpperCase());\n if (camel === key || !wanted.has(camel)) {\n continue;\n }\n // A legacy alias for a declared param. Rename it — unless the caller also\n // supplied the camelCase key, in which case that value wins and the legacy\n // duplicate is dropped rather than sent alongside it.\n renamed = true;\n delete out[key];\n if (!(camel in source)) {\n out[camel] = value;\n }\n }\n\n return renamed ? out : params;\n}\n\n/**\n * Create the callable function for an endpoint action.\n *\n * Constructs an EndpointConfig and calls executeRequest — same as\n * hand-written resource files do, but automated from the spec.\n */\nfunction createActionFunction(\n _serviceName: string,\n executeRequest: ExecuteRequestFn,\n endpoint: EndpointDef\n): (...args: unknown[]) => Promise<unknown> {\n const { method, path, pathParams } = endpoint;\n\n return async (...args: unknown[]): Promise<unknown> => {\n const { pathParamMap, rest } = splitPathArgs(pathParams, args);\n const { body, query: trailing } = splitBodyAndQuery(method as HTTPMethod, rest);\n\n // Build the EndpointConfig\n // Include paramsSchema only when endpoint has explicit query params\n // (matches hand-written resource pattern — edgeCache alone doesn't add paramsSchema)\n const hasQueryParams = endpoint.queryParams.length > 0;\n // Only forward a query string for endpoints whose spec declares one. The\n // generated signatures don't expose a params arg otherwise, so anything\n // trailing there is not a documented param and must not reach the wire.\n const query = normaliseLegacyParamCase(\n hasQueryParams ? trailing : undefined,\n endpoint.queryParams\n );\n // On GET the `params` slot IS the query string, so legacy keys are renamed\n // there too. On POST/PUT that slot is the request body and MUST be left\n // exactly as the caller supplied it.\n const wireParams = (value: unknown): unknown =>\n method === 'GET' ? normaliseLegacyParamCase(value, endpoint.queryParams) : value;\n const config = {\n method: method as HTTPMethod,\n path,\n ...(hasQueryParams ? { paramsSchema: PassthroughParamsSchema } : {}),\n responseSchema: PassthroughResponseSchema,\n };\n\n // Call executeRequest — match hand-written resource call patterns exactly:\n // With path params: (config, params, pathParams) — always 3 args\n // With query params defined: (config, params) — always 2 args, even if params undefined\n // No params at all: (config) — 1 arg\n // The trailing `query` arg is passed only when present, so call arity is\n // unchanged for the vast majority of endpoints that have no write-method\n // query params.\n if (Object.keys(pathParamMap).length > 0) {\n // Match hand-written patterns:\n // - Endpoints with query params: pass undefined when no params (doc.list pattern)\n // - Endpoints without query params: pass {} when no params (get pattern)\n const params = wireParams(hasQueryParams ? body : (body ?? {}));\n return query === undefined\n ? executeRequest(config, params, pathParamMap)\n : executeRequest(config, params, pathParamMap, query);\n }\n if (hasQueryParams || body !== undefined) {\n return query === undefined\n ? executeRequest(config, wireParams(body))\n : executeRequest(config, wireParams(body), undefined, query);\n }\n // Reached only when the endpoint declares no query params and no body was\n // supplied, so `query` is undefined by construction.\n return executeRequest(config);\n };\n}\n\n/**\n * Create a data-only wrapper that unwraps .data from every response.\n *\n * Reads the source function at CALL TIME (not construction time) so that\n * jest.spyOn on the source object works correctly — the spy replaces the\n * property on the source, and the data proxy picks up the spy'd version.\n */\nexport function createDataProxy<T>(resource: T): DataOnly<T> {\n const obj: Record<string, unknown> = {};\n const src = resource as Record<string, unknown>;\n\n for (const key of Object.keys(src)) {\n const value = src[key];\n\n if (typeof value === 'function') {\n // Read from src[key] at call time, not value at construction time\n const propKey = key;\n obj[key] = async (...args: unknown[]) => {\n const fn = src[propKey] as (...a: unknown[]) => Promise<unknown>;\n const response = (await fn(...args)) as { data?: unknown };\n return response?.data;\n };\n } else if (value && typeof value === 'object') {\n obj[key] = createDataProxy(value);\n } else {\n obj[key] = value;\n }\n }\n\n return obj as DataOnly<T>;\n}\n","/**\n * Generated client for joomla service\n * Source: shared/specs/joomla.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { JoomlaClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class JoomlaClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly actionLogs: JoomlaClientSpec['actionLogs'];\n readonly categories: JoomlaClientSpec['categories'];\n readonly content: JoomlaClientSpec['content'];\n readonly menu: JoomlaClientSpec['menu'];\n readonly modules: JoomlaClientSpec['modules'];\n readonly tags: JoomlaClientSpec['tags'];\n readonly usergroups: JoomlaClientSpec['usergroups'];\n readonly users: JoomlaClientSpec['users'];\n\n // Data-only resources (unwrap .data from every response)\n readonly actionLogsData: DataOnly<JoomlaClientSpec['actionLogs']>;\n readonly categoriesData: DataOnly<JoomlaClientSpec['categories']>;\n readonly contentData: DataOnly<JoomlaClientSpec['content']>;\n readonly menuData: DataOnly<JoomlaClientSpec['menu']>;\n readonly modulesData: DataOnly<JoomlaClientSpec['modules']>;\n readonly tagsData: DataOnly<JoomlaClientSpec['tags']>;\n readonly usergroupsData: DataOnly<JoomlaClientSpec['usergroups']>;\n readonly usersData: DataOnly<JoomlaClientSpec['users']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://joomla.augur-api.com') {\n super('joomla', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<JoomlaClientSpec>('joomla', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.actionLogs = proxy.actionLogs;\n this.categories = proxy.categories;\n this.content = proxy.content;\n this.menu = proxy.menu;\n this.modules = proxy.modules;\n this.tags = proxy.tags;\n this.usergroups = proxy.usergroups;\n this.users = proxy.users;\n\n // Wire data proxy resources\n this.actionLogsData = dataProxy.actionLogs;\n this.categoriesData = dataProxy.categories;\n this.contentData = dataProxy.content;\n this.menuData = dataProxy.menu;\n this.modulesData = dataProxy.modules;\n this.tagsData = dataProxy.tags;\n this.usergroupsData = dataProxy.usergroups;\n this.usersData = dataProxy.users;\n }\n\n protected getServiceDescription(): string {\n return 'Joomla CMS integration syncing content, users, categories, menus, and extensions';\n }\n}\n","/**\n * Generated client for commerce service\n * Source: shared/specs/commerce.json\n * Generated: 2026-09-23T23:29:51Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { CommerceClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class CommerceClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly cartHdr: CommerceClientSpec['cartHdr'];\n readonly cartLine: CommerceClientSpec['cartLine'];\n readonly checkout: CommerceClientSpec['checkout'];\n\n // Data-only resources (unwrap .data from every response)\n readonly cartHdrData: DataOnly<CommerceClientSpec['cartHdr']>;\n readonly cartLineData: DataOnly<CommerceClientSpec['cartLine']>;\n readonly checkoutData: DataOnly<CommerceClientSpec['checkout']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://commerce.augur-api.com') {\n super('commerce', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<CommerceClientSpec>(\n 'commerce',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.cartHdr = proxy.cartHdr;\n this.cartLine = proxy.cartLine;\n this.checkout = proxy.checkout;\n\n // Wire data proxy resources\n this.cartHdrData = dataProxy.cartHdr;\n this.cartLineData = dataProxy.cartLine;\n this.checkoutData = dataProxy.checkout;\n }\n\n protected getServiceDescription(): string {\n return 'Shopping cart and checkout engine managing cart state, checkout flow, and Prophet 21 order submission';\n }\n}\n","/**\n * Generated client for pricing service\n * Source: shared/specs/pricing.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { PricingClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class PricingClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly jobPriceHdr: PricingClientSpec['jobPriceHdr'];\n readonly priceEngine: PricingClientSpec['priceEngine'];\n readonly taxEngine: PricingClientSpec['taxEngine'];\n readonly webPricing: PricingClientSpec['webPricing'];\n\n // Data-only resources (unwrap .data from every response)\n readonly jobPriceHdrData: DataOnly<PricingClientSpec['jobPriceHdr']>;\n readonly priceEngineData: DataOnly<PricingClientSpec['priceEngine']>;\n readonly taxEngineData: DataOnly<PricingClientSpec['taxEngine']>;\n readonly webPricingData: DataOnly<PricingClientSpec['webPricing']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://pricing.augur-api.com') {\n super('pricing', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<PricingClientSpec>('pricing', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.jobPriceHdr = proxy.jobPriceHdr;\n this.priceEngine = proxy.priceEngine;\n this.taxEngine = proxy.taxEngine;\n this.webPricing = proxy.webPricing;\n\n // Wire data proxy resources\n this.jobPriceHdrData = dataProxy.jobPriceHdr;\n this.priceEngineData = dataProxy.priceEngine;\n this.taxEngineData = dataProxy.taxEngine;\n this.webPricingData = dataProxy.webPricing;\n }\n\n protected getServiceDescription(): string {\n return 'Pricing engine with 4-stage waterfall calculation, price books, tax groups, and customer-specific rules';\n }\n}\n","/**\n * Generated client for vmi service\n * Source: shared/specs/vmi.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { VMIClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class VMIClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly distributors: VMIClientSpec['distributors'];\n readonly invProfileHdr: VMIClientSpec['invProfileHdr'];\n readonly products: VMIClientSpec['products'];\n readonly restockHdr: VMIClientSpec['restockHdr'];\n readonly sections: VMIClientSpec['sections'];\n readonly warehouse: VMIClientSpec['warehouse'];\n\n // Data-only resources (unwrap .data from every response)\n readonly distributorsData: DataOnly<VMIClientSpec['distributors']>;\n readonly invProfileHdrData: DataOnly<VMIClientSpec['invProfileHdr']>;\n readonly productsData: DataOnly<VMIClientSpec['products']>;\n readonly restockHdrData: DataOnly<VMIClientSpec['restockHdr']>;\n readonly sectionsData: DataOnly<VMIClientSpec['sections']>;\n readonly warehouseData: DataOnly<VMIClientSpec['warehouse']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://vmi.augur-api.com') {\n super('vmi', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<VMIClientSpec>('vmi', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.distributors = proxy.distributors;\n this.invProfileHdr = proxy.invProfileHdr;\n this.products = proxy.products;\n this.restockHdr = proxy.restockHdr;\n this.sections = proxy.sections;\n this.warehouse = proxy.warehouse;\n\n // Wire data proxy resources\n this.distributorsData = dataProxy.distributors;\n this.invProfileHdrData = dataProxy.invProfileHdr;\n this.productsData = dataProxy.products;\n this.restockHdrData = dataProxy.restockHdr;\n this.sectionsData = dataProxy.sections;\n this.warehouseData = dataProxy.warehouse;\n }\n\n protected getServiceDescription(): string {\n return 'Vendor-managed inventory for distributor profiles, warehouse stock levels, restocking, and usage tracking';\n }\n}\n","/**\n * Generated client for open-search service\n * Source: shared/specs/open-search.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { OpenSearchClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class OpenSearchClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly itemSearch: OpenSearchClientSpec['itemSearch'];\n readonly itemSearchFacets: OpenSearchClientSpec['itemSearchFacets'];\n readonly items: OpenSearchClientSpec['items'];\n readonly queryStringRedirect: OpenSearchClientSpec['queryStringRedirect'];\n readonly suggestions: OpenSearchClientSpec['suggestions'];\n\n // Data-only resources (unwrap .data from every response)\n readonly itemSearchData: DataOnly<OpenSearchClientSpec['itemSearch']>;\n readonly itemSearchFacetsData: DataOnly<OpenSearchClientSpec['itemSearchFacets']>;\n readonly itemsData: DataOnly<OpenSearchClientSpec['items']>;\n readonly queryStringRedirectData: DataOnly<OpenSearchClientSpec['queryStringRedirect']>;\n readonly suggestionsData: DataOnly<OpenSearchClientSpec['suggestions']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://open-search.augur-api.com') {\n super('open-search', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<OpenSearchClientSpec>(\n 'open-search',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.itemSearch = proxy.itemSearch;\n this.itemSearchFacets = proxy.itemSearchFacets;\n this.items = proxy.items;\n this.queryStringRedirect = proxy.queryStringRedirect;\n this.suggestions = proxy.suggestions;\n\n // Wire data proxy resources\n this.itemSearchData = dataProxy.itemSearch;\n this.itemSearchFacetsData = dataProxy.itemSearchFacets;\n this.itemsData = dataProxy.items;\n this.queryStringRedirectData = dataProxy.queryStringRedirect;\n this.suggestionsData = dataProxy.suggestions;\n }\n\n protected getServiceDescription(): string {\n return 'Product search engine powered by OpenSearch with autocomplete, faceted filtering, and query analytics';\n }\n}\n","/**\n * Generated client for items service\n * Source: shared/specs/items.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { ItemsClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class ItemsClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly attributeGroups: ItemsClientSpec['attributeGroups'];\n readonly attributes: ItemsClientSpec['attributes'];\n readonly brands: ItemsClientSpec['brands'];\n readonly categories: ItemsClientSpec['categories'];\n readonly contracts: ItemsClientSpec['contracts'];\n readonly internal: ItemsClientSpec['internal'];\n readonly invLoc: ItemsClientSpec['invLoc'];\n readonly invMast: ItemsClientSpec['invMast'];\n readonly invMastLinks: ItemsClientSpec['invMastLinks'];\n readonly invMastSubParts: ItemsClientSpec['invMastSubParts'];\n readonly invMastUd: ItemsClientSpec['invMastUd'];\n readonly itemCategory: ItemsClientSpec['itemCategory'];\n readonly itemFavorites: ItemsClientSpec['itemFavorites'];\n readonly itemUom: ItemsClientSpec['itemUom'];\n readonly itemWishlist: ItemsClientSpec['itemWishlist'];\n readonly locations: ItemsClientSpec['locations'];\n readonly p21: ItemsClientSpec['p21'];\n readonly variants: ItemsClientSpec['variants'];\n\n // Data-only resources (unwrap .data from every response)\n readonly attributeGroupsData: DataOnly<ItemsClientSpec['attributeGroups']>;\n readonly attributesData: DataOnly<ItemsClientSpec['attributes']>;\n readonly brandsData: DataOnly<ItemsClientSpec['brands']>;\n readonly categoriesData: DataOnly<ItemsClientSpec['categories']>;\n readonly contractsData: DataOnly<ItemsClientSpec['contracts']>;\n readonly internalData: DataOnly<ItemsClientSpec['internal']>;\n readonly invLocData: DataOnly<ItemsClientSpec['invLoc']>;\n readonly invMastData: DataOnly<ItemsClientSpec['invMast']>;\n readonly invMastLinksData: DataOnly<ItemsClientSpec['invMastLinks']>;\n readonly invMastSubPartsData: DataOnly<ItemsClientSpec['invMastSubParts']>;\n readonly invMastUdData: DataOnly<ItemsClientSpec['invMastUd']>;\n readonly itemCategoryData: DataOnly<ItemsClientSpec['itemCategory']>;\n readonly itemFavoritesData: DataOnly<ItemsClientSpec['itemFavorites']>;\n readonly itemUomData: DataOnly<ItemsClientSpec['itemUom']>;\n readonly itemWishlistData: DataOnly<ItemsClientSpec['itemWishlist']>;\n readonly locationsData: DataOnly<ItemsClientSpec['locations']>;\n readonly p21Data: DataOnly<ItemsClientSpec['p21']>;\n readonly variantsData: DataOnly<ItemsClientSpec['variants']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://items.augur-api.com') {\n super('items', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<ItemsClientSpec>('items', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.attributeGroups = proxy.attributeGroups;\n this.attributes = proxy.attributes;\n this.brands = proxy.brands;\n this.categories = proxy.categories;\n this.contracts = proxy.contracts;\n this.internal = proxy.internal;\n this.invLoc = proxy.invLoc;\n this.invMast = proxy.invMast;\n this.invMastLinks = proxy.invMastLinks;\n this.invMastSubParts = proxy.invMastSubParts;\n this.invMastUd = proxy.invMastUd;\n this.itemCategory = proxy.itemCategory;\n this.itemFavorites = proxy.itemFavorites;\n this.itemUom = proxy.itemUom;\n this.itemWishlist = proxy.itemWishlist;\n this.locations = proxy.locations;\n this.p21 = proxy.p21;\n this.variants = proxy.variants;\n\n // Wire data proxy resources\n this.attributeGroupsData = dataProxy.attributeGroups;\n this.attributesData = dataProxy.attributes;\n this.brandsData = dataProxy.brands;\n this.categoriesData = dataProxy.categories;\n this.contractsData = dataProxy.contracts;\n this.internalData = dataProxy.internal;\n this.invLocData = dataProxy.invLoc;\n this.invMastData = dataProxy.invMast;\n this.invMastLinksData = dataProxy.invMastLinks;\n this.invMastSubPartsData = dataProxy.invMastSubParts;\n this.invMastUdData = dataProxy.invMastUd;\n this.itemCategoryData = dataProxy.itemCategory;\n this.itemFavoritesData = dataProxy.itemFavorites;\n this.itemUomData = dataProxy.itemUom;\n this.itemWishlistData = dataProxy.itemWishlist;\n this.locationsData = dataProxy.locations;\n this.p21Data = dataProxy.p21;\n this.variantsData = dataProxy.variants;\n }\n\n protected getServiceDescription(): string {\n return 'Product catalog and inventory management — items, categories, attributes, variants, brands, wishlists, and P21 inventory master data';\n }\n}\n","/**\n * Generated client for legacy service\n * Source: shared/specs/legacy.json\n * Generated: 2026-09-30T03:26:34Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { LegacyClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class LegacyClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly customers: LegacyClientSpec['customers'];\n readonly invMast: LegacyClientSpec['invMast'];\n readonly itemCategory: LegacyClientSpec['itemCategory'];\n readonly legacy: LegacyClientSpec['legacy'];\n readonly orders: LegacyClientSpec['orders'];\n\n // Data-only resources (unwrap .data from every response)\n readonly customersData: DataOnly<LegacyClientSpec['customers']>;\n readonly invMastData: DataOnly<LegacyClientSpec['invMast']>;\n readonly itemCategoryData: DataOnly<LegacyClientSpec['itemCategory']>;\n readonly legacyData: DataOnly<LegacyClientSpec['legacy']>;\n readonly ordersData: DataOnly<LegacyClientSpec['orders']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://legacy.augur-api.com') {\n super('legacy', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<LegacyClientSpec>('legacy', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.customers = proxy.customers;\n this.invMast = proxy.invMast;\n this.itemCategory = proxy.itemCategory;\n this.legacy = proxy.legacy;\n this.orders = proxy.orders;\n\n // Wire data proxy resources\n this.customersData = dataProxy.customers;\n this.invMastData = dataProxy.invMast;\n this.itemCategoryData = dataProxy.itemCategory;\n this.legacyData = dataProxy.legacy;\n this.ordersData = dataProxy.orders;\n }\n\n protected getServiceDescription(): string {\n return 'Legacy Prophet 21 data mirror for inventory, customers, orders, pricing, and product attributes';\n }\n}\n","/**\n * Generated client for agr-site service\n * Source: shared/specs/agr-site.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { AgrSiteClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class AgrSiteClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly context: AgrSiteClientSpec['context'];\n readonly datafiles: AgrSiteClientSpec['datafiles'];\n readonly fyxerTranscript: AgrSiteClientSpec['fyxerTranscript'];\n readonly geoCodesPostalCodes: AgrSiteClientSpec['geoCodesPostalCodes'];\n readonly metaFiles: AgrSiteClientSpec['metaFiles'];\n readonly notifications: AgrSiteClientSpec['notifications'];\n readonly openSearch: AgrSiteClientSpec['openSearch'];\n readonly postalCodesXShiptos: AgrSiteClientSpec['postalCodesXShiptos'];\n readonly settings: AgrSiteClientSpec['settings'];\n readonly training: AgrSiteClientSpec['training'];\n readonly users: AgrSiteClientSpec['users'];\n\n // Data-only resources (unwrap .data from every response)\n readonly contextData: DataOnly<AgrSiteClientSpec['context']>;\n readonly datafilesData: DataOnly<AgrSiteClientSpec['datafiles']>;\n readonly fyxerTranscriptData: DataOnly<AgrSiteClientSpec['fyxerTranscript']>;\n readonly geoCodesPostalCodesData: DataOnly<AgrSiteClientSpec['geoCodesPostalCodes']>;\n readonly metaFilesData: DataOnly<AgrSiteClientSpec['metaFiles']>;\n readonly notificationsData: DataOnly<AgrSiteClientSpec['notifications']>;\n readonly openSearchData: DataOnly<AgrSiteClientSpec['openSearch']>;\n readonly postalCodesXShiptosData: DataOnly<AgrSiteClientSpec['postalCodesXShiptos']>;\n readonly settingsData: DataOnly<AgrSiteClientSpec['settings']>;\n readonly trainingData: DataOnly<AgrSiteClientSpec['training']>;\n readonly usersData: DataOnly<AgrSiteClientSpec['users']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://agr-site.augur-api.com') {\n super('agr-site', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<AgrSiteClientSpec>('agr-site', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.context = proxy.context;\n this.datafiles = proxy.datafiles;\n this.fyxerTranscript = proxy.fyxerTranscript;\n this.geoCodesPostalCodes = proxy.geoCodesPostalCodes;\n this.metaFiles = proxy.metaFiles;\n this.notifications = proxy.notifications;\n this.openSearch = proxy.openSearch;\n this.postalCodesXShiptos = proxy.postalCodesXShiptos;\n this.settings = proxy.settings;\n this.training = proxy.training;\n this.users = proxy.users;\n\n // Wire data proxy resources\n this.contextData = dataProxy.context;\n this.datafilesData = dataProxy.datafiles;\n this.fyxerTranscriptData = dataProxy.fyxerTranscript;\n this.geoCodesPostalCodesData = dataProxy.geoCodesPostalCodes;\n this.metaFilesData = dataProxy.metaFiles;\n this.notificationsData = dataProxy.notifications;\n this.openSearchData = dataProxy.openSearch;\n this.postalCodesXShiptosData = dataProxy.postalCodesXShiptos;\n this.settingsData = dataProxy.settings;\n this.trainingData = dataProxy.training;\n this.usersData = dataProxy.users;\n }\n\n protected getServiceDescription(): string {\n return 'Central site configuration hub managing settings, notifications, training data, and cross-service integrations per client';\n }\n}\n","/**\n * Generated client for customers service\n * Source: shared/specs/customers.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { CustomersClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class CustomersClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly contacts: CustomersClientSpec['contacts'];\n readonly contactsUd: CustomersClientSpec['contactsUd'];\n readonly customer: CustomersClientSpec['customer'];\n readonly oeContactsCustomer: CustomersClientSpec['oeContactsCustomer'];\n readonly shipTo: CustomersClientSpec['shipTo'];\n\n // Data-only resources (unwrap .data from every response)\n readonly contactsData: DataOnly<CustomersClientSpec['contacts']>;\n readonly contactsUdData: DataOnly<CustomersClientSpec['contactsUd']>;\n readonly customerData: DataOnly<CustomersClientSpec['customer']>;\n readonly oeContactsCustomerData: DataOnly<CustomersClientSpec['oeContactsCustomer']>;\n readonly shipToData: DataOnly<CustomersClientSpec['shipTo']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://customers.augur-api.com') {\n super('customers', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<CustomersClientSpec>(\n 'customers',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.contacts = proxy.contacts;\n this.contactsUd = proxy.contactsUd;\n this.customer = proxy.customer;\n this.oeContactsCustomer = proxy.oeContactsCustomer;\n this.shipTo = proxy.shipTo;\n\n // Wire data proxy resources\n this.contactsData = dataProxy.contacts;\n this.contactsUdData = dataProxy.contactsUd;\n this.customerData = dataProxy.customer;\n this.oeContactsCustomerData = dataProxy.oeContactsCustomer;\n this.shipToData = dataProxy.shipTo;\n }\n\n protected getServiceDescription(): string {\n return 'Customer master data including contacts, shipping addresses, invoices, rewards, and P21 customer sync';\n }\n}\n","/**\n * Generated client for orders service\n * Source: shared/specs/orders.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { OrdersClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class OrdersClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly invoiceHdr: OrdersClientSpec['invoiceHdr'];\n readonly oeHdr: OrdersClientSpec['oeHdr'];\n readonly oeHdrSalesrep: OrdersClientSpec['oeHdrSalesrep'];\n readonly pickTickets: OrdersClientSpec['pickTickets'];\n readonly poHdr: OrdersClientSpec['poHdr'];\n readonly poLine: OrdersClientSpec['poLine'];\n\n // Data-only resources (unwrap .data from every response)\n readonly invoiceHdrData: DataOnly<OrdersClientSpec['invoiceHdr']>;\n readonly oeHdrData: DataOnly<OrdersClientSpec['oeHdr']>;\n readonly oeHdrSalesrepData: DataOnly<OrdersClientSpec['oeHdrSalesrep']>;\n readonly pickTicketsData: DataOnly<OrdersClientSpec['pickTickets']>;\n readonly poHdrData: DataOnly<OrdersClientSpec['poHdr']>;\n readonly poLineData: DataOnly<OrdersClientSpec['poLine']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://orders.augur-api.com') {\n super('orders', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<OrdersClientSpec>('orders', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.invoiceHdr = proxy.invoiceHdr;\n this.oeHdr = proxy.oeHdr;\n this.oeHdrSalesrep = proxy.oeHdrSalesrep;\n this.pickTickets = proxy.pickTickets;\n this.poHdr = proxy.poHdr;\n this.poLine = proxy.poLine;\n\n // Wire data proxy resources\n this.invoiceHdrData = dataProxy.invoiceHdr;\n this.oeHdrData = dataProxy.oeHdr;\n this.oeHdrSalesrepData = dataProxy.oeHdrSalesrep;\n this.pickTicketsData = dataProxy.pickTickets;\n this.poHdrData = dataProxy.poHdr;\n this.poLineData = dataProxy.poLine;\n }\n\n protected getServiceDescription(): string {\n return 'Order lifecycle management for sales orders, invoices, payments, RMAs, and accounts receivable from P21';\n }\n}\n","/**\n * Generated client for p21-pim service\n * Source: shared/specs/p21-pim.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { P21PimClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class P21PimClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly invMastExt: P21PimClientSpec['invMastExt'];\n readonly invMastFiles: P21PimClientSpec['invMastFiles'];\n readonly invMastText: P21PimClientSpec['invMastText'];\n readonly items: P21PimClientSpec['items'];\n readonly podcasts: P21PimClientSpec['podcasts'];\n\n // Data-only resources (unwrap .data from every response)\n readonly invMastExtData: DataOnly<P21PimClientSpec['invMastExt']>;\n readonly invMastFilesData: DataOnly<P21PimClientSpec['invMastFiles']>;\n readonly invMastTextData: DataOnly<P21PimClientSpec['invMastText']>;\n readonly itemsData: DataOnly<P21PimClientSpec['items']>;\n readonly podcastsData: DataOnly<P21PimClientSpec['podcasts']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://p21-pim.augur-api.com') {\n super('p21-pim', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<P21PimClientSpec>('p21-pim', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.invMastExt = proxy.invMastExt;\n this.invMastFiles = proxy.invMastFiles;\n this.invMastText = proxy.invMastText;\n this.items = proxy.items;\n this.podcasts = proxy.podcasts;\n\n // Wire data proxy resources\n this.invMastExtData = dataProxy.invMastExt;\n this.invMastFilesData = dataProxy.invMastFiles;\n this.invMastTextData = dataProxy.invMastText;\n this.itemsData = dataProxy.items;\n this.podcastsData = dataProxy.podcasts;\n }\n\n protected getServiceDescription(): string {\n return 'Product information management for rich content, media assets, and extended item descriptions';\n }\n}\n","/**\n * Generated client for payments service\n * Source: shared/specs/payments.json\n * Generated: 2026-09-23T23:30:05Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { PaymentsClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class PaymentsClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly element: PaymentsClientSpec['element'];\n readonly moneris: PaymentsClientSpec['moneris'];\n readonly paypal: PaymentsClientSpec['paypal'];\n readonly paytrace: PaymentsClientSpec['paytrace'];\n readonly unified: PaymentsClientSpec['unified'];\n\n // Data-only resources (unwrap .data from every response)\n readonly elementData: DataOnly<PaymentsClientSpec['element']>;\n readonly monerisData: DataOnly<PaymentsClientSpec['moneris']>;\n readonly paypalData: DataOnly<PaymentsClientSpec['paypal']>;\n readonly paytraceData: DataOnly<PaymentsClientSpec['paytrace']>;\n readonly unifiedData: DataOnly<PaymentsClientSpec['unified']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://payments.augur-api.com') {\n super('payments', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<PaymentsClientSpec>(\n 'payments',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.element = proxy.element;\n this.moneris = proxy.moneris;\n this.paypal = proxy.paypal;\n this.paytrace = proxy.paytrace;\n this.unified = proxy.unified;\n\n // Wire data proxy resources\n this.elementData = dataProxy.element;\n this.monerisData = dataProxy.moneris;\n this.paypalData = dataProxy.paypal;\n this.paytraceData = dataProxy.paytrace;\n this.unifiedData = dataProxy.unified;\n }\n\n protected getServiceDescription(): string {\n return 'Unified payment processing gateway supporting Moneris, PayTrace, and Element card transactions and PayPal orders';\n }\n}\n","/**\n * Generated client for agr-info service\n * Source: shared/specs/agr-info.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { AgrInfoClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class AgrInfoClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly akasha: AgrInfoClientSpec['akasha'];\n readonly context: AgrInfoClientSpec['context'];\n readonly joomla: AgrInfoClientSpec['joomla'];\n readonly microservices: AgrInfoClientSpec['microservices'];\n readonly ollama: AgrInfoClientSpec['ollama'];\n readonly rubrics: AgrInfoClientSpec['rubrics'];\n readonly sites: AgrInfoClientSpec['sites'];\n readonly workflows: AgrInfoClientSpec['workflows'];\n\n // Data-only resources (unwrap .data from every response)\n readonly akashaData: DataOnly<AgrInfoClientSpec['akasha']>;\n readonly contextData: DataOnly<AgrInfoClientSpec['context']>;\n readonly joomlaData: DataOnly<AgrInfoClientSpec['joomla']>;\n readonly microservicesData: DataOnly<AgrInfoClientSpec['microservices']>;\n readonly ollamaData: DataOnly<AgrInfoClientSpec['ollama']>;\n readonly rubricsData: DataOnly<AgrInfoClientSpec['rubrics']>;\n readonly sitesData: DataOnly<AgrInfoClientSpec['sites']>;\n readonly workflowsData: DataOnly<AgrInfoClientSpec['workflows']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://agr-info.augur-api.com') {\n super('agr-info', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<AgrInfoClientSpec>('agr-info', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.akasha = proxy.akasha;\n this.context = proxy.context;\n this.joomla = proxy.joomla;\n this.microservices = proxy.microservices;\n this.ollama = proxy.ollama;\n this.rubrics = proxy.rubrics;\n this.sites = proxy.sites;\n this.workflows = proxy.workflows;\n\n // Wire data proxy resources\n this.akashaData = dataProxy.akasha;\n this.contextData = dataProxy.context;\n this.joomlaData = dataProxy.joomla;\n this.microservicesData = dataProxy.microservices;\n this.ollamaData = dataProxy.ollama;\n this.rubricsData = dataProxy.rubrics;\n this.sitesData = dataProxy.sites;\n this.workflowsData = dataProxy.workflows;\n }\n\n protected getServiceDescription(): string {\n return 'Knowledge management and contextual information aggregation from Basecamp, Joomla, and AI sources';\n }\n}\n","/**\n * Generated client for agr-int service\n * Source: shared/specs/agr-int.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { AgrIntClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class AgrIntClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly bundles: AgrIntClientSpec['bundles'];\n readonly clients: AgrIntClientSpec['clients'];\n readonly resources: AgrIntClientSpec['resources'];\n readonly roles: AgrIntClientSpec['roles'];\n readonly users: AgrIntClientSpec['users'];\n\n // Data-only resources (unwrap .data from every response)\n readonly bundlesData: DataOnly<AgrIntClientSpec['bundles']>;\n readonly clientsData: DataOnly<AgrIntClientSpec['clients']>;\n readonly resourcesData: DataOnly<AgrIntClientSpec['resources']>;\n readonly rolesData: DataOnly<AgrIntClientSpec['roles']>;\n readonly usersData: DataOnly<AgrIntClientSpec['users']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://agr-int.augur-api.com') {\n super('agr-int', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<AgrIntClientSpec>('agr-int', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.bundles = proxy.bundles;\n this.clients = proxy.clients;\n this.resources = proxy.resources;\n this.roles = proxy.roles;\n this.users = proxy.users;\n\n // Wire data proxy resources\n this.bundlesData = dataProxy.bundles;\n this.clientsData = dataProxy.clients;\n this.resourcesData = dataProxy.resources;\n this.rolesData = dataProxy.roles;\n this.usersData = dataProxy.users;\n }\n\n protected getServiceDescription(): string {\n return 'agr_int';\n }\n}\n","/**\n * Generated client for agr-work service\n * Source: shared/specs/agr-work.json\n * Generated: 2026-09-28T15:25:24Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\n\nexport class AgrWorkClient extends BaseServiceClient {\n constructor(http: HTTPClient, baseUrl: string = 'https://agr-work.augur-api.com') {\n super('agr-work', http, baseUrl);\n }\n\n protected getServiceDescription(): string {\n return 'Work tracking and task management for internal operations and job scheduling';\n }\n}\n","/**\n * Generated client for avalara service\n * Source: shared/specs/avalara.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { AvalaraClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class AvalaraClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly rates: AvalaraClientSpec['rates'];\n\n // Data-only resources (unwrap .data from every response)\n readonly ratesData: DataOnly<AvalaraClientSpec['rates']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://avalara.augur-api.com') {\n super('avalara', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<AvalaraClientSpec>('avalara', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.rates = proxy.rates;\n\n // Wire data proxy resources\n this.ratesData = dataProxy.rates;\n }\n\n protected getServiceDescription(): string {\n return 'Avalara tax rate calculation API integration for real-time sales tax on e-commerce transactions';\n }\n}\n","/**\n * Generated client for brand-folder service\n * Source: shared/specs/brand-folder.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { BrandFolderClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class BrandFolderClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly categories: BrandFolderClientSpec['categories'];\n\n // Data-only resources (unwrap .data from every response)\n readonly categoriesData: DataOnly<BrandFolderClientSpec['categories']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://brand-folder.augur-api.com') {\n super('brand-folder', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<BrandFolderClientSpec>(\n 'brand-folder',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.categories = proxy.categories;\n\n // Wire data proxy resources\n this.categoriesData = dataProxy.categories;\n }\n\n protected getServiceDescription(): string {\n return 'Digital asset management for brand images, documents, and media with tagging and categorization';\n }\n}\n","/**\n * Generated client for gregorovich service\n * Source: shared/specs/gregorovich.json\n * Generated: 2026-09-23T23:29:53Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { GregorovichClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class GregorovichClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly chatGpt: GregorovichClientSpec['chatGpt'];\n readonly documents: GregorovichClientSpec['documents'];\n readonly ollama: GregorovichClientSpec['ollama'];\n\n // Data-only resources (unwrap .data from every response)\n readonly chatGptData: DataOnly<GregorovichClientSpec['chatGpt']>;\n readonly documentsData: DataOnly<GregorovichClientSpec['documents']>;\n readonly ollamaData: DataOnly<GregorovichClientSpec['ollama']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://gregorovich.augur-api.com') {\n super('gregorovich', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<GregorovichClientSpec>(\n 'gregorovich',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.chatGpt = proxy.chatGpt;\n this.documents = proxy.documents;\n this.ollama = proxy.ollama;\n\n // Wire data proxy resources\n this.chatGptData = dataProxy.chatGpt;\n this.documentsData = dataProxy.documents;\n this.ollamaData = dataProxy.ollama;\n }\n\n protected getServiceDescription(): string {\n return 'AI and LLM gateway providing RAG, embeddings, and chat via OpenAI, Groq, Ollama, and vLLM backends';\n }\n}\n","/**\n * Generated client for logistics service\n * Source: shared/specs/logistics.json\n * Generated: 2026-09-23T23:29:57Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { LogisticsClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class LogisticsClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly fedex: LogisticsClientSpec['fedex'];\n readonly rts: LogisticsClientSpec['rts'];\n readonly shippingMethods: LogisticsClientSpec['shippingMethods'];\n readonly shipvia: LogisticsClientSpec['shipvia'];\n readonly speedship: LogisticsClientSpec['speedship'];\n readonly ups: LogisticsClientSpec['ups'];\n\n // Data-only resources (unwrap .data from every response)\n readonly fedexData: DataOnly<LogisticsClientSpec['fedex']>;\n readonly rtsData: DataOnly<LogisticsClientSpec['rts']>;\n readonly shippingMethodsData: DataOnly<LogisticsClientSpec['shippingMethods']>;\n readonly shipviaData: DataOnly<LogisticsClientSpec['shipvia']>;\n readonly speedshipData: DataOnly<LogisticsClientSpec['speedship']>;\n readonly upsData: DataOnly<LogisticsClientSpec['ups']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://logistics.augur-api.com') {\n super('logistics', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<LogisticsClientSpec>(\n 'logistics',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.fedex = proxy.fedex;\n this.rts = proxy.rts;\n this.shippingMethods = proxy.shippingMethods;\n this.shipvia = proxy.shipvia;\n this.speedship = proxy.speedship;\n this.ups = proxy.ups;\n\n // Wire data proxy resources\n this.fedexData = dataProxy.fedex;\n this.rtsData = dataProxy.rts;\n this.shippingMethodsData = dataProxy.shippingMethods;\n this.shipviaData = dataProxy.shipvia;\n this.speedshipData = dataProxy.speedship;\n this.upsData = dataProxy.ups;\n }\n\n protected getServiceDescription(): string {\n return 'Multi-carrier shipping logistics for label generation, tracking, and delivery coordination';\n }\n}\n","/**\n * Generated client for p21-apis service\n * Source: shared/specs/p21-apis.json\n * Generated: 2026-09-23T23:30:01Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { P21ApisClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class P21ApisClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly entityContacts: P21ApisClientSpec['entityContacts'];\n readonly entityCustomers: P21ApisClientSpec['entityCustomers'];\n readonly transCategory: P21ApisClientSpec['transCategory'];\n readonly transCompany: P21ApisClientSpec['transCompany'];\n readonly transPurchaseOrderReceipt: P21ApisClientSpec['transPurchaseOrderReceipt'];\n readonly transUser: P21ApisClientSpec['transUser'];\n readonly transWebDisplayType: P21ApisClientSpec['transWebDisplayType'];\n\n // Data-only resources (unwrap .data from every response)\n readonly entityContactsData: DataOnly<P21ApisClientSpec['entityContacts']>;\n readonly entityCustomersData: DataOnly<P21ApisClientSpec['entityCustomers']>;\n readonly transCategoryData: DataOnly<P21ApisClientSpec['transCategory']>;\n readonly transCompanyData: DataOnly<P21ApisClientSpec['transCompany']>;\n readonly transPurchaseOrderReceiptData: DataOnly<P21ApisClientSpec['transPurchaseOrderReceipt']>;\n readonly transUserData: DataOnly<P21ApisClientSpec['transUser']>;\n readonly transWebDisplayTypeData: DataOnly<P21ApisClientSpec['transWebDisplayType']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://p21-apis.augur-api.com') {\n super('p21-apis', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<P21ApisClientSpec>('p21-apis', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.entityContacts = proxy.entityContacts;\n this.entityCustomers = proxy.entityCustomers;\n this.transCategory = proxy.transCategory;\n this.transCompany = proxy.transCompany;\n this.transPurchaseOrderReceipt = proxy.transPurchaseOrderReceipt;\n this.transUser = proxy.transUser;\n this.transWebDisplayType = proxy.transWebDisplayType;\n\n // Wire data proxy resources\n this.entityContactsData = dataProxy.entityContacts;\n this.entityCustomersData = dataProxy.entityCustomers;\n this.transCategoryData = dataProxy.transCategory;\n this.transCompanyData = dataProxy.transCompany;\n this.transPurchaseOrderReceiptData = dataProxy.transPurchaseOrderReceipt;\n this.transUserData = dataProxy.transUser;\n this.transWebDisplayTypeData = dataProxy.transWebDisplayType;\n }\n\n protected getServiceDescription(): string {\n return 'Prophet 21 REST API abstraction for normalized CRUD operations on ERP entities';\n }\n}\n","/**\n * Generated client for p21-core service\n * Source: shared/specs/p21-core.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { P21CoreClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class P21CoreClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly address: P21CoreClientSpec['address'];\n readonly cashDrawer: P21CoreClientSpec['cashDrawer'];\n readonly codeP21: P21CoreClientSpec['codeP21'];\n readonly company: P21CoreClientSpec['company'];\n readonly freightCode: P21CoreClientSpec['freightCode'];\n readonly location: P21CoreClientSpec['location'];\n readonly paymentTypes: P21CoreClientSpec['paymentTypes'];\n\n // Data-only resources (unwrap .data from every response)\n readonly addressData: DataOnly<P21CoreClientSpec['address']>;\n readonly cashDrawerData: DataOnly<P21CoreClientSpec['cashDrawer']>;\n readonly codeP21Data: DataOnly<P21CoreClientSpec['codeP21']>;\n readonly companyData: DataOnly<P21CoreClientSpec['company']>;\n readonly freightCodeData: DataOnly<P21CoreClientSpec['freightCode']>;\n readonly locationData: DataOnly<P21CoreClientSpec['location']>;\n readonly paymentTypesData: DataOnly<P21CoreClientSpec['paymentTypes']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://p21-core.augur-api.com') {\n super('p21-core', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<P21CoreClientSpec>('p21-core', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.address = proxy.address;\n this.cashDrawer = proxy.cashDrawer;\n this.codeP21 = proxy.codeP21;\n this.company = proxy.company;\n this.freightCode = proxy.freightCode;\n this.location = proxy.location;\n this.paymentTypes = proxy.paymentTypes;\n\n // Wire data proxy resources\n this.addressData = dataProxy.address;\n this.cashDrawerData = dataProxy.cashDrawer;\n this.codeP21Data = dataProxy.codeP21;\n this.companyData = dataProxy.company;\n this.freightCodeData = dataProxy.freightCode;\n this.locationData = dataProxy.location;\n this.paymentTypesData = dataProxy.paymentTypes;\n }\n\n protected getServiceDescription(): string {\n return 'Prophet 21 core reference data including companies, locations, users, payment types, and system settings';\n }\n}\n","/**\n * Generated client for p21-sism service\n * Source: shared/specs/p21-sism.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { P21SismClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class P21SismClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly import: P21SismClientSpec['import'];\n readonly scheduledImportMaster: P21SismClientSpec['scheduledImportMaster'];\n\n // Data-only resources (unwrap .data from every response)\n readonly importData: DataOnly<P21SismClientSpec['import']>;\n readonly scheduledImportMasterData: DataOnly<P21SismClientSpec['scheduledImportMaster']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://p21-sism.augur-api.com') {\n super('p21-sism', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<P21SismClientSpec>('p21-sism', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.import = proxy.import;\n this.scheduledImportMaster = proxy.scheduledImportMaster;\n\n // Wire data proxy resources\n this.importData = dataProxy.import;\n this.scheduledImportMasterData = dataProxy.scheduledImportMaster;\n }\n\n protected getServiceDescription(): string {\n return 'Prophet 21 staged import engine for batch processing orders, inventory, customers, and transactions';\n }\n}\n","/**\n * Generated client for shipping service\n * Source: shared/specs/shipping.json\n * Generated: 2026-09-28T15:25:46Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { ShippingClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class ShippingClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly rates: ShippingClientSpec['rates'];\n\n // Data-only resources (unwrap .data from every response)\n readonly ratesData: DataOnly<ShippingClientSpec['rates']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://shipping.augur-api.com') {\n super('shipping', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<ShippingClientSpec>(\n 'shipping',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.rates = proxy.rates;\n\n // Wire data proxy resources\n this.ratesData = dataProxy.rates;\n }\n\n protected getServiceDescription(): string {\n return 'Shipping rate aggregation and calculation across multiple carrier integrations';\n }\n}\n","/**\n * Generated client for smarty-streets service\n * Source: shared/specs/smarty-streets.json\n * Generated: 2026-09-28T15:25:48Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { SmartyStreetsClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class SmartyStreetsClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly us: SmartyStreetsClientSpec['us'];\n\n // Data-only resources (unwrap .data from every response)\n readonly usData: DataOnly<SmartyStreetsClientSpec['us']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://smarty-streets.augur-api.com') {\n super('smarty-streets', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<SmartyStreetsClientSpec>(\n 'smarty-streets',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.us = proxy.us;\n\n // Wire data proxy resources\n this.usData = dataProxy.us;\n }\n\n protected getServiceDescription(): string {\n return 'SmartyStreets address validation and geocoding for shipping address standardization';\n }\n}\n","/**\n * Generated client for ups service\n * Source: shared/specs/ups.json\n * Generated: 2026-09-28T15:25:49Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { UPSClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class UPSClient extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly ratesShop: UPSClientSpec['ratesShop'];\n\n // Data-only resources (unwrap .data from every response)\n readonly ratesShopData: DataOnly<UPSClientSpec['ratesShop']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://ups.augur-api.com') {\n super('ups', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<UPSClientSpec>('ups', boundExecuteRequest, endpoints);\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.ratesShop = proxy.ratesShop;\n\n // Wire data proxy resources\n this.ratesShopData = dataProxy.ratesShop;\n }\n\n protected getServiceDescription(): string {\n return 'UPS shipping integration for address validation, rate quoting, and OAuth-based API access';\n }\n}\n","/**\n * Generated client for basecamp2 service\n * Source: shared/specs/basecamp2.json\n * Generated: 2026-09-30T01:52:11Z\n *\n * DO NOT EDIT — regenerate with: python shared/scripts/generate-ts.py\n */\n\nimport { BaseServiceClient, EndpointConfig } from '../../core/base-client';\nimport type { HTTPClient } from '../../core/client';\nimport { createServiceProxy, createDataProxy } from '../../core/service-proxy';\nimport type { DataOnly } from '../../core/service-proxy';\nimport type { Basecamp2ClientSpec } from './generated/types';\nimport { endpoints } from './generated/endpoints';\n\nexport class Basecamp2Client extends BaseServiceClient {\n // Proxy-backed resources (generated from spec)\n readonly comments: Basecamp2ClientSpec['comments'];\n readonly events: Basecamp2ClientSpec['events'];\n readonly metrics: Basecamp2ClientSpec['metrics'];\n readonly people: Basecamp2ClientSpec['people'];\n readonly projects: Basecamp2ClientSpec['projects'];\n readonly todolists: Basecamp2ClientSpec['todolists'];\n readonly todos: Basecamp2ClientSpec['todos'];\n readonly todosSummary: Basecamp2ClientSpec['todosSummary'];\n\n // Data-only resources (unwrap .data from every response)\n readonly commentsData: DataOnly<Basecamp2ClientSpec['comments']>;\n readonly eventsData: DataOnly<Basecamp2ClientSpec['events']>;\n readonly metricsData: DataOnly<Basecamp2ClientSpec['metrics']>;\n readonly peopleData: DataOnly<Basecamp2ClientSpec['people']>;\n readonly projectsData: DataOnly<Basecamp2ClientSpec['projects']>;\n readonly todolistsData: DataOnly<Basecamp2ClientSpec['todolists']>;\n readonly todosData: DataOnly<Basecamp2ClientSpec['todos']>;\n readonly todosSummaryData: DataOnly<Basecamp2ClientSpec['todosSummary']>;\n\n constructor(http: HTTPClient, baseUrl: string = 'https://basecamp2.augur-api.com') {\n super('basecamp2', http, baseUrl);\n\n const boundExecuteRequest = <TParams, TResponse>(\n config: EndpointConfig,\n params?: TParams,\n pathParams?: Record<string, string>,\n query?: unknown\n ): Promise<TResponse> => {\n // executeRequest treats undefined params/pathParams as absent,\n // so a single pass-through covers all call shapes. `query` carries\n // query params for POST/PUT/DELETE, which the body slot cannot.\n return this.executeRequest(config, params, pathParams, query);\n };\n\n // Create proxy from generated spec\n const proxy = createServiceProxy<Basecamp2ClientSpec>(\n 'basecamp2',\n boundExecuteRequest,\n endpoints\n );\n const dataProxy = createDataProxy(proxy);\n\n // Wire proxy resources\n this.comments = proxy.comments;\n this.events = proxy.events;\n this.metrics = proxy.metrics;\n this.people = proxy.people;\n this.projects = proxy.projects;\n this.todolists = proxy.todolists;\n this.todos = proxy.todos;\n this.todosSummary = proxy.todosSummary;\n\n // Wire data proxy resources\n this.commentsData = dataProxy.comments;\n this.eventsData = dataProxy.events;\n this.metricsData = dataProxy.metrics;\n this.peopleData = dataProxy.people;\n this.projectsData = dataProxy.projects;\n this.todolistsData = dataProxy.todolists;\n this.todosData = dataProxy.todos;\n this.todosSummaryData = dataProxy.todosSummary;\n }\n\n protected getServiceDescription(): string {\n return 'Basecamp project management integration syncing todos, projects, people, and conversation data with AI analytics';\n }\n}\n","import { HTTPClient } from './core/client';\nimport { AugurAPIConfig, AugurContext, ContextCreationError } from './core/config';\nimport { DiscoveryEndpoint as BaseDiscoveryEndpoint } from './core/base-client';\nimport { REGISTRY_VERSION, registryEntries, type EndpointEntry } from './core/registry';\nimport { JoomlaClient } from './services/joomla';\nimport { CommerceClient } from './services/commerce';\nimport { PricingClient } from './services/pricing';\nimport { VMIClient } from './services/vmi';\nimport { OpenSearchClient } from './services/open-search';\nimport { ItemsClient } from './services/items';\nimport { LegacyClient } from './services/legacy';\nimport { AgrSiteClient } from './services/agr-site';\nimport { CustomersClient } from './services/customers';\nimport { OrdersClient } from './services/orders';\nimport { P21PimClient } from './services/p21-pim';\nimport { PaymentsClient } from './services/payments';\nimport { AgrInfoClient } from './services/agr-info';\nimport { AgrIntClient } from './services/agr-int';\nimport { AgrWorkClient } from './services/agr-work';\nimport { AvalaraClient } from './services/avalara';\nimport { BrandFolderClient } from './services/brand-folder';\nimport { GregorovichClient } from './services/gregorovich';\nimport { LogisticsClient } from './services/logistics';\nimport { P21ApisClient } from './services/p21-apis';\nimport { P21CoreClient } from './services/p21-core';\nimport { P21SismClient } from './services/p21-sism';\nimport { ShippingClient } from './services/shipping';\nimport { SmartyStreetsClient } from './services/smarty-streets';\nimport { UPSClient } from './services/ups';\nimport { Basecamp2Client } from './services/basecamp2';\n\n/**\n * Interface for discovery endpoint information - re-export base discovery endpoint\n */\nexport type DiscoveryEndpoint = BaseDiscoveryEndpoint;\n\n/**\n * Re-export context and error types for convenience\n */\nexport type { AugurContext } from './core/config';\nexport { ContextCreationError } from './core/config';\n\n/**\n * Interface for service discovery results\n */\nexport interface ServiceMap {\n /** Service name */\n serviceName: string;\n /** Service description */\n description: string;\n /** Base URL for the service */\n baseUrl: string;\n /** Number of discoverable endpoints */\n endpointCount: number;\n /** Array of discoverable endpoints */\n endpoints: DiscoveryEndpoint[];\n}\n\n/**\n * Interface for endpoint search results\n */\nexport interface EndpointSearchResult {\n /** The matching endpoint */\n endpoint: DiscoveryEndpoint;\n /** Relevance score (0-1) */\n score: number;\n /** Reason why this endpoint matched */\n matchReason: string;\n}\n\n/**\n * Main client factory for accessing Augur microservices\n *\n * @example\n * ```typescript\n * // Traditional approach\n * const api = new AugurAPI({\n * siteId: 'my-site-id',\n * bearerToken: 'my-bearer-token'\n * });\n *\n * // Context-aware approach (recommended)\n * const api = AugurAPI.fromContext(context);\n *\n * // Access Joomla service\n * const users = await api.joomla.users.list();\n *\n * // Access Commerce service\n * const cart = await api.commerce.cartHeaders.lookup({ userId: 123, customerId: 456, contactId: 789 });\n *\n * // Access Pricing service\n * const price = await api.pricing.getPrice({ customerId: 12345, itemId: 'ABC123', quantity: 10 });\n *\n * // Access VMI service\n * const warehouses = await api.vmi.warehouses.list({ customerId: 12345 });\n *\n * // Access OpenSearch service\n * const searchResults = await api.openSearch.itemSearch.search({ q: 'electrical wire', searchType: 'query' });\n *\n * // Access Items service\n * const product = await api.items.products.get(12345);\n * const categories = await api.items.categories.get(100);\n *\n * // Access Legacy service\n * const states = await api.legacy.states.list({ twoLetterCode: 'CA' });\n * const alsoBought = await api.legacy.inventory.getAlsoBought(12345);\n *\n * // Access AGR Site service\n * const health = await api.agrSite.getHealthCheck();\n * const settings = await api.agrSite.settings.list({ serviceName: 'commerce' });\n * const transcript = await api.agrSite.fyxerTranscripts.create({ link: 'https://example.com/doc.pdf' });\n *\n * // Access Customers service\n * const customers = await api.customers.customer.list({ limit: 10 });\n * const customer = await api.customers.customer.get(12345);\n * const contacts = await api.customers.customer.contacts.list(12345, { q: 'John' });\n * const newContact = await api.customers.customer.contacts.create(12345, {\n * firstName: 'Jane', lastName: 'Doe', email: 'jane@example.com'\n * });\n *\n * // Access Orders service\n * const orders = await api.orders.orders.lookup({ limit: 10, q: '12345' });\n * const orderDoc = await api.orders.orders.getDocument(12345678, { postalCode: '12345' });\n * const salesRepOrders = await api.orders.salesRep.getOrders(123);\n * const purchaseOrders = await api.orders.purchaseOrders.list({ complete: 'N', limit: 20 });\n * const invoiceReprint = await api.orders.invoices.reprint('INV123456');\n *\n * // Access P21 PIM service\n * const invExtensions = await api.p21Pim.inventoryMasterExtensions.list({ limit: 20 });\n * const displaySuggestions = await api.p21Pim.items.suggestDisplayDescription(12345);\n * const webSuggestions = await api.p21Pim.items.suggestWebDescription(12345, { limit: 5 });\n * const podcasts = await api.p21Pim.podcasts.list({ q: 'manufacturing' });\n *\n * // Access Payments service\n * const transactionSetup = await api.payments.unified.transactionSetup({ customerId: '123' });\n * const accountQuery = await api.payments.unified.accountQuery({\n * customerId: '123',\n * transactionSetupId: transactionSetup.data.transactionSetupId\n * });\n * const surcharge = await api.payments.unified.surcharge({\n * customerId: '123',\n * paymentAccountId: '456',\n * amount: '100.00',\n * fromState: 'CA',\n * toState: 'NY',\n * country: 'US'\n * });\n * ```\n */\nexport class AugurAPI {\n private config: AugurAPIConfig;\n private _joomla?: JoomlaClient;\n private _commerce?: CommerceClient;\n private _pricing?: PricingClient;\n private _vmi?: VMIClient;\n private _opensearch?: OpenSearchClient;\n private _items?: ItemsClient;\n private _legacy?: LegacyClient;\n private _agrSite?: AgrSiteClient;\n private _customers?: CustomersClient;\n private _orders?: OrdersClient;\n private _p21Pim?: P21PimClient;\n private _payments?: PaymentsClient;\n private _agrInfo?: AgrInfoClient;\n private _agrInt?: AgrIntClient;\n private _agrWork?: AgrWorkClient;\n private _avalara?: AvalaraClient;\n private _brandFolder?: BrandFolderClient;\n private _gregorovich?: GregorovichClient;\n private _logistics?: LogisticsClient;\n private _p21Apis?: P21ApisClient;\n private _p21Core?: P21CoreClient;\n private _p21Sism?: P21SismClient;\n private _shipping?: ShippingClient;\n private _smartyStreets?: SmartyStreetsClient;\n private _ups?: UPSClient;\n private _basecamp2?: Basecamp2Client;\n\n /** Endpoint registry contract version (see wiki/Endpoint-Registry.md). */\n static readonly registryVersion = REGISTRY_VERSION;\n\n constructor(config: AugurAPIConfig) {\n this.config = config;\n }\n\n /**\n * Every endpoint the SDK exposes, one language-neutral entry each, sorted by id.\n * Canonical entries only; aliases are listed in each entry's `aliases`.\n */\n static endpoints(): EndpointEntry[] {\n return registryEntries();\n }\n\n /**\n * Create AugurAPI client from context object\n *\n * Automatically extracts siteId and authentication token from context,\n * eliminating the need for manual configuration boilerplate.\n *\n * @param context Context object containing siteId and authentication\n * @param options Optional configuration overrides\n * @returns AugurAPI instance configured from context\n *\n * @example\n * ```typescript\n * // Instead of manual configuration:\n * const userJwt = await getToken({ req: request });\n * const api = new AugurAPI({ siteId: context.siteId, bearerToken: userJwt.jwtToken });\n *\n * // Simply use:\n * const api = AugurAPI.fromContext(context);\n *\n * // With optional overrides:\n * const api = AugurAPI.fromContext(context, { timeout: 10000 });\n * ```\n *\n * @throws {ContextCreationError} When context is invalid or missing required fields\n */\n static fromContext(context: AugurContext, options: Partial<AugurAPIConfig> = {}): AugurAPI {\n // Validate context\n if (!context) {\n throw new ContextCreationError('Context is required', 'context');\n }\n\n if (!context.siteId) {\n throw new ContextCreationError('Context must contain siteId', 'siteId');\n }\n\n // Extract bearer token from jwt or bearerToken field\n const bearerToken = context.jwt || context.bearerToken;\n if (!bearerToken) {\n throw new ContextCreationError(\n 'Context must contain jwt or bearerToken for authentication',\n 'bearerToken'\n );\n }\n\n // Create configuration from context\n const config: AugurAPIConfig = {\n siteId: context.siteId,\n bearerToken,\n ...options, // Allow overrides\n };\n\n return new AugurAPI(config);\n }\n\n /**\n * Access Joomla service endpoints\n */\n get joomla(): JoomlaClient {\n if (!this._joomla) {\n const httpClient = new HTTPClient('joomla', this.config);\n this._joomla = new JoomlaClient(httpClient);\n }\n return this._joomla;\n }\n\n /**\n * Access Commerce service endpoints\n */\n get commerce(): CommerceClient {\n if (!this._commerce) {\n const httpClient = new HTTPClient('commerce', this.config);\n this._commerce = new CommerceClient(httpClient);\n }\n return this._commerce;\n }\n\n /**\n * Access Pricing service endpoints\n */\n get pricing(): PricingClient {\n if (!this._pricing) {\n const httpClient = new HTTPClient('pricing', this.config);\n this._pricing = new PricingClient(httpClient);\n }\n return this._pricing;\n }\n\n /**\n * Access VMI (Vendor Managed Inventory) service endpoints\n */\n get vmi(): VMIClient {\n if (!this._vmi) {\n const httpClient = new HTTPClient('vmi', this.config);\n this._vmi = new VMIClient(httpClient);\n }\n return this._vmi;\n }\n\n /**\n * Access OpenSearch service endpoints\n */\n get openSearch(): OpenSearchClient {\n if (!this._opensearch) {\n const httpClient = new HTTPClient('open-search', this.config);\n this._opensearch = new OpenSearchClient(httpClient);\n }\n return this._opensearch;\n }\n\n /**\n * Access OpenSearch service endpoints\n * @deprecated Use `openSearch`, which matches the registry id (`openSearch.…`) and the PHP client.\n */\n get opensearch(): OpenSearchClient {\n return this.openSearch;\n }\n\n /**\n * Access Items service endpoints\n */\n get items(): ItemsClient {\n if (!this._items) {\n const httpClient = new HTTPClient('items', this.config);\n this._items = new ItemsClient(httpClient);\n }\n return this._items;\n }\n\n /**\n * Access Legacy service endpoints\n */\n get legacy(): LegacyClient {\n if (!this._legacy) {\n const httpClient = new HTTPClient('legacy', this.config);\n this._legacy = new LegacyClient(httpClient);\n }\n return this._legacy;\n }\n\n /**\n * Access AGR Site service endpoints\n */\n get agrSite(): AgrSiteClient {\n if (!this._agrSite) {\n const httpClient = new HTTPClient('agr-site', this.config);\n this._agrSite = new AgrSiteClient(httpClient);\n }\n return this._agrSite;\n }\n\n /**\n * Access Customers service endpoints\n */\n get customers(): CustomersClient {\n if (!this._customers) {\n const httpClient = new HTTPClient('customers', this.config);\n this._customers = new CustomersClient(httpClient);\n }\n return this._customers;\n }\n\n /**\n * Access Orders service endpoints\n */\n get orders(): OrdersClient {\n if (!this._orders) {\n const httpClient = new HTTPClient('orders', this.config);\n this._orders = new OrdersClient(httpClient);\n }\n return this._orders;\n }\n\n /**\n * Access P21 PIM (Product Information Management) service endpoints\n */\n get p21Pim(): P21PimClient {\n if (!this._p21Pim) {\n const httpClient = new HTTPClient('p21-pim', this.config);\n this._p21Pim = new P21PimClient(httpClient);\n }\n return this._p21Pim;\n }\n\n /**\n * Access Payments service endpoints\n */\n get payments(): PaymentsClient {\n if (!this._payments) {\n const httpClient = new HTTPClient('payments', this.config);\n this._payments = new PaymentsClient(httpClient);\n }\n return this._payments;\n }\n\n /**\n * Access AGR Info service endpoints\n */\n get agrInfo(): AgrInfoClient {\n if (!this._agrInfo) {\n const httpClient = new HTTPClient('agr-info', this.config);\n this._agrInfo = new AgrInfoClient(httpClient);\n }\n return this._agrInfo;\n }\n\n /**\n * Access AGR Int (internal RBAC) service endpoints\n */\n get agrInt(): AgrIntClient {\n if (!this._agrInt) {\n const httpClient = new HTTPClient('agr-int', this.config);\n this._agrInt = new AgrIntClient(httpClient);\n }\n return this._agrInt;\n }\n\n /**\n * Access AGR Work service endpoints\n */\n get agrWork(): AgrWorkClient {\n if (!this._agrWork) {\n const httpClient = new HTTPClient('agr-work', this.config);\n this._agrWork = new AgrWorkClient(httpClient);\n }\n return this._agrWork;\n }\n\n /**\n * Access Avalara service endpoints\n */\n get avalara(): AvalaraClient {\n if (!this._avalara) {\n const httpClient = new HTTPClient('avalara', this.config);\n this._avalara = new AvalaraClient(httpClient);\n }\n return this._avalara;\n }\n\n /**\n * Access Brand Folder service endpoints\n */\n get brandFolder(): BrandFolderClient {\n if (!this._brandFolder) {\n const httpClient = new HTTPClient('brand-folder', this.config);\n this._brandFolder = new BrandFolderClient(httpClient);\n }\n return this._brandFolder;\n }\n\n /**\n * Access Gregorovich service endpoints\n */\n get gregorovich(): GregorovichClient {\n if (!this._gregorovich) {\n const httpClient = new HTTPClient('gregorovich', this.config);\n this._gregorovich = new GregorovichClient(httpClient);\n }\n return this._gregorovich;\n }\n\n /**\n * Access Logistics service endpoints\n */\n get logistics(): LogisticsClient {\n if (!this._logistics) {\n const httpClient = new HTTPClient('logistics', this.config);\n this._logistics = new LogisticsClient(httpClient);\n }\n return this._logistics;\n }\n\n /**\n * Access P21 APIs service endpoints\n */\n get p21Apis(): P21ApisClient {\n if (!this._p21Apis) {\n const httpClient = new HTTPClient('p21-apis', this.config);\n this._p21Apis = new P21ApisClient(httpClient);\n }\n return this._p21Apis;\n }\n\n /**\n * Access P21 Core service endpoints\n */\n get p21Core(): P21CoreClient {\n if (!this._p21Core) {\n const httpClient = new HTTPClient('p21-core', this.config);\n this._p21Core = new P21CoreClient(httpClient);\n }\n return this._p21Core;\n }\n\n /**\n * Access P21 SISM service endpoints\n */\n get p21Sism(): P21SismClient {\n if (!this._p21Sism) {\n const httpClient = new HTTPClient('p21-sism', this.config);\n this._p21Sism = new P21SismClient(httpClient);\n }\n return this._p21Sism;\n }\n\n /**\n * Access Shipping service endpoints\n */\n get shipping(): ShippingClient {\n if (!this._shipping) {\n const httpClient = new HTTPClient('shipping', this.config);\n this._shipping = new ShippingClient(httpClient);\n }\n return this._shipping;\n }\n\n /**\n * Access SmartyStreets service endpoints\n */\n get smartyStreets(): SmartyStreetsClient {\n if (!this._smartyStreets) {\n const httpClient = new HTTPClient('smarty-streets', this.config);\n this._smartyStreets = new SmartyStreetsClient(httpClient);\n }\n return this._smartyStreets;\n }\n\n /**\n * Access UPS service endpoints\n */\n get ups(): UPSClient {\n if (!this._ups) {\n const httpClient = new HTTPClient('ups', this.config);\n this._ups = new UPSClient(httpClient);\n }\n return this._ups;\n }\n\n /**\n * Access Basecamp2 service endpoints\n */\n get basecamp2(): Basecamp2Client {\n if (!this._basecamp2) {\n const httpClient = new HTTPClient('basecamp2', this.config);\n this._basecamp2 = new Basecamp2Client(httpClient);\n }\n return this._basecamp2;\n }\n\n /**\n * Update authentication token\n * @param bearerToken New bearer token\n */\n setAuthToken(bearerToken: string): void {\n this.config.bearerToken = bearerToken;\n // Reset clients to use new token\n this._joomla = undefined;\n this._commerce = undefined;\n this._pricing = undefined;\n this._vmi = undefined;\n this._opensearch = undefined;\n this._items = undefined;\n this._legacy = undefined;\n this._agrSite = undefined;\n this._customers = undefined;\n this._orders = undefined;\n this._p21Pim = undefined;\n this._payments = undefined;\n this._agrInfo = undefined;\n this._agrInt = undefined;\n this._agrWork = undefined;\n this._avalara = undefined;\n this._brandFolder = undefined;\n this._gregorovich = undefined;\n this._logistics = undefined;\n this._p21Apis = undefined;\n this._p21Core = undefined;\n this._p21Sism = undefined;\n this._shipping = undefined;\n this._smartyStreets = undefined;\n this._ups = undefined;\n this._basecamp2 = undefined;\n }\n\n /**\n * Update site ID\n * @param siteId New site ID\n */\n setSiteId(siteId: string): void {\n this.config.siteId = siteId;\n // Reset clients to use new site ID\n this._joomla = undefined;\n this._commerce = undefined;\n this._pricing = undefined;\n this._vmi = undefined;\n this._opensearch = undefined;\n this._items = undefined;\n this._legacy = undefined;\n this._agrSite = undefined;\n this._customers = undefined;\n this._orders = undefined;\n this._p21Pim = undefined;\n this._payments = undefined;\n this._agrInfo = undefined;\n this._agrInt = undefined;\n this._agrWork = undefined;\n this._avalara = undefined;\n this._brandFolder = undefined;\n this._gregorovich = undefined;\n this._logistics = undefined;\n this._p21Apis = undefined;\n this._p21Core = undefined;\n this._p21Sism = undefined;\n this._shipping = undefined;\n this._smartyStreets = undefined;\n this._ups = undefined;\n this._basecamp2 = undefined;\n }\n\n /**\n * Discover all available services and their capabilities\n *\n * Returns a complete service map showing all discoverable endpoints across\n * all microservices, enabling AI agents to understand the full API topology.\n *\n * @returns Promise<ServiceMap[]> Array of service maps with endpoint metadata\n *\n * @example\n * ```typescript\n * const api = new AugurAPI({ siteId: 'my-site', bearerToken: 'token' });\n * const services = await api.discover();\n *\n * // Find all user-related endpoints\n * const userEndpoints = services.flatMap(s => s.endpoints)\n * .filter(e => e.searchTerms.some(term => term.includes('user')));\n *\n * // Show service capabilities\n * services.forEach(service => {\n * console.log(`${service.serviceName}: ${service.endpointCount} endpoints`);\n * service.endpoints.forEach(endpoint => {\n * console.log(` ${endpoint.fullPath} - ${endpoint.description}`);\n * });\n * });\n * ```\n */\n async discover(): Promise<ServiceMap[]> {\n const clients = [\n this.joomla,\n this.commerce,\n this.pricing,\n this.vmi,\n this.openSearch,\n this.items,\n this.legacy,\n this.agrSite,\n this.customers,\n this.orders,\n this.p21Pim,\n this.payments,\n this.agrInfo,\n this.agrInt,\n this.agrWork,\n this.avalara,\n this.brandFolder,\n this.gregorovich,\n this.logistics,\n this.p21Apis,\n this.p21Core,\n this.p21Sism,\n this.shipping,\n this.smartyStreets,\n this.ups,\n this.basecamp2,\n ];\n\n return clients.map(client => {\n const metadata = client.getDiscoveryMetadata();\n return {\n serviceName: metadata.serviceName,\n description: metadata.description,\n baseUrl: metadata.baseUrl,\n endpointCount: metadata.endpoints.length,\n endpoints: metadata.endpoints,\n };\n });\n }\n\n /**\n * Find endpoints by search term or functionality description\n *\n * Searches across all services to find endpoints that match the given search term.\n * Uses intelligent matching against endpoint descriptions, search terms, domains,\n * and common usage patterns.\n *\n * @param searchTerm The functionality or term to search for\n * @param options Search options for filtering and ranking\n * @returns Promise<EndpointSearchResult[]> Array of matching endpoints with relevance scores\n *\n * @example\n * ```typescript\n * const api = new AugurAPI({ siteId: 'my-site', bearerToken: 'token' });\n *\n * // Find user-related endpoints\n * const userEndpoints = await api.findEndpoint('users');\n * console.log(`Found ${userEndpoints.length} user-related endpoints`);\n *\n * // Find authentication endpoints\n * const authEndpoints = await api.findEndpoint('authentication');\n *\n * // Find inventory management\n * const inventoryEndpoints = await api.findEndpoint('inventory management');\n *\n * // Show results with scores\n * userEndpoints.forEach(result => {\n * console.log(`${result.endpoint.fullPath} (${result.score.toFixed(2)}) - ${result.matchReason}`);\n * });\n * ```\n */\n async findEndpoint(\n searchTerm: string,\n options: {\n /** Minimum relevance score (0-1, default: 0.1) */\n minScore?: number;\n /** Maximum number of results (default: 10) */\n maxResults?: number;\n /** Filter by specific service */\n service?: string;\n /** Filter by business domain */\n domain?: string;\n /** Include only GET endpoints */\n readOnly?: boolean;\n } = {}\n ): Promise<EndpointSearchResult[]> {\n const { minScore = 0.1, maxResults = 10, service, domain, readOnly = false } = options;\n\n // Handle empty search term\n if (!searchTerm.trim()) {\n return [];\n }\n\n // Get filtered endpoints\n const filteredEndpoints = await this.getFilteredEndpoints({ service, domain, readOnly });\n\n // Search and score endpoints\n const results = this.searchAndScoreEndpoints(filteredEndpoints, searchTerm, {\n domain,\n minScore,\n });\n\n // Sort by relevance score (highest first) and limit results\n return results.sort((a, b) => b.score - a.score).slice(0, maxResults);\n }\n\n /**\n * Get endpoints filtered by service, domain, and method options\n */\n private async getFilteredEndpoints(filters: {\n service?: string;\n domain?: string;\n readOnly?: boolean;\n }): Promise<DiscoveryEndpoint[]> {\n const { service, domain, readOnly } = filters;\n const services = await this.discover();\n let filteredEndpoints = services.flatMap(s => s.endpoints);\n\n if (service) {\n filteredEndpoints = filteredEndpoints.filter(e => e.service === service);\n }\n\n if (domain) {\n filteredEndpoints = filteredEndpoints.filter(e => e.domain === domain);\n }\n\n if (readOnly) {\n filteredEndpoints = filteredEndpoints.filter(e => e.method === 'GET');\n }\n\n return filteredEndpoints;\n }\n\n /**\n * Search and score endpoints against search term\n */\n private searchAndScoreEndpoints(\n endpoints: DiscoveryEndpoint[],\n searchTerm: string,\n options: { domain?: string; minScore: number }\n ): EndpointSearchResult[] {\n const { domain, minScore } = options;\n const results: EndpointSearchResult[] = [];\n const searchTermLower = searchTerm.toLowerCase();\n\n for (const endpoint of endpoints) {\n // Skip malformed endpoints\n if (!this.isValidEndpoint(endpoint)) {\n continue;\n }\n\n const { finalScore, finalMatchReason } = this.calculateFinalScore(\n endpoint,\n searchTermLower,\n domain\n );\n\n if (finalScore >= minScore) {\n results.push({\n endpoint,\n score: finalScore,\n matchReason: finalMatchReason,\n });\n }\n }\n\n return results;\n }\n\n /**\n * Check if endpoint has required fields\n */\n private isValidEndpoint(endpoint: DiscoveryEndpoint): boolean {\n return !!(endpoint.domain && endpoint.description && endpoint.method);\n }\n\n /**\n * Calculate final score with domain filter adjustments\n */\n private calculateFinalScore(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string,\n domain?: string\n ): { finalScore: number; finalMatchReason: string } {\n const { score, matchReason } = this.calculateEndpointRelevance(endpoint, searchTermLower);\n\n // If domain filter is applied and search score is 0, give minimal score\n if (domain && score === 0) {\n return {\n finalScore: 0.1,\n finalMatchReason: 'Domain filter match',\n };\n }\n\n return {\n finalScore: score,\n finalMatchReason: matchReason,\n };\n }\n\n /**\n * Calculate relevance score for an endpoint against a search term\n */\n private calculateEndpointRelevance(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; matchReason: string } {\n const exactMatches = this.calculateExactMatches(endpoint, searchTermLower);\n const partialMatches = this.calculatePartialMatches(endpoint, searchTermLower);\n\n // Process exact matches if found\n if (exactMatches.score > 0) {\n return this.processExactMatches(exactMatches, partialMatches);\n }\n\n // Fallback to multi-word or partial matches\n return this.processFallbackMatches(endpoint, searchTermLower, partialMatches);\n }\n\n /**\n * Process exact matches with appropriate combining logic\n */\n private processExactMatches(\n exactMatches: { score: number; reason: string },\n partialMatches: { score: number; reason: string }\n ): { score: number; matchReason: string } {\n // Service and search term matches are exclusive\n if (this.isExclusiveMatch(exactMatches.reason)) {\n return {\n score: exactMatches.score,\n matchReason: exactMatches.reason,\n };\n }\n\n // Combinable matches get partial score boost\n if (this.isCombinableMatch(exactMatches.reason)) {\n const totalScore = Math.min(exactMatches.score + partialMatches.score, 1.0);\n return {\n score: totalScore,\n matchReason: exactMatches.reason,\n };\n }\n\n // Default to exact match\n return {\n score: exactMatches.score,\n matchReason: exactMatches.reason,\n };\n }\n\n /**\n * Check if match type should be exclusive (no combining)\n */\n private isExclusiveMatch(reason: string): boolean {\n return reason === 'Service match' || reason.startsWith('Search term match');\n }\n\n /**\n * Check if match type can be combined with partial matches\n */\n private isCombinableMatch(reason: string): boolean {\n const combinableReasons = [\n 'Description match',\n 'Full path match',\n 'Path substring match',\n 'Domain match',\n 'Usage pattern match',\n ];\n return combinableReasons.includes(reason);\n }\n\n /**\n * Process fallback matches when no exact match found\n */\n private processFallbackMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string,\n partialMatches: { score: number; reason: string }\n ): { score: number; matchReason: string } {\n const multiWordMatches = this.calculateMultiWordMatches(endpoint, searchTermLower);\n\n if (multiWordMatches.score > partialMatches.score) {\n return {\n score: multiWordMatches.score,\n matchReason: multiWordMatches.reason,\n };\n }\n\n return {\n score: partialMatches.score,\n matchReason: partialMatches.reason || 'Low relevance match',\n };\n }\n\n /**\n * Calculate exact field matches with high scores\n */\n private calculateExactMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n // Check matches in priority order (not just highest score)\n\n // Priority 1: Exact field matches (domain, service, exact path, exact description)\n const exactMatch = this.checkExactFieldMatches(endpoint, searchTermLower);\n if (exactMatch.score > 0) {\n return exactMatch;\n }\n\n // Priority 2: Path and description substring matches (higher business value)\n const pathMatch = this.checkPathSubstringMatch(endpoint, searchTermLower);\n if (pathMatch.score > 0) {\n return pathMatch;\n }\n\n const descSubstringMatch = this.checkDescriptionSubstringMatch(endpoint, searchTermLower);\n if (descSubstringMatch.score > 0) {\n return descSubstringMatch;\n }\n\n // Priority 3: Search terms and patterns\n const termMatch = this.checkSearchTermsAndPatterns(endpoint, searchTermLower);\n if (termMatch.score > 0) {\n return termMatch;\n }\n\n // Priority 4: Other substring matches (domain, service)\n const otherSubstringMatch = this.checkOtherSubstringMatches(endpoint, searchTermLower);\n if (otherSubstringMatch.score > 0) {\n return otherSubstringMatch;\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Check for path substring matches\n */\n private checkPathSubstringMatch(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n if (\n endpoint.fullPath &&\n (endpoint.fullPath.toLowerCase().includes(searchTermLower) ||\n searchTermLower.includes(endpoint.fullPath.toLowerCase()))\n ) {\n return { score: 0.9, reason: 'Path substring match' };\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Check for description substring matches\n */\n private checkDescriptionSubstringMatch(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n if (endpoint.description && endpoint.description.toLowerCase().includes(searchTermLower)) {\n return { score: 0.65, reason: 'Description substring match' };\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Check for other substring matches (domain, service)\n */\n private checkOtherSubstringMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n if (endpoint.domain && endpoint.domain.toLowerCase().includes(searchTermLower)) {\n return { score: 0.5, reason: 'Domain match' };\n }\n\n if (endpoint.service && endpoint.service.toLowerCase().includes(searchTermLower)) {\n return { score: 0.3, reason: 'Service match' };\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Check for exact field matches\n */\n private checkExactFieldMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n if (endpoint.domain && endpoint.domain.toLowerCase() === searchTermLower) {\n return { score: 0.6, reason: 'Domain match' };\n }\n\n if (endpoint.service && endpoint.service.toLowerCase() === searchTermLower) {\n return { score: 0.3, reason: 'Service match' };\n }\n\n if (endpoint.fullPath && endpoint.fullPath.toLowerCase() === searchTermLower) {\n return { score: 1.0, reason: 'Full path match' };\n }\n\n if (endpoint.description && endpoint.description.toLowerCase() === searchTermLower) {\n return { score: 0.8, reason: 'Description match' };\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Check search terms and common patterns\n */\n private checkSearchTermsAndPatterns(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n if (Array.isArray(endpoint.searchTerms)) {\n const searchTermMatches = endpoint.searchTerms.filter(\n term => term && typeof term === 'string' && term.toLowerCase().includes(searchTermLower)\n );\n if (searchTermMatches.length > 0) {\n return { score: 0.7, reason: `Search term match: ${searchTermMatches[0]}` };\n }\n }\n\n if (Array.isArray(endpoint.commonPatterns)) {\n const patternMatches = endpoint.commonPatterns.filter(pattern => {\n if (!pattern || typeof pattern !== 'string') return false;\n const patternLower = pattern.toLowerCase();\n return patternLower.includes(searchTermLower);\n });\n if (patternMatches.length > 0) {\n return { score: 0.5, reason: 'Usage pattern match' };\n }\n }\n\n return { score: 0, reason: '' };\n }\n\n /**\n * Calculate partial word matches with lower scores\n */\n private calculatePartialMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string; matchReason?: string } {\n const allText = this.buildSearchableText(endpoint);\n const wordMatches = this.countWordMatches(searchTermLower, allText);\n\n return this.buildPartialMatchResult(wordMatches, searchTermLower);\n }\n\n /**\n * Build searchable text from endpoint fields\n */\n private buildSearchableText(endpoint: DiscoveryEndpoint): string {\n const searchTerms = Array.isArray(endpoint.searchTerms) ? endpoint.searchTerms : [];\n const commonPatterns = Array.isArray(endpoint.commonPatterns) ? endpoint.commonPatterns : [];\n\n return [\n endpoint.fullPath || '',\n endpoint.description || '',\n endpoint.domain || '',\n endpoint.service || '',\n ...searchTerms,\n ...commonPatterns,\n ]\n .filter(text => typeof text === 'string')\n .join(' ')\n .toLowerCase();\n }\n\n /**\n * Count matching words in text\n */\n private countWordMatches(searchTermLower: string, allText: string): number {\n const searchWords = searchTermLower.split(/\\s+/).filter(word => word.length > 0);\n let wordMatches = 0;\n\n for (const word of searchWords) {\n if (word.length > 2 && allText.includes(word)) {\n wordMatches++;\n }\n }\n\n return wordMatches;\n }\n\n /**\n * Build partial match result with score and reason\n */\n private buildPartialMatchResult(\n wordMatches: number,\n searchTermLower: string\n ): { score: number; reason: string; matchReason?: string } {\n if (wordMatches > 0) {\n const searchWords = searchTermLower.split(/\\s+/).filter(word => word.length > 0);\n const partialScore = (wordMatches / searchWords.length) * 0.2;\n const reasonText = `Partial word match (${wordMatches}/${searchWords.length})`;\n return {\n score: partialScore,\n reason: reasonText,\n matchReason: reasonText,\n };\n }\n\n return { score: 0, reason: '', matchReason: '' };\n }\n\n /**\n * Calculate multi-word matches by finding the best match for each word\n */\n private calculateMultiWordMatches(\n endpoint: DiscoveryEndpoint,\n searchTermLower: string\n ): { score: number; reason: string } {\n const searchWords = searchTermLower.split(/\\s+/).filter(word => word.length > 0);\n\n // If only one word, fall back to exact matching\n if (searchWords.length <= 1) {\n return { score: 0, reason: '' };\n }\n\n let bestScore = 0;\n let bestReason = '';\n const matchedWords: string[] = [];\n\n // Check each word against the endpoint fields\n for (const word of searchWords) {\n const wordMatch = this.calculateExactMatches(endpoint, word);\n if (wordMatch.score > 0) {\n // Keep track of the highest scoring match\n if (wordMatch.score > bestScore) {\n bestScore = wordMatch.score;\n bestReason = wordMatch.reason;\n }\n matchedWords.push(word);\n }\n }\n\n // If we matched multiple words, boost the score\n if (matchedWords.length > 1) {\n // Base score is the best individual match, with bonus for additional matches\n const bonusScore = Math.min((matchedWords.length - 1) * 0.1, 0.3);\n const finalScore = Math.min(bestScore + bonusScore, 1.0);\n\n return {\n score: finalScore,\n reason: `Multi-word match (${matchedWords.length}/${searchWords.length} words): ${bestReason}`,\n };\n }\n\n // Single word match - return as-is\n if (bestScore > 0) {\n return {\n score: bestScore,\n reason: bestReason,\n };\n }\n\n return { score: 0, reason: '' };\n }\n}\n","import { AugurAPI } from '../client';\nimport type { BaseResponse } from '../core/schemas';\n\n/**\n * Cross-site authentication utility\n * @description Streamlined utility for authenticating users across different Augur sites\n * using augur_info privileges\n */\n\n/**\n * Parameters for cross-site authentication\n */\nexport interface CrossSiteAuthParams {\n /** Target site ID to authenticate against */\n targetSiteId: string;\n /** Username or email */\n username: string;\n /** User password */\n password: string;\n /** JWT token with augur_info admin privileges */\n augurInfoToken: string;\n}\n\n/**\n * Result of cross-site authentication\n */\nexport interface CrossSiteAuthResult {\n /** Whether authentication was successful */\n success: boolean;\n /** User ID if authentication succeeded */\n userId?: string;\n /** Username if authentication succeeded */\n username?: string;\n /** Email if authentication succeeded */\n email?: string;\n /** JWT token scoped to target site if authentication succeeded */\n token?: string;\n /** Target site ID */\n targetSiteId: string;\n /** Error message if authentication failed */\n error?: string;\n /** API client configured for target site (only if authentication succeeded) */\n targetSiteAPI?: AugurAPI;\n}\n\n/**\n * Authenticate a user against a target site using augur_info privileges\n * @description This utility function simplifies cross-site authentication by:\n * 1. Creating an augur_info API client with admin privileges\n * 2. Using verifyPassword with the target siteId in the request body\n * 3. Returning a ready-to-use API client for the target site on success\n *\n * @param params Cross-site authentication parameters\n * @returns Promise resolving to authentication result with optional target site API client\n *\n * @example\n * ```typescript\n * const result = await authenticateUserForSite({\n * targetSiteId: 'tenant_site_1',\n * username: 'user@tenant.com',\n * password: 'userpassword',\n * augurInfoToken: 'admin-jwt-token'\n * });\n *\n * if (result.success) {\n * // Use the pre-configured API client\n * const userData = await result.targetSiteAPI!.joomla.users.get(result.userId!);\n * console.log('User data:', userData);\n * } else {\n * console.error('Authentication failed:', result.error);\n * }\n * ```\n */\nexport async function authenticateUserForSite(\n params: CrossSiteAuthParams\n): Promise<CrossSiteAuthResult> {\n const { targetSiteId, username, password, augurInfoToken } = params;\n\n try {\n // Create augur_info API client with admin privileges\n const augurInfoAPI = new AugurAPI({\n siteId: 'augur_info',\n bearerToken: augurInfoToken,\n });\n\n // Perform cross-site authentication using existing verifyPassword method\n const authResponse = (await augurInfoAPI.joomla.users.verifyPassword.create({\n username,\n password,\n siteId: targetSiteId, // This tells the API to authenticate against the target site\n })) as unknown as BaseResponse<Record<string, unknown>>;\n\n const data = authResponse.data as Record<string, unknown>;\n if (data.isVerified) {\n // Create API client for target site with the returned token\n const targetSiteAPI = new AugurAPI({\n siteId: targetSiteId,\n bearerToken: data.token as string,\n });\n\n return {\n success: true,\n userId: (data.id as number | undefined)?.toString(),\n username: data.username as string | undefined,\n email: data.email as string | undefined,\n token: data.token as string,\n targetSiteId,\n targetSiteAPI,\n };\n } else {\n return {\n success: false,\n targetSiteId,\n error: 'Invalid username or password',\n };\n }\n } catch (error) {\n return {\n success: false,\n targetSiteId,\n error: error instanceof Error ? error.message : 'Authentication failed',\n };\n }\n}\n\n/**\n * Create a cross-site authentication function bound to specific augur_info credentials\n * @description Factory function for creating a reusable cross-site authenticator\n *\n * @param augurInfoToken JWT token with augur_info admin privileges\n * @returns Function that can authenticate users for any target site\n *\n * @example\n * ```typescript\n * // Create reusable authenticator\n * const crossSiteAuth = createCrossSiteAuthenticator('admin-jwt-token');\n *\n * // Use it for multiple sites\n * const result1 = await crossSiteAuth('tenant_site_1', 'user1@tenant.com', 'pass1');\n * const result2 = await crossSiteAuth('tenant_site_2', 'user2@tenant.com', 'pass2');\n * ```\n */\nexport function createCrossSiteAuthenticator(augurInfoToken: string) {\n return async (\n targetSiteId: string,\n username: string,\n password: string\n ): Promise<CrossSiteAuthResult> => {\n return authenticateUserForSite({\n targetSiteId,\n username,\n password,\n augurInfoToken,\n });\n };\n}\n","export const VERSION = '2026.9.6';\n\n// Main client\nexport { AugurAPI } from './client';\n\n// Utilities\nexport {\n authenticateUserForSite,\n createCrossSiteAuthenticator,\n type CrossSiteAuthParams,\n type CrossSiteAuthResult,\n} from './utils/cross-site-auth';\n\n// Core exports\nexport {\n AugurAPIConfig,\n AugurRequestConfig,\n AugurResponse,\n AugurRequestError,\n RequestConfig,\n type AugurContext,\n ContextCreationError,\n} from './core/config';\nexport {\n AugurAPIError,\n AugurError,\n ValidationError,\n AuthenticationError,\n NotFoundError,\n RateLimitError,\n InvalidArgumentError,\n} from './core/errors';\nexport {\n BaseResponseSchema,\n HealthCheckDataSchema,\n PaginationParamsSchema,\n WhoamiDataSchema,\n type BaseResponse,\n type HealthCheckData,\n type PingData,\n type WhoamiData,\n} from './core/schemas';\nexport { type ServiceMap, type DiscoveryEndpoint, type EndpointSearchResult } from './client';\nexport { type EndpointEntry } from './core/registry';\n\n// Service exports\nexport { JoomlaClient } from './services/joomla';\nexport { CommerceClient } from './services/commerce';\nexport { PricingClient } from './services/pricing';\nexport { VMIClient } from './services/vmi';\nexport { OpenSearchClient } from './services/open-search';\nexport { ItemsClient } from './services/items';\nexport { LegacyClient } from './services/legacy';\nexport { AgrSiteClient } from './services/agr-site';\nexport { CustomersClient } from './services/customers';\nexport { OrdersClient } from './services/orders';\nexport { P21PimClient } from './services/p21-pim';\nexport { PaymentsClient } from './services/payments';\nexport { P21SismClient } from './services/p21-sism';\nexport { AgrInfoClient } from './services/agr-info';\nexport { AgrIntClient } from './services/agr-int';\nexport { AgrWorkClient } from './services/agr-work';\nexport { AvalaraClient } from './services/avalara';\nexport { BrandFolderClient } from './services/brand-folder';\nexport { GregorovichClient } from './services/gregorovich';\nexport { LogisticsClient } from './services/logistics';\nexport { P21ApisClient } from './services/p21-apis';\nexport { ShippingClient } from './services/shipping';\nexport { SmartyStreetsClient } from './services/smarty-streets';\nexport { UPSClient } from './services/ups';\nexport { Basecamp2Client } from './services/basecamp2';\nexport { P21CoreClient } from './services/p21-core';\n\n// Service types: request bodies ({Chain}{Action}Body), response data\n// ({Chain}{Action}Data), and params, one namespace per service.\n// e.g. `import type { PricingTypes } from '@simpleapps-com/augur-api'`\n// `const body: PricingTypes.WebPricingCreateBody = { ... }`\nexport type * as AgrInfoTypes from './services/agr-info/generated/types';\nexport type * as AgrIntTypes from './services/agr-int/generated/types';\nexport type * as AgrSiteTypes from './services/agr-site/generated/types';\nexport type * as AgrWorkTypes from './services/agr-work/generated/types';\nexport type * as AvalaraTypes from './services/avalara/generated/types';\nexport type * as Basecamp2Types from './services/basecamp2/generated/types';\nexport type * as BrandFolderTypes from './services/brand-folder/generated/types';\nexport type * as CommerceTypes from './services/commerce/generated/types';\nexport type * as CustomersTypes from './services/customers/generated/types';\nexport type * as GregorovichTypes from './services/gregorovich/generated/types';\nexport type * as ItemsTypes from './services/items/generated/types';\nexport type * as JoomlaTypes from './services/joomla/generated/types';\nexport type * as LegacyTypes from './services/legacy/generated/types';\nexport type * as LogisticsTypes from './services/logistics/generated/types';\nexport type * as OpenSearchTypes from './services/open-search/generated/types';\nexport type * as OrdersTypes from './services/orders/generated/types';\nexport type * as P21ApisTypes from './services/p21-apis/generated/types';\nexport type * as P21CoreTypes from './services/p21-core/generated/types';\nexport type * as P21PimTypes from './services/p21-pim/generated/types';\nexport type * as P21SismTypes from './services/p21-sism/generated/types';\nexport type * as PaymentsTypes from './services/payments/generated/types';\nexport type * as PricingTypes from './services/pricing/generated/types';\nexport type * as ShippingTypes from './services/shipping/generated/types';\nexport type * as SmartyStreetsTypes from './services/smarty-streets/generated/types';\nexport type * as UPSTypes from './services/ups/generated/types';\nexport type * as VMITypes from './services/vmi/generated/types';\n"],"mappings":";AA+CO,IAAM,iBAAiB;AAAA,EAC5B,SAAS;AAAA;AAAA,EACT,SAAS;AAAA,EACT,YAAY;AAAA;AACd;AAuBO,IAAM,uBAAN,cAAmC,MAAM;AAAA,EAC9C,YACE,SACgB,OAChB;AACA,UAAM,OAAO;AAFG;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;;;AChEO,IAAM,aAAN,MAAM,oBAAmB,MAA+B;AAAA,EAQ7D,YAAY,QAQT;AACD,UAAM,OAAO,OAAO;AACpB,SAAK,OAAO;AACZ,SAAK,OAAO,OAAO;AACnB,SAAK,aAAa,OAAO;AACzB,SAAK,UAAU,OAAO;AACtB,SAAK,WAAW,OAAO;AACvB,SAAK,YAAY,OAAO;AACxB,SAAK,mBAAmB,OAAO;AAG/B,QAAI,MAAM,mBAAmB;AAC3B,YAAM,kBAAkB,MAAM,WAAU;AAAA,IAC1C;AAAA,EACF;AACF;AAEO,IAAM,kBAAN,cAA8B,WAAW;AAAA,EAC9C,YAAY,QAKT;AACD,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,MAAM;AAAA,MACN,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,qBAA+B;AAC7B,QAAI,CAAC,KAAK,kBAAkB;AAC1B,aAAO,CAAC;AAAA,IACV;AAEA,WAAO,KAAK,iBAAiB,IAAI,WAAS;AACxC,YAAM,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,GAAG,IAAI;AAC5D,aAAO,GAAG,IAAI,KAAK,MAAM,OAAO;AAAA,IAClC,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,oBAMG;AACD,QAAI,CAAC,KAAK,kBAAkB;AAC1B,aAAO,CAAC;AAAA,IACV;AAEA,WAAO,KAAK,iBAAiB,IAAI,YAAU;AAAA,MACzC,MAAM,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,GAAG,IAAI;AAAA,MACrD,SAAS,MAAM;AAAA,MACf,MAAM,MAAM;AAAA,MACZ,UAAU,cAAc,QAAQ,MAAM,WAAW;AAAA,MACjD,UAAU,cAAc,QAAQ,MAAM,WAAW;AAAA,IACnD,EAAE;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAmB;AACjB,UAAM,cAAc,MAAM,SAAS;AACnC,UAAM,kBAAkB,KAAK,mBAAmB;AAEhD,QAAI,gBAAgB,SAAS,GAAG;AAC9B,aAAO,GAAG,WAAW;AAAA;AAAA,EAAyB,gBAAgB,IAAI,SAAO,OAAO,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC;AAAA,IACnG;AAEA,WAAO;AAAA,EACT;AACF;AAEO,IAAM,sBAAN,cAAkC,WAAW;AAAA,EAClD,YAAY,QAAgE;AAC1E,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,MAAM;AAAA,MACN,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AACF;AAEO,IAAM,gBAAN,cAA4B,WAAW;AAAA,EAC5C,YAAY,QAAgE;AAC1E,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,MAAM;AAAA,MACN,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AACF;AAEO,IAAM,iBAAN,cAA6B,WAAW;AAAA,EAC7C,YAAY,QAAgE;AAC1E,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,MAAM;AAAA,MACN,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AACF;AAEO,IAAM,uBAAN,cAAmC,WAAW;AAAA,EACnD,YAAY,QAAgE;AAC1E,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,MAAM;AAAA,MACN,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AACF;;;AC7IA,SAAS,mBAAmB,QAAgB,KAAa,QAA0B;AACjF,QAAM,YAAY,SAAS,KAAK,UAAU,QAAQ,OAAO,KAAK,MAAgB,EAAE,KAAK,CAAC,IAAI;AAC1F,SAAO,GAAG,MAAM,IAAI,GAAG,IAAI,SAAS;AACtC;AAQA,SAAS,sBAAsB,SAAiB,WAA2B;AACzE,QAAM,mBAAmB,YAAY,KAAK,IAAI,GAAG,OAAO;AACxD,QAAM,SAAS,KAAK,OAAO,IAAI,MAAM;AACrC,SAAO,KAAK,IAAI,mBAAmB,QAAQ,GAAK;AAClD;AAOA,SAAS,iBAAiB,OAAyB;AAEjD,MAAI,iBAAiB,YAAY;AAC/B,UAAM,SAAS,MAAM;AACrB,QAAI,UAAU,OAAO,SAAS,OAAO,WAAW,KAAK;AACnD,aAAO;AAAA,IACT;AAAA,EACF;AAIA,SAAO;AACT;AAMA,SAAS,MAAM,IAA2B;AACxC,SAAO,IAAI,QAAQ,aAAW,WAAW,SAAS,EAAE,CAAC;AACvD;AAKA,SAAS,mBAAmB,KAAa,QAA0B;AACjE,MAAI,CAAC,UAAU,OAAO,WAAW,UAAU;AACzC,WAAO;AAAA,EACT;AAEA,QAAM,eAAe,IAAI,gBAAgB;AACzC,QAAM,YAAY;AAElB,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,SAAS,GAAG;AACpD,QAAI,UAAU,UAAa,UAAU,MAAM;AACzC,mBAAa,OAAO,KAAK,OAAO,KAAK,CAAC;AAAA,IACxC;AAAA,EACF;AAEA,QAAM,cAAc,aAAa,SAAS;AAC1C,MAAI,CAAC,aAAa;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,IAAI,SAAS,GAAG,IAAI,MAAM;AAC5C,SAAO,GAAG,GAAG,GAAG,SAAS,GAAG,WAAW;AACzC;AAKA,SAAS,gBAAgB,SAA0C;AACjE,QAAMA,WAAiC,CAAC;AACxC,UAAQ,QAAQ,CAAC,OAAO,QAAQ;AAC9B,IAAAA,SAAO,GAAG,IAAI;AAAA,EAChB,CAAC;AACD,SAAOA;AACT;AAEO,IAAM,aAAN,MAAiB;AAAA,EAKtB,YAAY,aAAqB,QAAwB;AAFzD,SAAQ,mBAAkD,oBAAI,IAAI;AAGhE,SAAK,cAAc;AACnB,SAAK,SAAS,EAAE,GAAG,gBAAgB,GAAG,OAAO;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKQ,oBAAoB,KAAa,eAAuD;AAC9F,UAAM,UAAkC;AAAA,MACtC,gBAAgB;AAAA,MAChB,aAAa,KAAK,OAAO;AAAA,MACzB,GAAG,eAAe;AAAA,IACpB;AAEA,UAAM,mBAAmB,IAAI,SAAS,eAAe,KAAK,IAAI,SAAS,OAAO;AAC9E,QAAI,CAAC,oBAAoB,KAAK,OAAO,aAAa;AAChD,cAAQ,eAAe,IAAI,UAAU,KAAK,OAAO,WAAW;AAAA,IAC9D;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,iBACZ,UACA,aACgB;AAChB,QAAI,YAAqE,CAAC;AAC1E,QAAI;AACF,kBAAa,MAAM,SAAS,KAAK;AAAA,IACnC,QAAQ;AAAA,IAER;AAEA,QAAI,KAAK,OAAO,SAAS;AACvB,YAAM,aAAgC;AAAA,QACpC,SAAS,UAAU,WAAW,8BAA8B,SAAS,MAAM;AAAA,QAC3E,QAAQ;AAAA,QACR,UAAU;AAAA,UACR,MAAM;AAAA,UACN,QAAQ,SAAS;AAAA,UACjB,YAAY,SAAS;AAAA,UACrB,SAAS,gBAAgB,SAAS,OAAO;AAAA,UACzC,QAAQ;AAAA,QACV;AAAA,MACF;AACA,YAAM,KAAK,OAAO,QAAQ,UAAU;AAAA,IACtC;AAEA,SAAK,gBAAgB,EAAE,QAAQ,SAAS,QAAQ,MAAM,UAAU,GAAG,YAAY,GAAG;AAAA,EACpF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,mBACZ,UACA,aACY;AACZ,UAAM,eAAgB,MAAM,SAAS,KAAK;AAE1C,UAAM,gBAAkC;AAAA,MACtC,MAAM;AAAA,MACN,QAAQ,SAAS;AAAA,MACjB,YAAY,SAAS;AAAA,MACrB,SAAS,gBAAgB,SAAS,OAAO;AAAA,MACzC,QAAQ;AAAA,IACV;AAEA,QAAI,KAAK,OAAO,YAAY;AAC1B,YAAM,WAAW,MAAM,KAAK,OAAO,WAAW,aAAa;AAC3D,aAAO,SAAS;AAAA,IAClB;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,QACZ,QACA,KACA,SACY;AACZ,UAAM,EAAE,QAAQ,MAAM,QAAQ,cAAc,IAAI;AAChD,UAAM,UAAU,eAAe,WAAW,KAAK,OAAO,WAAW,eAAe;AAEhF,UAAM,UAAU,KAAK,oBAAoB,KAAK,aAAa;AAE3D,QAAI,cAAkC;AAAA,MACpC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,QAAI,KAAK,OAAO,WAAW;AACzB,oBAAc,MAAM,KAAK,OAAO,UAAU,WAAW;AAAA,IACvD;AAEA,UAAM,UAAU,mBAAmB,YAAY,KAAK,YAAY,MAAM;AAEtE,UAAM,aAAa,IAAI,gBAAgB;AACvC,UAAM,YAAY,WAAW,MAAM,WAAW,MAAM,GAAG,OAAO;AAE9D,UAAM,SAAS,eAAe,SAC1B,KAAK,aAAa,cAAc,QAAQ,WAAW,MAAM,IACzD,WAAW;AAEf,QAAI;AACF,YAAM,eAA4B;AAAA,QAChC,QAAQ,YAAY;AAAA,QACpB,SAAS,YAAY;AAAA,QACrB;AAAA,MACF;AAEA,UAAI,YAAY,SAAS,UAAa,WAAW,OAAO;AACtD,qBAAa,OAAO,KAAK,UAAU,YAAY,IAAI;AAAA,MACrD;AAEA,YAAM,WAAW,MAAM,MAAM,SAAS,YAAY;AAElD,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,KAAK,iBAAiB,UAAU,WAAW;AAAA,MACnD;AAEA,aAAO,KAAK,mBAAsB,UAAU,WAAW;AAAA,IACzD,SAAS,OAAO;AACd,WAAK,mBAAmB,OAAO,GAAG;AAAA,IACpC,UAAE;AACA,mBAAa,SAAS;AAAA,IACxB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,aAAa,YAAyB,eAAyC;AACrF,UAAM,aAAa,IAAI,gBAAgB;AAEvC,UAAM,UAAU,MAAM,WAAW,MAAM;AACvC,eAAW,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAC5D,kBAAc,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAG/D,QAAI,WAAW,WAAW,cAAc,SAAS;AAC/C,iBAAW,MAAM;AAAA,IACnB;AAEA,WAAO,WAAW;AAAA,EACpB;AAAA,EAEQ,gBACN,UACA,UACO;AACP,UAAM,EAAE,QAAQ,KAAK,IAAI;AAEzB,YAAQ,QAAQ;AAAA,MACd,KAAK;AACH,cAAM,IAAI,oBAAoB;AAAA,UAC5B,SAAS,MAAM,WAAW;AAAA,UAC1B,SAAS,KAAK;AAAA,UACd;AAAA,QACF,CAAC;AAAA,MACH,KAAK;AACH,cAAM,IAAI,cAAc;AAAA,UACtB,SAAS,MAAM,WAAW;AAAA,UAC1B,SAAS,KAAK;AAAA,UACd;AAAA,QACF,CAAC;AAAA,MACH,KAAK;AACH,cAAM,IAAI,eAAe;AAAA,UACvB,SAAS,MAAM,WAAW;AAAA,UAC1B,SAAS,KAAK;AAAA,UACd;AAAA,QACF,CAAC;AAAA,MACH;AACE,cAAM,IAAI,WAAW;AAAA,UACnB,SAAS,MAAM,WAAW,8BAA8B,MAAM;AAAA,UAC9D,MAAM,MAAM,QAAQ;AAAA,UACpB,YAAY;AAAA,UACZ,SAAS,KAAK;AAAA,UACd;AAAA,UACA,WAAW,MAAM;AAAA,QACnB,CAAC;AAAA,IACL;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,mBAAmB,OAAgB,UAAyB;AAClE,QAAI,iBAAiB,YAAY;AAC/B,YAAM;AAAA,IACR;AAEA,QAAI,iBAAiB,gBAAgB,MAAM,SAAS,cAAc;AAChE,YAAM;AAAA,IACR;AAEA,SAAK,mBAAmB,OAAO,QAAQ;AAAA,EACzC;AAAA,EAEQ,mBAAmB,OAAgB,UAAyB;AAClE,UAAM,IAAI,WAAW;AAAA,MACnB,SAAU,MAA+B,WAAW;AAAA,MACpD,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,SAAS,KAAK;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,eACZ,WACA,SACA,YACA,WACY;AACZ,QAAI;AACF,aAAO,MAAM,UAAU;AAAA,IACzB,SAAS,OAAO;AAEd,UAAI,WAAW,cAAc,CAAC,iBAAiB,KAAK,GAAG;AACrD,cAAM;AAAA,MACR;AAGA,YAAM,eAAe,sBAAsB,SAAS,SAAS;AAC7D,YAAM,MAAM,YAAY;AAGxB,aAAO,KAAK,eAAe,WAAW,UAAU,GAAG,YAAY,SAAS;AAAA,IAC1E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,iBAAoB,WAAyC;AACzE,UAAM,aAAa,KAAK,OAAO,WAAW,eAAe;AACzD,UAAM,YAAY,KAAK,OAAO,cAAc,eAAe;AAE3D,WAAO,KAAK,eAAe,WAAW,GAAG,YAAY,SAAS;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBQ,yBAAyB,QAA2B;AAC1D,QAAI,CAAC,UAAU,OAAO,WAAW,UAAU;AACzC,aAAO;AAAA,IACT;AAEA,UAAM,YAAY;AAClB,UAAM,YAAY,UAAU;AAG5B,QAAI,cAAc,UAAa,cAAc,MAAM;AACjD,aAAO;AAAA,IACT;AAGA,UAAM,qBAAqB,CAAC,OAAO,MAAM,IAAI;AAE7C,UAAM,oBAAoB,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE3C,QAAI;AACJ,UAAM,eAAe,OAAO,SAAS;AAErC,QAAI,mBAAmB,SAAS,YAAY,GAAG;AAE7C,oBAAc;AAAA,IAChB,OAAO;AAEL,YAAM,aAAa,SAAS,cAAc,EAAE;AAC5C,UAAI,CAAC,kBAAkB,SAAS,UAAU,GAAG;AAE3C,cAAM,EAAE,WAAWC,IAAG,GAAG,KAAK,IAAI;AAClC,eAAO;AAAA,MACT;AACA,oBAAc,OAAO,UAAU;AAAA,IACjC;AAGA,UAAM,EAAE,WAAW,GAAG,GAAG,WAAW,IAAI;AACxC,UAAM,WAAW,cAAc,WAAW;AAE1C,WAAO;AAAA,MACL,GAAG;AAAA,MACH,CAAC,QAAQ,GAAG,KAAK,OAAO;AAAA,IAC1B;AAAA,EACF;AAAA,EAEA,MAAM,IAAO,KAAa,QAAkB,QAAoC;AAE9E,UAAM,oBAAoB,KAAK,yBAAyB,MAAM;AAC9D,UAAM,aAAa,mBAAmB,OAAO,KAAK,iBAAiB;AAGnE,UAAM,WAAW,KAAK,iBAAiB,IAAI,UAAU;AACrD,QAAI,UAAU;AACZ,aAAO;AAAA,IACT;AAGA,UAAM,iBAAiB,KAAK;AAAA,MAAiB,MAC3C,KAAK,QAAW,OAAO,KAAK,EAAE,QAAQ,mBAAmB,OAAO,CAAC;AAAA,IACnE,EAAE,QAAQ,MAAM;AAEd,WAAK,iBAAiB,OAAO,UAAU;AAAA,IACzC,CAAC;AAGD,SAAK,iBAAiB,IAAI,YAAY,cAAc;AAEpD,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,KAAQ,KAAa,MAAgB,QAAkB,QAAoC;AAC/F,WAAO,KAAK,QAAW,QAAQ,KAAK;AAAA,MAClC;AAAA,MACA,QAAQ,KAAK,yBAAyB,MAAM;AAAA,MAC5C;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAO,KAAa,MAAgB,QAAkB,QAAoC;AAC9F,WAAO,KAAK,QAAW,OAAO,KAAK;AAAA,MACjC;AAAA,MACA,QAAQ,KAAK,yBAAyB,MAAM;AAAA,MAC5C;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,OAAU,KAAa,QAAkB,QAAoC;AACjF,WAAO,KAAK,QAAW,UAAU,KAAK;AAAA,MACpC,QAAQ,KAAK,yBAAyB,MAAM;AAAA,MAC5C;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;AC/cA,YAAYC,QAAO;;;ACRnB,YAAY,OAAO;AAGnB,IAAM,0BAA0B,CAAC,YAA0B;AACzD,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAQ,KAAK,uCAAuC,OAAO,EAAE;AAAA,EAC/D;AACF;AAGA,IAAM,iBAAiB,CAAC,OAAe,qBAAqC;AAC1E,MAAI,UAAU,KAAK,mBAAmB,GAAG;AACvC,4BAAwB,8BAA8B,gBAAgB,QAAQ;AAC9E,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAGA,IAAM,kBAAkB,CACtB,OACA,iBAC4C;AAC5C,MAAI,UAAU,KAAK,eAAe,GAAG;AACnC,4BAAwB,uCAAuC,YAAY,EAAE;AAC7E,WAAO,EAAE,OAAO,cAAc,aAAa;AAAA,EAC7C;AACA,MAAI,iBAAiB,KAAK,QAAQ,GAAG;AACnC,4BAAwB,uCAAuC,KAAK,EAAE;AACtE,WAAO,EAAE,OAAO,cAAc,MAAM;AAAA,EACtC;AACA,SAAO,EAAE,OAAO,aAAa;AAC/B;AA4CO,IAAM,qBAAqB,CAChC,eAEE;AAAA,EACE,cAAY;AAAA,IACZ,OAAS,SAAO;AAAA,IAChB,MAAM;AAAA,IACN,SAAW,SAAO;AAAA;AAAA,IAElB,SAAW,QAAM,CAAG,QAAQ,UAAQ,CAAC,GAAK,SAAS,SAAO,GAAK,UAAQ,CAAC,CAAC,CAAC;AAAA,IAC1E,QAAU,QAAM,CAAG,QAAQ,UAAQ,CAAC,GAAK,SAAS,SAAO,GAAK,UAAQ,CAAC,CAAC,CAAC;AAAA,IACzE,QAAU,SAAO;AAAA,IACjB,OAAS,SAAO;AAAA,IAChB,cAAgB,SAAO;AAAA,EACzB,CAAC;AAAA,EACC,YAAU,UAAQ;AAKlB,UAAM,OAAO;AACb,QAAI,CAAC,MAAM,QAAQ,KAAK,IAAI,GAAG;AAC7B,aAAO;AAAA,IACT;AAEA,UAAM,QAAQ,eAAe,KAAK,OAAO,KAAK,KAAK,MAAM;AACzD,UAAM,EAAE,OAAO,aAAa,IAAI,gBAAgB,KAAK,OAAO,KAAK,YAAY;AAE7E,WAAO,EAAE,GAAG,MAAM,OAAO,OAAO,aAAa;AAAA,EAC/C,CAAC;AACH;AAGK,IAAM,wBAA0B,SAAO;AAAA,EAC5C,UAAY,SAAO;AAAA,EACnB,QAAU,SAAO;AACnB,CAAC;AAGM,IAAM,iBAAmB,UAAQ,MAAM;AAIvC,IAAM,mBAAqB,cAAY;AAAA,EAC5C,QAAU,SAAO;AAAA,EACjB,WAAa,SAAO;AAAA,EACpB,QAAU,SAAO;AAAA,EACjB,OAAS,WAAW,UAAQ,CAAC;AAAA,EAC7B,UAAY,WAAW,SAAO,CAAC;AAAA,EAC/B,OAAS,WAAW,SAAO,CAAC;AAAA,EAC5B,MAAQ,WAAW,SAAO,CAAC;AAC7B,CAAC;AAIM,IAAM,yBAA2B,cAAY;AAAA,EAClD,OAAS,WAAW,OAAO,UAAQ,GAAK,YAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,WAAW,OAAO,UAAQ,GAAK,YAAU,MAAM,CAAC,CAAC;AAC7D,CAAC;AAKM,IAAM,wBAA0B,cAAY;AAAA,EACjD,WAAa;AAAA,IACT,QAAM;AAAA;AAAA,MAEJ,UAAQ,KAAK;AAAA,MACb,UAAQ,IAAI;AAAA,MACZ,UAAQ,IAAI;AAAA;AAAA,MAEZ,UAAQ,CAAC;AAAA,MACT,UAAQ,CAAC;AAAA,MACT,UAAQ,CAAC;AAAA,MACT,UAAQ,CAAC;AAAA,MACT,UAAQ,CAAC;AAAA,MACT,UAAQ,CAAC;AAAA;AAAA,MAET,UAAQ,GAAG;AAAA,MACX,UAAQ,GAAG;AAAA,MACX,UAAQ,GAAG;AAAA,MACX,UAAQ,GAAG;AAAA,MACX,UAAQ,GAAG;AAAA,MACX,UAAQ,GAAG;AAAA,IACf,CAAC;AAAA,EACH;AACF,CAAC;;;ADtJM,IAAM,gCAAkC,eAAY;AAAA,EACzD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,0BAA4B,eAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,4BAA8B,eAAY;AAAA,EACrD,GAAG,sBAAsB;AAAA,EACzB,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAMM,IAAM,8BAAgC;AAAA,EACzC,eAAY;AAAA,IACZ,kBAAoB,UAAO;AAAA,IAC3B,MAAQ,YAAW,UAAO,CAAC;AAAA,IAC3B,IAAM,YAAW,UAAO,CAAC;AAAA,IACzB,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,EAC7B,CAAC;AACH;AAEO,IAAM,gCAAkC,eAAY;AAAA,EACzD,kBAAoB,UAAO;AAAA,EAC3B,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,IAAM,YAAW,UAAO,CAAC;AAAA,EACzB,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAC7B,CAAC;AAEM,IAAM,6BAA6B;AAEnC,IAAM,gCAAgC;AAEtC,IAAM,wBAA0B;AAAA,EACnC,eAAY;AAAA,IACZ,YAAc,UAAO;AAAA,IACrB,OAAS,YAAW,UAAO,CAAC;AAAA,IAC5B,IAAM,YAAW,UAAO,CAAC;AAAA,IACzB,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,EAC7B,CAAC;AACH;AAEO,IAAM,uBAAyB,eAAY;AAAA,EAChD,YAAc,UAAO;AAAA,EACrB,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,IAAM,YAAW,UAAO,CAAC;AAAA,EACzB,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAC7B,CAAC;AAEM,IAAM,0BAA0B;AAEhC,IAAM,0BAA4B;AAAA,EACrC,eAAY;AAAA,IACZ,cAAgB,UAAO;AAAA,IACvB,aAAe,UAAO;AAAA,IACtB,OAAS,UAAO;AAAA,IAChB,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,4BAA8B,eAAY;AAAA,EACrD,cAAgB,UAAO;AAAA,EACvB,aAAe,UAAO;AAAA,EACtB,OAAS,UAAO;AAAA,EAChB,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,yBAAyB;AAE/B,IAAM,4BAA4B;AAGlC,IAAM,wBAA0B,UAAS,UAAO,GAAK,WAAQ,CAAC;;;AE1F9D,IAAM,YAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,QAAQ;AAAA,IACrB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,UAAU;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB;AAAA,IAC/B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB;AAAA,IAC/B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB;AAAA,IAC/B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS;AAAA,IACvB,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS;AAAA,IACvB,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC9QA,YAAYC,QAAO;AAIZ,IAAM,0BAA4B,eAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,YAAc,YAAW,UAAO,CAAC;AACnC,CAAC;AAGM,IAAM,mCAAqC,eAAY;AAAA,EAC5D,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,0BAA4B,eAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,4BAA8B,eAAY;AAAA,EACrD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,wBAA0B,eAAY;AAAA,EACjD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,QAAU,YAAW,UAAO,CAAC;AAAA,EAC7B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,YAAc,YAAW,UAAO,CAAC;AACnC,CAAC;AAGM,IAAM,+BAAiC,eAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,wBAA0B,eAAY;AAAA,EACjD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,UAAY,YAAW,UAAO,CAAC;AACjC,CAAC;AAGM,IAAM,6BAA+B,eAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAMM,IAAM,wBAA0B;AAAA,EACnC,eAAY;AAAA,IACZ,YAAc,UAAO;AAAA,IACrB,UAAY,UAAO;AAAA,IACnB,YAAc,UAAO;AAAA,IACrB,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,YAAc,UAAO;AAAA,IACrB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,WAAa,YAAW,UAAO,CAAC;AAAA,EAClC,CAAC;AACH;AAEO,IAAM,0BAA4B,eAAY;AAAA,EACnD,YAAc,UAAO;AAAA,EACrB,UAAY,UAAO;AAAA,EACnB,YAAc,UAAO;AAAA,EACrB,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,YAAc,UAAO;AAAA,EACrB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,WAAa,YAAW,UAAO,CAAC;AAClC,CAAC;AAEM,IAAM,uBAAuB;AAE7B,IAAM,0BAA0B;AAEhC,IAAM,0BAA0B;AAEhC,IAAM,iCAAmC;AAAA,EAC5C,eAAY;AAAA,IACZ,sBAAwB,UAAO;AAAA,IAC/B,YAAc,UAAO;AAAA,IACrB,cAAgB,UAAO;AAAA,IACvB,QAAU,UAAO;AAAA,IACjB,SAAW,UAAO;AAAA,IAClB,WAAa,UAAO;AAAA,IACpB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,mCAAqC,eAAY;AAAA,EAC5D,sBAAwB,UAAO;AAAA,EAC/B,YAAc,UAAO;AAAA,EACrB,cAAgB,UAAO;AAAA,EACvB,QAAU,UAAO;AAAA,EACjB,SAAW,UAAO;AAAA,EAClB,WAAa,UAAO;AAAA,EACpB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,gCAAgC;AAEtC,IAAM,mCAAmC;AAEzC,IAAM,mCAAmC;AAEzC,IAAM,wBAA0B;AAAA,EACnC,eAAY;AAAA,IACZ,YAAc,UAAO;AAAA,IACrB,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,YAAc,UAAO;AAAA,IACrB,YAAc,UAAO;AAAA,IACrB,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,kBAAoB,YAAW,UAAO,CAAC;AAAA,IACvC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,mBAAqB,YAAW,UAAO,CAAC;AAAA,IACxC,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,0BAA4B,eAAY;AAAA,EACnD,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,aAAe,YAAW,YAAW,UAAO,CAAC,CAAC;AAAA,EAC9C,YAAc,YAAW,YAAW,UAAO,CAAC,CAAC;AAAA,EAC7C,kBAAoB,YAAW,YAAW,UAAO,CAAC,CAAC;AAAA,EACnD,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,YAAc,YAAW,UAAO,CAAC;AACnC,CAAC;AAEM,IAAM,kCAAoC,eAAY;AAAA,EAC3D,OAAS,YAAW,WAAQ,CAAC;AAAA,EAC7B,QAAU,YAAW,UAAO,CAAC;AAAA,EAC7B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,OAAS,YAAW,SAAQ,UAAO,CAAC,CAAC;AAAA,EACrC,SAAW,YAAW,SAAQ,UAAO,CAAC,CAAC;AAAA,EACvC,WAAa,YAAW,SAAQ,UAAO,CAAC,CAAC;AAC3C,CAAC;AAEM,IAAM,uBAAyB,eAAY;AAAA,EAChD,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,aAAe,YAAW,YAAW,UAAO,CAAC,CAAC;AAAA,EAC9C,YAAc,YAAW,YAAW,UAAO,CAAC,CAAC;AAAA,EAC7C,kBAAoB,YAAW,YAAW,UAAO,CAAC,CAAC;AAAA,EACnD,aAAe,YAAW,YAAW,UAAO,CAAC,CAAC;AAAA,EAC9C,mBAAqB,YAAW,YAAW,UAAO,CAAC,CAAC;AAAA,EACpD,cAAgB,YAAW,YAAW,UAAO,CAAC,CAAC;AAAA,EAC/C,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,kBAAoB,YAAW,UAAO,CAAC;AAAA,EACvC,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,YAAc,YAAW,UAAO,CAAC;AACnC,CAAC;AAEM,IAAM,0BAA4B,eAAY;AAAA,EACnD,YAAc,UAAO;AAAA,EACrB,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,YAAc,UAAO;AAAA,EACrB,YAAc,UAAO;AAAA,EACrB,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,kBAAoB,YAAW,UAAO,CAAC;AAAA,EACvC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,mBAAqB,YAAW,UAAO,CAAC;AAAA,EACxC,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,0BAA0B;AAEhC,IAAM,0BAA4B;AAAA,EACrC,eAAY;AAAA,IACZ,cAAgB,UAAO;AAAA,IACvB,YAAc,UAAO;AAAA,IACrB,cAAgB,UAAO;AAAA,IACvB,cAAgB,UAAO;AAAA,IACvB,cAAgB,UAAO;AAAA,IACvB,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,4BAA8B,eAAY;AAAA,EACrD,cAAgB,UAAO;AAAA,EACvB,YAAc,UAAO;AAAA,EACrB,cAAgB,UAAO;AAAA,EACvB,cAAgB,UAAO;AAAA,EACvB,cAAgB,UAAO;AAAA,EACvB,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,yBAAyB;AAE/B,IAAM,4BAA4B;AAElC,IAAM,4BAA4B;AAElC,IAAM,sBAAwB;AAAA,EACjC,eAAY;AAAA,IACZ,UAAY,UAAO;AAAA,IACnB,QAAU,UAAO;AAAA,IACjB,UAAY,UAAO;AAAA,IACnB,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,YAAc,UAAO;AAAA,IACrB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,wBAA0B,eAAY;AAAA,EACjD,UAAY,UAAO;AAAA,EACnB,QAAU,UAAO;AAAA,EACjB,UAAY,UAAO;AAAA,EACnB,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,YAAc,UAAO;AAAA,EACrB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,qBAAqB;AAE3B,IAAM,wBAAwB;AAE9B,IAAM,wBAAwB;AAE9B,IAAM,6BAA+B;AAAA,EACxC,eAAY;AAAA,IACZ,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,YAAc,UAAO;AAAA,IACrB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,+BAAiC,eAAY;AAAA,EACxD,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,YAAc,UAAO;AAAA,EACrB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,4BAA4B;AAElC,IAAM,+BAA+B;AAErC,IAAM,+BAA+B;AAErC,IAAM,sBAAwB;AAAA,EACjC,eAAY;AAAA,IACZ,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,MAAQ,YAAW,UAAO,CAAC;AAAA,IAC3B,OAAS,UAAO;AAAA,IAChB,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,wBAA0B,eAAY;AAAA,EACjD,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,OAAS,UAAO;AAAA,EAChB,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,8BAAgC,eAAY;AAAA,EACvD,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,OAAS,YAAW,UAAO,CAAC;AAC9B,CAAC;AAEM,IAAM,gCAAkC,eAAY;AAAA,EACzD,OAAS,YAAW,WAAQ,CAAC;AAAA,EAC7B,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,QAAU,YAAW,UAAO,CAAC;AAAA,EAC7B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,OAAS,YAAW,SAAQ,UAAO,CAAC,CAAC;AAAA,EACrC,SAAW,YAAW,SAAQ,UAAO,CAAC,CAAC;AAAA,EACvC,WAAa,YAAW,SAAQ,UAAO,CAAC,CAAC;AAC3C,CAAC;AAEM,IAAM,8BAA8B;AAEpC,IAAM,qBAAqB;AAE3B,IAAM,wBAAwB;AAE9B,IAAM,wBAAwB;AAE9B,IAAM,2BAA6B;AAAA,EACtC,eAAY;AAAA,IACZ,gBAAkB,UAAO;AAAA,IACzB,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,6BAA+B,eAAY;AAAA,EACtD,gBAAkB,UAAO;AAAA,EACzB,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,0BAA0B;AAEhC,IAAM,6BAA6B;AAEnC,IAAM,6BAA6B;AAGnC,IAAMC,yBAA0B,UAAS,UAAO,GAAK,WAAQ,CAAC;;;AC1X9D,IAAMC,aAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,YAAY,cAAc,SAAS,UAAU,WAAW,YAAY,YAAY;AAAA,IAC9F,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,WAAW,UAAU;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,sBAAsB;AAAA,IACjD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,sBAAsB;AAAA,IACjD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,sBAAsB;AAAA,IACjD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,YAAY,UAAU;AAAA,IAClE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,UAAU,YAAY,YAAY,YAAY;AAAA,IAC1F,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC,SAAS,UAAU,WAAW,UAAU;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY,kBAAkB;AAAA,IAC3C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY,kBAAkB;AAAA,IAC3C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY,kBAAkB;AAAA,IAC3C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,SAAS,UAAU,WAAW,eAAe,YAAY,UAAU;AAAA,IAC1F,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC,SAAS,UAAU,WAAW,UAAU;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY,gBAAgB;AAAA,IACzC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY,gBAAgB;AAAA,IACzC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY,gBAAgB;AAAA,IACzC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACvlBA,YAAYC,QAAO;AAIZ,IAAM,kCAAoC,eAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,GAAK,YAAW,UAAO,CAAC;AAAA,EACxB,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,sCAAwC,eAAY;AAAA,EAC/D,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,sCAAwC,eAAY;AAAA,EAC/D,GAAG,sBAAsB;AAAA,EACzB,GAAK,UAAO;AACd,CAAC;AAGM,IAAM,sCAAwC,eAAY;AAAA,EAC/D,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,GAAK,YAAW,UAAO,CAAC;AAAA,EACxB,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,2BAA6B,eAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,aAAe,UAAO;AAAA,EACtB,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,2BAA6B,eAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,wCAA0C,eAAY;AAAA,EACjE,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,gDAAkD,eAAY;AAAA,EACzE,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,iCAAmC,eAAY;AAAA,EAC1D,GAAG,sBAAsB;AAAA,EACzB,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAMM,IAAM,gCAAkC;AAAA,EAC3C,eAAY;AAAA,IACZ,uBAAyB,UAAO;AAAA,IAChC,MAAQ,UAAO;AAAA,IACf,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,cAAgB,UAAO;AAAA,IACvB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,OAAS,YAAW,UAAO,CAAC;AAAA,EAC9B,CAAC;AACH;AAEO,IAAM,kCAAoC,eAAY;AAAA,EAC3D,uBAAyB,UAAO;AAAA,EAChC,MAAQ,UAAO;AAAA,EACf,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,cAAgB,UAAO;AAAA,EACvB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,OAAS,YAAW,UAAO,CAAC;AAC9B,CAAC;AAEM,IAAM,+BAA+B;AAErC,IAAM,kCAAkC;AAExC,IAAM,oCAAsC;AAAA,EAC/C,eAAY;AAAA,IACZ,wBAA0B,UAAO;AAAA,IACjC,aAAe,UAAO;AAAA,IACtB,YAAc,UAAO;AAAA,IACrB,WAAa,UAAO;AAAA,IACpB,YAAc,UAAO;AAAA,IACrB,YAAc,UAAO;AAAA,IACrB,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,mCAAqC,eAAY;AAAA,EAC5D,wBAA0B,UAAO;AAAA,EACjC,aAAe,UAAO;AAAA,EACtB,YAAc,UAAO;AAAA,EACrB,WAAa,UAAO;AAAA,EACpB,YAAc,UAAO;AAAA,EACrB,YAAc,UAAO;AAAA,EACrB,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,gCAAkC,eAAY;AAAA,EACzD,kBAAoB,UAAO;AAAA,EAC3B,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,aAAe,UAAO;AAAA,EACtB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,oCAAsC;AAAA,EAC/C,eAAY;AAAA,IACZ,wBAA0B,UAAO;AAAA,IACjC,YAAc,UAAO;AAAA,IACrB,UAAY,UAAO;AAAA,IACnB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,sCAAwC,eAAY;AAAA,EAC/D,wBAA0B,UAAO;AAAA,EACjC,YAAc,UAAO;AAAA,EACrB,UAAY,UAAO;AAAA,EACnB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,mCAAmC;AAEzC,IAAM,sCAAsC;AAE5C,IAAM,sCAAsC;AAE5C,IAAM,yBAA2B;AAAA,EACpC,eAAY;AAAA,IACZ,aAAe,UAAO;AAAA,IACtB,aAAe,UAAO;AAAA,IACtB,MAAQ,UAAO;AAAA,IACf,OAAS,YAAW,UAAO,CAAC;AAAA,IAC5B,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,2BAA6B,eAAY;AAAA,EACpD,aAAe,UAAO;AAAA,EACtB,aAAe,UAAO;AAAA,EACtB,MAAQ,UAAO;AAAA,EACf,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,wBAAwB;AAE9B,IAAM,2BAA2B;AAEjC,IAAM,yBAA2B;AAAA,EACpC,eAAY;AAAA,IACZ,gBAAkB,UAAO;AAAA,IACzB,MAAQ,UAAO;AAAA,IACf,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,iBAAmB,YAAW,UAAO,CAAC;AAAA,IACtC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,eAAiB,UAAO;AAAA,IACxB,oBAAsB,UAAO;AAAA,IAC7B,aAAe,UAAO;AAAA,IACtB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,UAAY,UAAO;AAAA,IACnB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,EAC7B,CAAC;AACH;AAEO,IAAM,2BAA6B,eAAY;AAAA,EACpD,gBAAkB,UAAO;AAAA,EACzB,MAAQ,UAAO;AAAA,EACf,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,iBAAmB,YAAW,UAAO,CAAC;AAAA,EACtC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,eAAiB,UAAO;AAAA,EACxB,oBAAsB,UAAO;AAAA,EAC7B,aAAe,UAAO;AAAA,EACtB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,UAAY,UAAO;AAAA,EACnB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAC7B,CAAC;AAEM,IAAM,wBAAwB;AAE9B,IAAM,2BAA2B;AAEjC,IAAM,2BAA2B;AAEjC,IAAM,sCAAwC;AAAA,EACjD,eAAY;AAAA,IACZ,iBAAmB,UAAO;AAAA,IAC1B,gBAAkB,UAAO;AAAA,IACzB,YAAc,UAAO;AAAA,IACrB,gBAAkB,YAAW,UAAO,CAAC;AAAA,IACrC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,WAAa,UAAO;AAAA,IACpB,aAAe,UAAO;AAAA,IACtB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,UAAY,UAAO;AAAA,IACnB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,EAC7B,CAAC;AACH;AAEO,IAAM,wCAA0C,eAAY;AAAA,EACjE,iBAAmB,UAAO;AAAA,EAC1B,gBAAkB,UAAO;AAAA,EACzB,YAAc,UAAO;AAAA,EACrB,gBAAkB,YAAW,UAAO,CAAC;AAAA,EACrC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,WAAa,UAAO;AAAA,EACpB,aAAe,UAAO;AAAA,EACtB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,UAAY,UAAO;AAAA,EACnB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAC7B,CAAC;AAEM,IAAM,qCAAqC;AAE3C,IAAM,wCAAwC;AAE9C,IAAM,wCAAwC;AAE9C,IAAM,8CAAgD;AAAA,EACzD,eAAY;AAAA,IACZ,gBAAkB,UAAO;AAAA,IACzB,iBAAmB,UAAO;AAAA,IAC1B,YAAc,UAAO;AAAA,IACrB,MAAQ,UAAO;AAAA,IACf,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,OAAS,YAAW,UAAO,CAAC;AAAA,IAC5B,QAAU,UAAO;AAAA,IACjB,QAAU,UAAO;AAAA,IACjB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,UAAY,UAAO;AAAA,IACnB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,EAC7B,CAAC;AACH;AAEO,IAAM,gDAAkD,eAAY;AAAA,EACzE,gBAAkB,UAAO;AAAA,EACzB,iBAAmB,UAAO;AAAA,EAC1B,YAAc,UAAO;AAAA,EACrB,MAAQ,UAAO;AAAA,EACf,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,QAAU,UAAO;AAAA,EACjB,QAAU,UAAO;AAAA,EACjB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,UAAY,UAAO;AAAA,EACnB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAC7B,CAAC;AAEM,IAAM,6CACX;AAEK,IAAM,gDACX;AAEK,IAAM,gDACX;AAEK,IAAM,+BAAiC;AAAA,EAC1C,eAAY;AAAA,IACZ,gBAAkB,UAAO;AAAA,IACzB,QAAU,UAAO;AAAA,IACjB,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,MAAQ,YAAW,UAAO,CAAC;AAAA,IAC3B,OAAS,YAAW,UAAO,CAAC;AAAA,IAC5B,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,MAAQ,YAAW,UAAO,CAAC;AAAA,IAC3B,iBAAmB,YAAW,UAAO,CAAC;AAAA,IACtC,mBAAqB,YAAW,UAAO,CAAC;AAAA,IACxC,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,iCAAmC,eAAY;AAAA,EAC1D,gBAAkB,UAAO;AAAA,EACzB,QAAU,UAAO;AAAA,EACjB,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,iBAAmB,YAAW,UAAO,CAAC;AAAA,EACtC,mBAAqB,YAAW,UAAO,CAAC;AAAA,EACxC,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,8BAA8B;AAEpC,IAAM,iCAAiC;AAEvC,IAAM,iCAAiC;AAGvC,IAAMC,yBAA0B,UAAS,UAAO,GAAK,WAAQ,CAAC;;;ACpX9D,IAAMC,aAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,QAAQ;AAAA,IACrB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,uBAAuB;AAAA,IACpC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,uBAAuB;AAAA,IACpC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,uBAAuB;AAAA,IACpC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,wBAAwB;AAAA,IACrC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,GAAG;AAAA,IACjB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,wBAAwB;AAAA,IACrC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,wBAAwB;AAAA,IACrC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,wBAAwB;AAAA,IACrC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,eAAe,UAAU;AAAA,IACrE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB,iBAAiB;AAAA,IAChD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB,iBAAiB;AAAA,IAChD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB,iBAAiB;AAAA,IAChD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB,iBAAiB;AAAA,IAChD,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB,iBAAiB;AAAA,IAChD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB,mBAAmB,gBAAgB;AAAA,IAClE,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB,mBAAmB,gBAAgB;AAAA,IAClE,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB,mBAAmB,gBAAgB;AAAA,IAClE,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,QAAQ;AAAA,IACrB,aAAa,CAAC,gBAAgB,SAAS,UAAU,WAAW,UAAU;AAAA,IACtE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,QAAQ;AAAA,IACrB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU,gBAAgB;AAAA,IACvC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU,gBAAgB;AAAA,IACvC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU,gBAAgB;AAAA,IACvC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC/hBO,IAAMC,aAA2B,CAAC;;;AChBzC,YAAYC,QAAO;AAMZ,IAAM,wBAA0B,UAAO;AAGvC,IAAMC,yBAA0B,UAAS,UAAO,GAAK,WAAQ,CAAC;;;ACO9D,IAAMC,aAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC7BA,YAAYC,QAAO;AAIZ,IAAM,2BAA6B,eAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,WAAa,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC9D,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,SAAW,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC9D,CAAC;AAGM,IAAM,yBAA2B,eAAY;AAAA,EAClD,GAAG,sBAAsB;AAAA,EACzB,aAAe,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAChE,IAAM,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EACvD,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,0BAA4B,eAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,WAAa,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC9D,aAAe,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAChE,SAAW,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC5D,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,eAAiB,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAClE,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,eAAiB,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AACpE,CAAC;AAGM,IAAM,yBAA2B,eAAY;AAAA,EAClD,GAAG,sBAAsB;AAAA,EACzB,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,GAAK,YAAW,UAAO,CAAC;AAAA,EACxB,aAAe,YAAW,UAAO,CAAC;AACpC,CAAC;AAGM,IAAM,gCAAkC,eAAY;AAAA,EACzD,GAAG,sBAAsB;AAAA,EACzB,aAAe,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAChE,SAAW,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC5D,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,eAAiB,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAClE,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,eAAiB,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AACpE,CAAC;AAGM,IAAM,8BAAgC,eAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AACjE,CAAC;AAGM,IAAM,sCAAwC,eAAY;AAAA,EAC/D,GAAG,sBAAsB;AAAA,EACzB,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,2BAA6B,eAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,aAAe,YAAW,UAAO,CAAC;AACpC,CAAC;AAGM,IAAM,kCAAoC,eAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,aAAe,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAChE,SAAW,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC5D,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,eAAiB,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAClE,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,eAAiB,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AACpE,CAAC;AAGM,IAAM,oCAAsC,eAAY;AAAA,EAC7D,GAAG,sBAAsB;AAAA,EACzB,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,gCAAkC,eAAY;AAAA,EACzD,GAAG,sBAAsB;AAAA,EACzB,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,yCAA2C,eAAY;AAAA,EAClE,GAAG,sBAAsB;AAAA,EACzB,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,4BAA8B,eAAY;AAAA,EACrD,GAAG,sBAAsB;AAAA,EACzB,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AACjE,CAAC;AAGM,IAAM,wBAA0B,eAAY;AAAA,EACjD,GAAG,sBAAsB;AAAA,EACzB,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AACjE,CAAC;AAGM,IAAM,+BAAiC,eAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,WAAa,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAChE,CAAC;AAGM,IAAM,gCAAkC,eAAY;AAAA,EACzD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,8BAAgC,eAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,aAAe,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAChE,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,gCAAkC,eAAY;AAAA,EACzD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,iBAAmB,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AACtE,CAAC;AAMM,IAAM,yBAA2B;AAAA,EACpC,eAAY;AAAA,IACZ,IAAM,UAAO;AAAA,IACb,SAAW,UAAO;AAAA,IAClB,WAAa,UAAO;AAAA,IACpB,WAAa,UAAO;AAAA,IACpB,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,QAAU,YAAW,UAAO,CAAC;AAAA,IAC7B,UAAY,UAAO;AAAA,IACnB,YAAc,UAAO;AAAA,IACrB,gBAAkB,UAAO;AAAA,IACzB,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,eAAiB,UAAO;AAAA,IACxB,YAAc,UAAO;AAAA,EACvB,CAAC;AACH;AAEO,IAAM,wBAA0B,eAAY;AAAA,EACjD,IAAM,UAAO;AAAA,EACb,SAAW,UAAO;AAAA,EAClB,WAAa,UAAO;AAAA,EACpB,WAAa,UAAO;AAAA,EACpB,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,QAAU,YAAW,UAAO,CAAC;AAAA,EAC7B,UAAY,UAAO;AAAA,EACnB,YAAc,UAAO;AAAA,EACrB,gBAAkB,UAAO;AAAA,EACzB,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,eAAiB,UAAO;AAAA,EACxB,YAAc,UAAO;AACvB,CAAC;AAEM,IAAM,uBAAyB;AAAA,EAClC,eAAY;AAAA,IACZ,IAAM,UAAO;AAAA,IACb,UAAY,UAAO;AAAA,IACnB,aAAe,UAAO;AAAA,IACtB,UAAY,UAAO;AAAA,IACnB,SAAW,UAAO;AAAA,IAClB,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,kBAAoB,YAAW,UAAO,CAAC;AAAA,EACzC,CAAC;AACH;AAEO,IAAM,wBAA0B;AAAA,EACnC,eAAY;AAAA,IACZ,IAAM,UAAO;AAAA,IACb,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,WAAa,UAAO;AAAA,IACpB,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,eAAiB,UAAO;AAAA,IACxB,SAAW,UAAO;AAAA,IAClB,aAAe,UAAO;AAAA,IACtB,eAAiB,UAAO;AAAA,IACxB,WAAa,UAAO;AAAA,IACpB,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,gBAAkB,UAAO;AAAA,IACzB,gBAAkB,YAAW,UAAO,CAAC;AAAA,IACrC,eAAiB,YAAW,UAAO,CAAC;AAAA,IACpC,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,oBAAsB,YAAW,UAAO,CAAC;AAAA,IACzC,oBAAsB,YAAW,UAAO,CAAC;AAAA,IACzC,eAAiB,YAAW,UAAO,CAAC;AAAA,IACpC,cAAgB,UAAO;AAAA,IACvB,iBAAmB,UAAO;AAAA,IAC1B,kBAAoB,YAAW,UAAO,CAAC;AAAA,IACvC,wBAA0B,YAAW,UAAO,CAAC;AAAA,IAC7C,iBAAmB,YAAW,UAAO,CAAC;AAAA,IACtC,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,uBAAyB;AAAA,EAClC,eAAY;AAAA,IACZ,IAAM,UAAO;AAAA,IACb,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,MAAQ,YAAW,UAAO,CAAC;AAAA,IAC3B,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,WAAa,UAAO;AAAA,IACpB,WAAa,UAAO;AAAA,IACpB,KAAO,YAAW,UAAO,CAAC;AAAA,IAC1B,QAAU,YAAW,UAAO,CAAC;AAAA,IAC7B,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,mBAAqB,YAAW,UAAO,CAAC;AAAA,IACxC,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,sBAAwB,eAAY;AAAA,EAC/C,IAAM,UAAO;AAAA,EACb,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,WAAa,UAAO;AAAA,EACpB,WAAa,UAAO;AAAA,EACpB,KAAO,YAAW,UAAO,CAAC;AAAA,EAC1B,QAAU,YAAW,UAAO,CAAC;AAAA,EAC7B,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,mBAAqB,YAAW,UAAO,CAAC;AAAA,EACxC,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,8BAA8B;AAEpC,IAAM,4BAA4B;AAElC,IAAM,oCAAoC;AAE1C,IAAM,yBAA2B;AAAA,EACpC,eAAY;AAAA,IACZ,IAAM,UAAO;AAAA,IACb,MAAQ,YAAW,UAAO,CAAC;AAAA,IAC3B,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,WAAa,UAAO;AAAA,IACpB,WAAa,UAAO;AAAA,IACpB,aAAe,UAAO;AAAA,IACtB,KAAO,YAAW,UAAO,CAAC;AAAA,IAC1B,QAAU,YAAW,UAAO,CAAC;AAAA,IAC7B,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,qBAAuB,YAAW,UAAO,CAAC;AAAA,IAC1C,OAAS,YAAW,UAAO,CAAC;AAAA,IAC5B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,wBAA0B,eAAY;AAAA,EACjD,IAAM,UAAO;AAAA,EACb,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,WAAa,UAAO;AAAA,EACpB,WAAa,UAAO;AAAA,EACpB,aAAe,UAAO;AAAA,EACtB,KAAO,YAAW,UAAO,CAAC;AAAA,EAC1B,QAAU,YAAW,UAAO,CAAC;AAAA,EAC7B,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,qBAAuB,YAAW,UAAO,CAAC;AAAA,EAC1C,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,gCAAgC;AAEtC,IAAM,kCAAkC;AAExC,IAAM,8BAA8B;AAEpC,IAAM,uCAAuC;AAE7C,IAAM,0BAA4B;AAAA,EACrC,eAAY;AAAA,IACZ,IAAM,UAAO;AAAA,IACb,MAAQ,YAAW,UAAO,CAAC;AAAA,IAC3B,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,WAAa,UAAO;AAAA,IACpB,WAAa,UAAO;AAAA,IACpB,KAAO,YAAW,UAAO,CAAC;AAAA,IAC1B,QAAU,YAAW,UAAO,CAAC;AAAA,IAC7B,eAAiB,YAAW,UAAO,CAAC;AAAA,IACpC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,gBAAkB,YAAW,UAAO,CAAC;AAAA,IACrC,gBAAkB,YAAW,UAAO,CAAC;AAAA,IACrC,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,YAAc,UAAO;AAAA,EACvB,CAAC;AACH;AAEO,IAAM,yBAA2B,eAAY;AAAA,EAClD,IAAM,UAAO;AAAA,EACb,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,WAAa,UAAO;AAAA,EACpB,WAAa,UAAO;AAAA,EACpB,KAAO,YAAW,UAAO,CAAC;AAAA,EAC1B,QAAU,YAAW,UAAO,CAAC;AAAA,EAC7B,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,gBAAkB,YAAW,UAAO,CAAC;AAAA,EACrC,gBAAkB,YAAW,UAAO,CAAC;AAAA,EACrC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,YAAc,UAAO;AACvB,CAAC;AAEM,IAAM,sBAAwB;AAAA,EACjC,eAAY;AAAA,IACZ,IAAM,UAAO;AAAA,IACb,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,OAAS,YAAW,UAAO,CAAC;AAAA,IAC5B,OAAS,YAAW,UAAO,CAAC;AAAA,IAC5B,WAAa,UAAO;AAAA,IACpB,WAAa,UAAO;AAAA,IACpB,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,eAAiB,YAAW,UAAO,CAAC;AAAA,IACpC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,eAAiB,YAAW,UAAO,CAAC;AAAA,IACpC,KAAO,YAAW,UAAO,CAAC;AAAA,IAC1B,QAAU,YAAW,UAAO,CAAC;AAAA,IAC7B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,YAAc,UAAO;AAAA,IACrB,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,cAAgB,UAAO;AAAA,IACvB,WAAa,UAAO;AAAA,IACpB,WAAa,UAAO;AAAA,IACpB,UAAY,UAAO;AAAA,IACnB,eAAiB,UAAO;AAAA,IACxB,QAAU,YAAW,UAAO,CAAC;AAAA,IAC7B,UAAY,UAAO;AAAA,IACnB,YAAc,UAAO;AAAA,IACrB,gBAAkB,UAAO;AAAA,EAC3B,CAAC;AACH;AAEO,IAAM,6BAA+B;AAAA,EACxC,eAAY;AAAA,IACZ,IAAM,UAAO;AAAA,IACb,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,eAAiB,UAAO;AAAA,IACxB,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,eAAiB,UAAO;AAAA,IACxB,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,QAAU,YAAW,UAAO,CAAC;AAAA,IAC7B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,UAAY,UAAO;AAAA,IACnB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,iBAAmB,YAAW,UAAO,CAAC;AAAA,IACtC,kBAAoB,YAAW,UAAO,CAAC;AAAA,IACvC,kBAAoB,YAAW,UAAO,CAAC;AAAA,IACvC,kBAAoB,YAAW,UAAO,CAAC;AAAA,IACvC,kBAAoB,YAAW,UAAO,CAAC;AAAA,EACzC,CAAC;AACH;AAEO,IAAM,4BAA8B,eAAY;AAAA,EACrD,IAAM,UAAO;AAAA,EACb,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,eAAiB,UAAO;AAAA,EACxB,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,eAAiB,UAAO;AAAA,EACxB,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,QAAU,YAAW,UAAO,CAAC;AAAA,EAC7B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,UAAY,UAAO;AAAA,EACnB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,iBAAmB,YAAW,UAAO,CAAC;AAAA,EACtC,kBAAoB,YAAW,UAAO,CAAC;AAAA,EACvC,kBAAoB,YAAW,UAAO,CAAC;AAAA,EACvC,kBAAoB,YAAW,UAAO,CAAC;AAAA,EACvC,kBAAoB,YAAW,UAAO,CAAC;AACzC,CAAC;AAEM,IAAM,qBAAuB,eAAY;AAAA,EAC9C,IAAM,UAAO;AAAA,EACb,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,WAAa,UAAO;AAAA,EACpB,WAAa,UAAO;AAAA,EACpB,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,KAAO,YAAW,UAAO,CAAC;AAAA,EAC1B,QAAU,YAAW,UAAO,CAAC;AAAA,EAC7B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,YAAc,UAAO;AAAA,EACrB,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,cAAgB,UAAO;AAAA,EACvB,WAAa,UAAO;AAAA,EACpB,WAAa,UAAO;AAAA,EACpB,UAAY,UAAO;AAAA,EACnB,eAAiB,UAAO;AAAA,EACxB,QAAU,YAAW,UAAO,CAAC;AAAA,EAC7B,UAAY,UAAO;AAAA,EACnB,YAAc,UAAO;AAAA,EACrB,gBAAkB,UAAO;AAC3B,CAAC;AAEM,IAAM,8BAA8B;AAEpC,IAAM,4BAA4B;AAElC,IAAM,2BAA6B,eAAY;AAAA,EACpD,IAAM,UAAO;AAAA,EACb,UAAY,UAAO;AAAA,EACnB,aAAe,UAAO;AAAA,EACtB,UAAY,UAAO;AAAA,EACnB,SAAW,UAAO;AAAA,EAClB,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,kBAAoB,YAAW,UAAO,CAAC;AACzC,CAAC;AAEM,IAAM,6BAA+B,eAAY;AAAA,EACtD,IAAM,UAAO;AAAA,EACb,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,WAAa,UAAO;AAAA,EACpB,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,eAAiB,UAAO;AAAA,EACxB,SAAW,UAAO;AAAA,EAClB,aAAe,UAAO;AAAA,EACtB,eAAiB,UAAO;AAAA,EACxB,WAAa,UAAO;AAAA,EACpB,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,gBAAkB,UAAO;AAAA,EACzB,gBAAkB,YAAW,UAAO,CAAC;AAAA,EACrC,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,oBAAsB,YAAW,UAAO,CAAC;AAAA,EACzC,oBAAsB,YAAW,UAAO,CAAC;AAAA,EACzC,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,cAAgB,UAAO;AAAA,EACvB,iBAAmB,UAAO;AAAA,EAC1B,kBAAoB,YAAW,UAAO,CAAC;AAAA,EACvC,wBAA0B,YAAW,UAAO,CAAC;AAAA,EAC7C,iBAAmB,YAAW,UAAO,CAAC;AAAA,EACtC,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,8BAAgC;AAAA,EACzC,eAAY;AAAA,IACZ,kBAAoB,UAAO;AAAA,IAC3B,SAAW,UAAO;AAAA,IAClB,YAAc,UAAO;AAAA,IACrB,iBAAmB,UAAO;AAAA,IAC1B,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,eAAiB,YAAW,UAAO,CAAC;AAAA,IACpC,MAAQ,YAAW,UAAO,CAAC;AAAA,IAC3B,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,gCAAkC,eAAY;AAAA,EACzD,kBAAoB,UAAO;AAAA,EAC3B,SAAW,UAAO;AAAA,EAClB,YAAc,UAAO;AAAA,EACrB,iBAAmB,UAAO;AAAA,EAC1B,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AACtB,CAAC;AAEM,IAAM,6BAA6B;AAEnC,IAAM,gCAAgC;AAEtC,IAAM,gCAAgC;AAGtC,IAAMC,yBAA0B,UAAS,UAAO,GAAK,WAAQ,CAAC;;;AC7kB9D,IAAMC,aAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,aAAa,SAAS,UAAU,WAAW,SAAS;AAAA,IAClE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,eAAe,MAAM,SAAS,UAAU,WAAW,UAAU;AAAA,IAC3E,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,aAAa,SAAS,UAAU,WAAW,KAAK,aAAa;AAAA,IAC3E,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,iBAAiB,SAAS,SAAS,UAAU,WAAW,YAAY;AAAA,IAClF,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY,WAAW;AAAA,IACpC,aAAa,CAAC,iBAAiB,SAAS,UAAU,SAAS;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,gBAAgB,SAAS,UAAU,WAAW,aAAa;AAAA,IACzE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,iBAAiB,SAAS,UAAU,SAAS;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,cAAc,iBAAiB,SAAS,UAAU,SAAS;AAAA,IACzE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa,YAAY;AAAA,IACtC,aAAa,CAAC,cAAc,iBAAiB,SAAS,UAAU,SAAS;AAAA,IACzE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,iBAAiB,SAAS,UAAU,WAAW,YAAY;AAAA,IACvF,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,YAAY,SAAS,UAAU,WAAW;AAAA,IACxD,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,eAAe,SAAS,UAAU,WAAW,UAAU;AAAA,IACrE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,MAAM,UAAU;AAAA,IAC7B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,SAAS,UAAU,WAAW,iBAAiB;AAAA,IAC7D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,MAAM,WAAW;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,MAAM,WAAW;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,MAAM,WAAW;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC5bA,YAAYC,QAAO;AAIZ,IAAM,6BAA+B,eAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,GAAK,YAAW,UAAO,CAAC;AAC1B,CAAC;AAMM,IAAM,2BAA6B;AAAA,EACtC,eAAY;AAAA,IACZ,iBAAmB,UAAO;AAAA,IAC1B,gBAAkB,UAAO;AAAA,IACzB,kBAAoB,UAAO;AAAA,IAC3B,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,gBAAkB,UAAO;AAAA,IACzB,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,gBAAkB,YAAW,UAAO,CAAC;AAAA,IACrC,oBAAsB,YAAW,UAAO,CAAC;AAAA,IACzC,mBAAqB,YAAW,UAAO,CAAC;AAAA,IACxC,qBAAuB,YAAW,UAAO,CAAC;AAAA,IAC1C,mBAAqB,UAAO;AAAA,IAC5B,qBAAuB,UAAO;AAAA,IAC9B,wBAA0B,UAAO;AAAA,IACjC,oBAAsB,YAAW,UAAO,CAAC;AAAA,IACzC,gBAAkB,UAAO;AAAA,IACzB,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,aAAe,UAAO;AAAA,IACtB,SAAW,UAAO;AAAA,EACpB,CAAC;AACH;AAEO,IAAM,0BAA4B,eAAY;AAAA,EACnD,iBAAmB,UAAO;AAAA,EAC1B,gBAAkB,UAAO;AAAA,EACzB,kBAAoB,UAAO;AAAA,EAC3B,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,gBAAkB,UAAO;AAAA,EACzB,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,gBAAkB,YAAW,UAAO,CAAC;AAAA,EACrC,oBAAsB,YAAW,UAAO,CAAC;AAAA,EACzC,mBAAqB,YAAW,UAAO,CAAC;AAAA,EACxC,qBAAuB,YAAW,UAAO,CAAC;AAAA,EAC1C,mBAAqB,UAAO;AAAA,EAC5B,qBAAuB,UAAO;AAAA,EAC9B,wBAA0B,UAAO;AAAA,EACjC,oBAAsB,YAAW,UAAO,CAAC;AAAA,EACzC,gBAAkB,UAAO;AAAA,EACzB,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,aAAe,UAAO;AAAA,EACtB,SAAW,UAAO;AACpB,CAAC;AAGM,IAAMC,yBAA0B,UAAS,UAAO,GAAK,WAAQ,CAAC;;;ACnD9D,IAAMC,aAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,GAAG;AAAA,IAC/C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACzDA,YAAYC,QAAO;AAIZ,IAAM,8BAAgC,eAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,QAAU,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC;AACjD,CAAC;AAGM,IAAM,+BAAiC,eAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,WAAa,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC;AAAA,EAClD,YAAc,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC;AAAA,EACnD,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,QAAU,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC;AACjD,CAAC;AAGM,IAAM,oCAAsC,eAAY;AAAA,EAC7D,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC7D,CAAC;AAGM,IAAM,8BAAgC,eAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AACjE,CAAC;AAOM,IAAMC,yBAA0B,UAAS,UAAO,GAAK,WAAQ,CAAC;;;ACrB9D,IAAMC,aAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,QAAQ;AAAA,IACtB,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,aAAa,aAAa,cAAc,cAAc,QAAQ;AAAA,IAC5E,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,QAAQ;AAAA,IAC/B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,QAAQ;AAAA,IACnC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC,YAAY;AAAA,IAC1B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe,iBAAiB;AAAA,IAC7C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACrMA,YAAYC,QAAO;AAIZ,IAAM,oCAAsC,eAAY;AAAA,EAC7D,GAAG,sBAAsB;AAAA,EACzB,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,GAAK,YAAW,UAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,2BAA6B,eAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,GAAK,YAAW,UAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,gCAAkC,eAAY;AAAA,EACzD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,GAAK,UAAO;AACd,CAAC;AAGM,IAAM,kCAAoC,eAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,GAAK,UAAO;AACd,CAAC;AAGM,IAAM,oCAAsC,eAAY;AAAA,EAC7D,GAAG,sBAAsB;AAAA,EACzB,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,gCAAkC,eAAY;AAAA,EACzD,GAAG,sBAAsB;AAAA,EACzB,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,mCAAqC,eAAY;AAAA,EAC5D,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,GAAK,UAAO;AACd,CAAC;AAGM,IAAM,mCAAqC,eAAY;AAAA,EAC5D,GAAG,sBAAsB;AAAA,EACzB,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,GAAK,UAAO;AAAA,EACZ,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,iCAAmC,eAAY;AAAA,EAC1D,GAAG,sBAAsB;AAAA,EACzB,WAAa,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC9D,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,GAAK,YAAW,UAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,yCAA2C,eAAY;AAAA,EAClE,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,iCAAmC,eAAY;AAAA,EAC1D,GAAG,sBAAsB;AAAA,EACzB,WAAa,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC9D,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,+BAAiC,eAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,qCAAuC,eAAY;AAAA,EAC9D,GAAG,sBAAsB;AAAA,EACzB,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,GAAK,YAAW,UAAO,CAAC;AAAA,EACxB,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,YAAc,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,iCAAmC,eAAY;AAAA,EAC1D,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAChC,CAAC;AAGM,IAAM,sCAAwC,eAAY;AAAA,EAC/D,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,GAAK,YAAW,UAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,+BAAiC,eAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,OAAS,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,YAAW,QAAO,WAAQ,GAAK,aAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAMM,IAAM,kCAAoC;AAAA,EAC7C,eAAY;AAAA,IACZ,oBAAsB,UAAO;AAAA,IAC7B,YAAc,UAAO;AAAA,IACrB,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,MAAQ,YAAW,UAAO,CAAC;AAAA,IAC3B,OAAS,YAAW,UAAO,CAAC;AAAA,IAC5B,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,IAC3B,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,MAAQ,YAAW,UAAO,CAAC;AAAA,IAC3B,iBAAmB,YAAW,UAAO,CAAC;AAAA,IACtC,mBAAqB,YAAW,UAAO,CAAC;AAAA,EAC1C,CAAC;AACH;AAEO,IAAM,oCAAsC,eAAY;AAAA,EAC7D,oBAAsB,UAAO;AAAA,EAC7B,YAAc,UAAO;AAAA,EACrB,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,iBAAmB,YAAW,UAAO,CAAC;AAAA,EACtC,mBAAqB,YAAW,UAAO,CAAC;AAC1C,CAAC;AAEM,IAAM,iCAAiC;AAEvC,IAAM,oCAAoC;AAE1C,IAAM,oCAAoC;AAE1C,IAAM,8BAAgC,eAAY;AAAA,EACvD,YAAc,UAAO;AAAA,EACrB,MAAQ,UAAO;AAAA,EACf,YAAc,SAAQ,UAAO,CAAC;AAAA,EAC9B,cAAgB,UAAO;AAAA,EACvB,cAAgB,UAAO;AAAA,EACvB,QAAU,SAAQ,eAAY,EAAE,KAAO,UAAO,GAAG,SAAW,UAAO,GAAG,UAAY,UAAO,EAAE,CAAC,CAAC;AAAA,EAC7F,MAAQ;AAAA,IACJ,eAAY;AAAA,MACZ,WAAa,UAAO;AAAA,MACpB,SAAW,YAAW,UAAO,CAAC;AAAA,MAC9B,MAAQ,YAAW,UAAO,CAAC;AAAA,MAC3B,WAAa,YAAW,UAAO,CAAC;AAAA,MAChC,aAAe,UAAO;AAAA,MACtB,aAAe,UAAO;AAAA,MACtB,YAAc,UAAO;AAAA,MACrB,SAAW,UAAO;AAAA,MAClB,SAAW,UAAO;AAAA,MAClB,QAAU,UAAO;AAAA,IACnB,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,8BAAgC,eAAY;AAAA,EACvD,SAAW,UAAO;AAAA,EAClB,YAAc,UAAO;AAAA,EACrB,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,SAAW,YAAW,UAAO,CAAC;AAAA,EAC9B,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,eAAiB,YAAW,UAAO,CAAC;AAAA,EACpC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,YAAc,UAAO;AAAA,EACrB,MAAQ,YAAW,UAAO,CAAC;AAAA,EAC3B,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,YAAc,YAAW,UAAO,CAAC;AAAA,EACjC,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,cAAgB,YAAW,UAAO,CAAC;AAAA,EACnC,mBAAqB,YAAW,UAAO,CAAC;AAAA,EACxC,aAAe,YAAW,UAAO,CAAC;AAAA,EAClC,sBAAwB,YAAW,UAAO,CAAC;AAAA,EAC3C,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,EAC/B,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,gBAAkB,YAAW,UAAO,CAAC;AAAA,EACrC,aAAe,UAAO;AAAA,EACtB,OAAS,YAAW,UAAO,CAAC;AAAA,EAC5B,kBAAoB,YAAW,UAAO,CAAC;AAAA,EACvC,iBAAmB,YAAW,UAAO,CAAC;AAAA,EACtC,WAAa,YAAW,UAAO,CAAC;AAAA,EAChC,aAAe,UAAO;AAAA,EACtB,OAAS;AAAA,IACL,eAAY;AAAA,MACZ,YAAc,UAAO;AAAA,MACrB,YAAc,YAAW,UAAO,CAAC;AAAA,MACjC,UAAY,YAAW,UAAO,CAAC;AAAA,MAC/B,YAAc,UAAO;AAAA,MACrB,aAAe,YAAW,UAAO,CAAC;AAAA,MAClC,UAAY,YAAW,UAAO,CAAC;AAAA,MAC/B,aAAe,YAAW,UAAO,CAAC;AAAA,MAClC,QAAU,UAAO;AAAA,MACjB,WAAa,YAAW,UAAO,CAAC;AAAA,MAChC,QAAU,UAAO;AAAA,MACjB,SAAW,UAAO;AAAA,MAClB,oBAAsB,YAAW,UAAO,CAAC;AAAA,MACzC,cAAgB,YAAW,UAAO,CAAC;AAAA,MACnC,aAAe,YAAW,UAAO,CAAC;AAAA,MAClC,aAAe,YAAW,UAAO,CAAC;AAAA,MAClC,kBAAoB,YAAW,UAAO,CAAC;AAAA,MACvC,YAAc,YAAW,UAAO,CAAC;AAAA,MACjC,eAAiB,YAAW,UAAO,CAAC;AAAA,MACpC,cAAgB,UAAO;AAAA,MACvB,UAAY,UAAO;AAAA,MACnB,WAAa,YAAW,UAAO,CAAC;AAAA,MAChC,eAAiB,YAAW,UAAO,CAAC;AAAA,MACpC,WAAa,UAAO;AAAA,MACpB,iBAAmB,UAAO;AAAA,MAC1B,eAAiB,YAAW,UAAO,CAAC;AAAA,MACpC,iBAAmB,YAAW,UAAO,CAAC;AAAA,MACtC,aAAe,YAAW,UAAO,CAAC;AAAA,MAClC,eAAiB,YAAW,UAAO,CAAC;AAAA,IACtC,CAAC;AAAA,EACH;AAAA,EACA,aAAe;AAAA,IACX,eAAY;AAAA,MACZ,cAAgB,UAAO;AAAA,MACvB,YAAc,YAAW,UAAO,CAAC;AAAA,MACjC,SAAW,UAAO;AAAA,MAClB,WAAa,YAAW,UAAO,CAAC;AAAA,MAChC,UAAY,YAAW,UAAO,CAAC;AAAA,MAC/B,aAAe,YAAW,UAAO,CAAC;AAAA,MAClC,WAAa,YAAW,UAAO,CAAC;AAAA,MAChC,cAAgB,YAAW,UAAO,CAAC;AAAA,MACnC,WAAa,YAAW,UAAO,CAAC;AAAA,MAChC,aAAe,UAAO;AAAA,MACtB,OAAS;AAAA,QACL,eAAY;AAAA,UACZ,YAAc,UAAO;AAAA,UACrB,cAAgB,YAAW,UAAO,CAAC;AAAA,UACnC,cAAgB,YAAW,UAAO,CAAC;AAAA,UACnC,YAAc,UAAO;AAAA,UACrB,QAAU,UAAO;AAAA,UACjB,UAAY,YAAW,UAAO,CAAC;AAAA,UAC/B,aAAe,YAAW,UAAO,CAAC;AAAA,UAClC,eAAiB,YAAW,UAAO,CAAC;AAAA,UACpC,iBAAmB,YAAW,UAAO,CAAC;AAAA,UACtC,aAAe,YAAW,UAAO,CAAC;AAAA,UAClC,eAAiB,YAAW,UAAO,CAAC;AAAA,QACtC,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,+BAAiC;AAAA,EAC1C,eAAY;AAAA,IACZ,SAAW,UAAO;AAAA,IAClB,YAAc,UAAO;AAAA,IACrB,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,SAAW,YAAW,UAAO,CAAC;AAAA,IAC9B,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,eAAiB,YAAW,UAAO,CAAC;AAAA,IACpC,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,YAAc,UAAO;AAAA,IACrB,MAAQ,YAAW,UAAO,CAAC;AAAA,IAC3B,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,YAAc,YAAW,UAAO,CAAC;AAAA,IACjC,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,cAAgB,YAAW,UAAO,CAAC;AAAA,IACnC,mBAAqB,YAAW,UAAO,CAAC;AAAA,IACxC,aAAe,YAAW,UAAO,CAAC;AAAA,IAClC,sBAAwB,YAAW,UAAO,CAAC;AAAA,IAC3C,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,UAAY,YAAW,UAAO,CAAC;AAAA,IAC/B,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,gBAAkB,YAAW,UAAO,CAAC;AAAA,IACrC,aAAe,UAAO;AAAA,IACtB,OAAS,YAAW,UAAO,CAAC;AAAA,IAC5B,kBAAoB,YAAW,UAAO,CAAC;AAAA,IACvC,iBAAmB,YAAW,UAAO,CAAC;AAAA,IACtC,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,aAAe,UAAO;AAAA,IACtB,OAAS;AAAA,MACL,eAAY;AAAA,QACZ,YAAc,UAAO;AAAA,QACrB,YAAc,YAAW,UAAO,CAAC;AAAA,QACjC,UAAY,YAAW,UAAO,CAAC;AAAA,QAC/B,YAAc,UAAO;AAAA,QACrB,aAAe,YAAW,UAAO,CAAC;AAAA,QAClC,UAAY,YAAW,UAAO,CAAC;AAAA,QAC/B,aAAe,YAAW,UAAO,CAAC;AAAA,QAClC,QAAU,UAAO;AAAA,QACjB,WAAa,YAAW,UAAO,CAAC;AAAA,QAChC,QAAU,UAAO;AAAA,QACjB,SAAW,UAAO;AAAA,QAClB,oBAAsB,YAAW,UAAO,CAAC;AAAA,QACzC,cAAgB,YAAW,UAAO,CAAC;AAAA,QACnC,aAAe,YAAW,UAAO,CAAC;AAAA,QAClC,aAAe,YAAW,UAAO,CAAC;AAAA,QAClC,kBAAoB,YAAW,UAAO,CAAC;AAAA,QACvC,YAAc,YAAW,UAAO,CAAC;AAAA,QACjC,eAAiB,YAAW,UAAO,CAAC;AAAA,QACpC,cAAgB,UAAO;AAAA,QACvB,UAAY,UAAO;AAAA,QACnB,WAAa,YAAW,UAAO,CAAC;AAAA,QAChC,eAAiB,YAAW,UAAO,CAAC;AAAA,QACpC,WAAa,UAAO;AAAA,QACpB,iBAAmB,UAAO;AAAA,QAC1B,eAAiB,YAAW,UAAO,CAAC;AAAA,QACpC,iBAAmB,YAAW,UAAO,CAAC;AAAA,QACtC,aAAe,YAAW,UAAO,CAAC;AAAA,QAClC,eAAiB,YAAW,UAAO,CAAC;AAAA,MACtC,CAAC;AAAA,IACH;AAAA,IACA,aAAe;AAAA,MACX,eAAY;AAAA,QACZ,cAAgB,UAAO;AAAA,QACvB,YAAc,YAAW,UAAO,CAAC;AAAA,QACjC,SAAW,UAAO;AAAA,QAClB,WAAa,YAAW,UAAO,CAAC;AAAA,QAChC,UAAY,YAAW,UAAO,CAAC;AAAA,QAC/B,aAAe,YAAW,UAAO,CAAC;AAAA,QAClC,WAAa,YAAW,UAAO,CAAC;AAAA,QAChC,cAAgB,YAAW,UAAO,CAAC;AAAA,QACnC,WAAa,YAAW,UAAO,CAAC;AAAA,QAChC,aAAe,UAAO;AAAA,QACtB,OAAS;AAAA,UACL,eAAY;AAAA,YACZ,YAAc,UAAO;AAAA,YACrB,cAAgB,YAAW,UAAO,CAAC;AAAA,YACnC,cAAgB,YAAW,UAAO,CAAC;AAAA,YACnC,YAAc,UAAO;AAAA,YACrB,QAAU,UAAO;AAAA,YACjB,UAAY,YAAW,UAAO,CAAC;AAAA,YAC/B,aAAe,YAAW,UAAO,CAAC;AAAA,YAClC,eAAiB,YAAW,UAAO,CAAC;AAAA,YACpC,iBAAmB,YAAW,UAAO,CAAC;AAAA,YACtC,aAAe,YAAW,UAAO,CAAC;AAAA,YAClC,eAAiB,YAAW,UAAO,CAAC;AAAA,UACtC,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH;AAEO,IAAM,8BAA8B;AAEpC,IAAM,6BAA6B;AAEnC,IAAM,4BAA4B;AAElC,IAAM,mCAAqC,eAAY;AAAA,EAC5D,YAAc,UAAO;AAAA,EACrB,cAAgB,UAAO;AAAA,EACvB,YAAc,UAAO;AAAA,EACrB,SAAW,UAAO;AAAA,EAClB,YAAc,SAAQ,UAAO,CAAC;AAAA,EAC9B,cAAgB,UAAO;AAAA,EACvB,aAAe,UAAO;AAAA,EACtB,WAAa,UAAO;AAAA,EACpB,MAAQ;AAAA,IACJ,eAAY;AAAA,MACZ,QAAU,UAAO;AAAA,MACjB,UAAY,UAAO;AAAA,MACnB,eAAiB,YAAW,UAAO,CAAC;AAAA,MACpC,eAAiB,YAAW,UAAO,CAAC;AAAA,MACpC,iBAAmB,YAAW,UAAO,CAAC;AAAA,MACtC,SAAW;AAAA,QACP,eAAY;AAAA,UACZ,KAAO,UAAO;AAAA,UACd,UAAY,UAAO;AAAA,UACnB,OAAS,UAAO;AAAA,UAChB,OAAS,UAAO;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,+BAAiC;AAAA,EAC1C,eAAY;AAAA,IACZ,UAAY,UAAO;AAAA,IACnB,YAAc,UAAO;AAAA,IACrB,WAAa,UAAO;AAAA,IACpB,eAAiB,UAAO;AAAA,IACxB,kBAAoB,YAAW,UAAO,CAAC;AAAA,IACvC,qBAAuB,YAAW,UAAO,CAAC;AAAA,IAC1C,sBAAwB,YAAW,UAAO,CAAC;AAAA,IAC3C,kBAAoB,YAAW,UAAO,CAAC;AAAA,IACvC,WAAa,YAAW,UAAO,CAAC;AAAA,IAChC,kBAAoB,YAAW,UAAO,CAAC;AAAA,IACvC,SAAW,eAAY;AAAA,MACrB,IAAM,UAAO;AAAA,MACb,MAAQ,UAAO;AAAA,MACf,cAAgB,YAAW,UAAO,CAAC;AAAA,MACnC,cAAgB,YAAW,UAAO,CAAC;AAAA,MACnC,cAAgB,YAAW,UAAO,CAAC;AAAA,MACnC,UAAY,YAAW,UAAO,CAAC;AAAA,MAC/B,WAAa,YAAW,UAAO,CAAC;AAAA,MAChC,gBAAkB,YAAW,UAAO,CAAC;AAAA,MACrC,aAAe,YAAW,UAAO,CAAC;AAAA,MAClC,cAAgB,YAAW,UAAO,CAAC;AAAA,MACnC,cAAgB,YAAW,UAAO,CAAC;AAAA,MACnC,cAAgB,YAAW,UAAO,CAAC;AAAA,MACnC,UAAY,YAAW,UAAO,CAAC;AAAA,MAC/B,WAAa,YAAW,UAAO,CAAC;AAAA,MAChC,gBAAkB,YAAW,UAAO,CAAC;AAAA,MACrC,aAAe,YAAW,UAAO,CAAC;AAAA,MAClC,UAAY,YAAW,UAAO,CAAC;AAAA,MAC/B,oBAAsB,YAAW,UAAO,CAAC;AAAA,MACzC,SAAW,YAAW,UAAO,CAAC;AAAA,IAChC,CAAC;AAAA,EACH,CAAC;AACH;AAEO,IAAM,6BAA+B;AAAA,EACxC,eAAY;AAAA,IACZ,iBAAmB,UAAO;AAAA,IAC1B,YAAc,UAAO;AAAA,IACrB,KAAO,YAAW,UAAO,CAAC;AAAA,IAC1B,UAAY,UAAO;AAAA,IACnB,UAAY,UAAO;AAAA,IACnB,WAAa,UAAO;AAAA,IACpB,aAAe,UAAO;AAAA,IACtB,kBAAoB,UAAO;AAAA,EAC7B,CAAC;AACH;AAEO,IAAM,+BAAiC,eAAY;AAAA,EACxD,iBAAmB,UAAO;AAAA,EAC1B,YAAc,UAAO;AAAA,EACrB,KAAO,YAAW,UAAO,CAAC;AAAA,EAC1B,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,WAAa,UAAO;AAAA,EACpB,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAC7B,CAAC;AAEM,IAAM,4BAA4B;AAElC,IAAM,+BAA+B;AAErC,IAAM,+BAA+B;AAGrC,IAAMC,yBAA0B,UAAS,UAAO,GAAK,WAAQ,CAAC;;;AClgB9D,IAAMC,aAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,YAAY,SAAS,UAAU,WAAW,GAAG;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,YAAY,aAAa,cAAc,SAAS,UAAU,WAAW,GAAG;AAAA,IACtF,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,GAAG;AAAA,IAC/C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,GAAG;AAAA,IACpC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,gBAAgB,SAAS,UAAU,WAAW,UAAU;AAAA,IACtE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,oBAAoB;AAAA,IAC/C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,oBAAoB;AAAA,IAC/C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,oBAAoB;AAAA,IAC/C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,QAAQ,SAAS,UAAU,WAAW,UAAU;AAAA,IAC9D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,WAAW,GAAG;AAAA,IAC/C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,WAAW;AAAA,IACtC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,SAAS;AAAA,IACpC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,SAAS;AAAA,IACpC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,eAAe,aAAa,aAAa,SAAS,UAAU,SAAS;AAAA,IACnF,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,OAAO;AAAA,IAClC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,WAAW,GAAG;AAAA,IAC/C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,UAAU;AAAA,IACrC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,WAAW,UAAU;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,iBAAiB;AAAA,IAC5C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,iBAAiB;AAAA,IAC5C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,iBAAiB;AAAA,IAC5C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACvhBA,YAAYC,SAAO;AAIZ,IAAM,4BAA8B,gBAAY;AAAA,EACrD,GAAG,sBAAsB;AAAA,EACzB,UAAY,WAAO;AACrB,CAAC;AAOM,IAAMC,yBAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACE9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU;AAAA,IACxB,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACrDA,YAAYC,SAAO;AAIZ,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,4CAA8C,gBAAY;AAAA,EACrE,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,mBAAqB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACtE,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,yBAA2B,gBAAY;AAAA,EAClD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAGM,IAAM,wBAA0B,gBAAY;AAAA,EACjD,GAAG,sBAAsB;AAAA,EACzB,UAAY,aAAW,WAAO,CAAC;AACjC,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACzD,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACzD,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,oBAAsB,aAAW,WAAO,CAAC;AAC3C,CAAC;AAGM,IAAM,4BAA8B,gBAAY;AAAA,EACrD,GAAG,sBAAsB;AAAA,EACzB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,eAAiB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAClE,gBAAkB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACnE,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,oBAAsB,aAAW,WAAO,CAAC;AAC3C,CAAC;AAGM,IAAM,uCAAyC,gBAAY;AAAA,EAChE,GAAG,sBAAsB;AAAA,EACzB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC3C,mBAAqB,aAAW,WAAO,CAAC;AAC1C,CAAC;AAGM,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,GAAG,sBAAsB;AAAA,EACzB,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACzD,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACzD,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,GAAG,sBAAsB;AAAA,EACzB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACzD,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACzD,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,iCAAmC,gBAAY;AAAA,EAC1D,GAAG,sBAAsB;AAAA,EACzB,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,yBAA2B,gBAAY;AAAA,EAClD,GAAG,sBAAsB;AAAA,EACzB,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC7D,CAAC;AAGM,IAAM,0BAA4B,gBAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,iBAAmB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACpE,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,iCAAmC,gBAAY;AAAA,EAC1D,GAAG,sBAAsB;AAAA,EACzB,iBAAmB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AACtE,CAAC;AAGM,IAAM,4BAA8B,gBAAY;AAAA,EACrD,GAAG,sBAAsB;AAAA,EACzB,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,cAAgB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACjE,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,WAAO;AAAA,EACZ,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,uCAAyC,gBAAY;AAAA,EAChE,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAGM,IAAM,oCAAsC,gBAAY;AAAA,EAC7D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,0CAA4C,gBAAY;AAAA,EACnE,GAAG,sBAAsB;AAAA,EACzB,mBAAqB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACtE,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,QAAU,aAAW,WAAO,CAAC;AAC/B,CAAC;AAGM,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,sCAAwC,gBAAY;AAAA,EAC/D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAGM,IAAM,gCAAkC,gBAAY;AAAA,EACzD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAGM,IAAM,uCAAyC,gBAAY;AAAA,EAChE,GAAG,sBAAsB;AAAA,EACzB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,oCAAsC,gBAAY;AAAA,EAC7D,GAAG,sBAAsB;AAAA,EACzB,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,oBAAsB,aAAW,WAAO,CAAC;AAC3C,CAAC;AAGM,IAAM,qCAAuC,gBAAY;AAAA,EAC9D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,YAAc,aAAW,WAAO,CAAC;AACnC,CAAC;AAGM,IAAM,0BAA4B,gBAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,iCAAmC,gBAAY;AAAA,EAC1D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,gCAAkC,gBAAY;AAAA,EACzD,GAAG,sBAAsB;AAAA,EACzB,KAAO,aAAW,WAAO,CAAC;AAAA,EAC1B,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAGM,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,2BAA6B,gBAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,qCAAuC,gBAAY;AAAA,EAC9D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,QAAU,aAAW,WAAO,CAAC;AAC/B,CAAC;AAGM,IAAM,gCAAkC,gBAAY;AAAA,EACzD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAMM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,mBAAqB,WAAO;AAAA,EAC5B,kBAAoB,WAAO;AAAA,EAC3B,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,eAAiB,WAAO;AAAA,EACxB,aAAe,WAAO;AAAA,EACtB,WAAa,WAAO;AAAA,EACpB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,oBAAsB,WAAO;AAAA,EAC7B,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,UAAY,WAAO;AAAA,EACnB,QAAU,WAAO;AAAA,EACjB,cAAgB,WAAO;AAAA,EACvB,WAAa,WAAO;AACtB,CAAC;AAEM,IAAM,kCAAkC;AAExC,IAAM,4CAA8C,gBAAY;AAAA,EACrE,6BAA+B,WAAO;AAAA,EACtC,cAAgB,WAAO;AAAA,EACvB,eAAiB,WAAO;AAAA,EACxB,aAAe,WAAO;AAAA,EACtB,WAAa,WAAO;AAAA,EACpB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,cAAgB,WAAO;AAAA,EACvB,mBAAqB,WAAO;AAAA,EAC5B,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,UAAY,WAAO;AACrB,CAAC;AAEM,IAAM,2BAA6B;AAAA,EACtC,gBAAY;AAAA,IACZ,cAAgB,WAAO;AAAA,IACvB,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,aAAe,WAAO;AAAA,IACtB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,eAAiB,WAAO;AAAA,IACxB,wBAA0B,WAAO;AAAA,IACjC,aAAe,WAAO;AAAA,IACtB,WAAa,WAAO;AAAA,IACpB,kBAAoB,WAAO;AAAA,IAC3B,kBAAoB,WAAO;AAAA,IAC3B,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,UAAY,WAAO;AAAA,IACnB,QAAU,WAAO;AAAA,IACjB,kBAAoB,WAAO;AAAA,IAC3B,oBAAsB,WAAO;AAAA,IAC7B,mBAAqB,WAAO;AAAA,EAC9B,CAAC;AACH;AAEO,IAAM,6BAA+B,gBAAY;AAAA,EACtD,cAAgB,WAAO;AAAA,EACvB,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,aAAe,WAAO;AAAA,EACtB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,eAAiB,WAAO;AAAA,EACxB,wBAA0B,WAAO;AAAA,EACjC,aAAe,WAAO;AAAA,EACtB,WAAa,WAAO;AAAA,EACpB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,UAAY,WAAO;AAAA,EACnB,QAAU,WAAO;AACnB,CAAC;AAEM,IAAM,0BAA4B,gBAAY;AAAA,EACnD,cAAgB,WAAO;AAAA,EACvB,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,aAAe,WAAO;AAAA,EACtB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,eAAiB,WAAO;AAAA,EACxB,wBAA0B,WAAO;AAAA,EACjC,aAAe,WAAO;AAAA,EACtB,WAAa,WAAO;AAAA,EACpB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,UAAY,WAAO;AAAA,EACnB,QAAU,WAAO;AAAA,EACjB,kBAAoB,WAAO;AAAA,EAC3B,oBAAsB,WAAO;AAAA,EAC7B,mBAAqB,WAAO;AAC9B,CAAC;AAEM,IAAM,6BAA6B;AAEnC,IAAM,gCAAkC;AAAA,EAC3C,gBAAY;AAAA,IACZ,uBAAyB,WAAO;AAAA,IAChC,YAAc,WAAO;AAAA,IACrB,cAAgB,WAAO;AAAA,IACvB,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,aAAe,WAAO;AAAA,IACtB,WAAa,WAAO;AAAA,IACpB,kBAAoB,WAAO;AAAA,IAC3B,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,UAAY,WAAO;AAAA,IACnB,mBAAqB,WAAO;AAAA,IAC5B,UAAY,WAAO;AAAA,IACnB,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,aAAe,WAAO;AAAA,IACtB,QAAU,WAAO;AAAA,IACjB,UAAY,aAAW,WAAO,CAAC;AAAA,EACjC,CAAC;AACH;AAEO,IAAM,iCAAmC;AAAA,EAC5C,gBAAY;AAAA,IACZ,mBAAqB,WAAO;AAAA,IAC5B,cAAgB,WAAO;AAAA,IACvB,gBAAkB,WAAO;AAAA,IACzB,eAAiB,WAAO;AAAA,IACxB,aAAe,WAAO;AAAA,IACtB,WAAa,WAAO;AAAA,IACpB,kBAAoB,WAAO;AAAA,IAC3B,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,UAAY,WAAO;AAAA,IACnB,YAAc,WAAO;AAAA,IACrB,WAAa,WAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,mBAAqB,WAAO;AAAA,EAC5B,cAAgB,WAAO;AAAA,EACvB,gBAAkB,WAAO;AAAA,EACzB,eAAiB,WAAO;AAAA,EACxB,aAAe,WAAO;AAAA,EACtB,WAAa,WAAO;AAAA,EACpB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,UAAY,WAAO;AAAA,EACnB,YAAc,WAAO;AAAA,EACrB,WAAa,WAAO;AACtB,CAAC;AAEM,IAAM,gCAAgC;AAEtC,IAAM,mCAAmC;AAEzC,IAAM,mCAAmC;AAEzC,IAAM,uBAAyB;AAAA,EAClC,gBAAY;AAAA,IACZ,WAAa,WAAO;AAAA,IACpB,YAAc,WAAO;AAAA,IACrB,UAAY,WAAO;AAAA,IACnB,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,WAAa,aAAW,WAAO,CAAC;AAAA,EAClC,CAAC;AACH;AAEO,IAAM,yBAA2B,gBAAY;AAAA,EAClD,WAAa,WAAO;AAAA,EACpB,YAAc,WAAO;AAAA,EACrB,UAAY,WAAO;AAAA,EACnB,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,WAAa,aAAW,WAAO,CAAC;AAClC,CAAC;AAEM,IAAM,sBAAsB;AAE5B,IAAM,yBAAyB;AAE/B,IAAM,yBAAyB;AAE/B,IAAM,8BAAgC,gBAAY;AAAA,EACvD,iBAAmB,WAAO;AAAA,EAC1B,WAAa,WAAO;AAAA,EACpB,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AACtB,CAAC;AAEM,IAAM,2BAA2B;AAEjC,IAAM,8BAA8B;AAEpC,IAAM,8BAA8B;AAEpC,IAAM,uBAAyB;AAAA,EAClC,gBAAY;AAAA,IACZ,WAAa,WAAO;AAAA,IACpB,YAAc,WAAO;AAAA,IACrB,YAAc,WAAO;AAAA,IACrB,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,qBAAuB,aAAW,WAAO,CAAC;AAAA,IAC1C,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,SAAW,aAAW,WAAO,CAAC;AAAA,IAC9B,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,eAAiB,WAAO;AAAA,IACxB,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,oBAAsB,aAAW,WAAO,CAAC;AAAA,IACzC,qBAAuB,aAAW,WAAO,CAAC;AAAA,IAC1C,cAAgB,WAAO;AAAA,IACvB,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,oBAAsB,aAAW,WAAO,CAAC;AAAA,IACzC,oBAAsB,aAAW,WAAO,CAAC;AAAA,IACzC,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,UAAY,WAAO;AAAA,IACnB,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,uBAAyB,aAAW,WAAO,CAAC;AAAA,IAC5C,oBAAsB,aAAW,WAAO,CAAC;AAAA,IACzC,eAAiB,aAAW,WAAO,CAAC;AAAA,EACtC,CAAC;AACH;AAEO,IAAM,wCAA0C,gBAAY;AAAA,EACjE,OAAS;AAAA,IACL,gBAAY;AAAA,MACZ,QAAU,WAAO;AAAA,MACjB,YAAc,WAAO;AAAA,MACrB,YAAc;AAAA,QACV,gBAAY,EAAE,eAAiB,WAAO,GAAG,gBAAkB,aAAW,WAAO,CAAC,EAAE,CAAC;AAAA,MACrF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,UAAY,UAAQ,WAAO,CAAC;AAC9B,CAAC;AAEM,IAAM,oCAAsC,gBAAY;AAAA,EAC7D,uBAAyB,WAAO;AAAA,EAChC,YAAc,WAAO;AAAA,EACrB,cAAgB,WAAO;AAAA,EACvB,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,aAAe,WAAO;AAAA,EACtB,WAAa,WAAO;AAAA,EACpB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,UAAY,WAAO;AAAA,EACnB,mBAAqB,WAAO;AAAA,EAC5B,UAAY,WAAO;AACrB,CAAC;AAEM,IAAM,0CAA0C;AAEhD,IAAM,0CAA0C;AAEhD,IAAM,2BAA6B;AAAA,EACtC,gBAAY;AAAA,IACZ,eAAiB,WAAO;AAAA,IACxB,YAAc,WAAO;AAAA,IACrB,UAAY,WAAO;AAAA,IACnB,QAAU,WAAO;AAAA,IACjB,iBAAmB,WAAO;AAAA,IAC1B,aAAe,WAAO;AAAA,IACtB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,qBAAuB,WAAO;AAAA,IAC9B,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,cAAgB,WAAO;AAAA,IACvB,cAAgB,WAAO;AAAA,EACzB,CAAC;AACH;AAEO,IAAM,6BAA6B;AAEnC,IAAM,0BAA4B,gBAAY;AAAA,EACnD,eAAiB,WAAO;AAAA,EACxB,YAAc,WAAO;AAAA,EACrB,UAAY,WAAO;AAAA,EACnB,QAAU,WAAO;AAAA,EACjB,iBAAmB,WAAO;AAAA,EAC1B,aAAe,WAAO;AAAA,EACtB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,qBAAuB,WAAO;AAAA,EAC9B,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,cAAgB,WAAO;AAAA,EACvB,cAAgB,WAAO;AACzB,CAAC;AAEM,IAAM,6BAA6B;AAEnC,IAAM,6BAA6B;AAEnC,IAAM,wBAA0B;AAAA,EACnC,gBAAY;AAAA,IACZ,eAAiB,WAAO;AAAA,IACxB,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,YAAc,WAAO;AAAA,IACrB,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,UAAY,WAAO;AAAA,EACrB,CAAC;AACH;AAEO,IAAM,uBAAyB,gBAAY;AAAA,EAChD,eAAiB,WAAO;AAAA,EACxB,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,YAAc,WAAO;AAAA,EACrB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,UAAY,WAAO;AACrB,CAAC;AAEM,IAAM,8BAAgC;AAAA,EACzC,gBAAY;AAAA,IACZ,oBAAsB,WAAO;AAAA,IAC7B,mBAAqB,WAAO;AAAA,IAC5B,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,WAAa,WAAO;AAAA,IACpB,YAAc,WAAO;AAAA,EACvB,CAAC;AACH;AAEO,IAAM,gCAAkC,gBAAY;AAAA,EACzD,oBAAsB,WAAO;AAAA,EAC7B,mBAAqB,WAAO;AAAA,EAC5B,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,WAAa,WAAO;AAAA,EACpB,YAAc,WAAO;AACvB,CAAC;AAEM,IAAM,6BAA6B;AAEnC,IAAM,gCAAgC;AAEtC,IAAM,gCAAgC;AAGtC,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACx0B9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,qBAAqB,6BAA6B;AAAA,IAC/D,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,qBAAqB,6BAA6B;AAAA,IAC/D,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,qBAAqB,6BAA6B;AAAA,IAC/D,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB,mBAAmB;AAAA,IAChD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB,mBAAmB;AAAA,IAChD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB,mBAAmB;AAAA,IAChD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC,UAAU;AAAA,IACxB,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa,iBAAiB;AAAA,IAC3C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa,iBAAiB;AAAA,IAC3C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa,iBAAiB;AAAA,IAC3C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,YAAY,QAAQ,oBAAoB;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC,YAAY,wBAAwB,mBAAmB;AAAA,IACrE,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC,UAAU;AAAA,IACxB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,OAAO;AAAA,IACpB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,OAAO;AAAA,IACpB,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,OAAO;AAAA,IACpB,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,SAAS,QAAQ;AAAA,IAC7C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,mBAAmB,SAAS,UAAU,YAAY,UAAU,KAAK,UAAU;AAAA,IACzF,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,iBAAiB;AAAA,IAC/B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,YAAY,WAAW,KAAK,UAAU;AAAA,IACvE,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,cAAc;AAAA,IACzC,aAAa,CAAC,qBAAqB,SAAS,UAAU,WAAW,GAAG;AAAA,IACpE,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,cAAc;AAAA,IACzC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,gBAAgB,mBAAmB;AAAA,IAC9D,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,gBAAgB,mBAAmB;AAAA,IAC9D,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,kBAAkB,QAAQ;AAAA,IACxC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,eAAe;AAAA,IAC1C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,eAAe;AAAA,IAC1C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,eAAe;AAAA,IAC1C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,YAAY;AAAA,IACvC,aAAa,CAAC,eAAe,SAAS,UAAU,SAAS;AAAA,IACzD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,cAAc,KAAK;AAAA,IAC9C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,GAAG;AAAA,IAC/C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,QAAQ,oBAAoB;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,SAAS;AAAA,IACtB,aAAa,CAAC,SAAS,UAAU,WAAW,YAAY;AAAA,IACxD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,SAAS;AAAA,IACtB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW,YAAY;AAAA,IACpC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW,YAAY;AAAA,IACpC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW,YAAY;AAAA,IACpC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,SAAS;AAAA,IACtB,aAAa,CAAC,SAAS,UAAU,WAAW,UAAU;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,SAAS;AAAA,IACtB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW,oBAAoB;AAAA,IAC5C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW,oBAAoB;AAAA,IAC5C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW,oBAAoB;AAAA,IAC5C,aAAa,CAAC,SAAS,UAAU,WAAW,UAAU;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW,oBAAoB;AAAA,IAC5C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW,sBAAsB,qBAAqB;AAAA,IACnE,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,OAAO,eAAe,SAAS,UAAU,SAAS;AAAA,IAChE,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,KAAK;AAAA,IAChC,aAAa,CAAC,eAAe,SAAS,UAAU,SAAS;AAAA,IACzD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,qBAAqB,cAAc;AAAA,IAChD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,qBAAqB,cAAc;AAAA,IAChD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,qBAAqB,cAAc;AAAA,IAChD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC,QAAQ;AAAA,IACtB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC,SAAS,UAAU,WAAW,UAAU;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,qBAAqB,oBAAoB;AAAA,IACtD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,qBAAqB,oBAAoB;AAAA,IACtD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,qBAAqB,oBAAoB;AAAA,IACtD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC78CA,YAAYC,SAAO;AAIZ,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC7D,CAAC;AAGM,IAAMC,8BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,WAAa,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAChE,CAAC;AAGM,IAAM,0BAA4B,gBAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,WAAO,CAAC;AACjC,CAAC;AAGM,IAAM,yBAA2B,gBAAY;AAAA,EAClD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,WAAO,CAAC;AAAA,EAC5B,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC5D,CAAC;AAGM,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,WAAO,CAAC;AAAA,EAC5B,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC5D,CAAC;AAGM,IAAM,uBAAyB,gBAAY;AAAA,EAChD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,WAAa,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAChE,CAAC;AAGM,IAAM,0BAA4B,gBAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,WAAO,CAAC;AAC9B,CAAC;AAGM,IAAM,0BAA4B,gBAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,WAAa,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC9D,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,yBAA2B,gBAAY;AAAA,EAClD,GAAG,sBAAsB;AAAA,EACzB,WAAa,aAAW,WAAO,CAAC;AAClC,CAAC;AAGM,IAAM,uBAAyB,gBAAY;AAAA,EAChD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,cAAgB,aAAW,WAAO,CAAC;AACrC,CAAC;AAGM,IAAMC,yBAA0B,gBAAY;AAAA,EACjD,GAAG,sBAAsB;AAAA,EACzB,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,SAAW,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC5D,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,0BAA4B,gBAAY;AAAA,EACnD,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,2BAA6B,gBAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAMM,IAAM,2BAA6B;AAAA,EACtC,gBAAY;AAAA,IACZ,IAAM,WAAO;AAAA,IACb,oBAAsB,WAAO;AAAA,IAC7B,SAAW,WAAO;AAAA,IAClB,SAAW,WAAO;AAAA,IAClB,WAAa,WAAO;AAAA,IACpB,QAAU,WAAO;AAAA,IACjB,QAAU,WAAO;AAAA,IACjB,WAAa,WAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,0BAA0B;AAEhC,IAAM,wBAA0B;AAAA,EACnC,gBAAY;AAAA,IACZ,IAAM,WAAO;AAAA,IACb,SAAW,WAAO;AAAA,IAClB,OAAS,WAAO;AAAA,IAChB,MAAQ,WAAO;AAAA,IACf,SAAW,aAAW,WAAO,CAAC;AAAA,IAC9B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,YAAc,WAAO;AAAA,IACrB,gBAAkB,WAAO;AAAA,IACzB,WAAa,WAAO;AAAA,IACpB,aAAe,WAAO;AAAA,IACtB,WAAa,WAAO;AAAA,IACpB,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,QAAU,WAAO;AAAA,IACjB,WAAa,WAAO;AAAA,IACpB,QAAU,WAAO;AAAA,IACjB,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,EACrB,CAAC;AACH;AAEO,IAAM,uBAAyB,gBAAY;AAAA,EAChD,IAAM,WAAO;AAAA,EACb,SAAW,WAAO;AAAA,EAClB,OAAS,WAAO;AAAA,EAChB,MAAQ,WAAO;AAAA,EACf,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,YAAc,WAAO;AAAA,EACrB,gBAAkB,WAAO;AAAA,EACzB,WAAa,WAAO;AAAA,EACpB,aAAe,WAAO;AAAA,EACtB,WAAa,WAAO;AAAA,EACpB,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,QAAU,WAAO;AAAA,EACjB,WAAa,WAAO;AAAA,EACpB,QAAU,WAAO;AAAA,EACjB,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AACrB,CAAC;AAEM,IAAM,sCAAwC,gBAAY;AAAA,EAC/D,IAAM,WAAO;AAAA,EACb,YAAc,YAAQ;AAAA,EACtB,UAAY,WAAO;AAAA,EACnB,OAAS,WAAO;AAAA,EAChB,OAAS,WAAO;AAClB,CAAC;AAGM,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACzM9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,aAAa,UAAU,SAAS,UAAU,WAAW,QAAQ;AAAA,IAC3E,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,aAAa,SAAS,UAAU,WAAW,YAAY,WAAW;AAAA,IAChF,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,kBAAkB,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC7E,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,SAAS,OAAO;AAAA,IAC9B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,SAAS,OAAO;AAAA,IAC9B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,YAAY,UAAU,WAAW,YAAY,WAAW;AAAA,IAC/E,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,OAAO;AAAA,IACrB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,UAAU,UAAU,WAAW,YAAY,aAAa,GAAG;AAAA,IAC5F,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,WAAW;AAAA,IACzB,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,SAAS,UAAU,WAAW,YAAY,GAAG;AAAA,IACpE,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,WAAW,cAAc;AAAA,IACvC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,mBAAmB,cAAc,SAAS,UAAU,WAAW,GAAG;AAAA,IAChF,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,eAAe;AAAA,IAC7B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,MAAM,SAAS;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,MAAM,SAAS;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,SAAS,UAAU,WAAW,GAAG;AAAA,IAC/C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC/UA,YAAYC,SAAO;AAIZ,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAMM,IAAM,8BAAgC;AAAA,EACzC,gBAAY;AAAA,IACZ,iBAAmB,WAAO;AAAA,IAC1B,YAAc,WAAO;AAAA,IACrB,KAAO,aAAW,WAAO,CAAC;AAAA,IAC1B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,EAC7B,CAAC;AACH;AAEO,IAAM,gCAAkC,gBAAY;AAAA,EACzD,iBAAmB,WAAO;AAAA,EAC1B,YAAc,WAAO;AAAA,EACrB,KAAO,aAAW,WAAO,CAAC;AAAA,EAC1B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAC7B,CAAC;AAEM,IAAM,6BAA6B;AAEnC,IAAM,gCAAgC;AAEtC,IAAM,4BAA8B;AAAA,EACvC,gBAAY;AAAA,IACZ,gBAAkB,WAAO;AAAA,IACzB,YAAc,WAAO;AAAA,IACrB,KAAO,aAAW,WAAO,CAAC;AAAA,IAC1B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,EAC7B,CAAC;AACH;AAEO,IAAM,8BAAgC,gBAAY;AAAA,EACvD,gBAAkB,WAAO;AAAA,EACzB,YAAc,WAAO;AAAA,EACrB,KAAO,aAAW,WAAO,CAAC;AAAA,EAC1B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAC7B,CAAC;AAEM,IAAM,2BAA2B;AAEjC,IAAM,8BAA8B;AAEpC,IAAM,+BAAiC;AAAA,EAC1C,gBAAY;AAAA,IACZ,mBAAqB,WAAO;AAAA,IAC5B,YAAc,WAAO;AAAA,IACrB,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,aAAe,WAAO;AAAA,IACtB,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,kBAAoB,WAAO;AAAA,IAC3B,iBAAmB,WAAO;AAAA,IAC1B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,EACrB,CAAC;AACH;AAEO,IAAM,iCAAmC,gBAAY;AAAA,EAC1D,mBAAqB,WAAO;AAAA,EAC5B,YAAc,WAAO;AAAA,EACrB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,aAAe,WAAO;AAAA,EACtB,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,kBAAoB,WAAO;AAAA,EAC3B,iBAAmB,WAAO;AAAA,EAC1B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AACrB,CAAC;AAEM,IAAM,8BAA8B;AAEpC,IAAM,iCAAiC;AAEvC,IAAM,4BAA8B,gBAAY;AAAA,EACrD,iBAAmB,WAAO;AAAA,EAC1B,gBAAkB,WAAO;AAAA,EACzB,kBAAoB,WAAO;AAAA,EAC3B,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,oBAAsB,WAAO;AAAA,EAC7B,oBAAsB,WAAO;AAAA,EAC7B,kBAAoB,WAAO;AAAA,EAC3B,YAAc,WAAO;AAAA,EACrB,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,kBAAoB,WAAO;AAAA,EAC3B,iBAAmB,WAAO;AAAA,EAC1B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,OAAS,aAAW,WAAO,CAAC;AAAA,EAC5B,UAAY,WAAO;AAAA,EACnB,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC3C,kBAAoB,WAAO;AAAA,EAC3B,aAAe,WAAO;AAAA,EACtB,WAAa,WAAO;AAAA,EACpB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,0BAA4B,WAAO;AACrC,CAAC;AAEM,IAAM,4BAA8B;AAAA,EACvC,gBAAY;AAAA,IACZ,UAAY,WAAO;AAAA,IACnB,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,4BAA8B,aAAW,WAAO,CAAC;AAAA,IACjD,oBAAsB,aAAW,WAAO,CAAC;AAAA,IACzC,UAAY,WAAO;AAAA,IACnB,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,SAAW,aAAW,WAAO,CAAC;AAAA,IAC9B,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,2BAA6B,gBAAY;AAAA,EACpD,UAAY,WAAO;AAAA,EACnB,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,4BAA8B,aAAW,WAAO,CAAC;AAAA,EACjD,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,UAAY,WAAO;AAAA,EACnB,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AACtB,CAAC;AAEM,IAAM,8BAA8B;AAGpC,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;AC5J9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,iBAAiB;AAAA,IAC5C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,iBAAiB;AAAA,IAC5C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,iBAAiB;AAAA,IAC5C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,gBAAgB;AAAA,IAC3C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,gBAAgB;AAAA,IAC3C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,gBAAgB;AAAA,IAC3C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,mBAAmB;AAAA,IAC9C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,mBAAmB;AAAA,IAC9C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc,mBAAmB;AAAA,IAC9C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,eAAe;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC,eAAe;AAAA,IAC7B,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACvTA,YAAYC,SAAO;AAIZ,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,cAAgB,WAAO;AAAA,EACvB,UAAY,WAAO;AAAA,EACnB,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,gBAAkB,WAAO;AAAA,EACzB,uBAAyB,WAAO;AAAA,EAChC,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,YAAc,WAAO;AAAA,EACrB,QAAU,WAAO;AAAA,EACjB,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,cAAgB,WAAO;AAAA,EACvB,eAAiB,aAAW,YAAQ,CAAC;AAAA,EACrC,qBAAuB,WAAO;AAAA,EAC9B,QAAU,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AACjD,CAAC;AAGM,IAAM,4BAA8B,gBAAY;AAAA,EACrD,GAAG,sBAAsB;AAAA,EACzB,QAAU,aAAW,WAAO,CAAC;AAC/B,CAAC;AAGM,IAAM,oCAAsC,gBAAY;AAAA,EAC7D,GAAG,sBAAsB;AAAA,EACzB,QAAU,aAAW,WAAO,CAAC;AAC/B,CAAC;AAGM,IAAM,oCAAsC,gBAAY;AAAA,EAC7D,GAAG,sBAAsB;AAAA,EACzB,GAAK,WAAO;AACd,CAAC;AAGM,IAAM,4BAA8B,gBAAY;AAAA,EACrD,GAAG,sBAAsB;AAAA,EACzB,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,YAAc,aAAW,WAAO,CAAC;AACnC,CAAC;AAGM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,mBAAqB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACtE,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,iCAAmC,gBAAY;AAAA,EAC1D,GAAG,sBAAsB;AAAA,EACzB,mBAAqB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AACxE,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,gBAAkB,WAAO;AAAA,EACzB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACnD,eAAiB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAClE,eAAiB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAClE,cAAgB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACjE,aAAe,aAAW,YAAQ,CAAC;AAAA,EACnC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,cAAgB,WAAO;AAAA,EACvB,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,aAAe,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACpD,YAAc,WAAO;AACvB,CAAC;AAGM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,gBAAkB,WAAO;AAAA,EACzB,sBAAwB,WAAO;AAAA,EAC/B,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC3C,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,gBAAkB,WAAO;AAAA,EACzB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,UAAY,aAAW,YAAQ,CAAC;AAAA,EAChC,YAAc,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACnD,eAAiB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAClE,eAAiB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAClE,cAAgB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACjE,eAAiB,WAAO;AAAA,EACxB,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,cAAgB,WAAO;AAAA,EACvB,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,aAAe,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACpD,YAAc,WAAO;AACvB,CAAC;AAGM,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,GAAG,sBAAsB;AAAA,EACzB,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC3C,eAAiB,WAAO;AAAA,EACxB,iBAAmB,WAAO;AAAA,EAC1B,UAAY,WAAO;AAAA,EACnB,iBAAmB,WAAO;AAAA,EAC1B,iBAAmB,WAAO;AAAA,EAC1B,eAAiB,WAAO;AAAA,EACxB,cAAgB,WAAO;AAAA,EACvB,WAAa,WAAO;AAAA,EACpB,gBAAkB,WAAO;AAAA,EACzB,WAAa,WAAO;AAAA,EACpB,gBAAkB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACnE,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,eAAiB,aAAW,YAAQ,CAAC;AAAA,EACrC,iBAAmB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACpE,eAAiB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAClE,eAAiB,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACtD,cAAgB,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACrD,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,aAAe,WAAO;AAAA,EACtB,UAAY,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACjD,gBAAkB,WAAO;AAAA,EACzB,eAAiB,WAAO;AAAA,EACxB,QAAU,WAAO;AAAA,EACjB,eAAiB,WAAO;AAAA,EACxB,eAAiB,WAAO;AAAA,EACxB,aAAe,WAAO;AAAA,EACtB,YAAc,WAAO;AAAA,EACrB,SAAW,WAAO;AAAA,EAClB,cAAgB,WAAO;AAAA,EACvB,UAAY,WAAO;AAAA,EACnB,aAAe,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACpD,YAAc,WAAO;AACvB,CAAC;AAGM,IAAM,2BAA6B,gBAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,cAAgB,WAAO;AAAA,EACvB,UAAY,WAAO;AAAA,EACnB,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,gBAAkB,WAAO;AAAA,EACzB,uBAAyB,WAAO;AAAA,EAChC,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,kBAAoB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACrE,YAAc,WAAO;AAAA,EACrB,QAAU,WAAO;AAAA,EACjB,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,cAAgB,WAAO;AAAA,EACvB,qBAAuB,WAAO;AAAA,EAC9B,QAAU,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AACjD,CAAC;AAOM,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;AC/J9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,QAAQ;AAAA,IACtB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,SAAS;AAAA,IACtB,aAAa,CAAC,QAAQ;AAAA,IACtB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,GAAG;AAAA,IACjB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,SAAS;AAAA,IACtB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU,YAAY;AAAA,IACpC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,qBAAqB,gBAAgB,UAAU;AAAA,IAC3F,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,oBAAoB;AAAA,IACjC,aAAa,CAAC,mBAAmB;AAAA,IACjC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,oBAAoB;AAAA,IACjC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,oBAAoB;AAAA,IACjC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC9SA,YAAYC,SAAO;AAIZ,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACzD,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,mBAAqB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACtE,GAAK,WAAO;AAAA,EACZ,YAAc,WAAO;AAAA,EACrB,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACzD,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,GAAG,sBAAsB;AAAA,EACzB,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACzD,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,mBAAqB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACtE,GAAK,WAAO;AAAA,EACZ,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACzD,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,uCAAyC,gBAAY;AAAA,EAChE,GAAG,sBAAsB;AAAA,EACzB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,WAAO;AAAA,EACZ,YAAc,WAAO;AACvB,CAAC;AAGM,IAAM,wBAA0B,gBAAY;AAAA,EACjD,GAAG,sBAAsB;AAAA,EACzB,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,sCAAwC,gBAAY;AAAA,EAC/D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,WAAa,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC9D,OAAS,aAAW,WAAO,CAAC;AAAA,EAC5B,gBAAkB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACnE,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,qCAAuC,gBAAY;AAAA,EAC9D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAMM,IAAM,oCAAsC;AAAA,EAC/C,gBAAY;AAAA,IACZ,wBAA0B,WAAO;AAAA,IACjC,gBAAkB,WAAO;AAAA,IACzB,yBAA2B,WAAO;AAAA,IAClC,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,aAAe,aAAW,WAAO,CAAC;AAAA,EACpC,CAAC;AACH;AAEO,IAAM,sCAAwC,gBAAY;AAAA,EAC/D,wBAA0B,WAAO;AAAA,EACjC,gBAAkB,WAAO;AAAA,EACzB,yBAA2B,WAAO;AAAA,EAClC,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,aAAe,aAAW,WAAO,CAAC;AACpC,CAAC;AAEM,IAAM,mCAAmC;AAEzC,IAAM,sCAAsC;AAE5C,IAAM,sCAAsC;AAE5C,IAAM,4BAA8B;AAAA,EACvC,gBAAY;AAAA,IACZ,gBAAkB,WAAO;AAAA,IACzB,gBAAkB,WAAO;AAAA,IACzB,mBAAqB,WAAO;AAAA,IAC5B,sBAAwB,aAAW,WAAO,CAAC;AAAA,IAC3C,iBAAmB,WAAO;AAAA,IAC1B,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,2BAA6B,gBAAY;AAAA,EACpD,gBAAkB,WAAO;AAAA,EACzB,gBAAkB,WAAO;AAAA,EACzB,mBAAqB,WAAO;AAAA,EAC5B,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC3C,iBAAmB,WAAO;AAAA,EAC1B,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AACtB,CAAC;AAGM,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;AC1I9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,eAAe,YAAY,WAAW,KAAK,YAAY;AAAA,IACrE,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU,SAAS,UAAU,UAAU,UAAU;AAAA,IAC/D,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,wBAAwB;AAAA,IACrC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,wBAAwB;AAAA,IACrC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,wBAAwB;AAAA,IACrC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,aAAa,SAAS,kBAAkB,UAAU;AAAA,IAC9F,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,GAAG;AAAA,IACpC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACjQA,YAAYC,SAAO;AAIZ,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,OAAS,aAAW,WAAO,CAAC;AAC9B,CAAC;AAGM,IAAM,2BAA6B,gBAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,YAAc,aAAW,WAAO,CAAC;AACnC,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,wBAA0B,gBAAY;AAAA,EACjD,GAAG,sBAAsB;AAAA,EACzB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,yBAA2B,gBAAY;AAAA,EAClD,GAAG,sBAAsB;AAAA,EACzB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC3D,CAAC;AAMM,IAAM,sCAAwC,gBAAY;AAAA,EAC/D,SAAW,WAAO;AAAA,EAClB,YAAc,WAAO;AAAA,EACrB,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,WAAO;AAAA,EACrB,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC3C,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,aAAe,WAAO;AAAA,EACtB,OAAS,aAAW,WAAO,CAAC;AAAA,EAC5B,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,aAAe,WAAO;AAAA,EACtB,OAAS;AAAA,IACL,gBAAY;AAAA,MACZ,YAAc,WAAO;AAAA,MACrB,YAAc,aAAW,WAAO,CAAC;AAAA,MACjC,UAAY,aAAW,WAAO,CAAC;AAAA,MAC/B,YAAc,WAAO;AAAA,MACrB,aAAe,aAAW,WAAO,CAAC;AAAA,MAClC,UAAY,aAAW,WAAO,CAAC;AAAA,MAC/B,aAAe,aAAW,WAAO,CAAC;AAAA,MAClC,QAAU,WAAO;AAAA,MACjB,WAAa,aAAW,WAAO,CAAC;AAAA,MAChC,QAAU,WAAO;AAAA,MACjB,SAAW,WAAO;AAAA,MAClB,oBAAsB,aAAW,WAAO,CAAC;AAAA,MACzC,cAAgB,aAAW,WAAO,CAAC;AAAA,MACnC,aAAe,aAAW,WAAO,CAAC;AAAA,MAClC,aAAe,aAAW,WAAO,CAAC;AAAA,MAClC,kBAAoB,aAAW,WAAO,CAAC;AAAA,MACvC,YAAc,aAAW,WAAO,CAAC;AAAA,MACjC,eAAiB,aAAW,WAAO,CAAC;AAAA,MACpC,cAAgB,WAAO;AAAA,MACvB,UAAY,WAAO;AAAA,MACnB,WAAa,aAAW,WAAO,CAAC;AAAA,MAChC,eAAiB,aAAW,WAAO,CAAC;AAAA,MACpC,WAAa,WAAO;AAAA,MACpB,iBAAmB,WAAO;AAAA,MAC1B,eAAiB,aAAW,WAAO,CAAC;AAAA,MACpC,iBAAmB,aAAW,WAAO,CAAC;AAAA,MACtC,aAAe,aAAW,WAAO,CAAC;AAAA,MAClC,eAAiB,aAAW,WAAO,CAAC;AAAA,IACtC,CAAC;AAAA,EACH;AAAA,EACA,aAAe;AAAA,IACX,gBAAY;AAAA,MACZ,cAAgB,WAAO;AAAA,MACvB,YAAc,aAAW,WAAO,CAAC;AAAA,MACjC,SAAW,WAAO;AAAA,MAClB,WAAa,aAAW,WAAO,CAAC;AAAA,MAChC,UAAY,aAAW,WAAO,CAAC;AAAA,MAC/B,aAAe,aAAW,WAAO,CAAC;AAAA,MAClC,WAAa,aAAW,WAAO,CAAC;AAAA,MAChC,cAAgB,aAAW,WAAO,CAAC;AAAA,MACnC,WAAa,aAAW,WAAO,CAAC;AAAA,MAChC,aAAe,WAAO;AAAA,MACtB,OAAS;AAAA,QACL,gBAAY;AAAA,UACZ,YAAc,WAAO;AAAA,UACrB,cAAgB,aAAW,WAAO,CAAC;AAAA,UACnC,cAAgB,aAAW,WAAO,CAAC;AAAA,UACnC,YAAc,WAAO;AAAA,UACrB,QAAU,WAAO;AAAA,UACjB,UAAY,aAAW,WAAO,CAAC;AAAA,UAC/B,aAAe,aAAW,WAAO,CAAC;AAAA,UAClC,eAAiB,aAAW,WAAO,CAAC;AAAA,UACpC,iBAAmB,aAAW,WAAO,CAAC;AAAA,UACtC,aAAe,aAAW,WAAO,CAAC;AAAA,UAClC,eAAiB,aAAW,WAAO,CAAC;AAAA,QACtC,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,yBAAyB;AAE/B,IAAM,4BAA8B;AAAA,EACvC,gBAAY;AAAA,IACZ,cAAgB,WAAO;AAAA,IACvB,SAAW,WAAO;AAAA,IAClB,WAAa,WAAO;AAAA,IACpB,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,YAAc,WAAO;AAAA,IACrB,YAAc,WAAO;AAAA,IACrB,UAAY,WAAO;AAAA,IACnB,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,0BAA4B,WAAO;AAAA,IACnC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,WAAa,WAAO;AAAA,IACpB,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,oBAAsB,aAAW,WAAO,CAAC;AAAA,EAC3C,CAAC;AACH;AAEO,IAAM,2BAA6B,gBAAY;AAAA,EACpD,cAAgB,WAAO;AAAA,EACvB,SAAW,WAAO;AAAA,EAClB,WAAa,WAAO;AAAA,EACpB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,YAAc,WAAO;AAAA,EACrB,YAAc,WAAO;AAAA,EACrB,UAAY,WAAO;AAAA,EACnB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,0BAA4B,WAAO;AAAA,EACnC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,WAAa,WAAO;AAAA,EACpB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,oBAAsB,aAAW,WAAO,CAAC;AAC3C,CAAC;AAEM,IAAM,iCAAmC;AAAA,EAC5C,gBAAY;AAAA,IACZ,cAAgB,WAAO;AAAA,IACvB,YAAc,WAAO;AAAA,IACrB,WAAa,WAAO;AAAA,IACpB,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,eAAiB,WAAO;AAAA,IACxB,UAAY,WAAO;AAAA,IACnB,cAAgB,WAAO;AAAA,IACvB,UAAY,WAAO;AAAA,IACnB,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,YAAc,WAAO;AAAA,IACrB,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,UAAY,WAAO;AAAA,EACrB,CAAC;AACH;AAEO,IAAM,gCAAkC,gBAAY;AAAA,EACzD,cAAgB,WAAO;AAAA,EACvB,YAAc,WAAO;AAAA,EACrB,WAAa,WAAO;AAAA,EACpB,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,eAAiB,WAAO;AAAA,EACxB,UAAY,WAAO;AAAA,EACnB,cAAgB,WAAO;AAAA,EACvB,UAAY,WAAO;AAAA,EACnB,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,WAAO;AAAA,EACrB,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,UAAY,WAAO;AACrB,CAAC;AAEM,IAAM,uBAAyB;AAAA,EAClC,gBAAY;AAAA,IACZ,MAAQ,WAAO;AAAA,IACf,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,WAAa,WAAO;AAAA,IACpB,WAAa,WAAO;AAAA,IACpB,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,YAAc,WAAO;AAAA,IACrB,SAAW,aAAW,WAAO,CAAC;AAAA,IAC9B,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,kBAAoB,WAAO;AAAA,IAC3B,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,UAAY,WAAO;AAAA,IACnB,gBAAkB,WAAO;AAAA,IACzB,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,UAAY,WAAO;AAAA,IACnB,cAAgB,WAAO;AAAA,IACvB,QAAU,WAAO;AAAA,IACjB,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,uBAAyB,aAAW,WAAO,CAAC;AAAA,IAC5C,sBAAwB,aAAW,WAAO,CAAC;AAAA,IAC3C,0BAA4B,aAAW,WAAO,CAAC;AAAA,IAC/C,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,aAAe,WAAO;AAAA,IACtB,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,SAAW,aAAW,WAAO,CAAC;AAAA,IAC9B,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,kBAAoB,WAAO;AAAA,IAC3B,YAAc,WAAO;AAAA,IACrB,qBAAuB,WAAO;AAAA,IAC9B,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,WAAa,WAAO;AAAA,IACpB,cAAgB,WAAO;AAAA,IACvB,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,wBAA0B,aAAW,WAAO,CAAC;AAAA,IAC7C,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,0BAA4B,aAAW,WAAO,CAAC;AAAA,IAC/C,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,sBAAwB,WAAO;AAAA,IAC/B,0BAA4B,aAAW,WAAO,CAAC;AAAA,IAC/C,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,OAAS,WAAO;AAAA,IAChB,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,qBAAuB,aAAW,WAAO,CAAC;AAAA,IAC1C,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,qBAAuB,aAAW,WAAO,CAAC;AAAA,IAC1C,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,UAAY,WAAO;AAAA,EACrB,CAAC;AACH;AAEO,IAAM,sBAAwB,gBAAY;AAAA,EAC/C,MAAQ,WAAO;AAAA,EACf,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,WAAa,WAAO;AAAA,EACpB,WAAa,WAAO;AAAA,EACpB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,WAAO;AAAA,EACrB,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,UAAY,WAAO;AAAA,EACnB,gBAAkB,WAAO;AAAA,EACzB,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,UAAY,WAAO;AAAA,EACnB,cAAgB,WAAO;AAAA,EACvB,QAAU,WAAO;AAAA,EACjB,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,uBAAyB,aAAW,WAAO,CAAC;AAAA,EAC5C,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC3C,0BAA4B,aAAW,WAAO,CAAC;AAAA,EAC/C,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,aAAe,WAAO;AAAA,EACtB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,kBAAoB,WAAO;AAAA,EAC3B,YAAc,WAAO;AAAA,EACrB,qBAAuB,WAAO;AAAA,EAC9B,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,WAAa,WAAO;AAAA,EACpB,cAAgB,WAAO;AAAA,EACvB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,wBAA0B,aAAW,WAAO,CAAC;AAAA,EAC7C,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,0BAA4B,aAAW,WAAO,CAAC;AAAA,EAC/C,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,sBAAwB,WAAO;AAAA,EAC/B,0BAA4B,aAAW,WAAO,CAAC;AAAA,EAC/C,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,OAAS,WAAO;AAAA,EAChB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,UAAY,WAAO;AACrB,CAAC;AAGM,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACpZ9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,cAAc,SAAS;AAAA,IACpC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,SAAS;AAAA,IACtB,aAAa,CAAC,YAAY;AAAA,IAC1B,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC,SAAS,UAAU,WAAW,GAAG;AAAA,IAC/C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB,YAAY;AAAA,IACzC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,YAAY,SAAS,cAAc,UAAU,GAAG;AAAA,IAC9D,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,MAAM;AAAA,IACnB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK;AAAA,IACf,YAAY,CAAC,MAAM;AAAA,IACnB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,YAAY,cAAc,SAAS,UAAU,WAAW,MAAM;AAAA,IAC5E,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACnOA,YAAYC,SAAO;AAIZ,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,YAAc,aAAW,WAAO,CAAC;AACnC,CAAC;AAGM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,YAAc,aAAW,WAAO,CAAC;AACnC,CAAC;AAGM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,YAAc,aAAW,WAAO,CAAC;AACnC,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,WAAa,aAAW,WAAO,CAAC;AAClC,CAAC;AAGM,IAAM,iCAAmC,gBAAY;AAAA,EAC1D,WAAa,aAAW,WAAO,CAAC;AAClC,CAAC;AAGM,IAAM,iCAAmC,gBAAY;AAAA,EAC1D,WAAa,aAAW,WAAO,CAAC;AAClC,CAAC;AAGM,IAAM,2BAA6B,gBAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,QAAU,aAAW,WAAO,CAAC;AAC/B,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,QAAU,aAAW,WAAO,CAAC;AAC/B,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,QAAU,aAAW,WAAO,CAAC;AAC/B,CAAC;AAGM,IAAM,qCAAuC,gBAAY;AAAA,EAC9D,GAAG,sBAAsB;AAAA,EACzB,kBAAoB,aAAW,WAAO,CAAC;AACzC,CAAC;AAGM,IAAM,wCAA0C,gBAAY;AAAA,EACjE,kBAAoB,aAAW,WAAO,CAAC;AACzC,CAAC;AAGM,IAAM,wCAA0C,gBAAY;AAAA,EACjE,kBAAoB,aAAW,WAAO,CAAC;AACzC,CAAC;AAOM,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACxD9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC,YAAY;AAAA,IAC1B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC,YAAY;AAAA,IAC1B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC,YAAY;AAAA,IAC1B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,WAAW;AAAA,IACzB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,WAAW;AAAA,IACzB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,WAAW;AAAA,IACzB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,MAAM;AAAA,IACnB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,MAAM;AAAA,IACnB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC,QAAQ;AAAA,IACtB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC,QAAQ;AAAA,IACtB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,UAAU;AAAA,IACvB,aAAa,CAAC,QAAQ;AAAA,IACtB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC,kBAAkB;AAAA,IAChC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC,kBAAkB;AAAA,IAChC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,mBAAmB;AAAA,IAChC,aAAa,CAAC,kBAAkB;AAAA,IAChC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACzRA,YAAYC,SAAO;AAIZ,IAAM,0BAA4B,gBAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,WAAa,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC9D,WAAa,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC9D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,qCAAuC,gBAAY;AAAA,EAC9D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,WAAa,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAChE,CAAC;AAGM,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,0BAA4B,gBAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,0BAA4B,gBAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,yBAA2B,gBAAY;AAAA,EAClD,GAAG,sBAAsB;AAAA,EACzB,WAAa,aAAW,WAAO,CAAC;AAClC,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,2BAA6B,gBAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,0BAA4B,gBAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,gBAAkB,aAAW,WAAO,CAAC;AACvC,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAMM,IAAM,2BAA6B;AAAA,EACtC,gBAAY;AAAA,IACZ,cAAgB,WAAO;AAAA,IACvB,WAAa,WAAO;AAAA,IACpB,uBAAyB,WAAO;AAAA,IAChC,mBAAqB,WAAO;AAAA,IAC5B,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,gBAAkB,WAAO;AAAA,IACzB,YAAc,WAAO;AAAA,IACrB,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,yBAA2B,WAAO;AAAA,IAClC,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,kBAAoB,WAAO;AAAA,IAC3B,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,eAAiB,WAAO;AAAA,IACxB,wBAA0B,aAAW,WAAO,CAAC;AAAA,IAC7C,sBAAwB,aAAW,WAAO,CAAC;AAAA,IAC3C,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,0BAA4B,gBAAY;AAAA,EACnD,cAAgB,WAAO;AAAA,EACvB,WAAa,WAAO;AAAA,EACpB,uBAAyB,WAAO;AAAA,EAChC,mBAAqB,WAAO;AAAA,EAC5B,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,gBAAkB,WAAO;AAAA,EACzB,YAAc,WAAO;AAAA,EACrB,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,yBAA2B,WAAO;AAAA,EAClC,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,eAAiB,WAAO;AAAA,EACxB,wBAA0B,aAAW,WAAO,CAAC;AAAA,EAC7C,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC3C,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AACtB,CAAC;AAEM,IAAM,wBAA0B;AAAA,EACnC,gBAAY;AAAA,IACZ,SAAW,WAAO;AAAA,IAClB,QAAU,WAAO;AAAA,IACjB,YAAc,WAAO;AAAA,IACrB,iBAAmB,WAAO;AAAA,IAC1B,eAAiB,WAAO;AAAA,IACxB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,kBAAoB,WAAO;AAAA,IAC3B,oBAAsB,aAAW,WAAO,CAAC;AAAA,IACzC,UAAY,WAAO;AAAA,EACrB,CAAC;AACH;AAEO,IAAM,uBAAyB,gBAAY;AAAA,EAChD,SAAW,WAAO;AAAA,EAClB,QAAU,WAAO;AAAA,EACjB,YAAc,WAAO;AAAA,EACrB,iBAAmB,WAAO;AAAA,EAC1B,eAAiB,WAAO;AAAA,EACxB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,UAAY,WAAO;AACrB,CAAC;AAEM,IAAM,wBAA0B;AAAA,EACnC,gBAAY;AAAA,IACZ,YAAc,WAAO;AAAA,IACrB,WAAa,WAAO;AAAA,IACpB,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,YAAc,WAAO;AAAA,IACrB,UAAY,WAAO;AAAA,IACnB,kBAAoB,WAAO;AAAA,IAC3B,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,wBAA0B,aAAW,WAAO,CAAC;AAAA,IAC7C,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,sBAAwB,aAAW,WAAO,CAAC;AAAA,IAC3C,mBAAqB,aAAW,WAAO,CAAC;AAAA,EAC1C,CAAC;AACH;AAEO,IAAM,uBAAyB,gBAAY;AAAA,EAChD,YAAc,WAAO;AAAA,EACrB,WAAa,WAAO;AAAA,EACpB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,YAAc,WAAO;AAAA,EACrB,UAAY,WAAO;AAAA,EACnB,kBAAoB,WAAO;AAAA,EAC3B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,wBAA0B,aAAW,WAAO,CAAC;AAAA,EAC7C,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC3C,mBAAqB,aAAW,WAAO,CAAC;AAC1C,CAAC;AAEM,IAAM,4BAA8B;AAAA,EACvC,gBAAY;AAAA,IACZ,gBAAkB,WAAO;AAAA,IACzB,WAAa,WAAO;AAAA,IACpB,WAAa,WAAO;AAAA,IACpB,aAAe,WAAO;AAAA,IACtB,iBAAmB,WAAO;AAAA,IAC1B,iBAAmB,WAAO;AAAA,IAC1B,0BAA4B,WAAO;AAAA,IACnC,4BAA8B,WAAO;AAAA,IACrC,qBAAuB,WAAO;AAAA,IAC9B,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,kBAAoB,WAAO;AAAA,IAC3B,WAAa,WAAO;AAAA,IACpB,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,kBAAoB,WAAO;AAAA,IAC3B,oBAAsB,aAAW,WAAO,CAAC;AAAA,IACzC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,2BAA6B,aAAW,WAAO,CAAC;AAAA,IAChD,qBAAuB,aAAW,WAAO,CAAC;AAAA,IAC1C,sBAAwB,aAAW,WAAO,CAAC;AAAA,IAC3C,wBAA0B,aAAW,WAAO,CAAC;AAAA,IAC7C,0BAA4B,aAAW,WAAO,CAAC;AAAA,IAC/C,2BAA6B,aAAW,WAAO,CAAC;AAAA,IAChD,4BAA8B,aAAW,WAAO,CAAC;AAAA,IACjD,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,uBAAyB,aAAW,WAAO,CAAC;AAAA,IAC5C,+BAAiC,WAAO;AAAA,IACxC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,iBAAmB,WAAO;AAAA,IAC1B,mBAAqB,WAAO;AAAA,IAC5B,oBAAsB,WAAO;AAAA,IAC7B,iBAAmB,WAAO;AAAA,IAC1B,oBAAsB,aAAW,WAAO,CAAC;AAAA,IACzC,0BAA4B,WAAO;AAAA,IACnC,wBAA0B,aAAW,WAAO,CAAC;AAAA,IAC7C,sCAAwC,aAAW,WAAO,CAAC;AAAA,IAC3D,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,2BAA6B,gBAAY;AAAA,EACpD,gBAAkB,WAAO;AAAA,EACzB,WAAa,WAAO;AAAA,EACpB,WAAa,WAAO;AAAA,EACpB,aAAe,WAAO;AAAA,EACtB,iBAAmB,WAAO;AAAA,EAC1B,iBAAmB,WAAO;AAAA,EAC1B,0BAA4B,WAAO;AAAA,EACnC,4BAA8B,WAAO;AAAA,EACrC,qBAAuB,WAAO;AAAA,EAC9B,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,kBAAoB,WAAO;AAAA,EAC3B,WAAa,WAAO;AAAA,EACpB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,kBAAoB,WAAO;AAAA,EAC3B,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,2BAA6B,aAAW,WAAO,CAAC;AAAA,EAChD,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC3C,wBAA0B,aAAW,WAAO,CAAC;AAAA,EAC7C,0BAA4B,aAAW,WAAO,CAAC;AAAA,EAC/C,2BAA6B,aAAW,WAAO,CAAC;AAAA,EAChD,4BAA8B,aAAW,WAAO,CAAC;AAAA,EACjD,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,uBAAyB,aAAW,WAAO,CAAC;AAAA,EAC5C,+BAAiC,WAAO;AAAA,EACxC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,iBAAmB,WAAO;AAAA,EAC1B,mBAAqB,WAAO;AAAA,EAC5B,oBAAsB,WAAO;AAAA,EAC7B,iBAAmB,WAAO;AAAA,EAC1B,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,0BAA4B,WAAO;AAAA,EACnC,wBAA0B,aAAW,WAAO,CAAC;AAAA,EAC7C,sCAAwC,aAAW,WAAO,CAAC;AAAA,EAC3D,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AACtB,CAAC;AAEM,IAAM,yBAA2B;AAAA,EACpC,gBAAY;AAAA,IACZ,YAAc,WAAO;AAAA,IACrB,WAAa,WAAO;AAAA,IACpB,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,kBAAoB,WAAO;AAAA,IAC3B,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,oBAAsB,WAAO;AAAA,IAC7B,UAAY,WAAO;AAAA,EACrB,CAAC;AACH;AAEO,IAAM,wBAA0B,gBAAY;AAAA,EACjD,YAAc,WAAO;AAAA,EACrB,WAAa,WAAO;AAAA,EACpB,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,oBAAsB,WAAO;AAAA,EAC7B,UAAY,WAAO;AACrB,CAAC;AAGM,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACjV9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,SAAS,UAAU,WAAW,GAAG;AAAA,IAC/C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa,CAAC,WAAW;AAAA,IACzB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,aAAa,cAAc,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IACtF,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,SAAS,UAAU,WAAW,GAAG;AAAA,IAC7D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,SAAS;AAAA,IACtB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,aAAa,SAAS,UAAU,WAAW,GAAG;AAAA,IAC5D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,WAAW;AAAA,IACzB,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,aAAa,iBAAiB,SAAS,UAAU,WAAW,UAAU;AAAA,IACpF,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC,eAAe;AAAA,IAC7B,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,kBAAkB,SAAS,UAAU,WAAW,GAAG;AAAA,IAC/E,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,gBAAgB;AAAA,IAC9B,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,SAAS;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACjPA,YAAYC,SAAO;AAIZ,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,mBAAqB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AACxE,CAAC;AAGM,IAAM,0CAA4C,gBAAY;AAAA,EACnE,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,OAAS,aAAW,WAAO,CAAC;AAC9B,CAAC;AAGM,IAAM,sCAAwC,gBAAY;AAAA,EAC/D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,OAAS,aAAW,WAAO,CAAC;AAC9B,CAAC;AAGM,IAAM,2BAA6B,gBAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAMM,IAAM,2BAA6B;AAAA,EACtC,gBAAY;AAAA,IACZ,eAAiB,WAAO;AAAA,IACxB,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACrC,CAAC;AACH;AAEO,IAAM,6BAA+B,gBAAY;AAAA,EACtD,eAAiB,WAAO;AAAA,EACxB,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,cAAgB,aAAW,WAAO,CAAC;AACrC,CAAC;AAEM,IAAM,0BAA0B;AAEhC,IAAM,6BAA6B;AAEnC,IAAM,6BAA+B;AAAA,EACxC,gBAAY;AAAA,IACZ,iBAAmB,WAAO;AAAA,IAC1B,YAAc,WAAO;AAAA,IACrB,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,eAAiB,WAAO;AAAA,IACxB,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,UAAY,WAAO;AAAA,EACrB,CAAC;AACH;AAEO,IAAM,+BAAiC,gBAAY;AAAA,EACxD,iBAAmB,WAAO;AAAA,EAC1B,YAAc,WAAO;AAAA,EACrB,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,eAAiB,WAAO;AAAA,EACxB,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,UAAY,WAAO;AACrB,CAAC;AAEM,IAAM,4BAA4B;AAElC,IAAM,+BAA+B;AAErC,IAAM,4BAA8B;AAAA,EACvC,gBAAY;AAAA,IACZ,gBAAkB,WAAO;AAAA,IACzB,YAAc,WAAO;AAAA,IACrB,YAAc,WAAO;AAAA,IACrB,WAAa,WAAO;AAAA,IACpB,kBAAoB,WAAO;AAAA,IAC3B,mBAAqB,WAAO;AAAA,IAC5B,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,8BAAgC,gBAAY;AAAA,EACvD,gBAAkB,WAAO;AAAA,EACzB,YAAc,WAAO;AAAA,EACrB,YAAc,WAAO;AAAA,EACrB,WAAa,WAAO;AAAA,EACpB,kBAAoB,WAAO;AAAA,EAC3B,mBAAqB,WAAO;AAAA,EAC5B,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AACtB,CAAC;AAEM,IAAM,2BAA2B;AAEjC,IAAM,8BAA8B;AAEpC,IAAM,yBAA2B;AAAA,EACpC,gBAAY;AAAA,IACZ,aAAe,WAAO;AAAA,IACtB,OAAS,aAAW,WAAO,CAAC;AAAA,IAC5B,MAAQ,aAAW,WAAO,CAAC;AAAA,IAC3B,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,wBAA0B,gBAAY;AAAA,EACjD,aAAe,WAAO;AAAA,EACtB,OAAS,aAAW,WAAO,CAAC;AAAA,EAC5B,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AACtB,CAAC;AAGM,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACpL9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IACzE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,SAAS,UAAU,WAAW,UAAU;AAAA,IACpE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,SAAS,UAAU,WAAW,YAAY,mBAAmB;AAAA,IACzF,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,OAAO;AAAA,IAC9B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC,SAAS,OAAO;AAAA,IAC9B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACzSA,YAAYC,SAAO;AAIZ,IAAM,yBAA2B,gBAAY;AAAA,EAClD,GAAG,sBAAsB;AAAA,EACzB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,YAAc,aAAW,WAAO,CAAC;AACnC,CAAC;AAGM,IAAM,qCAAuC,gBAAY;AAAA,EAC9D,GAAG,sBAAsB;AAAA,EACzB,MAAQ,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC3D,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,YAAc,aAAW,WAAO,CAAC;AACnC,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC5D,CAAC;AAMM,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,MAAQ,WAAO;AAAA,EACf,OAAS,WAAO;AAAA,EAChB,SAAW,WAAO;AAAA,EAClB,YAAc,WAAO;AAAA,EACrB,kBAAoB,WAAO;AAAA,EAC3B,eAAiB,WAAO;AAAA,EACxB,UAAY,WAAO;AAAA,EACnB,YAAc,WAAO;AAAA,EACrB,WAAa,WAAO;AAAA,EACpB,WAAa,WAAO;AAAA,EACpB,MAAQ,WAAO;AAAA,EACf,YAAc,WAAO;AAAA,EACrB,WAAa,WAAO;AAAA,EACpB,WAAa,WAAO;AAAA,EACpB,UAAY,WAAO;AAAA,EACnB,aAAe,WAAO;AAAA,EACtB,SAAW,WAAO;AAAA,EAClB,QAAU,WAAO;AAAA,EACjB,OAAS,WAAO;AAAA,EAChB,WAAa,WAAO;AAAA,EACpB,SAAW,WAAO;AAAA,EAClB,SAAW,WAAO;AACpB,CAAC;AAEM,IAAM,sBAAwB,gBAAY;AAAA,EAC/C,WAAa,WAAO;AAAA,EACpB,0BAA4B,WAAO;AAAA,EACnC,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,UAAY,WAAO;AAAA,EACnB,aAAe,WAAO;AAAA,EACtB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,gBAAkB,WAAO;AAAA,EACzB,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,aAAe,aAAW,WAAO,CAAC;AACpC,CAAC;AAEM,IAAM,yBAAyB;AAE/B,IAAM,yBAAyB;AAG/B,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACzE9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,MAAM;AAAA,IACpB,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,OAAO;AAAA,IAC9B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,WAAW;AAAA,IACxB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,0BAA0B;AAAA,IACvC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC1MA,YAAYC,SAAO;AAIZ,IAAM,iCAAmC,gBAAY;AAAA,EAC1D,GAAG,sBAAsB;AAAA,EACzB,QAAU,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EAC/C,UAAY,WAAO;AAAA,EACnB,SAAW,WAAO;AAAA,EAClB,SAAW,WAAO;AAAA,EAClB,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,yCAA2C,gBAAY;AAAA,EAClE,GAAG,sBAAsB;AAAA,EACzB,QAAU,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EAC/C,SAAW,WAAO;AAAA,EAClB,UAAY,aAAW,YAAQ,CAAC;AAAA,EAChC,WAAa,WAAO;AACtB,CAAC;AAGM,IAAM,+CAAiD,gBAAY;AAAA,EACxE,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,iBAAmB,WAAO;AAAA,EAC1B,cAAgB,aAAW,YAAQ,CAAC;AAAA,EACpC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,4CAA8C,gBAAY;AAAA,EACrE,iBAAmB,WAAO;AAAA,EAC1B,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,wCAA0C,gBAAY;AAAA,EACjE,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,WAAa,WAAO;AAAA,EACpB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,gCAAkC,gBAAY;AAAA,EACzD,QAAU,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EAC/C,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,QAAU,WAAO;AAAA,EACjB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,oCAAsC,gBAAY;AAAA,EAC7D,GAAG,sBAAsB;AAAA,EACzB,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,QAAU,WAAO;AAAA,EACjB,UAAY,aAAW,YAAQ,CAAC;AAAA,EAChC,OAAS,WAAO;AAClB,CAAC;AAGM,IAAM,yCAA2C,gBAAY;AAAA,EAClE,SAAW,WAAO;AAAA,EAClB,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,uCAAyC,gBAAY;AAAA,EAChE,SAAW,WAAO;AAAA,EAClB,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,qCAAuC,gBAAY;AAAA,EAC9D,GAAG,sBAAsB;AAAA,EACzB,SAAW,WAAO;AAAA,EAClB,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,UAAY,WAAO;AAAA,EACnB,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,QAAU,WAAO;AAAA,EACjB,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,0CAA4C,gBAAY;AAAA,EACnE,QAAU,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EAC/C,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,YAAc,WAAO;AAAA,EACrB,KAAO,aAAW,WAAO,CAAC;AAAA,EAC1B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,oCAAsC,gBAAY;AAAA,EAC7D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,UAAY,aAAW,YAAQ,CAAC;AAAA,EAChC,eAAiB,WAAO;AAC1B,CAAC;AAGM,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,UAAY,aAAW,YAAQ,CAAC;AAAA,EAChC,eAAiB,WAAO;AAC1B,CAAC;AAGM,IAAM,iCAAmC,gBAAY;AAAA,EAC1D,QAAU,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EAC/C,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,YAAc,WAAO;AAAA,EACrB,KAAO,aAAW,WAAO,CAAC;AAAA,EAC1B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,UAAY,aAAW,YAAQ,CAAC;AAClC,CAAC;AAGM,IAAM,iCAAmC,gBAAY;AAAA,EAC1D,UAAY,aAAW,YAAQ,CAAC;AAAA,EAChC,eAAiB,WAAO;AAC1B,CAAC;AAGM,IAAM,sCAAwC,gBAAY;AAAA,EAC/D,GAAG,sBAAsB;AAAA,EACzB,YAAc,WAAO;AAAA,EACrB,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,oBAAsB,WAAO;AAC/B,CAAC;AAGM,IAAM,uCAAyC,gBAAY;AAAA,EAChE,GAAG,sBAAsB;AAAA,EACzB,UAAY,WAAO;AAAA,EACnB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,MAAQ,WAAO;AAAA,EACf,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,OAAS,WAAO;AAAA,EAChB,oBAAsB,WAAO;AAAA,EAC7B,KAAO,WAAO;AAChB,CAAC;AAGM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,oBAAsB,WAAO;AAC/B,CAAC;AAGM,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,GAAG,sBAAsB;AAAA,EACzB,QAAU,WAAO;AAAA,EACjB,SAAW,WAAO;AAAA,EAClB,YAAc,WAAO;AAAA,EACrB,WAAa,WAAO;AAAA,EACpB,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,SAAW,WAAO;AACpB,CAAC;AAGM,IAAM,6CAA+C,gBAAY;AAAA,EACtE,GAAG,sBAAsB;AAAA,EACzB,QAAU,WAAO;AACnB,CAAC;AAGM,IAAM,0CAA4C,gBAAY;AAAA,EACnE,GAAG,sBAAsB;AAAA,EACzB,YAAc,WAAO;AAAA,EACrB,MAAQ,aAAW,WAAO,CAAC;AAC7B,CAAC;AAGM,IAAM,kCAAoC,gBAAY;AAAA,EAC3D,GAAG,sBAAsB;AAAA,EACzB,YAAc,WAAO;AAAA,EACrB,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,oBAAsB,WAAO;AAC/B,CAAC;AAOM,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;AC3L9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU,YAAY,WAAW,WAAW,UAAU;AAAA,IACpE,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU,WAAW,YAAY,WAAW;AAAA,IAC1D,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU,mBAAmB,gBAAgB,aAAa,UAAU;AAAA,IAClF,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,mBAAmB,UAAU;AAAA,IAC3C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU,aAAa,aAAa,eAAe,UAAU;AAAA,IAC3E,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,WAAW,UAAU,YAAY,OAAO;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,WAAW,UAAU;AAAA,IACnC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,WAAW,UAAU;AAAA,IACnC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,WAAW,UAAU;AAAA,IACnC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,YAAY,UAAU;AAAA,IACpC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU,UAAU;AAAA,IAClC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU,kBAAkB,cAAc,OAAO,aAAa,UAAU;AAAA,IACtF,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU,YAAY,eAAe;AAAA,IACnD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU,YAAY,eAAe;AAAA,IACnD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,UAAU,kBAAkB,cAAc,OAAO,aAAa,UAAU;AAAA,IACtF,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,YAAY,eAAe;AAAA,IACzC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,QAAQ,oBAAoB;AAAA,IACxD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,YAAY,YAAY,QAAQ,QAAQ,SAAS,sBAAsB,KAAK;AAAA,IAC1F,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,QAAQ,oBAAoB;AAAA,IAC1C,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,QAAQ;AAAA,IACtB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,MAAM;AAAA,IAClC,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,QAAQ,oBAAoB;AAAA,IACxD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC7UA,YAAYC,SAAO;AAIZ,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAC1B,CAAC;AAGM,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,GAAG,sBAAsB;AAAA,EACzB,YAAc,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC/D,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,GAAG,sBAAsB;AAAA,EACzB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,YAAc,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACnD,QAAU,WAAO;AAAA,EACjB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,eAAiB,aAAW,WAAO,CAAC;AACtC,CAAC;AAGM,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,sCAAwC,gBAAY;AAAA,EAC/D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAMM,IAAM,4BAA8B;AAAA,EACvC,gBAAY;AAAA,IACZ,gBAAkB,WAAO;AAAA,IACzB,OAAS,WAAO;AAAA,IAChB,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,WAAa,WAAO;AAAA,IACpB,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,WAAa,WAAO;AAAA,IACpB,SAAW,WAAO;AAAA,IAClB,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,OAAS,WAAO;AAAA,IAChB,MAAQ,aAAW,WAAO,CAAC;AAAA,IAC3B,eAAiB,WAAO;AAAA,IACxB,kBAAoB,WAAO;AAAA,IAC3B,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,oBAAsB,WAAO;AAAA,IAC7B,iBAAmB,WAAO;AAAA,IAC1B,gBAAkB,WAAO;AAAA,IACzB,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,UAAY,WAAO;AAAA,EACrB,CAAC;AACH;AAEO,IAAM,2BAA6B,gBAAY;AAAA,EACpD,gBAAkB,WAAO;AAAA,EACzB,OAAS,WAAO;AAAA,EAChB,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,WAAa,WAAO;AAAA,EACpB,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,WAAa,WAAO;AAAA,EACpB,SAAW,WAAO;AAAA,EAClB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,OAAS,WAAO;AAAA,EAChB,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,eAAiB,WAAO;AAAA,EACxB,kBAAoB,WAAO;AAAA,EAC3B,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,oBAAsB,WAAO;AAAA,EAC7B,iBAAmB,WAAO;AAAA,EAC1B,gBAAkB,WAAO;AAAA,EACzB,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,UAAY,WAAO;AACrB,CAAC;AAEM,IAAM,iCAAmC;AAAA,EAC5C,gBAAY;AAAA,IACZ,iBAAmB,WAAO;AAAA,IAC1B,gBAAkB,WAAO;AAAA,IACzB,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,KAAO,aAAW,WAAO,CAAC;AAAA,IAC1B,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,OAAS,aAAW,WAAO,CAAC;AAAA,IAC5B,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,uBAAyB,aAAW,WAAO,CAAC;AAAA,IAC5C,oBAAsB,aAAW,WAAO,CAAC;AAAA,IACzC,sBAAwB,aAAW,WAAO,CAAC;AAAA,IAC3C,qBAAuB,aAAW,WAAO,CAAC;AAAA,IAC1C,wBAA0B,aAAW,WAAO,CAAC;AAAA,IAC7C,4BAA8B,aAAW,WAAO,CAAC;AAAA,IACjD,yBAA2B,aAAW,WAAO,CAAC;AAAA,IAC9C,eAAiB,WAAO;AAAA,IACxB,kBAAoB,WAAO;AAAA,IAC3B,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,QAAU,WAAO;AAAA,IACjB,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,yBAA2B,aAAW,WAAO,CAAC;AAAA,IAC9C,0BAA4B,aAAW,WAAO,CAAC;AAAA,IAC/C,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,yBAA2B,aAAW,WAAO,CAAC;AAAA,IAC9C,kBAAoB,aAAW,WAAO,CAAC;AAAA,IACvC,uBAAyB,aAAW,WAAO,CAAC;AAAA,IAC5C,SAAW,aAAW,WAAO,CAAC;AAAA,IAC9B,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,6BAA+B,aAAW,WAAO,CAAC;AAAA,IAClD,cAAgB,aAAW,WAAO,CAAC;AAAA,IACnC,gBAAkB,aAAW,WAAO,CAAC;AAAA,IACrC,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,2BAA6B,aAAW,WAAO,CAAC;AAAA,IAChD,UAAY,WAAO;AAAA,EACrB,CAAC;AACH;AAEO,IAAM,gCAAkC,gBAAY;AAAA,EACzD,iBAAmB,WAAO;AAAA,EAC1B,gBAAkB,WAAO;AAAA,EACzB,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,KAAO,aAAW,WAAO,CAAC;AAAA,EAC1B,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,OAAS,aAAW,WAAO,CAAC;AAAA,EAC5B,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,uBAAyB,aAAW,WAAO,CAAC;AAAA,EAC5C,oBAAsB,aAAW,WAAO,CAAC;AAAA,EACzC,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC3C,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,wBAA0B,aAAW,WAAO,CAAC;AAAA,EAC7C,4BAA8B,aAAW,WAAO,CAAC;AAAA,EACjD,yBAA2B,aAAW,WAAO,CAAC;AAAA,EAC9C,eAAiB,WAAO;AAAA,EACxB,kBAAoB,WAAO;AAAA,EAC3B,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,QAAU,WAAO;AAAA,EACjB,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,yBAA2B,aAAW,WAAO,CAAC;AAAA,EAC9C,0BAA4B,aAAW,WAAO,CAAC;AAAA,EAC/C,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,yBAA2B,aAAW,WAAO,CAAC;AAAA,EAC9C,kBAAoB,aAAW,WAAO,CAAC;AAAA,EACvC,uBAAyB,aAAW,WAAO,CAAC;AAAA,EAC5C,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,6BAA+B,aAAW,WAAO,CAAC;AAAA,EAClD,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,mBAAqB,aAAW,WAAO,CAAC;AAAA,EACxC,2BAA6B,aAAW,WAAO,CAAC;AAAA,EAChD,UAAY,WAAO;AACrB,CAAC;AAEM,IAAM,4BAA8B,gBAAY;AAAA,EACrD,WAAa,WAAO;AAAA,EACpB,YAAc,UAAM;AAAA,IAChB,aAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACC,YAAQ;AAAA,EACZ,CAAC;AAAA,EACD,WAAa,UAAM,CAAG,aAAS,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,GAAK,YAAQ,CAAC,CAAC;AAAA,EAClE,UAAY,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,EAC3C,WAAa,WAAO;AAAA,EACpB,UAAY,gBAAY;AAAA,IACtB,YAAc,WAAO;AAAA,IACrB,OAAS,YAAQ;AAAA,IACjB,eAAiB,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,IAChD,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,iBAAmB,aAAW,WAAO,CAAC;AAAA,IACtC,mBAAqB,aAAW,WAAO,CAAC;AAAA,IACxC,eAAiB,YAAQ;AAAA,IACzB,mBAAqB,YAAQ;AAAA,IAC7B,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,qBAAuB,WAAO;AAAA,IAC9B,wBAA0B,WAAO;AAAA,EACnC,CAAC;AAAA,EACD,MAAQ,gBAAY;AAAA,IAClB,QAAU,WAAO;AAAA,IACjB,OAAS,YAAQ;AAAA,IACjB,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,UAAY,WAAO;AAAA,IACnB,eAAiB,aAAW,WAAO,CAAC;AAAA,EACtC,CAAC;AAAA,EACD,SAAW,UAAQ,YAAQ,CAAC;AAAA,EAC5B,UAAY,UAAQ,WAAO,CAAC;AAAA,EAC5B,OAAS,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,EACxC,gBAAkB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,EACjD,YAAc,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,EAC7C,kBAAoB;AAAA,IAChB;AAAA,MACE,UAAM;AAAA,QACJ,gBAAY;AAAA,UACZ,WAAa,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,UAC5C,aAAe,aAAW,WAAO,CAAC;AAAA,UAClC,UAAY,WAAO;AAAA,UACnB,cAAgB,WAAO;AAAA,UACvB,sBAAwB,WAAO;AAAA,UAC/B,iBAAmB,WAAO;AAAA,UAC1B,iBAAmB,WAAO;AAAA,UAC1B,eAAiB,WAAO;AAAA,UACxB,gBAAkB,WAAO;AAAA,UACzB,QAAU,WAAO;AAAA,UACjB,YAAc,WAAO;AAAA,UACrB,iBAAmB,WAAO;AAAA,UAC1B,qBAAuB,WAAO;AAAA,UAC9B,eAAiB,WAAO;AAAA,UACxB,mBAAqB,WAAO;AAAA,UAC5B,qBAAuB,WAAO;AAAA,UAC9B,yBAA2B,WAAO;AAAA,UAClC,kBAAoB,WAAO;AAAA,UAC3B,sBAAwB,WAAO;AAAA,UAC/B,gBAAkB,WAAO;AAAA,UACzB,qBAAuB,aAAW,WAAO,CAAC;AAAA,UAC1C,yBAA2B,aAAW,WAAO,CAAC;AAAA,UAC9C,kBAAoB,aAAW,WAAO,CAAC;AAAA,UACvC,sBAAwB,aAAW,WAAO,CAAC;AAAA,UAC3C,eAAiB,aAAW,WAAO,CAAC;AAAA,UACpC,mBAAqB,aAAW,WAAO,CAAC;AAAA,UACxC,oBAAsB,aAAW,WAAO,CAAC;AAAA,UACzC,wBAA0B,aAAW,WAAO,CAAC;AAAA,UAC7C,uBAAyB,aAAW,WAAO,CAAC;AAAA,UAC5C,2BAA6B,aAAW,WAAO,CAAC;AAAA,UAChD,UAAY,aAAW,WAAO,CAAC;AAAA,UAC/B,cAAgB,aAAW,WAAO,CAAC;AAAA,UACnC,YAAc,UAAM,CAAG,WAAO,GAAK,WAAO,CAAC,CAAC;AAAA,UAC5C,QAAU;AAAA,YACN,gBAAY;AAAA,cACZ,kBAAoB,aAAW,WAAO,CAAC;AAAA,cACvC,OAAS,aAAW,WAAO,CAAC;AAAA,cAC5B,eAAiB,WAAO;AAAA,cACxB,aAAe,aAAW,WAAO,CAAC;AAAA,cAClC,WAAa,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,YAC9C,CAAC;AAAA,UACH;AAAA,UACA,UAAY,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC3C,WAAa,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC5C,oBAAsB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UACrD,aAAe,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC9C,qBAAuB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UACtD,iBAAmB,aAAW,aAAW,YAAQ,CAAC,CAAC;AAAA,UACnD,YAAc,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC7C,8BAAgC,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC/D,sBAAwB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UACvD,yBAA2B,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC1D,qBAAuB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UACtD,0BAA4B,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC3D,qBAAuB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UACtD,yBAA2B,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC1D,0BAA4B,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC3D,sBAAwB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,QACzD,CAAC;AAAA,QACC,gBAAY;AAAA,UACZ,WAAa,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,UAC5C,YAAc,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC7C,aAAe,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC9C,eAAiB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAChD,YAAc,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAC7C,iBAAmB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,UAClD,mBAAqB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,QACtD,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,qBAAuB;AAAA,IACnB,gBAAY;AAAA,MACZ,WAAa,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,MAC5C,yBAA2B,aAAW,WAAO,CAAC;AAAA,MAC9C,cAAgB,WAAO;AAAA,MACvB,gBAAkB,aAAW,WAAO,CAAC;AAAA,MACrC,eAAiB,WAAO;AAAA,MACxB,mBAAqB,WAAO;AAAA,MAC5B,WAAa,WAAO;AAAA,MACpB,UAAY,WAAO;AAAA,IACrB,CAAC;AAAA,EACH;AAAA,EACA,UAAY,aAAW,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC,CAAC;AACzD,CAAC;AAEM,IAAM,8BAAgC,gBAAY;AAAA,EACvD,YAAc,WAAO;AAAA,EACrB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,OAAS;AAAA,IACL,gBAAY;AAAA,MACZ,QAAU,WAAO;AAAA,MACjB,UAAY,WAAO;AAAA,MACnB,eAAiB,WAAO;AAAA,MACxB,aAAe,gBAAY;AAAA,QACzB,WAAa,WAAO;AAAA,QACpB,YAAc,UAAM;AAAA,UAChB,aAAS;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AAAA,UACC,YAAQ;AAAA,QACZ,CAAC;AAAA,QACD,WAAa,UAAM,CAAG,aAAS,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,GAAK,YAAQ,CAAC,CAAC;AAAA,QAClE,UAAY,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,QAC3C,WAAa,WAAO;AAAA,QACpB,UAAY,gBAAY;AAAA,UACtB,YAAc,WAAO;AAAA,UACrB,OAAS,YAAQ;AAAA,UACjB,eAAiB,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,UAChD,iBAAmB,aAAW,WAAO,CAAC;AAAA,UACtC,iBAAmB,aAAW,WAAO,CAAC;AAAA,UACtC,mBAAqB,aAAW,WAAO,CAAC;AAAA,UACxC,eAAiB,YAAQ;AAAA,UACzB,mBAAqB,YAAQ;AAAA,UAC7B,eAAiB,aAAW,WAAO,CAAC;AAAA,UACpC,qBAAuB,WAAO;AAAA,UAC9B,wBAA0B,WAAO;AAAA,QACnC,CAAC;AAAA,QACD,MAAQ,gBAAY;AAAA,UAClB,QAAU,WAAO;AAAA,UACjB,OAAS,YAAQ;AAAA,UACjB,YAAc,aAAW,WAAO,CAAC;AAAA,UACjC,UAAY,WAAO;AAAA,UACnB,eAAiB,aAAW,WAAO,CAAC;AAAA,QACtC,CAAC;AAAA,QACD,SAAW,UAAQ,YAAQ,CAAC;AAAA,QAC5B,UAAY,UAAQ,WAAO,CAAC;AAAA,QAC5B,OAAS,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,QACxC,gBAAkB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,QACjD,YAAc,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,QAC7C,kBAAoB;AAAA,UAChB;AAAA,YACE,UAAM;AAAA,cACJ,gBAAY;AAAA,gBACZ,WAAa,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,gBAC5C,aAAe,aAAW,WAAO,CAAC;AAAA,gBAClC,UAAY,WAAO;AAAA,gBACnB,cAAgB,WAAO;AAAA,gBACvB,sBAAwB,WAAO;AAAA,gBAC/B,iBAAmB,WAAO;AAAA,gBAC1B,iBAAmB,WAAO;AAAA,gBAC1B,eAAiB,WAAO;AAAA,gBACxB,gBAAkB,WAAO;AAAA,gBACzB,QAAU,WAAO;AAAA,gBACjB,YAAc,WAAO;AAAA,gBACrB,iBAAmB,WAAO;AAAA,gBAC1B,qBAAuB,WAAO;AAAA,gBAC9B,eAAiB,WAAO;AAAA,gBACxB,mBAAqB,WAAO;AAAA,gBAC5B,qBAAuB,WAAO;AAAA,gBAC9B,yBAA2B,WAAO;AAAA,gBAClC,kBAAoB,WAAO;AAAA,gBAC3B,sBAAwB,WAAO;AAAA,gBAC/B,gBAAkB,WAAO;AAAA,gBACzB,qBAAuB,aAAW,WAAO,CAAC;AAAA,gBAC1C,yBAA2B,aAAW,WAAO,CAAC;AAAA,gBAC9C,kBAAoB,aAAW,WAAO,CAAC;AAAA,gBACvC,sBAAwB,aAAW,WAAO,CAAC;AAAA,gBAC3C,eAAiB,aAAW,WAAO,CAAC;AAAA,gBACpC,mBAAqB,aAAW,WAAO,CAAC;AAAA,gBACxC,oBAAsB,aAAW,WAAO,CAAC;AAAA,gBACzC,wBAA0B,aAAW,WAAO,CAAC;AAAA,gBAC7C,uBAAyB,aAAW,WAAO,CAAC;AAAA,gBAC5C,2BAA6B,aAAW,WAAO,CAAC;AAAA,gBAChD,UAAY,aAAW,WAAO,CAAC;AAAA,gBAC/B,cAAgB,aAAW,WAAO,CAAC;AAAA,gBACnC,YAAc,UAAM,CAAG,WAAO,GAAK,WAAO,CAAC,CAAC;AAAA,gBAC5C,QAAU;AAAA,kBACN,gBAAY;AAAA,oBACZ,kBAAoB,aAAW,WAAO,CAAC;AAAA,oBACvC,OAAS,aAAW,WAAO,CAAC;AAAA,oBAC5B,eAAiB,WAAO;AAAA,oBACxB,aAAe,aAAW,WAAO,CAAC;AAAA,oBAClC,WAAa,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,kBAC9C,CAAC;AAAA,gBACH;AAAA,gBACA,UAAY,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC3C,WAAa,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC5C,oBAAsB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBACrD,aAAe,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC9C,qBAAuB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBACtD,iBAAmB,aAAW,aAAW,YAAQ,CAAC,CAAC;AAAA,gBACnD,YAAc,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC7C,8BAAgC,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC/D,sBAAwB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBACvD,yBAA2B,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC1D,qBAAuB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBACtD,0BAA4B,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC3D,qBAAuB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBACtD,yBAA2B,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC1D,0BAA4B,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC3D,sBAAwB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,cACzD,CAAC;AAAA,cACC,gBAAY;AAAA,gBACZ,WAAa,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,gBAC5C,YAAc,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC7C,aAAe,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC9C,eAAiB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAChD,YAAc,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAC7C,iBAAmB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,gBAClD,mBAAqB,aAAW,aAAW,WAAO,CAAC,CAAC;AAAA,cACtD,CAAC;AAAA,YACH,CAAC;AAAA,UACH;AAAA,QACF;AAAA,QACA,qBAAuB;AAAA,UACnB,gBAAY;AAAA,YACZ,WAAa,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,YAC5C,yBAA2B,aAAW,WAAO,CAAC;AAAA,YAC9C,cAAgB,WAAO;AAAA,YACvB,gBAAkB,aAAW,WAAO,CAAC;AAAA,YACrC,eAAiB,WAAO;AAAA,YACxB,mBAAqB,WAAO;AAAA,YAC5B,WAAa,WAAO;AAAA,YACpB,UAAY,WAAO;AAAA,UACrB,CAAC;AAAA,QACH;AAAA,QACA,UAAY,aAAW,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC,CAAC;AAAA,MACzD,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,4BAA8B,gBAAY;AAAA,EACrD,aAAe,WAAO;AAAA,EACtB,YAAc,WAAO;AAAA,EACrB,YAAc,UAAM,CAAG,WAAO,GAAK,WAAO,GAAK,WAAO,CAAC,CAAC;AAAA,EACxD,SAAW,WAAO;AAAA,EAClB,OAAS;AAAA,IACL,gBAAY;AAAA,MACZ,QAAU,WAAO;AAAA,MACjB,YAAc,WAAO;AAAA,MACrB,UAAY,WAAO;AAAA,MACnB,eAAiB,aAAW,WAAO,CAAC;AAAA,MACpC,WAAa,UAAM,CAAG,WAAO,GAAK,YAAQ,CAAC,CAAC;AAAA,MAC5C,aAAe,WAAO;AAAA,IACxB,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,2BAA6B;AAAA,EACtC,gBAAY;AAAA,IACZ,eAAiB,WAAO;AAAA,IACxB,MAAQ,WAAO;AAAA,IACf,aAAe,aAAW,WAAO,CAAC;AAAA,IAClC,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,YAAc,WAAO;AAAA,IACrB,cAAgB,WAAO;AAAA,IACvB,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,QAAU,aAAW,WAAO,CAAC;AAAA,IAC7B,aAAe,WAAO;AAAA,IACtB,eAAiB,aAAW,WAAO,CAAC;AAAA,IACpC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACvC,CAAC;AACH;AAEO,IAAM,6BAA+B,gBAAY;AAAA,EACtD,eAAiB,WAAO;AAAA,EACxB,MAAQ,WAAO;AAAA,EACf,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,YAAc,WAAO;AAAA,EACrB,cAAgB,WAAO;AAAA,EACvB,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,aAAe,WAAO;AAAA,EACtB,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,gBAAkB,aAAW,WAAO,CAAC;AACvC,CAAC;AAEM,IAAM,0BAA0B;AAEhC,IAAM,6BAA6B;AAEnC,IAAM,6BAA6B;AAEnC,IAAM,oCAAsC;AAAA,EAC/C,gBAAY;AAAA,IACZ,wBAA0B,WAAO;AAAA,IACjC,eAAiB,WAAO;AAAA,IACxB,YAAc,WAAO;AAAA,IACrB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,sCAAwC,gBAAY;AAAA,EAC/D,wBAA0B,WAAO;AAAA,EACjC,eAAiB,WAAO;AAAA,EACxB,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AACtB,CAAC;AAEM,IAAM,mCAAmC;AAEzC,IAAM,sCAAsC;AAE5C,IAAM,sCAAsC;AAG5C,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACvkB9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,GAAG;AAAA,IAC/C,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB;AAAA,IAC7B,aAAa,CAAC,cAAc,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IACzE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB,iBAAiB;AAAA,IAChD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,SAAS,UAAU,WAAW,UAAU;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC,SAAS,UAAU,WAAW,UAAU;AAAA,IACtD,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB,YAAY;AAAA,IAC1C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB,YAAY;AAAA,IAC1C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB,YAAY;AAAA,IAC1C,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACzPA,YAAYC,SAAO;AAOZ,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACS9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC7BA,YAAYC,SAAO;AAIZ,IAAM,0BAA4B,gBAAY;AAAA,EACnD,GAAG,sBAAsB;AAAA,EACzB,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,MAAQ,WAAO;AAAA,EACf,YAAc,WAAO;AAAA,EACrB,OAAS,WAAO;AAClB,CAAC;AAOM,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACF9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,YAAY,YAAY,QAAQ,cAAc,OAAO;AAAA,IACnE,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC7BA,YAAYC,SAAO;AAIZ,IAAM,4BAA8B,gBAAY;AAAA,EACrD,GAAG,sBAAsB;AAAA,EACzB,aAAe,aAAW,WAAO,CAAC;AAAA,EAClC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,iBAAmB,aAAW,WAAO,CAAC;AAAA,EACtC,gBAAkB,aAAW,WAAO,CAAC;AAAA,EACrC,uBAAyB,aAAW,WAAO,CAAC;AAAA,EAC5C,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,eAAiB,aAAW,WAAO,CAAC;AAAA,EACpC,cAAgB,aAAW,WAAO,CAAC;AAAA,EACnC,qBAAuB,aAAW,WAAO,CAAC;AAAA,EAC1C,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC7D,CAAC;AAOM,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;ACb9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;AC9CA,YAAYC,SAAO;AAIZ,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,YAAc,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACnD,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,gCAAkC,gBAAY;AAAA,EACzD,GAAG,sBAAsB;AAAA,EACzB,YAAc,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACnD,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAChC,CAAC;AAGM,IAAM,8CAAgD,gBAAY;AAAA,EACvE,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,2BAA6B,gBAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,YAAc,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACnD,iBAAmB,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACxD,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,QAAU,aAAW,WAAO,CAAC;AAAA,EAC7B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,+BAAiC,gBAAY;AAAA,EACxD,GAAG,sBAAsB;AAAA,EACzB,YAAc,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACnD,QAAU,aAAW,WAAO,CAAC;AAC/B,CAAC;AAGM,IAAM,6BAA+B,gBAAY;AAAA,EACtD,GAAG,sBAAsB;AAAA,EACzB,iBAAmB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EACpE,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,cAAgB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AACnE,CAAC;AAGM,IAAM,2BAA6B,gBAAY;AAAA,EACpD,GAAG,sBAAsB;AAAA,EACzB,YAAc,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACnD,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC/D,CAAC;AAGM,IAAM,4BAA8B,gBAAY;AAAA,EACrD,GAAG,sBAAsB;AAAA,EACzB,YAAc,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC;AAAA,EACnD,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,GAAK,aAAW,WAAO,CAAC;AAAA,EACxB,UAAY,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC7D,SAAW,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAC9D,CAAC;AAGM,IAAM,wCAA0C,gBAAY;AAAA,EACjE,GAAG,sBAAsB;AAAA,EACzB,GAAK,WAAO;AACd,CAAC;AAGM,IAAM,qCAAuC,gBAAY;AAAA,EAC9D,GAAG,sBAAsB;AAAA,EACzB,iBAAmB,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AACtE,CAAC;AAGM,IAAM,iCAAmC,gBAAY;AAAA,EAC1D,GAAG,sBAAsB;AAAA,EACzB,OAAS,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAU,aAAW,SAAO,YAAQ,GAAK,cAAU,MAAM,CAAC,CAAC;AAAA,EAC3D,SAAW,aAAW,WAAO,CAAC;AAAA,EAC9B,cAAgB,aAAW,WAAO,CAAC;AACrC,CAAC;AAGM,IAAM,mCAAqC,gBAAY;AAAA,EAC5D,iBAAmB,aAAW,WAAO,CAAC;AACxC,CAAC;AAMM,IAAM,6BAA+B;AAAA,EACxC,gBAAY;AAAA,IACZ,iBAAmB,WAAO;AAAA,IAC1B,YAAc,WAAO;AAAA,IACrB,gBAAkB,WAAO;AAAA,IACzB,kBAAoB,WAAO;AAAA,IAC3B,kBAAoB,WAAO;AAAA,IAC3B,mBAAqB,WAAO;AAAA,IAC5B,qBAAuB,WAAO;AAAA,IAC9B,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,+BAAiC,gBAAY;AAAA,EACxD,iBAAmB,WAAO;AAAA,EAC1B,YAAc,WAAO;AAAA,EACrB,gBAAkB,WAAO;AAAA,EACzB,kBAAoB,WAAO;AAAA,EAC3B,kBAAoB,WAAO;AAAA,EAC3B,mBAAqB,WAAO;AAAA,EAC5B,qBAAuB,WAAO;AAAA,EAC9B,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AACtB,CAAC;AAEM,IAAM,4BAA4B;AAElC,IAAM,+BAA+B;AAErC,IAAM,+BAA+B;AAErC,IAAM,uCAAyC;AAAA,EAClD,gBAAY;AAAA,IACZ,aAAe,WAAO;AAAA,IACtB,iBAAmB,WAAO;AAAA,IAC1B,YAAc,WAAO;AAAA,IACrB,cAAgB,WAAO;AAAA,IACvB,oBAAsB,WAAO;AAAA,IAC7B,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,YAAc,aAAW,WAAO,CAAC;AAAA,IACjC,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,YAAc,aAAW,WAAO,CAAC;AAAA,EACnC,CAAC;AACH;AAEO,IAAM,gCAAkC,gBAAY;AAAA,EACzD,kBAAoB,WAAO;AAAA,EAC3B,iBAAmB,WAAO;AAAA,EAC1B,mBAAqB,WAAO;AAAA,EAC5B,YAAc,WAAO;AAAA,EACrB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AACtB,CAAC;AAEM,IAAM,gCAAgC;AAEtC,IAAM,4CAA8C;AAAA,EACvD,gBAAY;AAAA,IACZ,mBAAqB,WAAO;AAAA,IAC5B,kBAAoB,WAAO;AAAA,IAC3B,YAAc,WAAO;AAAA,IACrB,oBAAsB,WAAO;AAAA,IAC7B,qBAAuB,WAAO;AAAA,IAC9B,qBAAuB,WAAO;AAAA,IAC9B,yBAA2B,WAAO;AAAA,IAClC,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,aAAe,WAAO;AAAA,IACtB,UAAY,aAAW,WAAO,CAAC;AAAA,EACjC,CAAC;AACH;AAEO,IAAM,8CAAgD,gBAAY;AAAA,EACvE,mBAAqB,WAAO;AAAA,EAC5B,kBAAoB,WAAO;AAAA,EAC3B,YAAc,WAAO;AAAA,EACrB,oBAAsB,WAAO;AAAA,EAC7B,qBAAuB,WAAO;AAAA,EAC9B,qBAAuB,WAAO;AAAA,EAC9B,yBAA2B,WAAO;AAAA,EAClC,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,aAAe,WAAO;AAAA,EACtB,UAAY,aAAW,WAAO,CAAC;AACjC,CAAC;AAEM,IAAM,2CAA2C;AAEjD,IAAM,8CACX;AAEK,IAAM,8CACX;AAEK,IAAM,yBAAyB;AAE/B,IAAM,6BAA6B;AAEnC,IAAM,wBAA0B,gBAAY;AAAA,EACjD,aAAe,WAAO;AAAA,EACtB,iBAAmB,WAAO;AAAA,EAC1B,YAAc,WAAO;AAAA,EACrB,cAAgB,WAAO;AAAA,EACvB,oBAAsB,WAAO;AAAA,EAC7B,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,YAAc,aAAW,WAAO,CAAC;AAAA,EACjC,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,YAAc,aAAW,WAAO,CAAC;AACnC,CAAC;AAEM,IAAM,2BAA2B;AAEjC,IAAM,2BAA2B;AAEjC,IAAM,iCAAiC;AAEvC,IAAM,2BAA6B;AAAA,EACtC,gBAAY;AAAA,IACZ,eAAiB,WAAO;AAAA,IACxB,cAAgB,WAAO;AAAA,IACvB,iBAAmB,WAAO;AAAA,IAC1B,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,UAAY,aAAW,WAAO,CAAC;AAAA,IAC/B,cAAgB,WAAO;AAAA,IACvB,MAAQ,aAAW,WAAO,CAAC;AAAA,IAC3B,SAAW,WAAO;AAAA,IAClB,YAAc,WAAO;AAAA,IACrB,WAAa,aAAW,WAAO,CAAC;AAAA,IAChC,sBAAwB,aAAW,WAAO,CAAC;AAAA,EAC7C,CAAC;AACH;AAEO,IAAM,6BAA+B,gBAAY;AAAA,EACtD,eAAiB,WAAO;AAAA,EACxB,cAAgB,WAAO;AAAA,EACvB,iBAAmB,WAAO;AAAA,EAC1B,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,UAAY,aAAW,WAAO,CAAC;AAAA,EAC/B,cAAgB,WAAO;AAAA,EACvB,MAAQ,aAAW,WAAO,CAAC;AAAA,EAC3B,SAAW,WAAO;AAAA,EAClB,YAAc,WAAO;AAAA,EACrB,WAAa,aAAW,WAAO,CAAC;AAAA,EAChC,sBAAwB,aAAW,WAAO,CAAC;AAC7C,CAAC;AAEM,IAAM,0BAA0B;AAEhC,IAAM,6BAA6B;AAEnC,IAAM,6BAA6B;AAEnC,IAAM,yBAA2B;AAAA,EACpC,gBAAY;AAAA,IACZ,aAAe,WAAO;AAAA,IACtB,YAAc,WAAO;AAAA,IACrB,YAAc,WAAO;AAAA,IACrB,cAAgB,WAAO;AAAA,IACvB,cAAgB,WAAO;AAAA,IACvB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,EACtB,CAAC;AACH;AAEO,IAAM,2BAA6B,gBAAY;AAAA,EACpD,aAAe,WAAO;AAAA,EACtB,YAAc,WAAO;AAAA,EACrB,YAAc,WAAO;AAAA,EACrB,cAAgB,WAAO;AAAA,EACvB,cAAgB,WAAO;AAAA,EACvB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AACtB,CAAC;AAEM,IAAM,wBAAwB;AAE9B,IAAM,2BAA2B;AAEjC,IAAM,2BAA2B;AAEjC,IAAM,0BAA4B;AAAA,EACrC,gBAAY;AAAA,IACZ,cAAgB,WAAO;AAAA,IACvB,aAAe,WAAO;AAAA,IACtB,eAAiB,WAAO;AAAA,IACxB,eAAiB,WAAO;AAAA,IACxB,aAAe,WAAO;AAAA,IACtB,kBAAoB,WAAO;AAAA,IAC3B,UAAY,WAAO;AAAA,IACnB,UAAY,WAAO;AAAA,IACnB,WAAa,WAAO;AAAA,IACpB,YAAc,WAAO;AAAA,IACrB,kBAAoB,WAAO;AAAA,EAC7B,CAAC;AACH;AAEO,IAAM,4BAA8B,gBAAY;AAAA,EACrD,cAAgB,WAAO;AAAA,EACvB,aAAe,WAAO;AAAA,EACtB,eAAiB,WAAO;AAAA,EACxB,eAAiB,WAAO;AAAA,EACxB,aAAe,WAAO;AAAA,EACtB,kBAAoB,WAAO;AAAA,EAC3B,UAAY,WAAO;AAAA,EACnB,UAAY,WAAO;AAAA,EACnB,WAAa,WAAO;AAAA,EACpB,YAAc,WAAO;AAAA,EACrB,kBAAoB,WAAO;AAC7B,CAAC;AAEM,IAAM,yBAAyB;AAE/B,IAAM,4BAA4B;AAElC,IAAM,4BAA4B;AAGlC,IAAMC,0BAA0B,WAAS,WAAO,GAAK,YAAQ,CAAC;;;AC7T9D,IAAMC,cAA2B;AAAA,EACtC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,SAAS,UAAU,WAAW,UAAU;AAAA,IACpE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBC;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,iBAAiB;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,SAAS,UAAU,SAAS;AAAA,IACxD,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,YAAY;AAAA,IACzB,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB;AAAA,IAC/B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB;AAAA,IAC/B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB;AAAA,IAC/B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB;AAAA,IAC/B,aAAa,CAAC,SAAS,UAAU,WAAW,KAAK,UAAU;AAAA,IAC3D,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,kBAAkB;AAAA,IAC/B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,oBAAoB,mBAAmB;AAAA,IACpD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,oBAAoB,mBAAmB;AAAA,IACpD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,oBAAoB,mBAAmB;AAAA,IACpD,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,QAAQ;AAAA,IACpC,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,mBAAmB,SAAS,UAAU,WAAW,cAAc;AAAA,IAC7E,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,IAC5B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,SAAS,UAAU,WAAW,UAAU;AAAA,IACpE,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,aAAa;AAAA,IAC1B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC,cAAc,SAAS,UAAU,WAAW,KAAK,YAAY,SAAS;AAAA,IACpF,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC,GAAG;AAAA,IACjB,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC,iBAAiB;AAAA,IAC/B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC,SAAS,UAAU,WAAW,cAAc;AAAA,IAC1D,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,cAAc;AAAA,IAC3B,aAAa,CAAC,iBAAiB;AAAA,IAC/B,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB,SAAS;AAAA,IACtC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB,SAAS;AAAA,IACtC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS,CAAC;AAAA,IACV,YAAY,CAAC,gBAAgB,SAAS;AAAA,IACtC,aAAa,CAAC;AAAA,IACd,WAAW;AAAA,IACX,gBAAgBA;AAAA,IAChB,cAAc;AAAA,EAChB;AACF;;;ACjqBO,IAAM,kBAAkB;AAAA,EAC7B,CAAC,YAAY,SAAO;AAAA,EACpB,CAAC,WAAWC,UAAM;AAAA,EAClB,CAAC,YAAYA,UAAO;AAAA,EACpB,CAAC,YAAYA,UAAO;AAAA,EACpB,CAAC,WAAWA,UAAO;AAAA,EACnB,CAAC,aAAaA,UAAS;AAAA,EACvB,CAAC,gBAAgBA,UAAW;AAAA,EAC5B,CAAC,YAAYA,UAAQ;AAAA,EACrB,CAAC,aAAaA,UAAS;AAAA,EACvB,CAAC,eAAeA,WAAW;AAAA,EAC3B,CAAC,SAASA,WAAK;AAAA,EACf,CAAC,UAAUA,WAAM;AAAA,EACjB,CAAC,UAAUA,WAAM;AAAA,EACjB,CAAC,aAAaA,WAAS;AAAA,EACvB,CAAC,eAAeA,WAAU;AAAA,EAC1B,CAAC,UAAUA,WAAM;AAAA,EACjB,CAAC,YAAYA,WAAO;AAAA,EACpB,CAAC,YAAYA,WAAO;AAAA,EACpB,CAAC,WAAWA,WAAM;AAAA,EAClB,CAAC,YAAYA,WAAO;AAAA,EACpB,CAAC,YAAYA,WAAQ;AAAA,EACrB,CAAC,WAAWA,WAAO;AAAA,EACnB,CAAC,YAAYA,WAAQ;AAAA,EACrB,CAAC,kBAAkBA,WAAa;AAAA,EAChC,CAAC,OAAOA,WAAG;AAAA,EACX,CAAC,OAAOA,WAAG;AACb;;;AChDO,IAAM,mBAAmB;AAoChC,IAAM,iBAAiB;AAAA,EACrB,CAAC,eAAe,iBAAiB,MAAM;AAAA,EACvC,CAAC,QAAQ,SAAS,MAAM;AAAA,EACxB,CAAC,UAAU,WAAW,QAAQ;AAChC;AAEA,IAAM,YAA+B,OAAO,OAAO,CAAC,CAAC;AAGrD,SAAS,UAAU,SAAyB;AAC1C,SAAO,QAAQ,QAAQ,SAAS,CAAC,GAAG,MAAc,EAAE,YAAY,CAAC;AACnE;AAGA,SAAS,QAAQ,SAAiB,KAA8B;AAC9D,SAAO,OAAO,OAAO;AAAA,IACnB,IAAI,GAAG,UAAU,OAAO,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM;AAAA,IACpD;AAAA,IACA,QAAQ,IAAI;AAAA,IACZ,MAAM,IAAI;AAAA,IACV,YAAY,OAAO,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC;AAAA,IAC7C,aAAa,OAAO,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC;AAAA,IAC/C,SAAS,OAAO,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC;AAAA,IACvC,SAAS,IAAI,WAAW,UAAU,IAAI,WAAW;AAAA,IACjD,MAAM;AAAA,IACN,WAAW,IAAI;AAAA,EACjB,CAAC;AACH;AAGA,SAAS,YAAY,SAAkC;AACrD,SAAO,eAAe;AAAA,IAAI,CAAC,CAAC,OAAO,MAAM,IAAI,MAC3C,OAAO,OAAO;AAAA,MACZ,IAAI,GAAG,UAAU,OAAO,CAAC,IAAI,KAAK;AAAA,MAClC;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,MACA,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,SAAS;AAAA,MACT,SAAS;AAAA,MACT;AAAA,MACA,WAAW;AAAA,IACb,CAAC;AAAA,EACH;AACF;AAEA,IAAI;AAGJ,SAAS,QAAkC;AACzC,QAAM,UAAU,gBAAgB,QAAQ,CAAC,CAAC,SAAS,KAAK,MAAM;AAAA,IAC5D,GAAG,MAAM,IAAI,CAAC,QAAkB,QAAQ,SAAS,GAAG,CAAC;AAAA,IACrD,GAAG,YAAY,OAAO;AAAA,EACxB,CAAC;AAED,UAAQ,KAAK,CAAC,GAAG,MAAO,EAAE,KAAK,EAAE,KAAK,KAAK,CAAE;AAC7C,SAAO,OAAO,OAAO,OAAO;AAC9B;AAGO,SAAS,kBAAmC;AACjD,oBAAU,MAAM;AAChB,SAAO,CAAC,GAAG,KAAK;AAClB;;;AC/FO,IAAM,kCAAkC,mBAAmB,qBAAqB;AAEhF,IAAM,2BAA2B,mBAAmB,cAAc;AAElE,IAAM,6BAA6B,mBAAmB,gBAAgB;;;ACZ7E,IAAM,YAAY,CAAC,SAAyB,KAAK,QAAQ,SAAS,EAAE,EAAE,YAAY;AAclF,IAAM,gBAAgB,oBAAI,IAAI,CAAC,MAAM,YAAY,CAAC;AAClD,IAAM,oBAAoB;AAc1B,IAAM,mBAAmB,oBAAI,IAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAaM,IAAM,uBAAuB,CAAC,gBAAiC;AACpE,QAAM,aAAa,UAAU,WAAW;AACxC,MAAI,iBAAiB,IAAI,UAAU,EAAG,QAAO;AAC7C,MAAI,cAAc,IAAI,UAAU,EAAG,QAAO;AAC1C,SAAO,kBAAkB,KAAK,UAAU;AAC1C;AAMA,IAAM,aAAa;AAmBZ,IAAM,sBAAsB,CACjC,cACA,aACA,UACS;AACT,QAAM,YAAY,qBAAqB,WAAW;AAElD,MAAI,WAAW;AACb,QAAI,CAAC,WAAW,KAAK,KAAK,GAAG;AAC3B,YAAM,IAAI,qBAAqB;AAAA,QAC7B,SAAS,2BAA2B,WAAW,oCAAoC,KAAK,UAAU,KAAK,CAAC;AAAA,QACxG,SAAS;AAAA,QACT,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AACA;AAAA,EACF;AAEA,MAAI,UAAU,IAAI;AAChB,UAAM,IAAI,qBAAqB;AAAA,MAC7B,SAAS,2BAA2B,WAAW,4CAA4C,KAAK,UAAU,KAAK,CAAC;AAAA,MAChH,SAAS;AAAA,MACT,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AACF;;;ACvGA,YAAYC,SAAO;AAgDnB,SAAS,oBAAoB,OAAyC;AACpE,SAAO;AAAA,IACL,UAAU,OAAO,MAAM,EAAE;AAAA,IACzB,SAAS,MAAM;AAAA,IACf,QAAQ,MAAM;AAAA,IACd,QAAQ,MAAM;AAAA,IACd,MAAM,MAAM;AAAA,IACZ,aAAa,GAAG,MAAM,MAAM,IAAI,MAAM,IAAI;AAAA,IAC1C,aAAa,CAAC;AAAA,IACd,kBAAkB,CAAC;AAAA,IACnB,gBAAgB,CAAC;AAAA,IACjB,cAAc;AAAA,EAChB;AACF;AAgFO,IAAe,oBAAf,MAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+CtC,YAAY,aAAqB,MAAkB,SAAiB;AAtCpE;AAAA;AAAA;AAAA,SAAS,cAAc;AAAA,MACrB,KAAK,MACH,KAAK,gBAAgB,iBAAiB,+BAA+B;AAAA,IACzE;AAGA;AAAA,SAAS,kBAAkB;AAAA,MACzB,KAAK,aAAuC,MAAM,KAAK,YAAY,IAAI,GAAG;AAAA,IAC5E;AAGA;AAAA,SAAS,OAAO;AAAA,MACd,KAAK,MACH,KAAK,gBAAgB,SAAS,wBAAwB;AAAA,IAC1D;AAGA;AAAA,SAAS,WAAW;AAAA,MAClB,KAAK,aAAgC,MAAM,KAAK,KAAK,IAAI,GAAG;AAAA,IAC9D;AAGA;AAAA,SAAS,SAAS;AAAA,MAChB,KAAK,MACH,KAAK,gBAAgB,WAAW,0BAA0B;AAAA,IAC9D;AAGA;AAAA,SAAS,aAAa;AAAA,MACpB,KAAK,aAAkC,MAAM,KAAK,OAAO,IAAI,GAAG;AAAA,IAClE;AASE,SAAK,cAAc;AACnB,SAAK,OAAO;AACZ,SAAK,UAAU;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,MAAgB,eACd,QACA,QACA,YACA,OACoB;AACpB,UAAM,WAAW,KAAK,kBAAkB,OAAO,MAAM,UAAU;AAE/D,QAAI;AACF,YAAM,kBAAkB,KAAK,mBAAmB,QAAQ,MAAM;AAC9D,YAAM,WAAW,MAAM,KAAK,mBAAmB,QAAQ,UAAU,iBAAiB,KAAK;AACvF,YAAM,oBAAsB,UAAM,OAAO,gBAAgB,QAAQ;AACjE,aAAO;AAAA,IACT,SAAS,OAAO;AACd,UAAI,iBAAmB,eAAW;AAEhC,cAAM,KAAK,sBAAsB,OAAO,QAAQ,QAAQ,UAAU,UAAU;AAAA,MAC9E;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,gBACN,MACA,gBACoB;AACpB,WAAO,KAAK,eAAqC,EAAE,QAAQ,OAAO,MAAM,eAAe,CAAC;AAAA,EAC1F;AAAA;AAAA;AAAA;AAAA,EAKQ,mBACN,QACA,QACqB;AACrB,QAAI,OAAO,cAAc;AACvB,UAAI;AAEF,eAAS,UAAM,OAAO,cAAc,UAAU,CAAC,CAAC;AAAA,MAClD,SAAS,OAAO;AACd,YAAI,iBAAmB,eAAW;AAEhC,gBAAM,KAAK,sBAAsB,OAAO,QAAQ,QAAQ,OAAO,MAAM,QAAQ;AAAA,QAC/E;AACA,cAAM;AAAA,MACR;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAc,mBACZ,QACA,UACA,iBACA,OACkB;AAClB,UAAM,MAAM,GAAG,KAAK,OAAO,GAAG,QAAQ;AAGtC,UAAM,OAAuB,UAAU,SAAY,CAAC,IAAI,CAAC,KAAK;AAE9D,YAAQ,OAAO,QAAQ;AAAA,MACrB,KAAK;AACH,eAAO,MAAM,KAAK,KAAK,IAAI,KAAK,eAAe;AAAA,MACjD,KAAK;AACH,eAAO,MAAM,KAAK,KAAK,KAAK,KAAK,iBAAiB,GAAG,IAAI;AAAA,MAC3D,KAAK;AACH,eAAO,MAAM,KAAK,KAAK,IAAI,KAAK,iBAAiB,GAAG,IAAI;AAAA,MAC1D,KAAK;AACH,eAAO,MAAM,KAAK,KAAK,OAAO,KAAK,GAAG,IAAI;AAAA,MAC5C;AACE,cAAM,IAAI,MAAM,4BAA4B,OAAO,MAAM,EAAE;AAAA,IAC/D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,sBACN,cACA,QACA,QACA,UACA,WACiB;AACjB,QAAI,UAAU;AACd,QAAI,cAAc;AAElB,QAAI,cAAc,UAAU;AAC1B,gBAAU;AACV,oBAAc;AAAA,uBAA0B,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,IACzE,WAAW,cAAc,YAAY;AACnC,gBAAU;AACV,oBACE;AAAA,IACJ,OAAO;AAEL,YAAM,iBAAiB,CAAC,CAAC,OAAO;AAChC,UAAI,kBAAkB,WAAW,QAAW;AAC1C,kBAAU;AACV,sBAAc;AAAA,uBAA0B,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,MACzE,WAAW,CAAC,gBAAgB;AAC1B,kBAAU;AACV,sBACE;AAAA,MACJ;AAAA,IACF;AAEA,UAAM,kBAAkB,IAAI,gBAAgB;AAAA,MAC1C;AAAA,MACA,SAAS,KAAK;AAAA,MACd;AAAA,MACA,kBAAkB,aAAa,OAAO,IAAI,YAAU;AAAA,QAClD,OAAO,MAAM,QAAQ,CAAC,GAAG,IAAI,aAAW,QAAQ,GAAsB;AAAA,QACtE,SAAS,MAAM;AAAA;AAAA,QAEf,MAAM,MAAM,QAAQ;AAAA,MACtB,EAAE;AAAA,IACJ,CAAC;AAED,QAAI,aAAa;AACf,sBAAgB,WAAW;AAAA,IAC7B;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeQ,kBACN,cACA,YACQ;AACR,QAAI,CAAC,YAAY;AACf,aAAO;AAAA,IACT;AAKA,UAAMC,aAAY,CAAC,MAAsB,EAAE,QAAQ,SAAS,EAAE,EAAE,YAAY;AAE5E,QAAI,OAAO;AACX,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AACrD,YAAM,cAAc,OAAO,KAAK;AAEhC,UAAI,KAAK,SAAS,IAAI,GAAG,GAAG,GAAG;AAC7B,4BAAoB,cAAc,KAAK,WAAW;AAClD,eAAO,KAAK,QAAQ,IAAI,GAAG,KAAK,WAAW;AAAA,MAC7C,OAAO;AAEL,cAAM,UAAUA,WAAU,GAAG;AAC7B,eAAO,KAAK,QAAQ,gBAAgB,CAAC,OAAO,gBAAwB;AAClE,cAAIA,WAAU,WAAW,MAAM,SAAS;AACtC,gCAAoB,cAAc,aAAa,WAAW;AAC1D,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,uBAAiD;AAC/C,UAAMC,cAAY,gBAAgB,EAC/B,OAAO,WAAS,MAAM,YAAY,KAAK,WAAW,EAClD,IAAI,mBAAmB;AAE1B,WAAO;AAAA,MACL,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK,sBAAsB;AAAA,MACxC,SAAS,KAAK;AAAA,MACd,WAAAA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKU,wBAAgC;AACxC,WAAO,GAAG,KAAK,WAAW;AAAA,EAC5B;AACF;;;ACjaA,YAAYC,SAAO;AAwCnB,IAAM,4BAA8B,gBAAY;AAAA,EAC9C,OAAS,WAAO;AAAA,EAChB,MAAQ,YAAQ;AAAA,EAChB,SAAW,WAAO;AAAA,EAClB,SAAW,YAAQ;AAAA,EACnB,QAAU,YAAQ;AAAA,EAClB,QAAU,WAAO;AAAA,EACjB,OAAS,WAAO;AAAA,EAChB,cAAgB,WAAO;AACzB,CAAC;AAGD,IAAM,0BAA4B,gBAAY,CAAC,CAAC;AAWhD,SAAS,kBAAkBC,aAAwC;AACjE,QAAM,OAAqB,EAAE,SAAS,oBAAI,IAAI,GAAG,UAAU,oBAAI,IAAI,EAAE;AAErE,aAAW,MAAMA,aAAW;AAC1B,UAAM,QAAQ,GAAG,MAAM,MAAM,GAAG;AAChC,QAAI,OAAO;AAEX,eAAW,QAAQ,OAAO;AACxB,UAAI,CAAC,KAAK,SAAS,IAAI,IAAI,GAAG;AAC5B,aAAK,SAAS,IAAI,MAAM,EAAE,SAAS,oBAAI,IAAI,GAAG,UAAU,oBAAI,IAAI,EAAE,CAAC;AAAA,MACrE;AACA,aAAO,KAAK,SAAS,IAAI,IAAI;AAAA,IAC/B;AAEA,SAAK,QAAQ,IAAI,GAAG,QAAQ,EAAE;AAC9B,eAAW,SAAS,GAAG,SAAS;AAC9B,WAAK,QAAQ,IAAI,OAAO,EAAE;AAAA,IAC5B;AAAA,EACF;AAEA,SAAO;AACT;AASO,SAAS,mBACd,aACA,gBACAA,aACG;AACH,QAAM,OAAO,kBAAkBA,WAAS;AACxC,SAAO,iBAAiB,aAAa,gBAAgB,IAAI;AAC3D;AAQA,SAAS,iBACP,aACA,gBACA,MACyB;AACzB,QAAM,MAA+B,CAAC;AAGtC,aAAW,CAAC,QAAQ,QAAQ,KAAK,KAAK,QAAQ,QAAQ,GAAG;AACvD,QAAI,MAAM,IAAI,qBAAqB,aAAa,gBAAgB,QAAQ;AAAA,EAC1E;AAGA,aAAW,CAAC,WAAW,SAAS,KAAK,KAAK,SAAS,QAAQ,GAAG;AAC5D,QAAI,SAAS,IAAI,iBAAiB,aAAa,gBAAgB,SAAS;AAAA,EAC1E;AAEA,SAAO;AACT;AAGA,SAAS,cACP,YACA,MAC2D;AAC3D,QAAM,eAAuC,CAAC;AAC9C,MAAI,QAAQ;AACZ,aAAW,QAAQ,YAAY;AAC7B,QAAI,SAAS,KAAK,QAAQ;AACxB;AAAA,IACF;AACA,iBAAa,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC;AACvC;AAAA,EACF;AACA,SAAO,EAAE,cAAc,MAAM,KAAK,MAAM,KAAK,EAAE;AACjD;AAWA,SAAS,kBAAkB,QAAoB,MAAoD;AACjG,MAAI,WAAW,UAAU,WAAW,OAAO;AACzC,WAAO,EAAE,MAAM,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,EAAE;AAAA,EACzC;AACA,MAAI,WAAW,UAAU;AACvB,WAAO,EAAE,MAAM,QAAW,OAAO,KAAK,CAAC,EAAE;AAAA,EAC3C;AACA,SAAO,EAAE,MAAM,KAAK,CAAC,GAAG,OAAO,OAAU;AAC3C;AAoBO,SAAS,yBAAyB,QAAiB,UAA6B;AACrF,MAAI,CAAC,UAAU,OAAO,WAAW,YAAY,MAAM,QAAQ,MAAM,KAAK,SAAS,WAAW,GAAG;AAC3F,WAAO;AAAA,EACT;AAEA,QAAM,SAAS;AACf,QAAM,SAAS,IAAI,IAAI,QAAQ;AAM/B,QAAM,MAA+B,EAAE,GAAG,OAAO;AACjD,MAAI,UAAU;AAEd,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,UAAM,QAAQ,IAAI,QAAQ,gBAAgB,CAAC,IAAI,MAAc,EAAE,YAAY,CAAC;AAC5E,QAAI,UAAU,OAAO,CAAC,OAAO,IAAI,KAAK,GAAG;AACvC;AAAA,IACF;AAIA,cAAU;AACV,WAAO,IAAI,GAAG;AACd,QAAI,EAAE,SAAS,SAAS;AACtB,UAAI,KAAK,IAAI;AAAA,IACf;AAAA,EACF;AAEA,SAAO,UAAU,MAAM;AACzB;AAQA,SAAS,qBACP,cACA,gBACA,UAC0C;AAC1C,QAAM,EAAE,QAAQ,MAAM,WAAW,IAAI;AAErC,SAAO,UAAU,SAAsC;AACrD,UAAM,EAAE,cAAc,KAAK,IAAI,cAAc,YAAY,IAAI;AAC7D,UAAM,EAAE,MAAM,OAAO,SAAS,IAAI,kBAAkB,QAAsB,IAAI;AAK9E,UAAM,iBAAiB,SAAS,YAAY,SAAS;AAIrD,UAAM,QAAQ;AAAA,MACZ,iBAAiB,WAAW;AAAA,MAC5B,SAAS;AAAA,IACX;AAIA,UAAM,aAAa,CAAC,UAClB,WAAW,QAAQ,yBAAyB,OAAO,SAAS,WAAW,IAAI;AAC7E,UAAM,SAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA,GAAI,iBAAiB,EAAE,cAAc,wBAAwB,IAAI,CAAC;AAAA,MAClE,gBAAgB;AAAA,IAClB;AASA,QAAI,OAAO,KAAK,YAAY,EAAE,SAAS,GAAG;AAIxC,YAAM,SAAS,WAAW,iBAAiB,OAAQ,QAAQ,CAAC,CAAE;AAC9D,aAAO,UAAU,SACb,eAAe,QAAQ,QAAQ,YAAY,IAC3C,eAAe,QAAQ,QAAQ,cAAc,KAAK;AAAA,IACxD;AACA,QAAI,kBAAkB,SAAS,QAAW;AACxC,aAAO,UAAU,SACb,eAAe,QAAQ,WAAW,IAAI,CAAC,IACvC,eAAe,QAAQ,WAAW,IAAI,GAAG,QAAW,KAAK;AAAA,IAC/D;AAGA,WAAO,eAAe,MAAM;AAAA,EAC9B;AACF;AASO,SAAS,gBAAmB,UAA0B;AAC3D,QAAM,MAA+B,CAAC;AACtC,QAAM,MAAM;AAEZ,aAAW,OAAO,OAAO,KAAK,GAAG,GAAG;AAClC,UAAM,QAAQ,IAAI,GAAG;AAErB,QAAI,OAAO,UAAU,YAAY;AAE/B,YAAM,UAAU;AAChB,UAAI,GAAG,IAAI,UAAU,SAAoB;AACvC,cAAM,KAAK,IAAI,OAAO;AACtB,cAAM,WAAY,MAAM,GAAG,GAAG,IAAI;AAClC,eAAO,UAAU;AAAA,MACnB;AAAA,IACF,WAAW,SAAS,OAAO,UAAU,UAAU;AAC7C,UAAI,GAAG,IAAI,gBAAgB,KAAK;AAAA,IAClC,OAAO;AACL,UAAI,GAAG,IAAI;AAAA,IACb;AAAA,EACF;AAEA,SAAO;AACT;;;AC3TO,IAAM,eAAN,cAA2B,kBAAkB;AAAA,EAqBlD,YAAY,MAAkB,UAAkB,gCAAgC;AAC9E,UAAM,UAAU,MAAM,OAAO;AAE7B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAqC,UAAU,qBAAqBC,WAAS;AAC3F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,aAAa,MAAM;AACxB,SAAK,aAAa,MAAM;AACxB,SAAK,UAAU,MAAM;AACrB,SAAK,OAAO,MAAM;AAClB,SAAK,UAAU,MAAM;AACrB,SAAK,OAAO,MAAM;AAClB,SAAK,aAAa,MAAM;AACxB,SAAK,QAAQ,MAAM;AAGnB,SAAK,iBAAiB,UAAU;AAChC,SAAK,iBAAiB,UAAU;AAChC,SAAK,cAAc,UAAU;AAC7B,SAAK,WAAW,UAAU;AAC1B,SAAK,cAAc,UAAU;AAC7B,SAAK,WAAW,UAAU;AAC1B,SAAK,iBAAiB,UAAU;AAChC,SAAK,YAAY,UAAU;AAAA,EAC7B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;AChEO,IAAM,iBAAN,cAA6B,kBAAkB;AAAA,EAWpD,YAAY,MAAkB,UAAkB,kCAAkC;AAChF,UAAM,YAAY,MAAM,OAAO;AAE/B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACAC;AAAA,IACF;AACA,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,UAAU,MAAM;AACrB,SAAK,WAAW,MAAM;AACtB,SAAK,WAAW,MAAM;AAGtB,SAAK,cAAc,UAAU;AAC7B,SAAK,eAAe,UAAU;AAC9B,SAAK,eAAe,UAAU;AAAA,EAChC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;AChDO,IAAM,gBAAN,cAA4B,kBAAkB;AAAA,EAanD,YAAY,MAAkB,UAAkB,iCAAiC;AAC/E,UAAM,WAAW,MAAM,OAAO;AAE9B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAsC,WAAW,qBAAqBC,WAAS;AAC7F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,cAAc,MAAM;AACzB,SAAK,cAAc,MAAM;AACzB,SAAK,YAAY,MAAM;AACvB,SAAK,aAAa,MAAM;AAGxB,SAAK,kBAAkB,UAAU;AACjC,SAAK,kBAAkB,UAAU;AACjC,SAAK,gBAAgB,UAAU;AAC/B,SAAK,iBAAiB,UAAU;AAAA,EAClC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;AChDO,IAAM,YAAN,cAAwB,kBAAkB;AAAA,EAiB/C,YAAY,MAAkB,UAAkB,6BAA6B;AAC3E,UAAM,OAAO,MAAM,OAAO;AAE1B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAkC,OAAO,qBAAqBC,WAAS;AACrF,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,eAAe,MAAM;AAC1B,SAAK,gBAAgB,MAAM;AAC3B,SAAK,WAAW,MAAM;AACtB,SAAK,aAAa,MAAM;AACxB,SAAK,WAAW,MAAM;AACtB,SAAK,YAAY,MAAM;AAGvB,SAAK,mBAAmB,UAAU;AAClC,SAAK,oBAAoB,UAAU;AACnC,SAAK,eAAe,UAAU;AAC9B,SAAK,iBAAiB,UAAU;AAChC,SAAK,eAAe,UAAU;AAC9B,SAAK,gBAAgB,UAAU;AAAA,EACjC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACxDO,IAAM,mBAAN,cAA+B,kBAAkB;AAAA,EAetD,YAAY,MAAkB,UAAkB,qCAAqC;AACnF,UAAM,eAAe,MAAM,OAAO;AAElC,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACAC;AAAA,IACF;AACA,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,aAAa,MAAM;AACxB,SAAK,mBAAmB,MAAM;AAC9B,SAAK,QAAQ,MAAM;AACnB,SAAK,sBAAsB,MAAM;AACjC,SAAK,cAAc,MAAM;AAGzB,SAAK,iBAAiB,UAAU;AAChC,SAAK,uBAAuB,UAAU;AACtC,SAAK,YAAY,UAAU;AAC3B,SAAK,0BAA0B,UAAU;AACzC,SAAK,kBAAkB,UAAU;AAAA,EACnC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACxDO,IAAM,cAAN,cAA0B,kBAAkB;AAAA,EAyCjD,YAAY,MAAkB,UAAkB,+BAA+B;AAC7E,UAAM,SAAS,MAAM,OAAO;AAE5B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAoC,SAAS,qBAAqBC,WAAS;AACzF,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,kBAAkB,MAAM;AAC7B,SAAK,aAAa,MAAM;AACxB,SAAK,SAAS,MAAM;AACpB,SAAK,aAAa,MAAM;AACxB,SAAK,YAAY,MAAM;AACvB,SAAK,WAAW,MAAM;AACtB,SAAK,SAAS,MAAM;AACpB,SAAK,UAAU,MAAM;AACrB,SAAK,eAAe,MAAM;AAC1B,SAAK,kBAAkB,MAAM;AAC7B,SAAK,YAAY,MAAM;AACvB,SAAK,eAAe,MAAM;AAC1B,SAAK,gBAAgB,MAAM;AAC3B,SAAK,UAAU,MAAM;AACrB,SAAK,eAAe,MAAM;AAC1B,SAAK,YAAY,MAAM;AACvB,SAAK,MAAM,MAAM;AACjB,SAAK,WAAW,MAAM;AAGtB,SAAK,sBAAsB,UAAU;AACrC,SAAK,iBAAiB,UAAU;AAChC,SAAK,aAAa,UAAU;AAC5B,SAAK,iBAAiB,UAAU;AAChC,SAAK,gBAAgB,UAAU;AAC/B,SAAK,eAAe,UAAU;AAC9B,SAAK,aAAa,UAAU;AAC5B,SAAK,cAAc,UAAU;AAC7B,SAAK,mBAAmB,UAAU;AAClC,SAAK,sBAAsB,UAAU;AACrC,SAAK,gBAAgB,UAAU;AAC/B,SAAK,mBAAmB,UAAU;AAClC,SAAK,oBAAoB,UAAU;AACnC,SAAK,cAAc,UAAU;AAC7B,SAAK,mBAAmB,UAAU;AAClC,SAAK,gBAAgB,UAAU;AAC/B,SAAK,UAAU,UAAU;AACzB,SAAK,eAAe,UAAU;AAAA,EAChC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACxGO,IAAM,eAAN,cAA2B,kBAAkB;AAAA,EAelD,YAAY,MAAkB,UAAkB,gCAAgC;AAC9E,UAAM,UAAU,MAAM,OAAO;AAE7B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAqC,UAAU,qBAAqBC,WAAS;AAC3F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,YAAY,MAAM;AACvB,SAAK,UAAU,MAAM;AACrB,SAAK,eAAe,MAAM;AAC1B,SAAK,SAAS,MAAM;AACpB,SAAK,SAAS,MAAM;AAGpB,SAAK,gBAAgB,UAAU;AAC/B,SAAK,cAAc,UAAU;AAC7B,SAAK,mBAAmB,UAAU;AAClC,SAAK,aAAa,UAAU;AAC5B,SAAK,aAAa,UAAU;AAAA,EAC9B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACpDO,IAAM,gBAAN,cAA4B,kBAAkB;AAAA,EA2BnD,YAAY,MAAkB,UAAkB,kCAAkC;AAChF,UAAM,YAAY,MAAM,OAAO;AAE/B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAsC,YAAY,qBAAqBC,UAAS;AAC9F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,UAAU,MAAM;AACrB,SAAK,YAAY,MAAM;AACvB,SAAK,kBAAkB,MAAM;AAC7B,SAAK,sBAAsB,MAAM;AACjC,SAAK,YAAY,MAAM;AACvB,SAAK,gBAAgB,MAAM;AAC3B,SAAK,aAAa,MAAM;AACxB,SAAK,sBAAsB,MAAM;AACjC,SAAK,WAAW,MAAM;AACtB,SAAK,WAAW,MAAM;AACtB,SAAK,QAAQ,MAAM;AAGnB,SAAK,cAAc,UAAU;AAC7B,SAAK,gBAAgB,UAAU;AAC/B,SAAK,sBAAsB,UAAU;AACrC,SAAK,0BAA0B,UAAU;AACzC,SAAK,gBAAgB,UAAU;AAC/B,SAAK,oBAAoB,UAAU;AACnC,SAAK,iBAAiB,UAAU;AAChC,SAAK,0BAA0B,UAAU;AACzC,SAAK,eAAe,UAAU;AAC9B,SAAK,eAAe,UAAU;AAC9B,SAAK,YAAY,UAAU;AAAA,EAC7B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;AC5EO,IAAM,kBAAN,cAA8B,kBAAkB;AAAA,EAerD,YAAY,MAAkB,UAAkB,mCAAmC;AACjF,UAAM,aAAa,MAAM,OAAO;AAEhC,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACAC;AAAA,IACF;AACA,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,WAAW,MAAM;AACtB,SAAK,aAAa,MAAM;AACxB,SAAK,WAAW,MAAM;AACtB,SAAK,qBAAqB,MAAM;AAChC,SAAK,SAAS,MAAM;AAGpB,SAAK,eAAe,UAAU;AAC9B,SAAK,iBAAiB,UAAU;AAChC,SAAK,eAAe,UAAU;AAC9B,SAAK,yBAAyB,UAAU;AACxC,SAAK,aAAa,UAAU;AAAA,EAC9B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACxDO,IAAM,eAAN,cAA2B,kBAAkB;AAAA,EAiBlD,YAAY,MAAkB,UAAkB,gCAAgC;AAC9E,UAAM,UAAU,MAAM,OAAO;AAE7B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAqC,UAAU,qBAAqBC,WAAS;AAC3F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,aAAa,MAAM;AACxB,SAAK,QAAQ,MAAM;AACnB,SAAK,gBAAgB,MAAM;AAC3B,SAAK,cAAc,MAAM;AACzB,SAAK,QAAQ,MAAM;AACnB,SAAK,SAAS,MAAM;AAGpB,SAAK,iBAAiB,UAAU;AAChC,SAAK,YAAY,UAAU;AAC3B,SAAK,oBAAoB,UAAU;AACnC,SAAK,kBAAkB,UAAU;AACjC,SAAK,YAAY,UAAU;AAC3B,SAAK,aAAa,UAAU;AAAA,EAC9B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACxDO,IAAM,eAAN,cAA2B,kBAAkB;AAAA,EAelD,YAAY,MAAkB,UAAkB,iCAAiC;AAC/E,UAAM,WAAW,MAAM,OAAO;AAE9B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAqC,WAAW,qBAAqBC,WAAS;AAC5F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,aAAa,MAAM;AACxB,SAAK,eAAe,MAAM;AAC1B,SAAK,cAAc,MAAM;AACzB,SAAK,QAAQ,MAAM;AACnB,SAAK,WAAW,MAAM;AAGtB,SAAK,iBAAiB,UAAU;AAChC,SAAK,mBAAmB,UAAU;AAClC,SAAK,kBAAkB,UAAU;AACjC,SAAK,YAAY,UAAU;AAC3B,SAAK,eAAe,UAAU;AAAA,EAChC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACpDO,IAAM,iBAAN,cAA6B,kBAAkB;AAAA,EAepD,YAAY,MAAkB,UAAkB,kCAAkC;AAChF,UAAM,YAAY,MAAM,OAAO;AAE/B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACAC;AAAA,IACF;AACA,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,UAAU,MAAM;AACrB,SAAK,UAAU,MAAM;AACrB,SAAK,SAAS,MAAM;AACpB,SAAK,WAAW,MAAM;AACtB,SAAK,UAAU,MAAM;AAGrB,SAAK,cAAc,UAAU;AAC7B,SAAK,cAAc,UAAU;AAC7B,SAAK,aAAa,UAAU;AAC5B,SAAK,eAAe,UAAU;AAC9B,SAAK,cAAc,UAAU;AAAA,EAC/B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACxDO,IAAM,gBAAN,cAA4B,kBAAkB;AAAA,EAqBnD,YAAY,MAAkB,UAAkB,kCAAkC;AAChF,UAAM,YAAY,MAAM,OAAO;AAE/B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAsC,YAAY,qBAAqB,SAAS;AAC9F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,SAAS,MAAM;AACpB,SAAK,UAAU,MAAM;AACrB,SAAK,SAAS,MAAM;AACpB,SAAK,gBAAgB,MAAM;AAC3B,SAAK,SAAS,MAAM;AACpB,SAAK,UAAU,MAAM;AACrB,SAAK,QAAQ,MAAM;AACnB,SAAK,YAAY,MAAM;AAGvB,SAAK,aAAa,UAAU;AAC5B,SAAK,cAAc,UAAU;AAC7B,SAAK,aAAa,UAAU;AAC5B,SAAK,oBAAoB,UAAU;AACnC,SAAK,aAAa,UAAU;AAC5B,SAAK,cAAc,UAAU;AAC7B,SAAK,YAAY,UAAU;AAC3B,SAAK,gBAAgB,UAAU;AAAA,EACjC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;AChEO,IAAM,eAAN,cAA2B,kBAAkB;AAAA,EAelD,YAAY,MAAkB,UAAkB,iCAAiC;AAC/E,UAAM,WAAW,MAAM,OAAO;AAE9B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAqC,WAAW,qBAAqBC,UAAS;AAC5F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,UAAU,MAAM;AACrB,SAAK,UAAU,MAAM;AACrB,SAAK,YAAY,MAAM;AACvB,SAAK,QAAQ,MAAM;AACnB,SAAK,QAAQ,MAAM;AAGnB,SAAK,cAAc,UAAU;AAC7B,SAAK,cAAc,UAAU;AAC7B,SAAK,gBAAgB,UAAU;AAC/B,SAAK,YAAY,UAAU;AAC3B,SAAK,YAAY,UAAU;AAAA,EAC7B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACxDO,IAAM,gBAAN,cAA4B,kBAAkB;AAAA,EACnD,YAAY,MAAkB,UAAkB,kCAAkC;AAChF,UAAM,YAAY,MAAM,OAAO;AAAA,EACjC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACJO,IAAM,gBAAN,cAA4B,kBAAkB;AAAA,EAOnD,YAAY,MAAkB,UAAkB,iCAAiC;AAC/E,UAAM,WAAW,MAAM,OAAO;AAE9B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAsC,WAAW,qBAAqBC,UAAS;AAC7F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,QAAQ,MAAM;AAGnB,SAAK,YAAY,UAAU;AAAA,EAC7B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACpCO,IAAM,oBAAN,cAAgC,kBAAkB;AAAA,EAOvD,YAAY,MAAkB,UAAkB,sCAAsC;AACpF,UAAM,gBAAgB,MAAM,OAAO;AAEnC,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACAC;AAAA,IACF;AACA,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,aAAa,MAAM;AAGxB,SAAK,iBAAiB,UAAU;AAAA,EAClC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACxCO,IAAM,oBAAN,cAAgC,kBAAkB;AAAA,EAWvD,YAAY,MAAkB,UAAkB,qCAAqC;AACnF,UAAM,eAAe,MAAM,OAAO;AAElC,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACAC;AAAA,IACF;AACA,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,UAAU,MAAM;AACrB,SAAK,YAAY,MAAM;AACvB,SAAK,SAAS,MAAM;AAGpB,SAAK,cAAc,UAAU;AAC7B,SAAK,gBAAgB,UAAU;AAC/B,SAAK,aAAa,UAAU;AAAA,EAC9B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;AChDO,IAAM,kBAAN,cAA8B,kBAAkB;AAAA,EAiBrD,YAAY,MAAkB,UAAkB,mCAAmC;AACjF,UAAM,aAAa,MAAM,OAAO;AAEhC,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACAC;AAAA,IACF;AACA,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,QAAQ,MAAM;AACnB,SAAK,MAAM,MAAM;AACjB,SAAK,kBAAkB,MAAM;AAC7B,SAAK,UAAU,MAAM;AACrB,SAAK,YAAY,MAAM;AACvB,SAAK,MAAM,MAAM;AAGjB,SAAK,YAAY,UAAU;AAC3B,SAAK,UAAU,UAAU;AACzB,SAAK,sBAAsB,UAAU;AACrC,SAAK,cAAc,UAAU;AAC7B,SAAK,gBAAgB,UAAU;AAC/B,SAAK,UAAU,UAAU;AAAA,EAC3B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;AC5DO,IAAM,gBAAN,cAA4B,kBAAkB;AAAA,EAmBnD,YAAY,MAAkB,UAAkB,kCAAkC;AAChF,UAAM,YAAY,MAAM,OAAO;AAE/B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAsC,YAAY,qBAAqBC,WAAS;AAC9F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,iBAAiB,MAAM;AAC5B,SAAK,kBAAkB,MAAM;AAC7B,SAAK,gBAAgB,MAAM;AAC3B,SAAK,eAAe,MAAM;AAC1B,SAAK,4BAA4B,MAAM;AACvC,SAAK,YAAY,MAAM;AACvB,SAAK,sBAAsB,MAAM;AAGjC,SAAK,qBAAqB,UAAU;AACpC,SAAK,sBAAsB,UAAU;AACrC,SAAK,oBAAoB,UAAU;AACnC,SAAK,mBAAmB,UAAU;AAClC,SAAK,gCAAgC,UAAU;AAC/C,SAAK,gBAAgB,UAAU;AAC/B,SAAK,0BAA0B,UAAU;AAAA,EAC3C;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;AC5DO,IAAM,gBAAN,cAA4B,kBAAkB;AAAA,EAmBnD,YAAY,MAAkB,UAAkB,kCAAkC;AAChF,UAAM,YAAY,MAAM,OAAO;AAE/B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAsC,YAAY,qBAAqBC,WAAS;AAC9F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,UAAU,MAAM;AACrB,SAAK,aAAa,MAAM;AACxB,SAAK,UAAU,MAAM;AACrB,SAAK,UAAU,MAAM;AACrB,SAAK,cAAc,MAAM;AACzB,SAAK,WAAW,MAAM;AACtB,SAAK,eAAe,MAAM;AAG1B,SAAK,cAAc,UAAU;AAC7B,SAAK,iBAAiB,UAAU;AAChC,SAAK,cAAc,UAAU;AAC7B,SAAK,cAAc,UAAU;AAC7B,SAAK,kBAAkB,UAAU;AACjC,SAAK,eAAe,UAAU;AAC9B,SAAK,mBAAmB,UAAU;AAAA,EACpC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;AC5DO,IAAM,gBAAN,cAA4B,kBAAkB;AAAA,EASnD,YAAY,MAAkB,UAAkB,kCAAkC;AAChF,UAAM,YAAY,MAAM,OAAO;AAE/B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAsC,YAAY,qBAAqBC,WAAS;AAC9F,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,SAAS,MAAM;AACpB,SAAK,wBAAwB,MAAM;AAGnC,SAAK,aAAa,UAAU;AAC5B,SAAK,4BAA4B,UAAU;AAAA,EAC7C;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACxCO,IAAM,iBAAN,cAA6B,kBAAkB;AAAA,EAOpD,YAAY,MAAkB,UAAkB,kCAAkC;AAChF,UAAM,YAAY,MAAM,OAAO;AAE/B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACAC;AAAA,IACF;AACA,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,QAAQ,MAAM;AAGnB,SAAK,YAAY,UAAU;AAAA,EAC7B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACxCO,IAAM,sBAAN,cAAkC,kBAAkB;AAAA,EAOzD,YAAY,MAAkB,UAAkB,wCAAwC;AACtF,UAAM,kBAAkB,MAAM,OAAO;AAErC,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACAC;AAAA,IACF;AACA,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,KAAK,MAAM;AAGhB,SAAK,SAAS,UAAU;AAAA,EAC1B;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACxCO,IAAM,YAAN,cAAwB,kBAAkB;AAAA,EAO/C,YAAY,MAAkB,UAAkB,6BAA6B;AAC3E,UAAM,OAAO,MAAM,OAAO;AAE1B,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ,mBAAkC,OAAO,qBAAqBC,WAAS;AACrF,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,YAAY,MAAM;AAGvB,SAAK,gBAAgB,UAAU;AAAA,EACjC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACpCO,IAAM,kBAAN,cAA8B,kBAAkB;AAAA,EAqBrD,YAAY,MAAkB,UAAkB,mCAAmC;AACjF,UAAM,aAAa,MAAM,OAAO;AAEhC,UAAM,sBAAsB,CAC1B,QACA,QACA,YACA,UACuB;AAIvB,aAAO,KAAK,eAAe,QAAQ,QAAQ,YAAY,KAAK;AAAA,IAC9D;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACAC;AAAA,IACF;AACA,UAAM,YAAY,gBAAgB,KAAK;AAGvC,SAAK,WAAW,MAAM;AACtB,SAAK,SAAS,MAAM;AACpB,SAAK,UAAU,MAAM;AACrB,SAAK,SAAS,MAAM;AACpB,SAAK,WAAW,MAAM;AACtB,SAAK,YAAY,MAAM;AACvB,SAAK,QAAQ,MAAM;AACnB,SAAK,eAAe,MAAM;AAG1B,SAAK,eAAe,UAAU;AAC9B,SAAK,aAAa,UAAU;AAC5B,SAAK,cAAc,UAAU;AAC7B,SAAK,aAAa,UAAU;AAC5B,SAAK,eAAe,UAAU;AAC9B,SAAK,gBAAgB,UAAU;AAC/B,SAAK,YAAY,UAAU;AAC3B,SAAK,mBAAmB,UAAU;AAAA,EACpC;AAAA,EAEU,wBAAgC;AACxC,WAAO;AAAA,EACT;AACF;;;ACkEO,IAAM,YAAN,MAAM,UAAS;AAAA,EAgCpB,YAAY,QAAwB;AAClC,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,YAA6B;AAClC,WAAO,gBAAgB;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2BA,OAAO,YAAY,SAAuB,UAAmC,CAAC,GAAa;AAEzF,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,qBAAqB,uBAAuB,SAAS;AAAA,IACjE;AAEA,QAAI,CAAC,QAAQ,QAAQ;AACnB,YAAM,IAAI,qBAAqB,+BAA+B,QAAQ;AAAA,IACxE;AAGA,UAAM,cAAc,QAAQ,OAAO,QAAQ;AAC3C,QAAI,CAAC,aAAa;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAGA,UAAM,SAAyB;AAAA,MAC7B,QAAQ,QAAQ;AAAA,MAChB;AAAA,MACA,GAAG;AAAA;AAAA,IACL;AAEA,WAAO,IAAI,UAAS,MAAM;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAuB;AACzB,QAAI,CAAC,KAAK,SAAS;AACjB,YAAM,aAAa,IAAI,WAAW,UAAU,KAAK,MAAM;AACvD,WAAK,UAAU,IAAI,aAAa,UAAU;AAAA,IAC5C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAA2B;AAC7B,QAAI,CAAC,KAAK,WAAW;AACnB,YAAM,aAAa,IAAI,WAAW,YAAY,KAAK,MAAM;AACzD,WAAK,YAAY,IAAI,eAAe,UAAU;AAAA,IAChD;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAyB;AAC3B,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,aAAa,IAAI,WAAW,WAAW,KAAK,MAAM;AACxD,WAAK,WAAW,IAAI,cAAc,UAAU;AAAA,IAC9C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAiB;AACnB,QAAI,CAAC,KAAK,MAAM;AACd,YAAM,aAAa,IAAI,WAAW,OAAO,KAAK,MAAM;AACpD,WAAK,OAAO,IAAI,UAAU,UAAU;AAAA,IACtC;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAA+B;AACjC,QAAI,CAAC,KAAK,aAAa;AACrB,YAAM,aAAa,IAAI,WAAW,eAAe,KAAK,MAAM;AAC5D,WAAK,cAAc,IAAI,iBAAiB,UAAU;AAAA,IACpD;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,aAA+B;AACjC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAqB;AACvB,QAAI,CAAC,KAAK,QAAQ;AAChB,YAAM,aAAa,IAAI,WAAW,SAAS,KAAK,MAAM;AACtD,WAAK,SAAS,IAAI,YAAY,UAAU;AAAA,IAC1C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAuB;AACzB,QAAI,CAAC,KAAK,SAAS;AACjB,YAAM,aAAa,IAAI,WAAW,UAAU,KAAK,MAAM;AACvD,WAAK,UAAU,IAAI,aAAa,UAAU;AAAA,IAC5C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAyB;AAC3B,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,aAAa,IAAI,WAAW,YAAY,KAAK,MAAM;AACzD,WAAK,WAAW,IAAI,cAAc,UAAU;AAAA,IAC9C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAA6B;AAC/B,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,aAAa,IAAI,WAAW,aAAa,KAAK,MAAM;AAC1D,WAAK,aAAa,IAAI,gBAAgB,UAAU;AAAA,IAClD;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAuB;AACzB,QAAI,CAAC,KAAK,SAAS;AACjB,YAAM,aAAa,IAAI,WAAW,UAAU,KAAK,MAAM;AACvD,WAAK,UAAU,IAAI,aAAa,UAAU;AAAA,IAC5C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAuB;AACzB,QAAI,CAAC,KAAK,SAAS;AACjB,YAAM,aAAa,IAAI,WAAW,WAAW,KAAK,MAAM;AACxD,WAAK,UAAU,IAAI,aAAa,UAAU;AAAA,IAC5C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAA2B;AAC7B,QAAI,CAAC,KAAK,WAAW;AACnB,YAAM,aAAa,IAAI,WAAW,YAAY,KAAK,MAAM;AACzD,WAAK,YAAY,IAAI,eAAe,UAAU;AAAA,IAChD;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAyB;AAC3B,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,aAAa,IAAI,WAAW,YAAY,KAAK,MAAM;AACzD,WAAK,WAAW,IAAI,cAAc,UAAU;AAAA,IAC9C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAuB;AACzB,QAAI,CAAC,KAAK,SAAS;AACjB,YAAM,aAAa,IAAI,WAAW,WAAW,KAAK,MAAM;AACxD,WAAK,UAAU,IAAI,aAAa,UAAU;AAAA,IAC5C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAyB;AAC3B,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,aAAa,IAAI,WAAW,YAAY,KAAK,MAAM;AACzD,WAAK,WAAW,IAAI,cAAc,UAAU;AAAA,IAC9C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAyB;AAC3B,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,aAAa,IAAI,WAAW,WAAW,KAAK,MAAM;AACxD,WAAK,WAAW,IAAI,cAAc,UAAU;AAAA,IAC9C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAiC;AACnC,QAAI,CAAC,KAAK,cAAc;AACtB,YAAM,aAAa,IAAI,WAAW,gBAAgB,KAAK,MAAM;AAC7D,WAAK,eAAe,IAAI,kBAAkB,UAAU;AAAA,IACtD;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAiC;AACnC,QAAI,CAAC,KAAK,cAAc;AACtB,YAAM,aAAa,IAAI,WAAW,eAAe,KAAK,MAAM;AAC5D,WAAK,eAAe,IAAI,kBAAkB,UAAU;AAAA,IACtD;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAA6B;AAC/B,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,aAAa,IAAI,WAAW,aAAa,KAAK,MAAM;AAC1D,WAAK,aAAa,IAAI,gBAAgB,UAAU;AAAA,IAClD;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAyB;AAC3B,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,aAAa,IAAI,WAAW,YAAY,KAAK,MAAM;AACzD,WAAK,WAAW,IAAI,cAAc,UAAU;AAAA,IAC9C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAyB;AAC3B,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,aAAa,IAAI,WAAW,YAAY,KAAK,MAAM;AACzD,WAAK,WAAW,IAAI,cAAc,UAAU;AAAA,IAC9C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAyB;AAC3B,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,aAAa,IAAI,WAAW,YAAY,KAAK,MAAM;AACzD,WAAK,WAAW,IAAI,cAAc,UAAU;AAAA,IAC9C;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAA2B;AAC7B,QAAI,CAAC,KAAK,WAAW;AACnB,YAAM,aAAa,IAAI,WAAW,YAAY,KAAK,MAAM;AACzD,WAAK,YAAY,IAAI,eAAe,UAAU;AAAA,IAChD;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,gBAAqC;AACvC,QAAI,CAAC,KAAK,gBAAgB;AACxB,YAAM,aAAa,IAAI,WAAW,kBAAkB,KAAK,MAAM;AAC/D,WAAK,iBAAiB,IAAI,oBAAoB,UAAU;AAAA,IAC1D;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAiB;AACnB,QAAI,CAAC,KAAK,MAAM;AACd,YAAM,aAAa,IAAI,WAAW,OAAO,KAAK,MAAM;AACpD,WAAK,OAAO,IAAI,UAAU,UAAU;AAAA,IACtC;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAA6B;AAC/B,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,aAAa,IAAI,WAAW,aAAa,KAAK,MAAM;AAC1D,WAAK,aAAa,IAAI,gBAAgB,UAAU;AAAA,IAClD;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,aAA2B;AACtC,SAAK,OAAO,cAAc;AAE1B,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,WAAW;AAChB,SAAK,OAAO;AACZ,SAAK,cAAc;AACnB,SAAK,SAAS;AACd,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,aAAa;AAClB,SAAK,UAAU;AACf,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,eAAe;AACpB,SAAK,eAAe;AACpB,SAAK,aAAa;AAClB,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,YAAY;AACjB,SAAK,iBAAiB;AACtB,SAAK,OAAO;AACZ,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,QAAsB;AAC9B,SAAK,OAAO,SAAS;AAErB,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,WAAW;AAChB,SAAK,OAAO;AACZ,SAAK,cAAc;AACnB,SAAK,SAAS;AACd,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,aAAa;AAClB,SAAK,UAAU;AACf,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,eAAe;AACpB,SAAK,eAAe;AACpB,SAAK,aAAa;AAClB,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,YAAY;AACjB,SAAK,iBAAiB;AACtB,SAAK,OAAO;AACZ,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4BA,MAAM,WAAkC;AACtC,UAAM,UAAU;AAAA,MACd,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAEA,WAAO,QAAQ,IAAI,YAAU;AAC3B,YAAM,WAAW,OAAO,qBAAqB;AAC7C,aAAO;AAAA,QACL,aAAa,SAAS;AAAA,QACtB,aAAa,SAAS;AAAA,QACtB,SAAS,SAAS;AAAA,QAClB,eAAe,SAAS,UAAU;AAAA,QAClC,WAAW,SAAS;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiCA,MAAM,aACJ,YACA,UAWI,CAAC,GAC4B;AACjC,UAAM,EAAE,WAAW,KAAK,aAAa,IAAI,SAAS,QAAQ,WAAW,MAAM,IAAI;AAG/E,QAAI,CAAC,WAAW,KAAK,GAAG;AACtB,aAAO,CAAC;AAAA,IACV;AAGA,UAAM,oBAAoB,MAAM,KAAK,qBAAqB,EAAE,SAAS,QAAQ,SAAS,CAAC;AAGvF,UAAM,UAAU,KAAK,wBAAwB,mBAAmB,YAAY;AAAA,MAC1E;AAAA,MACA;AAAA,IACF,CAAC;AAGD,WAAO,QAAQ,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,qBAAqB,SAIF;AAC/B,UAAM,EAAE,SAAS,QAAQ,SAAS,IAAI;AACtC,UAAM,WAAW,MAAM,KAAK,SAAS;AACrC,QAAI,oBAAoB,SAAS,QAAQ,OAAK,EAAE,SAAS;AAEzD,QAAI,SAAS;AACX,0BAAoB,kBAAkB,OAAO,OAAK,EAAE,YAAY,OAAO;AAAA,IACzE;AAEA,QAAI,QAAQ;AACV,0BAAoB,kBAAkB,OAAO,OAAK,EAAE,WAAW,MAAM;AAAA,IACvE;AAEA,QAAI,UAAU;AACZ,0BAAoB,kBAAkB,OAAO,OAAK,EAAE,WAAW,KAAK;AAAA,IACtE;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,wBACNC,aACA,YACA,SACwB;AACxB,UAAM,EAAE,QAAQ,SAAS,IAAI;AAC7B,UAAM,UAAkC,CAAC;AACzC,UAAM,kBAAkB,WAAW,YAAY;AAE/C,eAAW,YAAYA,aAAW;AAEhC,UAAI,CAAC,KAAK,gBAAgB,QAAQ,GAAG;AACnC;AAAA,MACF;AAEA,YAAM,EAAE,YAAY,iBAAiB,IAAI,KAAK;AAAA,QAC5C;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI,cAAc,UAAU;AAC1B,gBAAQ,KAAK;AAAA,UACX;AAAA,UACA,OAAO;AAAA,UACP,aAAa;AAAA,QACf,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,gBAAgB,UAAsC;AAC5D,WAAO,CAAC,EAAE,SAAS,UAAU,SAAS,eAAe,SAAS;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA,EAKQ,oBACN,UACA,iBACA,QACkD;AAClD,UAAM,EAAE,OAAO,YAAY,IAAI,KAAK,2BAA2B,UAAU,eAAe;AAGxF,QAAI,UAAU,UAAU,GAAG;AACzB,aAAO;AAAA,QACL,YAAY;AAAA,QACZ,kBAAkB;AAAA,MACpB;AAAA,IACF;AAEA,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,kBAAkB;AAAA,IACpB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,2BACN,UACA,iBACwC;AACxC,UAAM,eAAe,KAAK,sBAAsB,UAAU,eAAe;AACzE,UAAM,iBAAiB,KAAK,wBAAwB,UAAU,eAAe;AAG7E,QAAI,aAAa,QAAQ,GAAG;AAC1B,aAAO,KAAK,oBAAoB,cAAc,cAAc;AAAA,IAC9D;AAGA,WAAO,KAAK,uBAAuB,UAAU,iBAAiB,cAAc;AAAA,EAC9E;AAAA;AAAA;AAAA;AAAA,EAKQ,oBACN,cACA,gBACwC;AAExC,QAAI,KAAK,iBAAiB,aAAa,MAAM,GAAG;AAC9C,aAAO;AAAA,QACL,OAAO,aAAa;AAAA,QACpB,aAAa,aAAa;AAAA,MAC5B;AAAA,IACF;AAGA,QAAI,KAAK,kBAAkB,aAAa,MAAM,GAAG;AAC/C,YAAM,aAAa,KAAK,IAAI,aAAa,QAAQ,eAAe,OAAO,CAAG;AAC1E,aAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa,aAAa;AAAA,MAC5B;AAAA,IACF;AAGA,WAAO;AAAA,MACL,OAAO,aAAa;AAAA,MACpB,aAAa,aAAa;AAAA,IAC5B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,iBAAiB,QAAyB;AAChD,WAAO,WAAW,mBAAmB,OAAO,WAAW,mBAAmB;AAAA,EAC5E;AAAA;AAAA;AAAA;AAAA,EAKQ,kBAAkB,QAAyB;AACjD,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,WAAO,kBAAkB,SAAS,MAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKQ,uBACN,UACA,iBACA,gBACwC;AACxC,UAAM,mBAAmB,KAAK,0BAA0B,UAAU,eAAe;AAEjF,QAAI,iBAAiB,QAAQ,eAAe,OAAO;AACjD,aAAO;AAAA,QACL,OAAO,iBAAiB;AAAA,QACxB,aAAa,iBAAiB;AAAA,MAChC;AAAA,IACF;AAEA,WAAO;AAAA,MACL,OAAO,eAAe;AAAA,MACtB,aAAa,eAAe,UAAU;AAAA,IACxC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,sBACN,UACA,iBACmC;AAInC,UAAM,aAAa,KAAK,uBAAuB,UAAU,eAAe;AACxE,QAAI,WAAW,QAAQ,GAAG;AACxB,aAAO;AAAA,IACT;AAGA,UAAM,YAAY,KAAK,wBAAwB,UAAU,eAAe;AACxE,QAAI,UAAU,QAAQ,GAAG;AACvB,aAAO;AAAA,IACT;AAEA,UAAM,qBAAqB,KAAK,+BAA+B,UAAU,eAAe;AACxF,QAAI,mBAAmB,QAAQ,GAAG;AAChC,aAAO;AAAA,IACT;AAGA,UAAM,YAAY,KAAK,4BAA4B,UAAU,eAAe;AAC5E,QAAI,UAAU,QAAQ,GAAG;AACvB,aAAO;AAAA,IACT;AAGA,UAAM,sBAAsB,KAAK,2BAA2B,UAAU,eAAe;AACrF,QAAI,oBAAoB,QAAQ,GAAG;AACjC,aAAO;AAAA,IACT;AAEA,WAAO,EAAE,OAAO,GAAG,QAAQ,GAAG;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKQ,wBACN,UACA,iBACmC;AACnC,QACE,SAAS,aACR,SAAS,SAAS,YAAY,EAAE,SAAS,eAAe,KACvD,gBAAgB,SAAS,SAAS,SAAS,YAAY,CAAC,IAC1D;AACA,aAAO,EAAE,OAAO,KAAK,QAAQ,uBAAuB;AAAA,IACtD;AAEA,WAAO,EAAE,OAAO,GAAG,QAAQ,GAAG;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKQ,+BACN,UACA,iBACmC;AACnC,QAAI,SAAS,eAAe,SAAS,YAAY,YAAY,EAAE,SAAS,eAAe,GAAG;AACxF,aAAO,EAAE,OAAO,MAAM,QAAQ,8BAA8B;AAAA,IAC9D;AAEA,WAAO,EAAE,OAAO,GAAG,QAAQ,GAAG;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKQ,2BACN,UACA,iBACmC;AACnC,QAAI,SAAS,UAAU,SAAS,OAAO,YAAY,EAAE,SAAS,eAAe,GAAG;AAC9E,aAAO,EAAE,OAAO,KAAK,QAAQ,eAAe;AAAA,IAC9C;AAEA,QAAI,SAAS,WAAW,SAAS,QAAQ,YAAY,EAAE,SAAS,eAAe,GAAG;AAChF,aAAO,EAAE,OAAO,KAAK,QAAQ,gBAAgB;AAAA,IAC/C;AAEA,WAAO,EAAE,OAAO,GAAG,QAAQ,GAAG;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKQ,uBACN,UACA,iBACmC;AACnC,QAAI,SAAS,UAAU,SAAS,OAAO,YAAY,MAAM,iBAAiB;AACxE,aAAO,EAAE,OAAO,KAAK,QAAQ,eAAe;AAAA,IAC9C;AAEA,QAAI,SAAS,WAAW,SAAS,QAAQ,YAAY,MAAM,iBAAiB;AAC1E,aAAO,EAAE,OAAO,KAAK,QAAQ,gBAAgB;AAAA,IAC/C;AAEA,QAAI,SAAS,YAAY,SAAS,SAAS,YAAY,MAAM,iBAAiB;AAC5E,aAAO,EAAE,OAAO,GAAK,QAAQ,kBAAkB;AAAA,IACjD;AAEA,QAAI,SAAS,eAAe,SAAS,YAAY,YAAY,MAAM,iBAAiB;AAClF,aAAO,EAAE,OAAO,KAAK,QAAQ,oBAAoB;AAAA,IACnD;AAEA,WAAO,EAAE,OAAO,GAAG,QAAQ,GAAG;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKQ,4BACN,UACA,iBACmC;AACnC,QAAI,MAAM,QAAQ,SAAS,WAAW,GAAG;AACvC,YAAM,oBAAoB,SAAS,YAAY;AAAA,QAC7C,UAAQ,QAAQ,OAAO,SAAS,YAAY,KAAK,YAAY,EAAE,SAAS,eAAe;AAAA,MACzF;AACA,UAAI,kBAAkB,SAAS,GAAG;AAChC,eAAO,EAAE,OAAO,KAAK,QAAQ,sBAAsB,kBAAkB,CAAC,CAAC,GAAG;AAAA,MAC5E;AAAA,IACF;AAEA,QAAI,MAAM,QAAQ,SAAS,cAAc,GAAG;AAC1C,YAAM,iBAAiB,SAAS,eAAe,OAAO,aAAW;AAC/D,YAAI,CAAC,WAAW,OAAO,YAAY,SAAU,QAAO;AACpD,cAAM,eAAe,QAAQ,YAAY;AACzC,eAAO,aAAa,SAAS,eAAe;AAAA,MAC9C,CAAC;AACD,UAAI,eAAe,SAAS,GAAG;AAC7B,eAAO,EAAE,OAAO,KAAK,QAAQ,sBAAsB;AAAA,MACrD;AAAA,IACF;AAEA,WAAO,EAAE,OAAO,GAAG,QAAQ,GAAG;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKQ,wBACN,UACA,iBACyD;AACzD,UAAM,UAAU,KAAK,oBAAoB,QAAQ;AACjD,UAAM,cAAc,KAAK,iBAAiB,iBAAiB,OAAO;AAElE,WAAO,KAAK,wBAAwB,aAAa,eAAe;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA,EAKQ,oBAAoB,UAAqC;AAC/D,UAAM,cAAc,MAAM,QAAQ,SAAS,WAAW,IAAI,SAAS,cAAc,CAAC;AAClF,UAAM,iBAAiB,MAAM,QAAQ,SAAS,cAAc,IAAI,SAAS,iBAAiB,CAAC;AAE3F,WAAO;AAAA,MACL,SAAS,YAAY;AAAA,MACrB,SAAS,eAAe;AAAA,MACxB,SAAS,UAAU;AAAA,MACnB,SAAS,WAAW;AAAA,MACpB,GAAG;AAAA,MACH,GAAG;AAAA,IACL,EACG,OAAO,UAAQ,OAAO,SAAS,QAAQ,EACvC,KAAK,GAAG,EACR,YAAY;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA,EAKQ,iBAAiB,iBAAyB,SAAyB;AACzE,UAAM,cAAc,gBAAgB,MAAM,KAAK,EAAE,OAAO,UAAQ,KAAK,SAAS,CAAC;AAC/E,QAAI,cAAc;AAElB,eAAW,QAAQ,aAAa;AAC9B,UAAI,KAAK,SAAS,KAAK,QAAQ,SAAS,IAAI,GAAG;AAC7C;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,wBACN,aACA,iBACyD;AACzD,QAAI,cAAc,GAAG;AACnB,YAAM,cAAc,gBAAgB,MAAM,KAAK,EAAE,OAAO,UAAQ,KAAK,SAAS,CAAC;AAC/E,YAAM,eAAgB,cAAc,YAAY,SAAU;AAC1D,YAAM,aAAa,uBAAuB,WAAW,IAAI,YAAY,MAAM;AAC3E,aAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,MACf;AAAA,IACF;AAEA,WAAO,EAAE,OAAO,GAAG,QAAQ,IAAI,aAAa,GAAG;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKQ,0BACN,UACA,iBACmC;AACnC,UAAM,cAAc,gBAAgB,MAAM,KAAK,EAAE,OAAO,UAAQ,KAAK,SAAS,CAAC;AAG/E,QAAI,YAAY,UAAU,GAAG;AAC3B,aAAO,EAAE,OAAO,GAAG,QAAQ,GAAG;AAAA,IAChC;AAEA,QAAI,YAAY;AAChB,QAAI,aAAa;AACjB,UAAM,eAAyB,CAAC;AAGhC,eAAW,QAAQ,aAAa;AAC9B,YAAM,YAAY,KAAK,sBAAsB,UAAU,IAAI;AAC3D,UAAI,UAAU,QAAQ,GAAG;AAEvB,YAAI,UAAU,QAAQ,WAAW;AAC/B,sBAAY,UAAU;AACtB,uBAAa,UAAU;AAAA,QACzB;AACA,qBAAa,KAAK,IAAI;AAAA,MACxB;AAAA,IACF;AAGA,QAAI,aAAa,SAAS,GAAG;AAE3B,YAAM,aAAa,KAAK,KAAK,aAAa,SAAS,KAAK,KAAK,GAAG;AAChE,YAAM,aAAa,KAAK,IAAI,YAAY,YAAY,CAAG;AAEvD,aAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ,qBAAqB,aAAa,MAAM,IAAI,YAAY,MAAM,YAAY,UAAU;AAAA,MAC9F;AAAA,IACF;AAGA,QAAI,YAAY,GAAG;AACjB,aAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,IACF;AAEA,WAAO,EAAE,OAAO,GAAG,QAAQ,GAAG;AAAA,EAChC;AACF;AAAA;AA9hCa,UA8BK,kBAAkB;AA9B7B,IAAM,WAAN;;;AC5EP,eAAsB,wBACpB,QAC8B;AAC9B,QAAM,EAAE,cAAc,UAAU,UAAU,eAAe,IAAI;AAE7D,MAAI;AAEF,UAAM,eAAe,IAAI,SAAS;AAAA,MAChC,QAAQ;AAAA,MACR,aAAa;AAAA,IACf,CAAC;AAGD,UAAM,eAAgB,MAAM,aAAa,OAAO,MAAM,eAAe,OAAO;AAAA,MAC1E;AAAA,MACA;AAAA,MACA,QAAQ;AAAA;AAAA,IACV,CAAC;AAED,UAAM,OAAO,aAAa;AAC1B,QAAI,KAAK,YAAY;AAEnB,YAAM,gBAAgB,IAAI,SAAS;AAAA,QACjC,QAAQ;AAAA,QACR,aAAa,KAAK;AAAA,MACpB,CAAC;AAED,aAAO;AAAA,QACL,SAAS;AAAA,QACT,QAAS,KAAK,IAA2B,SAAS;AAAA,QAClD,UAAU,KAAK;AAAA,QACf,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK;AAAA,QACZ;AAAA,QACA;AAAA,MACF;AAAA,IACF,OAAO;AACL,aAAO;AAAA,QACL,SAAS;AAAA,QACT;AAAA,QACA,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,WAAO;AAAA,MACL,SAAS;AAAA,MACT;AAAA,MACA,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,IAClD;AAAA,EACF;AACF;AAmBO,SAAS,6BAA6B,gBAAwB;AACnE,SAAO,OACL,cACA,UACA,aACiC;AACjC,WAAO,wBAAwB;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;AC3JO,IAAM,UAAU;","names":["record","_","v","v","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","CategoriesListParamsSchema","UsersListParamsSchema","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","v","PassthroughDataSchema","endpoints","PassthroughDataSchema","endpoints","v","normalise","endpoints","v","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints","endpoints"]}