@robinpath/github
Advanced tools
+36
-7
| { | ||
| "name": "@robinpath/github", | ||
| "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": "GitHub module for RobinPath.", | ||
| "keywords": [ | ||
| "github", | ||
| "devops" | ||
| ], | ||
| "license": "MIT", | ||
| "robinpath": { | ||
| "category": "devops", | ||
| "type": "integration", | ||
| "auth": "bearer-token", | ||
| "functionCount": 32, | ||
| "baseUrl": "https://api.github.com" | ||
| } | ||
| } |
-426
| import type { BuiltinHandler } from "@wiredwp/robinpath"; | ||
| export declare const GithubFunctions: Record<string, BuiltinHandler>; | ||
| export declare const GithubFunctionMetadata: { | ||
| setToken: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getRepo: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listRepos: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| createRepo: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| deleteRepo: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listBranches: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getBranch: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| createBranch: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listCommits: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getCommit: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listIssues: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| createIssue: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| updateIssue: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| closeIssue: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| addIssueComment: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listIssueComments: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listPullRequests: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| createPullRequest: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| mergePullRequest: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listReleases: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| createRelease: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listWorkflows: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| triggerWorkflow: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listWorkflowRuns: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| getUser: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| searchRepos: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| searchCode: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listLabels: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| createLabel: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| addLabels: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| listMilestones: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| createMilestone: { | ||
| description: string; | ||
| parameters: { | ||
| name: string; | ||
| dataType: string; | ||
| description: string; | ||
| formInputType: string; | ||
| required: boolean; | ||
| }[]; | ||
| returnType: string; | ||
| returnDescription: string; | ||
| example: string; | ||
| }; | ||
| }; | ||
| export declare const GithubModuleMetadata: { | ||
| description: string; | ||
| methods: string[]; | ||
| category: string; | ||
| }; | ||
| //# sourceMappingURL=github.d.ts.map |
| {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAoC,MAAM,oBAAoB,CAAC;AAgd3F,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAiC1D,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkWlC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;CAIhC,CAAC"} |
-844
| // ── Internal State ────────────────────────────────────────────────── | ||
| let storedToken = ""; | ||
| const API_BASE = "https://api.github.com"; | ||
| // ── Helper ────────────────────────────────────────────────────────── | ||
| function getToken() { | ||
| if (!storedToken) { | ||
| throw new Error("GitHub token not set. Call github.setToken first."); | ||
| } | ||
| return storedToken; | ||
| } | ||
| function defaultHeaders() { | ||
| return { | ||
| Accept: "application/vnd.github+json", | ||
| Authorization: `Bearer ${getToken()}`, | ||
| "X-GitHub-Api-Version": "2022-11-28", | ||
| }; | ||
| } | ||
| async function ghRequest(method, path, body) { | ||
| const url = path.startsWith("http") ? path : `${API_BASE}${path}`; | ||
| const opts = { | ||
| method, | ||
| headers: defaultHeaders(), | ||
| }; | ||
| if (body !== undefined && body !== null) { | ||
| opts.body = JSON.stringify(body); | ||
| } | ||
| const response = await fetch(url, opts); | ||
| if (response.status === 204) { | ||
| return { ok: true, status: 204 }; | ||
| } | ||
| const contentType = response.headers.get("content-type") ?? ""; | ||
| let data; | ||
| if (contentType.includes("json")) { | ||
| data = (await response.json()); | ||
| } | ||
| else { | ||
| data = await response.text(); | ||
| } | ||
| if (!response.ok) { | ||
| const msg = typeof data === "object" && data !== null | ||
| ? data.message ?? JSON.stringify(data) | ||
| : String(data); | ||
| throw new Error(`GitHub API ${method} ${path} failed (${response.status}): ${String(msg)}`); | ||
| } | ||
| return data; | ||
| } | ||
| function buildQuery(params) { | ||
| const parts = []; | ||
| for (const [key, val] of Object.entries(params)) { | ||
| if (val !== undefined && val !== null && val !== "") { | ||
| parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(val))}`); | ||
| } | ||
| } | ||
| return parts.length > 0 ? `?${parts.join("&")}` : ""; | ||
| } | ||
| // ── Function Handlers ─────────────────────────────────────────────── | ||
| const setToken = (args) => { | ||
| const token = String(args[0] ?? ""); | ||
| if (!token) | ||
| throw new Error("Token is required"); | ||
| storedToken = token; | ||
| return { ok: true, message: "GitHub token stored" }; | ||
| }; | ||
| // ── Repositories ──────────────────────────────────────────────────── | ||
| const getRepo = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| if (!owner || !repo) | ||
| throw new Error("owner and repo are required"); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}`); | ||
| }; | ||
| const listRepos = async (args) => { | ||
| const owner = args[0] ? String(args[0]) : undefined; | ||
| const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {}); | ||
| const query = buildQuery({ | ||
| type: opts.type, | ||
| sort: opts.sort, | ||
| direction: opts.direction, | ||
| per_page: opts.perPage ?? opts.per_page, | ||
| page: opts.page, | ||
| }); | ||
| if (owner) { | ||
| return ghRequest("GET", `/users/${owner}/repos${query}`); | ||
| } | ||
| return ghRequest("GET", `/user/repos${query}`); | ||
| }; | ||
| const createRepo = async (args) => { | ||
| const name = String(args[0] ?? ""); | ||
| const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {}); | ||
| if (!name) | ||
| throw new Error("Repository name is required"); | ||
| const body = { name }; | ||
| if (opts.description !== undefined) | ||
| body.description = String(opts.description); | ||
| if (opts.private !== undefined) | ||
| body.private = Boolean(opts.private); | ||
| if (opts.autoInit !== undefined) | ||
| body.auto_init = Boolean(opts.autoInit); | ||
| return ghRequest("POST", "/user/repos", body); | ||
| }; | ||
| const deleteRepo = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| if (!owner || !repo) | ||
| throw new Error("owner and repo are required"); | ||
| return ghRequest("DELETE", `/repos/${owner}/${repo}`); | ||
| }; | ||
| // ── Branches ──────────────────────────────────────────────────────── | ||
| const listBranches = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| if (!owner || !repo) | ||
| throw new Error("owner and repo are required"); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/branches`); | ||
| }; | ||
| const getBranch = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const branch = String(args[2] ?? ""); | ||
| if (!owner || !repo || !branch) | ||
| throw new Error("owner, repo, and branch are required"); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/branches/${encodeURIComponent(branch)}`); | ||
| }; | ||
| const createBranch = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const branchName = String(args[2] ?? ""); | ||
| const fromBranch = String(args[3] ?? "main"); | ||
| if (!owner || !repo || !branchName) | ||
| throw new Error("owner, repo, and branchName are required"); | ||
| // Get the SHA of the source branch | ||
| const ref = (await ghRequest("GET", `/repos/${owner}/${repo}/git/ref/heads/${encodeURIComponent(fromBranch)}`)); | ||
| const sha = ref.object?.sha ?? ""; | ||
| return ghRequest("POST", `/repos/${owner}/${repo}/git/refs`, { | ||
| ref: `refs/heads/${branchName}`, | ||
| sha, | ||
| }); | ||
| }; | ||
| // ── Commits ───────────────────────────────────────────────────────── | ||
| const listCommits = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {}); | ||
| if (!owner || !repo) | ||
| throw new Error("owner and repo are required"); | ||
| const query = buildQuery({ | ||
| sha: opts.sha, | ||
| path: opts.path, | ||
| since: opts.since, | ||
| until: opts.until, | ||
| per_page: opts.perPage ?? opts.per_page, | ||
| page: opts.page, | ||
| }); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/commits${query}`); | ||
| }; | ||
| const getCommit = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const sha = String(args[2] ?? ""); | ||
| if (!owner || !repo || !sha) | ||
| throw new Error("owner, repo, and sha are required"); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/commits/${sha}`); | ||
| }; | ||
| // ── Issues ────────────────────────────────────────────────────────── | ||
| const listIssues = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {}); | ||
| if (!owner || !repo) | ||
| throw new Error("owner and repo are required"); | ||
| const query = buildQuery({ | ||
| state: opts.state, | ||
| labels: opts.labels, | ||
| assignee: opts.assignee, | ||
| sort: opts.sort, | ||
| direction: opts.direction, | ||
| per_page: opts.perPage ?? opts.per_page, | ||
| page: opts.page, | ||
| }); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/issues${query}`); | ||
| }; | ||
| const createIssue = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const title = String(args[2] ?? ""); | ||
| const opts = (typeof args[3] === "object" && args[3] !== null ? args[3] : {}); | ||
| if (!owner || !repo || !title) | ||
| throw new Error("owner, repo, and title are required"); | ||
| const body = { title }; | ||
| if (opts.body !== undefined) | ||
| body.body = String(opts.body); | ||
| if (opts.labels !== undefined) | ||
| body.labels = opts.labels; | ||
| if (opts.assignees !== undefined) | ||
| body.assignees = opts.assignees; | ||
| if (opts.milestone !== undefined) | ||
| body.milestone = Number(opts.milestone); | ||
| return ghRequest("POST", `/repos/${owner}/${repo}/issues`, body); | ||
| }; | ||
| const updateIssue = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const issueNumber = Number(args[2] ?? 0); | ||
| const fields = (typeof args[3] === "object" && args[3] !== null ? args[3] : {}); | ||
| if (!owner || !repo || !issueNumber) | ||
| throw new Error("owner, repo, and issueNumber are required"); | ||
| return ghRequest("PATCH", `/repos/${owner}/${repo}/issues/${issueNumber}`, fields); | ||
| }; | ||
| const closeIssue = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const issueNumber = Number(args[2] ?? 0); | ||
| if (!owner || !repo || !issueNumber) | ||
| throw new Error("owner, repo, and issueNumber are required"); | ||
| return ghRequest("PATCH", `/repos/${owner}/${repo}/issues/${issueNumber}`, { state: "closed" }); | ||
| }; | ||
| const addIssueComment = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const issueNumber = Number(args[2] ?? 0); | ||
| const body = String(args[3] ?? ""); | ||
| if (!owner || !repo || !issueNumber) | ||
| throw new Error("owner, repo, and issueNumber are required"); | ||
| if (!body) | ||
| throw new Error("Comment body is required"); | ||
| return ghRequest("POST", `/repos/${owner}/${repo}/issues/${issueNumber}/comments`, { body }); | ||
| }; | ||
| const listIssueComments = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const issueNumber = Number(args[2] ?? 0); | ||
| if (!owner || !repo || !issueNumber) | ||
| throw new Error("owner, repo, and issueNumber are required"); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/issues/${issueNumber}/comments`); | ||
| }; | ||
| // ── Pull Requests ─────────────────────────────────────────────────── | ||
| const listPullRequests = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {}); | ||
| if (!owner || !repo) | ||
| throw new Error("owner and repo are required"); | ||
| const query = buildQuery({ | ||
| state: opts.state, | ||
| head: opts.head, | ||
| base: opts.base, | ||
| sort: opts.sort, | ||
| direction: opts.direction, | ||
| per_page: opts.perPage ?? opts.per_page, | ||
| page: opts.page, | ||
| }); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/pulls${query}`); | ||
| }; | ||
| const createPullRequest = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const title = String(args[2] ?? ""); | ||
| const head = String(args[3] ?? ""); | ||
| const base = String(args[4] ?? ""); | ||
| const opts = (typeof args[5] === "object" && args[5] !== null ? args[5] : {}); | ||
| if (!owner || !repo || !title || !head || !base) { | ||
| throw new Error("owner, repo, title, head, and base are required"); | ||
| } | ||
| const body = { title, head, base }; | ||
| if (opts.body !== undefined) | ||
| body.body = String(opts.body); | ||
| if (opts.draft !== undefined) | ||
| body.draft = Boolean(opts.draft); | ||
| return ghRequest("POST", `/repos/${owner}/${repo}/pulls`, body); | ||
| }; | ||
| const mergePullRequest = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const prNumber = Number(args[2] ?? 0); | ||
| const opts = (typeof args[3] === "object" && args[3] !== null ? args[3] : {}); | ||
| if (!owner || !repo || !prNumber) | ||
| throw new Error("owner, repo, and prNumber are required"); | ||
| const body = {}; | ||
| if (opts.commitTitle !== undefined) | ||
| body.commit_title = String(opts.commitTitle); | ||
| if (opts.commitMessage !== undefined) | ||
| body.commit_message = String(opts.commitMessage); | ||
| if (opts.method !== undefined) | ||
| body.merge_method = String(opts.method); | ||
| return ghRequest("PUT", `/repos/${owner}/${repo}/pulls/${prNumber}/merge`, body); | ||
| }; | ||
| // ── Releases ──────────────────────────────────────────────────────── | ||
| const listReleases = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| if (!owner || !repo) | ||
| throw new Error("owner and repo are required"); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/releases`); | ||
| }; | ||
| const createRelease = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const tagName = String(args[2] ?? ""); | ||
| const opts = (typeof args[3] === "object" && args[3] !== null ? args[3] : {}); | ||
| if (!owner || !repo || !tagName) | ||
| throw new Error("owner, repo, and tagName are required"); | ||
| const body = { tag_name: tagName }; | ||
| if (opts.name !== undefined) | ||
| body.name = String(opts.name); | ||
| if (opts.body !== undefined) | ||
| body.body = String(opts.body); | ||
| if (opts.draft !== undefined) | ||
| body.draft = Boolean(opts.draft); | ||
| if (opts.prerelease !== undefined) | ||
| body.prerelease = Boolean(opts.prerelease); | ||
| if (opts.targetCommitish !== undefined) | ||
| body.target_commitish = String(opts.targetCommitish); | ||
| return ghRequest("POST", `/repos/${owner}/${repo}/releases`, body); | ||
| }; | ||
| // ── GitHub Actions ────────────────────────────────────────────────── | ||
| const listWorkflows = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| if (!owner || !repo) | ||
| throw new Error("owner and repo are required"); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/actions/workflows`); | ||
| }; | ||
| const triggerWorkflow = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const workflowId = args[2]; | ||
| const ref = String(args[3] ?? ""); | ||
| const inputs = (typeof args[4] === "object" && args[4] !== null ? args[4] : undefined); | ||
| if (!owner || !repo || !workflowId || !ref) { | ||
| throw new Error("owner, repo, workflowId, and ref are required"); | ||
| } | ||
| const body = { ref }; | ||
| if (inputs) | ||
| body.inputs = inputs; | ||
| return ghRequest("POST", `/repos/${owner}/${repo}/actions/workflows/${workflowId}/dispatches`, body); | ||
| }; | ||
| const listWorkflowRuns = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const workflowId = args[2] ?? undefined; | ||
| const opts = (typeof args[3] === "object" && args[3] !== null ? args[3] : {}); | ||
| if (!owner || !repo) | ||
| throw new Error("owner and repo are required"); | ||
| const query = buildQuery({ | ||
| status: opts.status, | ||
| branch: opts.branch, | ||
| event: opts.event, | ||
| per_page: opts.perPage ?? opts.per_page, | ||
| page: opts.page, | ||
| }); | ||
| if (workflowId) { | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/actions/workflows/${workflowId}/runs${query}`); | ||
| } | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/actions/runs${query}`); | ||
| }; | ||
| // ── Users ─────────────────────────────────────────────────────────── | ||
| const getUser = async (args) => { | ||
| const username = args[0] ? String(args[0]) : undefined; | ||
| if (username) { | ||
| return ghRequest("GET", `/users/${username}`); | ||
| } | ||
| return ghRequest("GET", "/user"); | ||
| }; | ||
| // ── Search ────────────────────────────────────────────────────────── | ||
| const searchRepos = async (args) => { | ||
| const query = String(args[0] ?? ""); | ||
| const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {}); | ||
| if (!query) | ||
| throw new Error("Search query is required"); | ||
| const qs = buildQuery({ | ||
| q: query, | ||
| sort: opts.sort, | ||
| order: opts.order, | ||
| per_page: opts.perPage ?? opts.per_page, | ||
| page: opts.page, | ||
| }); | ||
| return ghRequest("GET", `/search/repositories${qs}`); | ||
| }; | ||
| const searchCode = async (args) => { | ||
| const query = String(args[0] ?? ""); | ||
| const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {}); | ||
| if (!query) | ||
| throw new Error("Search query is required"); | ||
| const qs = buildQuery({ | ||
| q: query, | ||
| sort: opts.sort, | ||
| order: opts.order, | ||
| per_page: opts.perPage ?? opts.per_page, | ||
| page: opts.page, | ||
| }); | ||
| return ghRequest("GET", `/search/code${qs}`); | ||
| }; | ||
| // ── Labels ────────────────────────────────────────────────────────── | ||
| const listLabels = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| if (!owner || !repo) | ||
| throw new Error("owner and repo are required"); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/labels`); | ||
| }; | ||
| const createLabel = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const name = String(args[2] ?? ""); | ||
| const color = String(args[3] ?? ""); | ||
| const description = args[4] ? String(args[4]) : undefined; | ||
| if (!owner || !repo || !name || !color) | ||
| throw new Error("owner, repo, name, and color are required"); | ||
| const body = { name, color: color.replace(/^#/, "") }; | ||
| if (description !== undefined) | ||
| body.description = description; | ||
| return ghRequest("POST", `/repos/${owner}/${repo}/labels`, body); | ||
| }; | ||
| const addLabels = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const issueNumber = Number(args[2] ?? 0); | ||
| const labels = args[3]; | ||
| if (!owner || !repo || !issueNumber) | ||
| throw new Error("owner, repo, and issueNumber are required"); | ||
| if (!Array.isArray(labels) || labels.length === 0) | ||
| throw new Error("labels array is required"); | ||
| return ghRequest("POST", `/repos/${owner}/${repo}/issues/${issueNumber}/labels`, { labels }); | ||
| }; | ||
| // ── Milestones ────────────────────────────────────────────────────── | ||
| const listMilestones = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| if (!owner || !repo) | ||
| throw new Error("owner and repo are required"); | ||
| return ghRequest("GET", `/repos/${owner}/${repo}/milestones`); | ||
| }; | ||
| const createMilestone = async (args) => { | ||
| const owner = String(args[0] ?? ""); | ||
| const repo = String(args[1] ?? ""); | ||
| const title = String(args[2] ?? ""); | ||
| const opts = (typeof args[3] === "object" && args[3] !== null ? args[3] : {}); | ||
| if (!owner || !repo || !title) | ||
| throw new Error("owner, repo, and title are required"); | ||
| const body = { title }; | ||
| if (opts.description !== undefined) | ||
| body.description = String(opts.description); | ||
| if (opts.state !== undefined) | ||
| body.state = String(opts.state); | ||
| if (opts.dueOn !== undefined) | ||
| body.due_on = String(opts.dueOn); | ||
| return ghRequest("POST", `/repos/${owner}/${repo}/milestones`, body); | ||
| }; | ||
| // ── Exports ───────────────────────────────────────────────────────── | ||
| export const GithubFunctions = { | ||
| setToken, | ||
| getRepo, | ||
| listRepos, | ||
| createRepo, | ||
| deleteRepo, | ||
| listBranches, | ||
| getBranch, | ||
| createBranch, | ||
| listCommits, | ||
| getCommit, | ||
| listIssues, | ||
| createIssue, | ||
| updateIssue, | ||
| closeIssue, | ||
| addIssueComment, | ||
| listIssueComments, | ||
| listPullRequests, | ||
| createPullRequest, | ||
| mergePullRequest, | ||
| listReleases, | ||
| createRelease, | ||
| listWorkflows, | ||
| triggerWorkflow, | ||
| listWorkflowRuns, | ||
| getUser, | ||
| searchRepos, | ||
| searchCode, | ||
| listLabels, | ||
| createLabel, | ||
| addLabels, | ||
| listMilestones, | ||
| createMilestone, | ||
| }; | ||
| export const GithubFunctionMetadata = { | ||
| setToken: { | ||
| description: "Store a GitHub personal access token for authentication", | ||
| parameters: [ | ||
| { name: "token", dataType: "string", description: "GitHub personal access token (ghp_... or fine-grained token)", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "{ok, message}", | ||
| example: 'github.setToken "ghp_xxxxxxxxxxxx"', | ||
| }, | ||
| getRepo: { | ||
| description: "Get repository information", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner (user or org)", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Repository object with name, description, stars, forks, etc.", | ||
| example: 'github.getRepo "octocat" "Hello-World"', | ||
| }, | ||
| listRepos: { | ||
| description: "List repositories for a user or the authenticated user", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Username (omit for authenticated user)", formInputType: "text", required: false }, | ||
| { name: "options", dataType: "object", description: "{type?, sort?, direction?, perPage?, page?}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of repository objects", | ||
| example: 'github.listRepos "octocat"', | ||
| }, | ||
| createRepo: { | ||
| description: "Create a new repository for the authenticated user", | ||
| parameters: [ | ||
| { name: "name", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{description?, private?, autoInit?}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Created repository object", | ||
| example: 'github.createRepo "my-project" {"description": "A new project", "private": true, "autoInit": true}', | ||
| }, | ||
| deleteRepo: { | ||
| description: "Delete a repository (requires delete_repo scope)", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "{ok, status}", | ||
| example: 'github.deleteRepo "myuser" "old-repo"', | ||
| }, | ||
| listBranches: { | ||
| description: "List branches in a repository", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of branch objects with name and commit info", | ||
| example: 'github.listBranches "octocat" "Hello-World"', | ||
| }, | ||
| getBranch: { | ||
| description: "Get details for a specific branch", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "branch", dataType: "string", description: "Branch name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Branch object with name, commit, and protection status", | ||
| example: 'github.getBranch "octocat" "Hello-World" "main"', | ||
| }, | ||
| createBranch: { | ||
| description: "Create a new branch from an existing branch ref", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "branchName", dataType: "string", description: "Name for the new branch", formInputType: "text", required: true }, | ||
| { name: "fromBranch", dataType: "string", description: "Source branch (default: main)", formInputType: "text", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Git reference object for the new branch", | ||
| example: 'github.createBranch "myuser" "my-repo" "feature-x" "main"', | ||
| }, | ||
| listCommits: { | ||
| description: "List commits in a repository", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{sha?, path?, since?, until?, perPage?, page?}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of commit objects", | ||
| example: 'github.listCommits "octocat" "Hello-World" {"sha": "main", "perPage": 5}', | ||
| }, | ||
| getCommit: { | ||
| description: "Get a single commit by SHA", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "sha", dataType: "string", description: "Commit SHA", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Commit object with files, stats, and metadata", | ||
| example: 'github.getCommit "octocat" "Hello-World" "abc1234"', | ||
| }, | ||
| listIssues: { | ||
| description: "List issues in a repository", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{state?, labels?, assignee?, sort?, direction?, perPage?, page?}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of issue objects", | ||
| example: 'github.listIssues "octocat" "Hello-World" {"state": "open", "labels": "bug"}', | ||
| }, | ||
| createIssue: { | ||
| description: "Create a new issue in a repository", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "title", dataType: "string", description: "Issue title", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{body?, labels?, assignees?, milestone?}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Created issue object", | ||
| example: 'github.createIssue "myuser" "my-repo" "Bug report" {"body": "Steps to reproduce...", "labels": ["bug"]}', | ||
| }, | ||
| updateIssue: { | ||
| description: "Update an existing issue", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "issueNumber", dataType: "number", description: "Issue number", formInputType: "number", required: true }, | ||
| { name: "fields", dataType: "object", description: "Fields to update: {title?, body?, state?, labels?, assignees?, milestone?}", formInputType: "json", required: true }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Updated issue object", | ||
| example: 'github.updateIssue "myuser" "my-repo" 42 {"title": "Updated title", "labels": ["bug", "priority"]}', | ||
| }, | ||
| closeIssue: { | ||
| description: "Close an issue", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "issueNumber", dataType: "number", description: "Issue number", formInputType: "number", required: true }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Updated issue object with state 'closed'", | ||
| example: 'github.closeIssue "myuser" "my-repo" 42', | ||
| }, | ||
| addIssueComment: { | ||
| description: "Add a comment to an issue or pull request", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "issueNumber", dataType: "number", description: "Issue or PR number", formInputType: "number", required: true }, | ||
| { name: "body", dataType: "string", description: "Comment body (Markdown supported)", formInputType: "textarea", required: true }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Created comment object", | ||
| example: 'github.addIssueComment "myuser" "my-repo" 42 "This is fixed in v2.0"', | ||
| }, | ||
| listIssueComments: { | ||
| description: "List comments on an issue or pull request", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "issueNumber", dataType: "number", description: "Issue or PR number", formInputType: "number", required: true }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of comment objects", | ||
| example: 'github.listIssueComments "octocat" "Hello-World" 1', | ||
| }, | ||
| listPullRequests: { | ||
| description: "List pull requests in a repository", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{state?, head?, base?, sort?, direction?, perPage?, page?}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of pull request objects", | ||
| example: 'github.listPullRequests "octocat" "Hello-World" {"state": "open"}', | ||
| }, | ||
| createPullRequest: { | ||
| description: "Create a new pull request", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "title", dataType: "string", description: "PR title", formInputType: "text", required: true }, | ||
| { name: "head", dataType: "string", description: "Branch containing changes", formInputType: "text", required: true }, | ||
| { name: "base", dataType: "string", description: "Branch to merge into", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{body?, draft?}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Created pull request object", | ||
| example: 'github.createPullRequest "myuser" "my-repo" "Add feature X" "feature-x" "main" {"body": "Description here", "draft": false}', | ||
| }, | ||
| mergePullRequest: { | ||
| description: "Merge a pull request", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "prNumber", dataType: "number", description: "Pull request number", formInputType: "number", required: true }, | ||
| { name: "options", dataType: "object", description: "{commitTitle?, commitMessage?, method?} method: merge|squash|rebase", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Merge result with SHA and message", | ||
| example: 'github.mergePullRequest "myuser" "my-repo" 10 {"method": "squash"}', | ||
| }, | ||
| listReleases: { | ||
| description: "List releases in a repository", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of release objects", | ||
| example: 'github.listReleases "octocat" "Hello-World"', | ||
| }, | ||
| createRelease: { | ||
| description: "Create a new release from a tag", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "tagName", dataType: "string", description: "Tag name for the release (e.g. v1.0.0)", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{name?, body?, draft?, prerelease?, targetCommitish?}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Created release object", | ||
| example: 'github.createRelease "myuser" "my-repo" "v1.0.0" {"name": "Version 1.0", "body": "Release notes", "prerelease": false}', | ||
| }, | ||
| listWorkflows: { | ||
| description: "List GitHub Actions workflows in a repository", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Workflows object with total_count and workflows array", | ||
| example: 'github.listWorkflows "myuser" "my-repo"', | ||
| }, | ||
| triggerWorkflow: { | ||
| description: "Trigger a GitHub Actions workflow dispatch event", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "workflowId", dataType: "string", description: "Workflow ID or filename (e.g. deploy.yml)", formInputType: "text", required: true }, | ||
| { name: "ref", dataType: "string", description: "Branch or tag ref to run on", formInputType: "text", required: true }, | ||
| { name: "inputs", dataType: "object", description: "Workflow input parameters", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "{ok, status}", | ||
| example: 'github.triggerWorkflow "myuser" "my-repo" "deploy.yml" "main" {"environment": "production"}', | ||
| }, | ||
| listWorkflowRuns: { | ||
| description: "List workflow runs for a repository or specific workflow", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "workflowId", dataType: "string", description: "Workflow ID or filename (omit for all workflows)", formInputType: "text", required: false }, | ||
| { name: "options", dataType: "object", description: "{status?, branch?, event?, perPage?, page?}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Workflow runs object with total_count and workflow_runs array", | ||
| example: 'github.listWorkflowRuns "myuser" "my-repo" "ci.yml" {"status": "completed"}', | ||
| }, | ||
| getUser: { | ||
| description: "Get a user profile or the authenticated user", | ||
| parameters: [ | ||
| { name: "username", dataType: "string", description: "GitHub username (omit for authenticated user)", formInputType: "text", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "User profile object", | ||
| example: 'github.getUser "octocat"', | ||
| }, | ||
| searchRepos: { | ||
| description: "Search GitHub repositories", | ||
| parameters: [ | ||
| { name: "query", dataType: "string", description: "Search query (GitHub search syntax)", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{sort?, order?, perPage?, page?}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Search results with total_count and items array", | ||
| example: 'github.searchRepos "language:typescript stars:>1000" {"sort": "stars"}', | ||
| }, | ||
| searchCode: { | ||
| description: "Search code across GitHub repositories", | ||
| parameters: [ | ||
| { name: "query", dataType: "string", description: "Search query (GitHub code search syntax)", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{sort?, order?, perPage?, page?}", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Search results with total_count and items array", | ||
| example: 'github.searchCode "addClass repo:jquery/jquery" {"sort": "indexed"}', | ||
| }, | ||
| listLabels: { | ||
| description: "List labels in a repository", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of label objects with name, color, and description", | ||
| example: 'github.listLabels "octocat" "Hello-World"', | ||
| }, | ||
| createLabel: { | ||
| description: "Create a new label in a repository", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "name", dataType: "string", description: "Label name", formInputType: "text", required: true }, | ||
| { name: "color", dataType: "string", description: "Label color hex (e.g. 'ff0000' or '#ff0000')", formInputType: "text", required: true }, | ||
| { name: "description", dataType: "string", description: "Label description", formInputType: "text", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Created label object", | ||
| example: 'github.createLabel "myuser" "my-repo" "priority:high" "ff0000" "High priority issues"', | ||
| }, | ||
| addLabels: { | ||
| description: "Add labels to an issue or pull request", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "issueNumber", dataType: "number", description: "Issue or PR number", formInputType: "number", required: true }, | ||
| { name: "labels", dataType: "array", description: "Array of label names to add", formInputType: "json", required: true }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of label objects now on the issue", | ||
| example: 'github.addLabels "myuser" "my-repo" 42 ["bug", "priority:high"]', | ||
| }, | ||
| listMilestones: { | ||
| description: "List milestones in a repository", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of milestone objects", | ||
| example: 'github.listMilestones "octocat" "Hello-World"', | ||
| }, | ||
| createMilestone: { | ||
| description: "Create a new milestone in a repository", | ||
| parameters: [ | ||
| { name: "owner", dataType: "string", description: "Repository owner", formInputType: "text", required: true }, | ||
| { name: "repo", dataType: "string", description: "Repository name", formInputType: "text", required: true }, | ||
| { name: "title", dataType: "string", description: "Milestone title", formInputType: "text", required: true }, | ||
| { name: "options", dataType: "object", description: "{description?, state?, dueOn?} dueOn is ISO 8601 date", formInputType: "json", required: false }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Created milestone object", | ||
| example: 'github.createMilestone "myuser" "my-repo" "v2.0" {"description": "Version 2.0 release", "dueOn": "2025-06-01T00:00:00Z"}', | ||
| }, | ||
| }; | ||
| export const GithubModuleMetadata = { | ||
| description: "GitHub REST API v3 client for repositories, issues, pull requests, releases, actions, labels, milestones, and search", | ||
| methods: Object.keys(GithubFunctions), | ||
| category: "development", | ||
| }; | ||
| //# sourceMappingURL=github.js.map |
| {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAIA,uEAAuE;AAEvE,IAAI,WAAW,GAAG,EAAE,CAAC;AAErB,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAE1C,uEAAuE;AAEvE,SAAS,QAAQ;IACf,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,cAAc;IACrB,OAAO;QACL,MAAM,EAAE,6BAA6B;QACrC,aAAa,EAAE,UAAU,QAAQ,EAAE,EAAE;QACrC,sBAAsB,EAAE,YAAY;KACrC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,MAAc,EACd,IAAY,EACZ,IAAc;IAEd,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;IAClE,MAAM,IAAI,GAAgB;QACxB,MAAM;QACN,OAAO,EAAE,cAAc,EAAE;KAC1B,CAAC;IACF,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAExC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/D,IAAI,IAAW,CAAC;IAChB,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAU,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YACnD,CAAC,CAAE,IAAgC,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACnE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,IAAI,IAAI,YAAY,QAAQ,CAAC,MAAM,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,MAA+B;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,uEAAuE;AAEvE,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,WAAW,GAAG,KAAK,CAAC;IACpB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACtD,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,OAAO,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,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,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;QACvC,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;IACH,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,SAAS,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,EAAE,cAAc,KAAK,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,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,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC1D,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChF,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzE,OAAO,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,QAAQ,EAAE,UAAU,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,WAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACxF,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,aAAa,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC5F,CAAC,CAAC;AAEF,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAEhG,mCAAmC;IACnC,MAAM,GAAG,GAAG,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,kBAAkB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAA4B,CAAC;IAC3I,MAAM,GAAG,GAAK,GAAG,CAAC,MAAkC,EAAE,GAAc,IAAI,EAAE,CAAC;IAE3E,OAAO,SAAS,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,IAAI,WAAW,EAAE;QAC3D,GAAG,EAAE,cAAc,UAAU,EAAE;QAC/B,GAAG;KACJ,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,WAAW,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,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,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,UAAU,CAAC;QACvB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;QACvC,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,WAAW,KAAK,EAAE,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAClF,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,YAAY,GAAG,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,UAAU,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,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,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,UAAU,CAAC;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;QACvC,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,WAAW,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,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,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACtF,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,CAAC;IAChD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAClE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1E,OAAO,SAAS,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,IAAI,SAAS,EAAE,IAAI,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,WAAW,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,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;IAC3G,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAClG,OAAO,SAAS,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,IAAI,WAAW,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AACrF,CAAC,CAAC;AAEF,MAAM,UAAU,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAClG,OAAO,SAAS,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,IAAI,WAAW,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAClG,CAAC,CAAC;AAEF,MAAM,eAAe,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAClG,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACvD,OAAO,SAAS,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,IAAI,WAAW,WAAW,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/F,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAClG,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,WAAW,WAAW,WAAW,CAAC,CAAC;AACpF,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,gBAAgB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,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,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,UAAU,CAAC;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;QACvC,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,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,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,OAAO,SAAS,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,IAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,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,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5F,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjF,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;QAAE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,UAAU,QAAQ,QAAQ,EAAE,IAAI,CAAC,CAAC;AACnF,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,WAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,aAAa,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,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,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC1F,MAAM,IAAI,GAA4B,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9E,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;QAAE,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7F,OAAO,SAAS,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,IAAI,WAAW,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,aAAa,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,oBAAoB,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,eAAe,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,MAAM,MAAM,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,SAAS,CAAwC,CAAC;IAC9H,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,IAAI,GAA4B,EAAE,GAAG,EAAE,CAAC;IAC9C,IAAI,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,SAAS,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,IAAI,sBAAsB,UAAU,aAAa,EAAE,IAAI,CAAC,CAAC;AACvG,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IACxC,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,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,UAAU,CAAC;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;QACvC,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;IACH,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,sBAAsB,UAAU,QAAQ,KAAK,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,gBAAgB,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,OAAO,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,WAAW,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,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,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACxD,MAAM,EAAE,GAAG,UAAU,CAAC;QACpB,CAAC,EAAE,KAAK;QACR,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;QACvC,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,KAAK,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,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,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACxD,MAAM,EAAE,GAAG,UAAU,CAAC;QACpB,CAAC,EAAE,KAAK;QACR,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;QACvC,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,UAAU,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,SAAS,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,WAAW,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACrG,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;IAC/E,IAAI,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAC9D,OAAO,SAAS,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,IAAI,SAAS,EAAE,IAAI,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAa,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAClG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC/F,OAAO,SAAS,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,IAAI,WAAW,WAAW,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/F,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,cAAc,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,IAAI,aAAa,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,eAAe,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,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,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACtF,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,CAAC;IAChD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChF,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,OAAO,SAAS,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,IAAI,aAAa,EAAE,IAAI,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,uEAAuE;AAEvE,MAAM,CAAC,MAAM,eAAe,GAAmC;IAC7D,QAAQ;IACR,OAAO;IACP,SAAS;IACT,UAAU;IACV,UAAU;IACV,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,WAAW;IACX,SAAS;IACT,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,YAAY;IACZ,aAAa;IACb,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,OAAO;IACP,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,SAAS;IACT,cAAc;IACd,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ,EAAE;QACR,WAAW,EAAE,yDAAyD;QACtE,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,8DAA8D,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC1J;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,eAAe;QAClC,OAAO,EAAE,oCAAoC;KAC9C;IACD,OAAO,EAAE;QACP,WAAW,EAAE,4BAA4B;QACzC,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3H,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5G;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,8DAA8D;QACjF,OAAO,EAAE,wCAAwC;KAClD;IACD,SAAS,EAAE;QACT,WAAW,EAAE,wDAAwD;QACrE,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC5I;QACD,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,6BAA6B;QAChD,OAAO,EAAE,4BAA4B;KACtC;IACD,UAAU,EAAE;QACV,WAAW,EAAE,oDAAoD;QACjE,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpI;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,2BAA2B;QAC9C,OAAO,EAAE,oGAAoG;KAC9G;IACD,UAAU,EAAE;QACV,WAAW,EAAE,kDAAkD;QAC/D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5G;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,cAAc;QACjC,OAAO,EAAE,uCAAuC;KACjD;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,+BAA+B;QAC5C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5G;QACD,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,mDAAmD;QACtE,OAAO,EAAE,6CAA6C;KACvD;IACD,SAAS,EAAE;QACT,WAAW,EAAE,mCAAmC;QAChD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,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;QACpB,iBAAiB,EAAE,wDAAwD;QAC3E,OAAO,EAAE,iDAAiD;KAC3D;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,iDAAiD;QAC9D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzH,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjI;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,yCAAyC;QAC5D,OAAO,EAAE,2DAA2D;KACrE;IACD,WAAW,EAAE;QACX,WAAW,EAAE,8BAA8B;QAC3C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC/I;QACD,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,yBAAyB;QAC5C,OAAO,EAAE,0EAA0E;KACpF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,4BAA4B;QACzC,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACtG;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,+CAA+C;QAClE,OAAO,EAAE,oDAAoD;KAC9D;IACD,UAAU,EAAE;QACV,WAAW,EAAE,6BAA6B;QAC1C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kEAAkE,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjK;QACD,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,wBAAwB;QAC3C,OAAO,EAAE,8EAA8E;KACxF;IACD,WAAW,EAAE;QACX,WAAW,EAAE,oCAAoC;QACjD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACxG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACzI;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,sBAAsB;QACzC,OAAO,EAAE,yGAAyG;KACnH;IACD,WAAW,EAAE;QACX,WAAW,EAAE,0BAA0B;QACvC,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YACjH,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,4EAA4E,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACzK;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,sBAAsB;QACzC,OAAO,EAAE,oGAAoG;KAC9G;IACD,UAAU,EAAE;QACV,WAAW,EAAE,gBAAgB;QAC7B,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;SAClH;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,0CAA0C;QAC7D,OAAO,EAAE,yCAAyC;KACnD;IACD,eAAe,EAAE;QACf,WAAW,EAAE,2CAA2C;QACxD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YACvH,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;SAClI;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,wBAAwB;QAC3C,OAAO,EAAE,sEAAsE;KAChF;IACD,iBAAiB,EAAE;QACjB,WAAW,EAAE,2CAA2C;QACxD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;SACxH;QACD,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,0BAA0B;QAC7C,OAAO,EAAE,oDAAoD;KAC9D;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,oCAAoC;QACjD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,4DAA4D,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC3J;QACD,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,+BAA+B;QAClD,OAAO,EAAE,mEAAmE;KAC7E;IACD,iBAAiB,EAAE;QACjB,WAAW,EAAE,2BAA2B;QACxC,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACrG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACrH,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAChH,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAChH;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,6BAA6B;QAChD,OAAO,EAAE,6HAA6H;KACvI;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,sBAAsB;QACnC,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YACrH,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,qEAAqE,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpK;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,mCAAmC;QACtD,OAAO,EAAE,oEAAoE;KAC9E;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,+BAA+B;QAC5C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5G;QACD,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,0BAA0B;QAC7C,OAAO,EAAE,6CAA6C;KACvD;IACD,aAAa,EAAE;QACb,WAAW,EAAE,iCAAiC;QAC9C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACrI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACtJ;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,wBAAwB;QAC3C,OAAO,EAAE,wHAAwH;KAClI;IACD,aAAa,EAAE;QACb,WAAW,EAAE,+CAA+C;QAC5D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5G;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,uDAAuD;QAC1E,OAAO,EAAE,yCAAyC;KACnD;IACD,eAAe,EAAE;QACf,WAAW,EAAE,kDAAkD;QAC/D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3I,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACtH,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACzH;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,cAAc;QACjC,OAAO,EAAE,6FAA6F;KACvG;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,0DAA0D;QACvE,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnJ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC5I;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,+DAA+D;QAClF,OAAO,EAAE,6EAA6E;KACvF;IACD,OAAO,EAAE;QACP,WAAW,EAAE,8CAA8C;QAC3D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,+CAA+C,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC/I;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,qBAAqB;QACxC,OAAO,EAAE,0BAA0B;KACpC;IACD,WAAW,EAAE;QACX,WAAW,EAAE,4BAA4B;QACzC,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAChI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjI;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,iDAAiD;QACpE,OAAO,EAAE,wEAAwE;KAClF;IACD,UAAU,EAAE;QACV,WAAW,EAAE,wCAAwC;QACrD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACrI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjI;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,iDAAiD;QACpE,OAAO,EAAE,qEAAqE;KAC/E;IACD,UAAU,EAAE;QACV,WAAW,EAAE,6BAA6B;QAC1C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5G;QACD,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,0DAA0D;QAC7E,OAAO,EAAE,2CAA2C;KACrD;IACD,WAAW,EAAE;QACX,WAAW,EAAE,oCAAoC;QACjD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACtG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,8CAA8C,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzI,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACtH;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,sBAAsB;QACzC,OAAO,EAAE,uFAAuF;KACjG;IACD,SAAS,EAAE;QACT,WAAW,EAAE,wCAAwC;QACrD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YACvH,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACzH;QACD,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,yCAAyC;QAC5D,OAAO,EAAE,iEAAiE;KAC3E;IACD,cAAc,EAAE;QACd,WAAW,EAAE,iCAAiC;QAC9C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5G;QACD,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,4BAA4B;QAC/C,OAAO,EAAE,+CAA+C;KACzD;IACD,eAAe,EAAE;QACf,WAAW,EAAE,wCAAwC;QACrD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3G,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC5G,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACtJ;QACD,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,0BAA0B;QAC7C,OAAO,EAAE,0HAA0H;KACpI;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,sHAAsH;IACnI,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;IACrC,QAAQ,EAAE,aAAa;CACxB,CAAC"} |
| import type { ModuleAdapter } from "@wiredwp/robinpath"; | ||
| declare const GithubModule: ModuleAdapter; | ||
| export default GithubModule; | ||
| export { GithubModule }; | ||
| export { GithubFunctions, GithubFunctionMetadata, GithubModuleMetadata } from "./github.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 { GithubFunctions, GithubFunctionMetadata, GithubModuleMetadata } from "./github.js"; | ||
| const GithubModule = { | ||
| name: "github", | ||
| functions: GithubFunctions, | ||
| functionMetadata: GithubFunctionMetadata, | ||
| moduleMetadata: GithubModuleMetadata, | ||
| global: false, | ||
| }; // as ModuleAdapter | ||
| export default GithubModule; | ||
| export { GithubModule }; | ||
| export { GithubFunctions, GithubFunctionMetadata, GithubModuleMetadata } from "./github.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"} |
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%5383
-94.58%2
-80%0
-100%2
100%