@robinpath/vercel
Advanced tools
+36
-7
| { | ||
| "name": "@robinpath/vercel", | ||
| "version": "0.1.0", | ||
| "publishConfig": { "access": "public" }, | ||
| "version": "0.1.1", | ||
| "publishConfig": { | ||
| "access": "public" | ||
| }, | ||
| "type": "module", | ||
| "main": "dist/index.js", | ||
| "types": "dist/index.d.ts", | ||
| "exports": { ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" } }, | ||
| "files": ["dist"], | ||
| "scripts": { "build": "tsc" }, | ||
| "peerDependencies": { "@wiredwp/robinpath": ">=0.20.0" }, | ||
| "devDependencies": { "@wiredwp/robinpath": "^0.30.1", "typescript": "^5.6.0" } | ||
| "exports": { | ||
| ".": { | ||
| "import": "./dist/index.js", | ||
| "types": "./dist/index.d.ts" | ||
| } | ||
| }, | ||
| "files": [ | ||
| "dist" | ||
| ], | ||
| "scripts": { | ||
| "build": "tsc" | ||
| }, | ||
| "peerDependencies": { | ||
| "@robinpath/core": ">=0.20.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@robinpath/core": "^0.30.1", | ||
| "typescript": "^5.6.0" | ||
| }, | ||
| "description": "Vercel module for RobinPath.", | ||
| "keywords": [ | ||
| "vercel", | ||
| "devops" | ||
| ], | ||
| "license": "MIT", | ||
| "robinpath": { | ||
| "category": "devops", | ||
| "type": "integration", | ||
| "auth": "bearer-token", | ||
| "functionCount": 30, | ||
| "baseUrl": "https://api.vercel.com" | ||
| } | ||
| } |
| import type { ModuleAdapter } from "@wiredwp/robinpath"; | ||
| declare const VercelModule: ModuleAdapter; | ||
| export default VercelModule; | ||
| export { VercelModule }; | ||
| export { VercelFunctions, VercelFunctionMetadata, VercelModuleMetadata } from "./vercel.js"; | ||
| //# sourceMappingURL=index.d.ts.map |
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,QAAA,MAAM,YAAY,EAAE,aAMnB,CAAC;AAEF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"} |
| import { VercelFunctions, VercelFunctionMetadata, VercelModuleMetadata } from "./vercel.js"; | ||
| const VercelModule = { | ||
| name: "vercel", | ||
| functions: VercelFunctions, | ||
| functionMetadata: VercelFunctionMetadata, | ||
| moduleMetadata: VercelModuleMetadata, | ||
| global: false, | ||
| }; // as ModuleAdapter | ||
| export default VercelModule; | ||
| export { VercelModule }; | ||
| export { VercelFunctions, VercelFunctionMetadata, VercelModuleMetadata } from "./vercel.js"; | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE5F,MAAM,YAAY,GAAkB;IAClC,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,eAAe;IAC1B,gBAAgB,EAAE,sBAA6B;IAC/C,cAAc,EAAE,oBAA2B;IAC3C,MAAM,EAAE,KAAK;CACd,CAAC,CAAC,mBAAmB;AAEtB,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"} |
-394
| import type { BuiltinHandler } from "@wiredwp/robinpath"; | ||
| export declare const VercelFunctions: Record<string, BuiltinHandler>; | ||
| export declare const VercelFunctionMetadata: { | ||
| setToken: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listProjects: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getProject: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| createProject: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| updateProject: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| deleteProject: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listDeployments: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getDeployment: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| createDeployment: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| cancelDeployment: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| deleteDeployment: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| redeployDeployment: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listDomains: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getDomain: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| addDomain: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| removeDomain: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listProjectDomains: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| addProjectDomain: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| removeProjectDomain: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getDomainConfig: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| verifyDomain: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listEnvVars: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getEnvVar: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| createEnvVar: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| updateEnvVar: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| deleteEnvVar: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getUser: { | ||
| description: string; | ||
| parameters: never[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listTeams: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getTeam: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getDeploymentLogs: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| }; | ||
| export declare const VercelModuleMetadata: { | ||
| description: string; | ||
| methods: string[]; | ||
| category: string; | ||
| }; | ||
| //# sourceMappingURL=vercel.d.ts.map |
| {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../src/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,oBAAoB,CAAC;AAmWlG,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAS1D,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6QlC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;CAIhC,CAAC"} |
-640
| // --- Token storage --- | ||
| let apiToken = null; | ||
| function getToken() { | ||
| if (!apiToken) | ||
| throw new Error("Vercel API token not set. Call vercel.setToken first."); | ||
| return apiToken; | ||
| } | ||
| // --- API helpers --- | ||
| const API_BASE = "https://api.vercel.com"; | ||
| async function vercelRequest(path, options = {}) { | ||
| const token = getToken(); | ||
| const headers = { | ||
| Authorization: `Bearer ${token}`, | ||
| "Content-Type": "application/json", | ||
| ...(options.headers ?? {}), | ||
| }; | ||
| const url = path.startsWith("http") ? path : `${API_BASE}${path}`; | ||
| const response = await fetch(url, { ...options, headers }); | ||
| const text = await response.text(); | ||
| let body; | ||
| try { | ||
| body = JSON.parse(text); | ||
| } | ||
| catch { | ||
| body = text; | ||
| } | ||
| if (!response.ok) { | ||
| const errMsg = typeof body === "object" && body !== null && "error" in body | ||
| ? JSON.stringify(body.error) | ||
| : String(body); | ||
| throw new Error(`Vercel API error (${response.status}): ${errMsg}`); | ||
| } | ||
| return body; | ||
| } | ||
| function buildQuery(params) { | ||
| const qs = new URLSearchParams(); | ||
| for (const [k, v] of Object.entries(params)) { | ||
| if (v !== undefined && v !== null && v !== "") | ||
| qs.set(k, String(v)); | ||
| } | ||
| const str = qs.toString(); | ||
| return str ? `?${str}` : ""; | ||
| } | ||
| // --- Auth --- | ||
| const setToken = (args) => { | ||
| const token = String(args[0] ?? ""); | ||
| if (!token) | ||
| throw new Error("token is required"); | ||
| apiToken = token; | ||
| return { configured: true }; | ||
| }; | ||
| // --- Projects --- | ||
| const listProjects = async (args) => { | ||
| const opts = (typeof args[0] === "object" && args[0] !== null ? args[0] : {}); | ||
| const query = buildQuery({ limit: opts.limit, from: opts.from, search: opts.search }); | ||
| const result = await vercelRequest(`/v9/projects${query}`); | ||
| return result; | ||
| }; | ||
| const getProject = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}`); | ||
| return result; | ||
| }; | ||
| const createProject = async (args) => { | ||
| const name = String(args[0] ?? ""); | ||
| if (!name) | ||
| throw new Error("name is required"); | ||
| const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {}); | ||
| const payload = { name }; | ||
| if (opts.framework) | ||
| payload.framework = opts.framework; | ||
| if (opts.gitRepository) | ||
| payload.gitRepository = opts.gitRepository; | ||
| if (opts.buildCommand) | ||
| payload.buildCommand = opts.buildCommand; | ||
| if (opts.rootDirectory) | ||
| payload.rootDirectory = opts.rootDirectory; | ||
| const result = await vercelRequest("/v10/projects", { | ||
| method: "POST", | ||
| body: JSON.stringify(payload), | ||
| }); | ||
| return result; | ||
| }; | ||
| const updateProject = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {}); | ||
| const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}`, { | ||
| method: "PATCH", | ||
| body: JSON.stringify(opts), | ||
| }); | ||
| return result; | ||
| }; | ||
| const deleteProject = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}`, { method: "DELETE" }); | ||
| return { deleted: true, projectId }; | ||
| }; | ||
| // --- Deployments --- | ||
| const listDeployments = async (args) => { | ||
| const opts = (typeof args[0] === "object" && args[0] !== null ? args[0] : {}); | ||
| const query = buildQuery({ | ||
| projectId: opts.projectId, | ||
| limit: opts.limit, | ||
| state: opts.state, | ||
| target: opts.target, | ||
| }); | ||
| const result = await vercelRequest(`/v6/deployments${query}`); | ||
| return result; | ||
| }; | ||
| const getDeployment = async (args) => { | ||
| const deploymentId = String(args[0] ?? ""); | ||
| if (!deploymentId) | ||
| throw new Error("deploymentId is required"); | ||
| const result = await vercelRequest(`/v13/deployments/${encodeURIComponent(deploymentId)}`); | ||
| return result; | ||
| }; | ||
| const createDeployment = async (args) => { | ||
| const name = String(args[0] ?? ""); | ||
| if (!name) | ||
| throw new Error("name is required"); | ||
| const files = args[1]; | ||
| if (!Array.isArray(files)) | ||
| throw new Error("files must be an array"); | ||
| const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {}); | ||
| const payload = { name, files }; | ||
| if (opts.target) | ||
| payload.target = opts.target; | ||
| if (opts.gitSource) | ||
| payload.gitSource = opts.gitSource; | ||
| const result = await vercelRequest("/v13/deployments", { | ||
| method: "POST", | ||
| body: JSON.stringify(payload), | ||
| }); | ||
| return result; | ||
| }; | ||
| const cancelDeployment = async (args) => { | ||
| const deploymentId = String(args[0] ?? ""); | ||
| if (!deploymentId) | ||
| throw new Error("deploymentId is required"); | ||
| const result = await vercelRequest(`/v12/deployments/${encodeURIComponent(deploymentId)}/cancel`, { | ||
| method: "PATCH", | ||
| }); | ||
| return result; | ||
| }; | ||
| const deleteDeployment = async (args) => { | ||
| const deploymentId = String(args[0] ?? ""); | ||
| if (!deploymentId) | ||
| throw new Error("deploymentId is required"); | ||
| await vercelRequest(`/v13/deployments/${encodeURIComponent(deploymentId)}`, { method: "DELETE" }); | ||
| return { deleted: true, deploymentId }; | ||
| }; | ||
| const redeployDeployment = async (args) => { | ||
| const deploymentId = String(args[0] ?? ""); | ||
| if (!deploymentId) | ||
| throw new Error("deploymentId is required"); | ||
| const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {}); | ||
| const payload = { deploymentId, ...opts }; | ||
| const result = await vercelRequest("/v13/deployments", { | ||
| method: "POST", | ||
| body: JSON.stringify(payload), | ||
| }); | ||
| return result; | ||
| }; | ||
| // --- Domains --- | ||
| const listDomains = async (args) => { | ||
| const opts = (typeof args[0] === "object" && args[0] !== null ? args[0] : {}); | ||
| const query = buildQuery({ limit: opts.limit, since: opts.since, until: opts.until }); | ||
| const result = await vercelRequest(`/v5/domains${query}`); | ||
| return result; | ||
| }; | ||
| const getDomain = async (args) => { | ||
| const domain = String(args[0] ?? ""); | ||
| if (!domain) | ||
| throw new Error("domain is required"); | ||
| const result = await vercelRequest(`/v5/domains/${encodeURIComponent(domain)}`); | ||
| return result; | ||
| }; | ||
| const addDomain = async (args) => { | ||
| const domain = String(args[0] ?? ""); | ||
| if (!domain) | ||
| throw new Error("domain is required"); | ||
| const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {}); | ||
| const payload = { name: domain }; | ||
| if (opts.cdnEnabled !== undefined) | ||
| payload.cdnEnabled = opts.cdnEnabled; | ||
| const result = await vercelRequest("/v5/domains", { | ||
| method: "POST", | ||
| body: JSON.stringify(payload), | ||
| }); | ||
| return result; | ||
| }; | ||
| const removeDomain = async (args) => { | ||
| const domain = String(args[0] ?? ""); | ||
| if (!domain) | ||
| throw new Error("domain is required"); | ||
| await vercelRequest(`/v6/domains/${encodeURIComponent(domain)}`, { method: "DELETE" }); | ||
| return { deleted: true, domain }; | ||
| }; | ||
| const listProjectDomains = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/domains`); | ||
| return result; | ||
| }; | ||
| const addProjectDomain = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| const domain = String(args[1] ?? ""); | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| if (!domain) | ||
| throw new Error("domain is required"); | ||
| const result = await vercelRequest(`/v10/projects/${encodeURIComponent(projectId)}/domains`, { | ||
| method: "POST", | ||
| body: JSON.stringify({ name: domain }), | ||
| }); | ||
| return result; | ||
| }; | ||
| const removeProjectDomain = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| const domain = String(args[1] ?? ""); | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| if (!domain) | ||
| throw new Error("domain is required"); | ||
| await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/domains/${encodeURIComponent(domain)}`, { | ||
| method: "DELETE", | ||
| }); | ||
| return { deleted: true, projectId, domain }; | ||
| }; | ||
| const getDomainConfig = async (args) => { | ||
| const domain = String(args[0] ?? ""); | ||
| if (!domain) | ||
| throw new Error("domain is required"); | ||
| const result = await vercelRequest(`/v6/domains/${encodeURIComponent(domain)}/config`); | ||
| return result; | ||
| }; | ||
| const verifyDomain = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| const domain = String(args[1] ?? ""); | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| if (!domain) | ||
| throw new Error("domain is required"); | ||
| const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/domains/${encodeURIComponent(domain)}/verify`, { | ||
| method: "POST", | ||
| }); | ||
| return result; | ||
| }; | ||
| // --- Environment Variables --- | ||
| const listEnvVars = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/env`); | ||
| return result; | ||
| }; | ||
| const getEnvVar = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| const envId = String(args[1] ?? ""); | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| if (!envId) | ||
| throw new Error("envId is required"); | ||
| const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/env/${encodeURIComponent(envId)}`); | ||
| return result; | ||
| }; | ||
| const createEnvVar = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| const key = String(args[1] ?? ""); | ||
| const value = String(args[2] ?? ""); | ||
| const targets = args[3]; | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| if (!key) | ||
| throw new Error("key is required"); | ||
| if (!targets) | ||
| throw new Error("targets is required (array of: production, preview, development)"); | ||
| const opts = (typeof args[4] === "object" && args[4] !== null ? args[4] : {}); | ||
| const payload = { | ||
| key, | ||
| value, | ||
| target: Array.isArray(targets) ? targets : [targets], | ||
| type: opts.type ?? "encrypted", | ||
| }; | ||
| if (opts.gitBranch) | ||
| payload.gitBranch = opts.gitBranch; | ||
| const result = await vercelRequest(`/v10/projects/${encodeURIComponent(projectId)}/env`, { | ||
| method: "POST", | ||
| body: JSON.stringify(payload), | ||
| }); | ||
| return result; | ||
| }; | ||
| const updateEnvVar = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| const envId = String(args[1] ?? ""); | ||
| const value = String(args[2] ?? ""); | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| if (!envId) | ||
| throw new Error("envId is required"); | ||
| const opts = (typeof args[3] === "object" && args[3] !== null ? args[3] : {}); | ||
| const payload = { value }; | ||
| if (opts.target) | ||
| payload.target = opts.target; | ||
| if (opts.type) | ||
| payload.type = opts.type; | ||
| if (opts.gitBranch) | ||
| payload.gitBranch = opts.gitBranch; | ||
| const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/env/${encodeURIComponent(envId)}`, { | ||
| method: "PATCH", | ||
| body: JSON.stringify(payload), | ||
| }); | ||
| return result; | ||
| }; | ||
| const deleteEnvVar = async (args) => { | ||
| const projectId = String(args[0] ?? ""); | ||
| const envId = String(args[1] ?? ""); | ||
| if (!projectId) | ||
| throw new Error("projectId is required"); | ||
| if (!envId) | ||
| throw new Error("envId is required"); | ||
| await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/env/${encodeURIComponent(envId)}`, { | ||
| method: "DELETE", | ||
| }); | ||
| return { deleted: true, projectId, envId }; | ||
| }; | ||
| // --- Teams / User --- | ||
| const getUser = async () => { | ||
| const result = await vercelRequest("/v2/user"); | ||
| return result.user ?? result; | ||
| }; | ||
| const listTeams = async (args) => { | ||
| const opts = (typeof args[0] === "object" && args[0] !== null ? args[0] : {}); | ||
| const query = buildQuery({ limit: opts.limit, since: opts.since, until: opts.until }); | ||
| const result = await vercelRequest(`/v2/teams${query}`); | ||
| return result; | ||
| }; | ||
| const getTeam = async (args) => { | ||
| const teamId = String(args[0] ?? ""); | ||
| if (!teamId) | ||
| throw new Error("teamId is required"); | ||
| const result = await vercelRequest(`/v2/teams/${encodeURIComponent(teamId)}`); | ||
| return result; | ||
| }; | ||
| // --- Logs --- | ||
| const getDeploymentLogs = async (args) => { | ||
| const deploymentId = String(args[0] ?? ""); | ||
| if (!deploymentId) | ||
| throw new Error("deploymentId is required"); | ||
| const result = await vercelRequest(`/v2/deployments/${encodeURIComponent(deploymentId)}/events`); | ||
| return result; | ||
| }; | ||
| // --- Exports --- | ||
| export const VercelFunctions = { | ||
| setToken, | ||
| listProjects, getProject, createProject, updateProject, deleteProject, | ||
| listDeployments, getDeployment, createDeployment, cancelDeployment, deleteDeployment, redeployDeployment, | ||
| listDomains, getDomain, addDomain, removeDomain, | ||
| listProjectDomains, addProjectDomain, removeProjectDomain, getDomainConfig, verifyDomain, | ||
| listEnvVars, getEnvVar, createEnvVar, updateEnvVar, deleteEnvVar, | ||
| getUser, listTeams, getTeam, | ||
| getDeploymentLogs, | ||
| }; | ||
| export const VercelFunctionMetadata = { | ||
| setToken: { | ||
| description: "Set the Vercel API bearer token for authentication", | ||
| parameters: [ | ||
| { name: "token", dataType: "string", description: "Vercel API token", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "{configured}", | ||
| example: 'vercel.setToken "my-vercel-token"', | ||
| }, | ||
| // --- Projects --- | ||
| listProjects: { | ||
| description: "List all projects in the authenticated account", | ||
| parameters: [ | ||
| { name: "options", dataType: "object", description: "{limit, from, search}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", returnDescription: "{projects[], pagination}", | ||
| example: 'vercel.listProjects {"limit": 20, "search": "my-app"}', | ||
| }, | ||
| getProject: { | ||
| description: "Get details of a project by ID or name", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "Project object with id, name, framework, targets, etc.", | ||
| example: 'vercel.getProject "my-project"', | ||
| }, | ||
| createProject: { | ||
| description: "Create a new Vercel project", | ||
| parameters: [ | ||
| { name: "name", dataType: "string", description: "Project name", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{framework, gitRepository, buildCommand, rootDirectory}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", returnDescription: "Created project object", | ||
| example: 'vercel.createProject "my-app" {"framework": "nextjs"}', | ||
| }, | ||
| updateProject: { | ||
| description: "Update settings of an existing project", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "Fields to update (name, framework, buildCommand, etc.)", formInputType: "json", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "Updated project object", | ||
| example: 'vercel.updateProject "my-project" {"buildCommand": "npm run build"}', | ||
| }, | ||
| deleteProject: { | ||
| description: "Delete a Vercel project", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "{deleted, projectId}", | ||
| example: 'vercel.deleteProject "my-project"', | ||
| }, | ||
| // --- Deployments --- | ||
| listDeployments: { | ||
| description: "List deployments, optionally filtered by project, state, or target", | ||
| parameters: [ | ||
| { name: "options", dataType: "object", description: "{projectId, limit, state, target}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", returnDescription: "{deployments[], pagination}", | ||
| example: 'vercel.listDeployments {"projectId": "prj_abc123", "limit": 10}', | ||
| }, | ||
| getDeployment: { | ||
| description: "Get details of a specific deployment", | ||
| parameters: [ | ||
| { name: "deploymentId", dataType: "string", description: "Deployment ID or URL", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "Deployment object with id, url, state, meta, etc.", | ||
| example: 'vercel.getDeployment "dpl_abc123"', | ||
| }, | ||
| createDeployment: { | ||
| description: "Create a new deployment with files", | ||
| parameters: [ | ||
| { name: "name", dataType: "string", description: "Project name for the deployment", formInputType: "text", required: true }, | ||
| { name: "files", dataType: "array", description: "Array of file objects [{file, data}]", formInputType: "json", required: true }, | ||
| { name: "options", dataType: "object", description: "{target, gitSource}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", returnDescription: "Created deployment object", | ||
| example: 'vercel.createDeployment "my-app" [{"file": "index.html", "data": "<h1>Hello</h1>"}]', | ||
| }, | ||
| cancelDeployment: { | ||
| description: "Cancel an in-progress deployment", | ||
| parameters: [ | ||
| { name: "deploymentId", dataType: "string", description: "Deployment ID", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "Cancelled deployment object", | ||
| example: 'vercel.cancelDeployment "dpl_abc123"', | ||
| }, | ||
| deleteDeployment: { | ||
| description: "Delete a deployment", | ||
| parameters: [ | ||
| { name: "deploymentId", dataType: "string", description: "Deployment ID or URL", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "{deleted, deploymentId}", | ||
| example: 'vercel.deleteDeployment "dpl_abc123"', | ||
| }, | ||
| redeployDeployment: { | ||
| description: "Redeploy an existing deployment (create from existing)", | ||
| parameters: [ | ||
| { name: "deploymentId", dataType: "string", description: "Source deployment ID to redeploy", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{target, name}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", returnDescription: "New deployment object", | ||
| example: 'vercel.redeployDeployment "dpl_abc123" {"target": "production"}', | ||
| }, | ||
| // --- Domains --- | ||
| listDomains: { | ||
| description: "List all domains in the authenticated account", | ||
| parameters: [ | ||
| { name: "options", dataType: "object", description: "{limit, since, until}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", returnDescription: "{domains[], pagination}", | ||
| example: "vercel.listDomains", | ||
| }, | ||
| getDomain: { | ||
| description: "Get information about a specific domain", | ||
| parameters: [ | ||
| { name: "domain", dataType: "string", description: "Domain name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "Domain object with name, serviceType, verified, etc.", | ||
| example: 'vercel.getDomain "example.com"', | ||
| }, | ||
| addDomain: { | ||
| description: "Register a new domain to the account", | ||
| parameters: [ | ||
| { name: "domain", dataType: "string", description: "Domain name to add", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{cdnEnabled}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", returnDescription: "Created domain object", | ||
| example: 'vercel.addDomain "example.com"', | ||
| }, | ||
| removeDomain: { | ||
| description: "Remove a domain from the account", | ||
| parameters: [ | ||
| { name: "domain", dataType: "string", description: "Domain name to remove", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "{deleted, domain}", | ||
| example: 'vercel.removeDomain "example.com"', | ||
| }, | ||
| listProjectDomains: { | ||
| description: "List all domains assigned to a project", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "{domains[]}", | ||
| example: 'vercel.listProjectDomains "my-project"', | ||
| }, | ||
| addProjectDomain: { | ||
| description: "Add a domain to a project", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| { name: "domain", dataType: "string", description: "Domain name to add", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "Domain configuration object", | ||
| example: 'vercel.addProjectDomain "my-project" "example.com"', | ||
| }, | ||
| removeProjectDomain: { | ||
| description: "Remove a domain from a project", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| { name: "domain", dataType: "string", description: "Domain name to remove", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "{deleted, projectId, domain}", | ||
| example: 'vercel.removeProjectDomain "my-project" "example.com"', | ||
| }, | ||
| getDomainConfig: { | ||
| description: "Get DNS configuration for a domain", | ||
| parameters: [ | ||
| { name: "domain", dataType: "string", description: "Domain name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "Domain DNS config with misconfigured, cnames, aValues, etc.", | ||
| example: 'vercel.getDomainConfig "example.com"', | ||
| }, | ||
| verifyDomain: { | ||
| description: "Verify a domain attached to a project", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| { name: "domain", dataType: "string", description: "Domain name to verify", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "Verification result object", | ||
| example: 'vercel.verifyDomain "my-project" "example.com"', | ||
| }, | ||
| // --- Environment Variables --- | ||
| listEnvVars: { | ||
| description: "List all environment variables for a project", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "{envs[]} with key, value, target, type, id", | ||
| example: 'vercel.listEnvVars "my-project"', | ||
| }, | ||
| getEnvVar: { | ||
| description: "Get details of a specific environment variable", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| { name: "envId", dataType: "string", description: "Environment variable ID", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "Env var object with key, value, target, type", | ||
| example: 'vercel.getEnvVar "my-project" "env_abc123"', | ||
| }, | ||
| createEnvVar: { | ||
| description: "Create a new environment variable for a project", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| { name: "key", dataType: "string", description: "Environment variable name", formInputType: "text", required: true }, | ||
| { name: "value", dataType: "string", description: "Environment variable value", formInputType: "text", required: true }, | ||
| { name: "targets", dataType: "array", description: "Deployment targets: production, preview, development", formInputType: "json", required: true }, | ||
| { name: "options", dataType: "object", description: "{type, gitBranch} type: encrypted|plain|sensitive", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", returnDescription: "Created env var object", | ||
| example: 'vercel.createEnvVar "my-project" "API_KEY" "secret123" ["production", "preview"]', | ||
| }, | ||
| updateEnvVar: { | ||
| description: "Update an existing environment variable", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| { name: "envId", dataType: "string", description: "Environment variable ID", formInputType: "text", required: true }, | ||
| { name: "value", dataType: "string", description: "New value", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{target, type, gitBranch}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", returnDescription: "Updated env var object", | ||
| example: 'vercel.updateEnvVar "my-project" "env_abc123" "newValue"', | ||
| }, | ||
| deleteEnvVar: { | ||
| description: "Delete an environment variable from a project", | ||
| parameters: [ | ||
| { name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true }, | ||
| { name: "envId", dataType: "string", description: "Environment variable ID", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "{deleted, projectId, envId}", | ||
| example: 'vercel.deleteEnvVar "my-project" "env_abc123"', | ||
| }, | ||
| // --- Teams / User --- | ||
| getUser: { | ||
| description: "Get the authenticated user's profile", | ||
| parameters: [], | ||
| returnType: "object", returnDescription: "User object with id, email, name, username, etc.", | ||
| example: "vercel.getUser", | ||
| }, | ||
| listTeams: { | ||
| description: "List all teams the authenticated user belongs to", | ||
| parameters: [ | ||
| { name: "options", dataType: "object", description: "{limit, since, until}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", returnDescription: "{teams[], pagination}", | ||
| example: "vercel.listTeams", | ||
| }, | ||
| getTeam: { | ||
| description: "Get details of a specific team", | ||
| parameters: [ | ||
| { name: "teamId", dataType: "string", description: "Team ID", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", returnDescription: "Team object with id, slug, name, etc.", | ||
| example: 'vercel.getTeam "team_abc123"', | ||
| }, | ||
| // --- Logs --- | ||
| getDeploymentLogs: { | ||
| description: "Get build logs for a deployment", | ||
| parameters: [ | ||
| { name: "deploymentId", dataType: "string", description: "Deployment ID", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "array", returnDescription: "Array of log event objects", | ||
| example: 'vercel.getDeploymentLogs "dpl_abc123"', | ||
| }, | ||
| }; | ||
| export const VercelModuleMetadata = { | ||
| description: "Vercel REST API client for projects, deployments, domains, environment variables, teams, and logs", | ||
| methods: Object.keys(VercelFunctions), | ||
| category: "cloud", | ||
| }; | ||
| //# sourceMappingURL=vercel.js.map |
| {"version":3,"file":"vercel.js","sourceRoot":"","sources":["../src/vercel.ts"],"names":[],"mappings":"AAEA,wBAAwB;AAExB,IAAI,QAAQ,GAAkB,IAAI,CAAC;AAEnC,SAAS,QAAQ;IACf,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACxF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,sBAAsB;AAEtB,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAE1C,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,UAAuB,EAAE;IAClE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,UAAU,KAAK,EAAE;QAChC,cAAc,EAAE,kBAAkB;QAClC,GAAG,CAAC,OAAO,CAAC,OAAiC,IAAI,EAAE,CAAC;KACrD,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC;IAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAK,IAAgC;YACtG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAE,IAAgC,CAAC,KAAK,CAAC;YACzD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,MAAM,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,MAA+B;IACjD,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;YAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,eAAe;AAEf,MAAM,QAAQ,GAAmB,CAAC,IAAI,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjD,QAAQ,GAAG,KAAK,CAAC;IACjB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,mBAAmB;AAEnB,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACzG,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,eAAe,KAAK,EAAE,CAA4B,CAAC;IACtF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,UAAU,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAChD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACpF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACzG,MAAM,OAAO,GAA4B,EAAE,IAAI,EAAE,CAAC;IAClD,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACvD,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACnE,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAChE,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,eAAe,EAAE;QAClD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACzG,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAAE;QAClF,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,MAAM,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACtC,CAAC,CAAC;AAEF,sBAAsB;AAEtB,MAAM,eAAe,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACrD,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACzG,MAAM,KAAK,GAAG,UAAU,CAAC;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,kBAAkB,KAAK,EAAE,CAA4B,CAAC;IACzF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACnD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,oBAAoB,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC3F,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACzG,MAAM,OAAO,GAA4B,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzD,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9C,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,kBAAkB,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACtD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,oBAAoB,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE;QAChG,MAAM,EAAE,OAAO;KAChB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACtD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC/D,MAAM,aAAa,CAAC,oBAAoB,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACxD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACzG,MAAM,OAAO,GAA4B,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,kBAAkB,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,kBAAkB;AAElB,MAAM,WAAW,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACjD,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACzG,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,KAAK,EAAE,CAA4B,CAAC;IACrF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,eAAe,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACzG,MAAM,OAAO,GAA4B,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1D,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACxE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE;QAChD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnD,MAAM,aAAa,CAAC,eAAe,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACxD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAA4B,CAAC;IACvH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACtD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,iBAAiB,kBAAkB,CAAC,SAAS,CAAC,UAAU,EAAE;QAC3F,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KACvC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACzD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnD,MAAM,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;QACzG,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,eAAe,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,eAAe,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE;QAC/H,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,gCAAgC;AAEhC,MAAM,WAAW,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAA4B,CAAC;IACnH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,QAAQ,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IAClG,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACzG,MAAM,OAAO,GAA4B;QACvC,GAAG;QACH,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACpD,IAAI,EAAG,IAAI,CAAC,IAAe,IAAI,WAAW;KAC3C,CAAC;IACF,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,iBAAiB,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE;QACvF,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACzG,MAAM,OAAO,GAA4B,EAAE,KAAK,EAAE,CAAC;IACnD,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9C,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxC,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,QAAQ,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;QACnH,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjD,MAAM,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,QAAQ,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;QACpG,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC,CAAC;AAEF,uBAAuB;AAEvB,MAAM,OAAO,GAAmB,KAAK,IAAI,EAAE;IACzC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAA4B,CAAC;IAC1E,OAAO,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACzG,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,KAAK,EAAE,CAA4B,CAAC;IACnF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,aAAa,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,eAAe;AAEf,MAAM,iBAAiB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACvD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,mBAAmB,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACjG,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,kBAAkB;AAElB,MAAM,CAAC,MAAM,eAAe,GAAmC;IAC7D,QAAQ;IACR,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa;IACrE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB;IACxG,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY;IAC/C,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY;IACxF,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY;IAChE,OAAO,EAAE,SAAS,EAAE,OAAO;IAC3B,iBAAiB;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ,EAAE;QACR,WAAW,EAAE,oDAAoD;QACjE,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC9G;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc;QACvD,OAAO,EAAE,mCAAmC;KAC7C;IAED,mBAAmB;IACnB,YAAY,EAAE;QACZ,WAAW,EAAE,gDAAgD;QAC7D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACtH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,0BAA0B;QACnE,OAAO,EAAE,uDAAuD;KACjE;IACD,UAAU,EAAE;QACV,WAAW,EAAE,wCAAwC;QACrD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACpH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,wDAAwD;QACjG,OAAO,EAAE,gCAAgC;KAC1C;IACD,aAAa,EAAE;QACb,WAAW,EAAE,6BAA6B;QAC1C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACxG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,yDAAyD,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACxJ;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB;QACjE,OAAO,EAAE,uDAAuD;KACjE;IACD,aAAa,EAAE;QACb,WAAW,EAAE,wCAAwC;QACrD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnH,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,wDAAwD,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACtJ;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB;QACjE,OAAO,EAAE,qEAAqE;KAC/E;IACD,aAAa,EAAE;QACb,WAAW,EAAE,yBAAyB;QACtC,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACpH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,sBAAsB;QAC/D,OAAO,EAAE,mCAAmC;KAC7C;IAED,sBAAsB;IACtB,eAAe,EAAE;QACf,WAAW,EAAE,oEAAoE;QACjF,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAClI;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,6BAA6B;QACtE,OAAO,EAAE,iEAAiE;KAC3E;IACD,aAAa,EAAE;QACb,WAAW,EAAE,sCAAsC;QACnD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACzH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,mDAAmD;QAC5F,OAAO,EAAE,mCAAmC;KAC7C;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,oCAAoC;QACjD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3H,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,sCAAsC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAChI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,2BAA2B;QACpE,OAAO,EAAE,qFAAqF;KAC/F;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,kCAAkC;QAC/C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAClH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,6BAA6B;QACtE,OAAO,EAAE,sCAAsC;KAChD;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,qBAAqB;QAClC,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACzH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,yBAAyB;QAClE,OAAO,EAAE,sCAAsC;KAChD;IACD,kBAAkB,EAAE;QAClB,WAAW,EAAE,wDAAwD;QACrE,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACpI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC/G;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,uBAAuB;QAChE,OAAO,EAAE,iEAAiE;KAC3E;IAED,kBAAkB;IAClB,WAAW,EAAE;QACX,WAAW,EAAE,+CAA+C;QAC5D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACtH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,yBAAyB;QAClE,OAAO,EAAE,oBAAoB;KAC9B;IACD,SAAS,EAAE;QACT,WAAW,EAAE,yCAAyC;QACtD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC1G;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,sDAAsD;QAC/F,OAAO,EAAE,gCAAgC;KAC1C;IACD,SAAS,EAAE;QACT,WAAW,EAAE,sCAAsC;QACnD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAChH,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC7G;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,uBAAuB;QAChE,OAAO,EAAE,gCAAgC;KAC1C;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,kCAAkC;QAC/C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACpH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB;QAC5D,OAAO,EAAE,mCAAmC;KAC7C;IACD,kBAAkB,EAAE;QAClB,WAAW,EAAE,wCAAwC;QACrD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACpH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa;QACtD,OAAO,EAAE,wCAAwC;KAClD;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,2BAA2B;QACxC,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnH,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACjH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,6BAA6B;QACtE,OAAO,EAAE,oDAAoD;KAC9D;IACD,mBAAmB,EAAE;QACnB,WAAW,EAAE,gCAAgC;QAC7C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnH,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACpH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,8BAA8B;QACvE,OAAO,EAAE,uDAAuD;KACjE;IACD,eAAe,EAAE;QACf,WAAW,EAAE,oCAAoC;QACjD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC1G;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,6DAA6D;QACtG,OAAO,EAAE,sCAAsC;KAChD;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,uCAAuC;QACpD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnH,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACpH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,4BAA4B;QACrE,OAAO,EAAE,gDAAgD;KAC1D;IAED,gCAAgC;IAChC,WAAW,EAAE;QACX,WAAW,EAAE,8CAA8C;QAC3D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACpH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,4CAA4C;QACrF,OAAO,EAAE,iCAAiC;KAC3C;IACD,SAAS,EAAE;QACT,WAAW,EAAE,gDAAgD;QAC7D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnH,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACrH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,8CAA8C;QACvF,OAAO,EAAE,4CAA4C;KACtD;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,iDAAiD;QAC9D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnH,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACpH,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACvH,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,sDAAsD,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClJ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,mDAAmD,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAClJ;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB;QACjE,OAAO,EAAE,kFAAkF;KAC5F;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,yCAAyC;QACtD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnH,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACpH,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC1H;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB;QACjE,OAAO,EAAE,0DAA0D;KACpE;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,+CAA+C;QAC5D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnH,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACrH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,6BAA6B;QACtE,OAAO,EAAE,+CAA+C;KACzD;IAED,uBAAuB;IACvB,OAAO,EAAE;QACP,WAAW,EAAE,sCAAsC;QACnD,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kDAAkD;QAC3F,OAAO,EAAE,gBAAgB;KAC1B;IACD,SAAS,EAAE;QACT,WAAW,EAAE,kDAAkD;QAC/D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACtH;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,uBAAuB;QAChE,OAAO,EAAE,kBAAkB;KAC5B;IACD,OAAO,EAAE;QACP,WAAW,EAAE,gCAAgC;QAC7C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACtG;QACD,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,uCAAuC;QAChF,OAAO,EAAE,8BAA8B;KACxC;IAED,eAAe;IACf,iBAAiB,EAAE;QACjB,WAAW,EAAE,iCAAiC;QAC9C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAClH;QACD,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,4BAA4B;QACpE,OAAO,EAAE,uCAAuC;KACjD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,mGAAmG;IAChH,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;IACrC,QAAQ,EAAE,OAAO;CAClB,CAAC"} |
Empty package
Supply chain riskPackage does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
No License Found
LicenseLicense information could not be found.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
0
-100%1
-50%5323
-92.53%2
-80%0
-100%2
100%