unity-mcp-server 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/PURPOSE.md ADDED
@@ -0,0 +1,37 @@
1
+ # Why This MCP Server Exists and When It Makes Sense
2
+
3
+ ## What it does
4
+
5
+ This server exposes **tools** that an MCP client (e.g. Cursor) can call when you’re working on **any Unity project**. Each tool does one thing:
6
+
7
+ - **get_project_info** – Unity version, project path, how many scenes are in the build.
8
+ - **list_build_scenes** – Full list of build scenes in order (from `EditorBuildSettings`).
9
+ - **read_agent_docs** – Contents of `.agents/AGENT.md` (and optionally `REPO_UNDERSTANDING.md`).
10
+
11
+ So the agent (or you, via the agent) can ask “what’s the build order?” or “what’s in the agent guide?” without you opening files by hand. The client starts this process and calls these tools over stdio. **No Unity Editor is required** — it reads only from the project filesystem.
12
+
13
+ ## Does it make sense to have it?
14
+
15
+ **Yes, if:**
16
+
17
+ - You use an **MCP-aware IDE** (Cursor, Claude Desktop, Windsurf, etc.) and want the AI to have structured access to project metadata and agent docs.
18
+ - You want the **Unity project repo to stay clean** (no Node/tooling inside it), and the **tooling to live in a separate repo** that you clone once and point at any Unity project via `UNITY_PROJECT_PATH`.
19
+ - You’re building toward **more agent-facing tools** later (e.g. “list Addressables,” “run Unity CLI build,” “inspect scene list”) without bloating the game repo.
20
+
21
+ **Optional / nice-to-have if:**
22
+
23
+ - You mostly work without MCP or without asking the AI about build order / agent docs. Then the server is optional; the game still works without it.
24
+ - You’re fine opening `.agents/AGENT.md` and `ProjectSettings/EditorBuildSettings.asset` yourself. Then the server saves you a few clicks and gives the agent the same info in a structured way.
25
+
26
+ **Probably overkill if:**
27
+
28
+ - You never use MCP or an AI agent that can call tools. Then you don’t need this repo at all.
29
+
30
+ ## What purpose it serves
31
+
32
+ 1. **Structured project context for the agent** – The agent can ask “what scenes are in the build?” or “what’s the agent guide?” and get exact answers via tools instead of guessing or reading raw YAML/markdown without context.
33
+ 2. **Separation of concerns** – Game repo = Unity + game code. This repo = one small Node app that knows how to read that project. You can version and change the server without touching the Unity project.
34
+ 3. **Single place to add more tools** – When you want “trigger a build” or “list Addressables” or “validate scene refs,” you add a tool here and the consumer just points Cursor at the same server.
35
+ 4. **Reusability** – Same server works for **any** Unity project; switch projects by changing `UNITY_PROJECT_PATH` in the client config.
36
+
37
+ In short: **it makes sense if you use MCP and want the AI to have reliable, structured access to project info and agent docs; it serves the purpose of a small, separate tool layer that sits next to any Unity project and exposes that context as MCP tools.**
package/README.md ADDED
@@ -0,0 +1,101 @@
1
+ # Unity MCP Server
2
+
3
+ **MCP server for Unity** — A lightweight [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server that gives AI assistants structured access to your Unity projects. Use with Cursor, Claude Desktop, or any MCP client. Query project metadata, build settings, and agent documentation from any MCP-capable client—without running the Unity Editor.
4
+
5
+ ---
6
+
7
+ ## Overview
8
+
9
+ Unity MCP Server runs as a separate process and reads your Unity project from disk. Point it at any project root via `UNITY_PROJECT_PATH`; one installation can serve multiple projects by changing the environment variable in your client config.
10
+
11
+ **Key points:**
12
+
13
+ - **Editor-free** — Uses only the project filesystem. No Unity process or Editor dependency.
14
+ - **Single binary** — One Node.js server for all your Unity projects.
15
+ - **MCP-native** — Built on the official MCP SDK; works with Cursor, Claude Desktop, Windsurf, and other MCP clients.
16
+
17
+ ---
18
+
19
+ ## Features
20
+
21
+ | Tool | Description |
22
+ |------|-------------|
23
+ | `get_project_info` | Returns project root path, Unity version, and build scene count. |
24
+ | `list_build_scenes` | Returns scenes in `EditorBuildSettings` in build order (JSON). |
25
+ | `read_agent_docs` | Returns contents of `.agents/AGENT.md`; optionally includes `REPO_UNDERSTANDING.md`. |
26
+
27
+ ---
28
+
29
+ ## Prerequisites
30
+
31
+ - **Node.js** 18 or later
32
+ - **UNITY_PROJECT_PATH** — Absolute path to your Unity project root (set in your MCP client configuration)
33
+
34
+ ---
35
+
36
+ ## Installation
37
+
38
+ ```bash
39
+ git clone https://github.com/YOUR_USERNAME/unity-mcp-server.git
40
+ cd unity-mcp-server
41
+ npm install
42
+ npm run build
43
+ ```
44
+
45
+ The server is invoked via **stdio**. Your MCP client starts it; you do not run it manually in production.
46
+
47
+ ---
48
+
49
+ ## Configuration
50
+
51
+ ### Cursor
52
+
53
+ Add the following to your MCP settings (project or user):
54
+
55
+ ```json
56
+ {
57
+ "mcpServers": {
58
+ "unity": {
59
+ "command": "node",
60
+ "args": ["/absolute/path/to/unity-mcp-server/dist/index.js"],
61
+ "env": {
62
+ "UNITY_PROJECT_PATH": "/absolute/path/to/YourUnityProject"
63
+ }
64
+ }
65
+ }
66
+ }
67
+ ```
68
+
69
+ Replace:
70
+
71
+ 1. `/absolute/path/to/unity-mcp-server/dist/index.js` with the path to this repository’s built entry point.
72
+ 2. `/absolute/path/to/YourUnityProject` with the absolute path to your Unity project root.
73
+
74
+ ### Other MCP clients
75
+
76
+ Use the same pattern: run `node` with `dist/index.js` as the argument and set `UNITY_PROJECT_PATH` in the environment. Refer to your client’s documentation for where to configure MCP servers.
77
+
78
+ ---
79
+
80
+ ## Development
81
+
82
+ - **Production:** `node dist/index.js` (after `npm run build`)
83
+ - **Development:** `npm run dev` or `npx tsx src/index.ts`
84
+
85
+ ---
86
+
87
+ ## Security and public use
88
+
89
+ This repository contains only generic tooling: no game code, assets, API keys, or secrets. The Unity project path is provided at runtime by your MCP client and is not stored in this repo. Safe to use in public or private contexts. The project is maintained anonymously; no author attribution is required.
90
+
91
+ ---
92
+
93
+ ## Further reading
94
+
95
+ See [PURPOSE.md](./PURPOSE.md) for the rationale behind this server and when it is useful for your workflow.
96
+
97
+ ---
98
+
99
+ ## Discoverability
100
+
101
+ Search for **Unity MCP server**, **MCP Unity**, or **Model Context Protocol Unity** to find this repo. You can also browse the [MCP Registry](https://registry.modelcontextprotocol.io/) for published servers (this server may be listed there once submitted).
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * unity-mcp-server – Lightweight MCP server for any Unity project.
4
+ * Exposes tools: project info, build scenes, agent docs. No Unity Editor required.
5
+ * Set UNITY_PROJECT_PATH to the Unity project root in your MCP client config.
6
+ * Run: node dist/index.js (after npm run build).
7
+ */
8
+ export {};
package/dist/index.js ADDED
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * unity-mcp-server – Lightweight MCP server for any Unity project.
4
+ * Exposes tools: project info, build scenes, agent docs. No Unity Editor required.
5
+ * Set UNITY_PROJECT_PATH to the Unity project root in your MCP client config.
6
+ * Run: node dist/index.js (after npm run build).
7
+ */
8
+ import { readFileSync, existsSync } from "node:fs";
9
+ import { join, resolve } from "node:path";
10
+ import { z } from "zod";
11
+ function getProjectRoot() {
12
+ const env = process.env.UNITY_PROJECT_PATH;
13
+ if (env)
14
+ return resolve(env);
15
+ console.error("UNITY_PROJECT_PATH is required. Set it in your MCP client config (e.g. Cursor) to your Unity project root.");
16
+ process.exit(1);
17
+ return ""; // unreachable
18
+ }
19
+ function getBuildScenes(projectRoot) {
20
+ const path = join(projectRoot, "ProjectSettings", "EditorBuildSettings.asset");
21
+ if (!existsSync(path))
22
+ return [];
23
+ const content = readFileSync(path, "utf-8");
24
+ const scenes = [];
25
+ let index = 0;
26
+ const pathRe = /path: (Assets\/[^\n]+\.unity)/g;
27
+ let m;
28
+ while ((m = pathRe.exec(content)) !== null) {
29
+ const fullPath = m[1];
30
+ const name = fullPath.replace(/^.*\//, "").replace(/\.unity$/, "");
31
+ scenes.push({ index, path: fullPath, name });
32
+ index++;
33
+ }
34
+ return scenes;
35
+ }
36
+ async function main() {
37
+ const projectRoot = getProjectRoot();
38
+ const { McpServer } = await import("@modelcontextprotocol/sdk/server/mcp.js");
39
+ const { StdioServerTransport } = await import("@modelcontextprotocol/sdk/server/stdio.js");
40
+ const server = new McpServer({
41
+ name: "unity-mcp-server",
42
+ version: "1.0.0",
43
+ });
44
+ server.registerTool("get_project_info", {
45
+ description: "Get Unity project info (path, Unity version, build scene count).",
46
+ inputSchema: {},
47
+ }, async () => {
48
+ let unityVersion = "unknown";
49
+ const pvPath = join(projectRoot, "ProjectSettings", "ProjectVersion.txt");
50
+ if (existsSync(pvPath)) {
51
+ const m = readFileSync(pvPath, "utf-8").match(/m_EditorVersion:\s*(.+)/);
52
+ if (m)
53
+ unityVersion = m[1].trim();
54
+ }
55
+ const scenes = getBuildScenes(projectRoot);
56
+ const text = [
57
+ `Project root: ${projectRoot}`,
58
+ `Unity version: ${unityVersion}`,
59
+ `Build scenes: ${scenes.length}`,
60
+ scenes.map((s) => ` ${s.index}: ${s.name} (${s.path})`).join("\n"),
61
+ ].join("\n");
62
+ return { content: [{ type: "text", text }] };
63
+ });
64
+ server.registerTool("list_build_scenes", {
65
+ description: "List all scenes in Unity EditorBuildSettings (build order).",
66
+ inputSchema: {},
67
+ }, async () => {
68
+ const scenes = getBuildScenes(projectRoot);
69
+ const text = JSON.stringify(scenes, null, 2);
70
+ return { content: [{ type: "text", text }] };
71
+ });
72
+ server.registerTool("read_agent_docs", {
73
+ description: "Read the agent development guide (.agents/AGENT.md) and optionally REPO_UNDERSTANDING.md.",
74
+ inputSchema: {
75
+ include_repo_understanding: z.boolean().optional().describe("If true, also return REPO_UNDERSTANDING.md content").default(false),
76
+ },
77
+ }, async (args) => {
78
+ const include = args?.include_repo_understanding ?? false;
79
+ const agentPath = join(projectRoot, ".agents", "AGENT.md");
80
+ let text = "";
81
+ if (existsSync(agentPath)) {
82
+ text = readFileSync(agentPath, "utf-8");
83
+ }
84
+ else {
85
+ text = "(No .agents/AGENT.md found)";
86
+ }
87
+ if (include) {
88
+ const repPath = join(projectRoot, "REPO_UNDERSTANDING.md");
89
+ if (existsSync(repPath)) {
90
+ text += "\n\n---\n\n# REPO_UNDERSTANDING.md\n\n" + readFileSync(repPath, "utf-8");
91
+ }
92
+ }
93
+ return { content: [{ type: "text", text }] };
94
+ });
95
+ const transport = new StdioServerTransport();
96
+ await server.connect(transport);
97
+ }
98
+ main().catch((err) => {
99
+ console.error(err);
100
+ process.exit(1);
101
+ });
@@ -0,0 +1,101 @@
1
+ # How to register this server in the MCP Registry
2
+
3
+ The [MCP Registry](https://registry.modelcontextprotocol.io/) lists MCP servers so users can discover and install them. To list **Unity MCP Server** there, follow these steps.
4
+
5
+ ## Prerequisites
6
+
7
+ - **npm account** — [Sign up](https://www.npmjs.com/signup) if needed. The registry verifies ownership via the published npm package.
8
+ - **GitHub account** — You’ll authenticate with GitHub so the registry can verify `io.github.rachitkumarrastogi/unity-mcp-server`.
9
+
10
+ ## Step 1: Publish the package to npm
11
+
12
+ The registry only stores metadata; the actual package must be published to npm first.
13
+
14
+ ```bash
15
+ cd /path/to/unity-mcp-server
16
+ npm install
17
+ npm run build
18
+ npm login # if not already logged in
19
+ npm publish --access public
20
+ ```
21
+
22
+ If the name `unity-mcp-server` is already taken on npm, use a scoped name in `package.json` (e.g. `"name": "@rachitkumarrastogi/unity-mcp-server"`) and set the same value in `server.json` → `packages[0].identifier`. Keep `mcpName` in `package.json` as `io.github.rachitkumarrastogi/unity-mcp-server`.
23
+
24
+ ## Step 2: Install the MCP Publisher CLI
25
+
26
+ **macOS / Linux:**
27
+
28
+ ```bash
29
+ curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher && sudo mv mcp-publisher /usr/local/bin/
30
+ ```
31
+
32
+ **Homebrew:**
33
+
34
+ ```bash
35
+ brew install mcp-publisher
36
+ ```
37
+
38
+ **Windows:** See [Registry releases](https://github.com/modelcontextprotocol/registry/releases/latest) for the Windows binary.
39
+
40
+ Verify:
41
+
42
+ ```bash
43
+ mcp-publisher --help
44
+ ```
45
+
46
+ ## Step 3: Log in to the registry (GitHub)
47
+
48
+ You must authenticate as the GitHub user that owns the repo (`rachitkumarrastogi`):
49
+
50
+ ```bash
51
+ mcp-publisher login github
52
+ ```
53
+
54
+ Follow the prompts (open the URL, enter the code, authorize). When it says “Successfully logged in”, you’re done.
55
+
56
+ ## Step 4: Publish to the MCP Registry
57
+
58
+ From the repo root (where `server.json` lives):
59
+
60
+ ```bash
61
+ mcp-publisher publish
62
+ ```
63
+
64
+ You should see something like:
65
+
66
+ ```text
67
+ Publishing to https://registry.modelcontextprotocol.io...
68
+ ✓ Successfully published
69
+ ✓ Server io.github.rachitkumarrastogi/unity-mcp-server version 1.0.0
70
+ ```
71
+
72
+ ## Step 5: Confirm it’s listed
73
+
74
+ - Browse [registry.modelcontextprotocol.io](https://registry.modelcontextprotocol.io/) and search for “Unity” or “unity-mcp-server”.
75
+ - Or call the API:
76
+
77
+ ```bash
78
+ curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=unity-mcp-server"
79
+ ```
80
+
81
+ ## Updating the listing later
82
+
83
+ After you release a new version:
84
+
85
+ 1. Bump `version` in `package.json` and in `server.json` (top-level and `packages[0].version`).
86
+ 2. Run `npm run build` and `npm publish`.
87
+ 3. Run `mcp-publisher publish` again.
88
+
89
+ ## Troubleshooting
90
+
91
+ | Issue | What to do |
92
+ |-------|------------|
93
+ | “Registry validation failed for package” | Ensure `package.json` has `mcpName` exactly matching `server.json` → `name` (e.g. `io.github.rachitkumarrastogi/unity-mcp-server`). |
94
+ | “You do not have permission to publish this server” | With GitHub login, the server `name` must start with `io.github.<your-github-username>/`. Use the same GitHub account that owns the repo. |
95
+ | “Invalid or expired Registry JWT token” | Run `mcp-publisher login github` again. |
96
+
97
+ ## Official docs
98
+
99
+ - [Quickstart: Publish an MCP Server](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx)
100
+ - [Package types (npm, PyPI, etc.)](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/package-types.mdx)
101
+ - [Authentication options](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/authentication.mdx)
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "unity-mcp-server",
3
+ "version": "1.0.0",
4
+ "description": "Lightweight MCP server for any Unity project - project info, build scenes, agent docs (no Unity Editor required)",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "unity-mcp-server": "./dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "node node_modules/typescript/bin/tsc",
12
+ "start": "node dist/index.js",
13
+ "dev": "tsx src/index.ts"
14
+ },
15
+ "engines": {
16
+ "node": ">=18"
17
+ },
18
+ "dependencies": {
19
+ "@modelcontextprotocol/sdk": "^1.26.0",
20
+ "zod": "^3.23.0"
21
+ },
22
+ "devDependencies": {
23
+ "@types/node": "^20.0.0",
24
+ "tsx": "^4.0.0",
25
+ "typescript": "^5.0.0"
26
+ },
27
+ "mcpName": "io.github.rachitkumarrastogi/unity-mcp-server",
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "https://github.com/rachitkumarrastogi/unity-mcp-server.git"
31
+ }
32
+ }
package/server.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.rachitkumarrastogi/unity-mcp-server",
4
+ "title": "Unity MCP Server",
5
+ "description": "MCP server for Unity — project info, build scenes, agent docs. No Unity Editor required. Works with Cursor, Claude Desktop, and any MCP client.",
6
+ "repository": {
7
+ "url": "https://github.com/rachitkumarrastogi/unity-mcp-server",
8
+ "source": "github"
9
+ },
10
+ "version": "1.0.0",
11
+ "packages": [
12
+ {
13
+ "registryType": "npm",
14
+ "identifier": "unity-mcp-server",
15
+ "version": "1.0.0",
16
+ "transport": { "type": "stdio" },
17
+ "environmentVariables": [
18
+ {
19
+ "name": "UNITY_PROJECT_PATH",
20
+ "description": "Absolute path to your Unity project root (required)",
21
+ "isRequired": true,
22
+ "format": "string",
23
+ "isSecret": false
24
+ }
25
+ ]
26
+ }
27
+ ]
28
+ }
package/src/index.ts ADDED
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * unity-mcp-server – Lightweight MCP server for any Unity project.
4
+ * Exposes tools: project info, build scenes, agent docs. No Unity Editor required.
5
+ * Set UNITY_PROJECT_PATH to the Unity project root in your MCP client config.
6
+ * Run: node dist/index.js (after npm run build).
7
+ */
8
+
9
+ import { readFileSync, existsSync } from "node:fs";
10
+ import { join, resolve } from "node:path";
11
+ import { z } from "zod";
12
+
13
+ function getProjectRoot(): string {
14
+ const env = process.env.UNITY_PROJECT_PATH;
15
+ if (env) return resolve(env);
16
+ console.error("UNITY_PROJECT_PATH is required. Set it in your MCP client config (e.g. Cursor) to your Unity project root.");
17
+ process.exit(1);
18
+ return ""; // unreachable
19
+ }
20
+
21
+ function getBuildScenes(projectRoot: string): { index: number; path: string; name: string }[] {
22
+ const path = join(projectRoot, "ProjectSettings", "EditorBuildSettings.asset");
23
+ if (!existsSync(path)) return [];
24
+ const content = readFileSync(path, "utf-8");
25
+ const scenes: { index: number; path: string; name: string }[] = [];
26
+ let index = 0;
27
+ const pathRe = /path: (Assets\/[^\n]+\.unity)/g;
28
+ let m: RegExpExecArray | null;
29
+ while ((m = pathRe.exec(content)) !== null) {
30
+ const fullPath = m[1];
31
+ const name = fullPath.replace(/^.*\//, "").replace(/\.unity$/, "");
32
+ scenes.push({ index, path: fullPath, name });
33
+ index++;
34
+ }
35
+ return scenes;
36
+ }
37
+
38
+ async function main() {
39
+ const projectRoot = getProjectRoot();
40
+
41
+ const { McpServer } = await import("@modelcontextprotocol/sdk/server/mcp.js");
42
+ const { StdioServerTransport } = await import("@modelcontextprotocol/sdk/server/stdio.js");
43
+
44
+ const server = new McpServer({
45
+ name: "unity-mcp-server",
46
+ version: "1.0.0",
47
+ });
48
+
49
+ server.registerTool(
50
+ "get_project_info",
51
+ {
52
+ description: "Get Unity project info (path, Unity version, build scene count).",
53
+ inputSchema: {},
54
+ },
55
+ async () => {
56
+ let unityVersion = "unknown";
57
+ const pvPath = join(projectRoot, "ProjectSettings", "ProjectVersion.txt");
58
+ if (existsSync(pvPath)) {
59
+ const m = readFileSync(pvPath, "utf-8").match(/m_EditorVersion:\s*(.+)/);
60
+ if (m) unityVersion = m[1].trim();
61
+ }
62
+ const scenes = getBuildScenes(projectRoot);
63
+ const text = [
64
+ `Project root: ${projectRoot}`,
65
+ `Unity version: ${unityVersion}`,
66
+ `Build scenes: ${scenes.length}`,
67
+ scenes.map((s) => ` ${s.index}: ${s.name} (${s.path})`).join("\n"),
68
+ ].join("\n");
69
+ return { content: [{ type: "text", text }] };
70
+ }
71
+ );
72
+
73
+ server.registerTool(
74
+ "list_build_scenes",
75
+ {
76
+ description: "List all scenes in Unity EditorBuildSettings (build order).",
77
+ inputSchema: {},
78
+ },
79
+ async () => {
80
+ const scenes = getBuildScenes(projectRoot);
81
+ const text = JSON.stringify(scenes, null, 2);
82
+ return { content: [{ type: "text", text }] };
83
+ }
84
+ );
85
+
86
+ server.registerTool(
87
+ "read_agent_docs",
88
+ {
89
+ description: "Read the agent development guide (.agents/AGENT.md) and optionally REPO_UNDERSTANDING.md.",
90
+ inputSchema: {
91
+ include_repo_understanding: z.boolean().optional().describe("If true, also return REPO_UNDERSTANDING.md content").default(false),
92
+ },
93
+ },
94
+ async (args: unknown) => {
95
+ const include = (args as { include_repo_understanding?: boolean })?.include_repo_understanding ?? false;
96
+ const agentPath = join(projectRoot, ".agents", "AGENT.md");
97
+ let text = "";
98
+ if (existsSync(agentPath)) {
99
+ text = readFileSync(agentPath, "utf-8");
100
+ } else {
101
+ text = "(No .agents/AGENT.md found)";
102
+ }
103
+ if (include) {
104
+ const repPath = join(projectRoot, "REPO_UNDERSTANDING.md");
105
+ if (existsSync(repPath)) {
106
+ text += "\n\n---\n\n# REPO_UNDERSTANDING.md\n\n" + readFileSync(repPath, "utf-8");
107
+ }
108
+ }
109
+ return { content: [{ type: "text", text }] };
110
+ }
111
+ );
112
+
113
+ const transport = new StdioServerTransport();
114
+ await server.connect(transport);
115
+ }
116
+
117
+ main().catch((err) => {
118
+ console.error(err);
119
+ process.exit(1);
120
+ });
package/tsconfig.json ADDED
@@ -0,0 +1,14 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "outDir": "dist",
7
+ "rootDir": "src",
8
+ "strict": true,
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "declaration": true
12
+ },
13
+ "include": ["src/**/*"]
14
+ }