Initialize remote IDE scaffold

This commit is contained in:
2026-05-10 14:08:25 +00:00
commit 138eea3231
97 changed files with 21129 additions and 0 deletions
@@ -0,0 +1,18 @@
import { CommandContribution, CommandRegistry } from '@theia/core/lib/common/command.js';
import { MenuContribution, MenuModelRegistry } from '@theia/core/lib/common/menu/menu-model-registry.js';
import { MessageService } from '@theia/core/lib/common/message-service.js';
import { ContainerModule } from '@theia/core/shared/inversify/index.js';
import { type IGitZoneRemoteServer } from '../common/gitzone-remote-protocol.js';
export declare const GitZoneRemoteEnvironmentCommand: {
id: string;
label: string;
};
export declare class GitZoneRemoteContribution implements CommandContribution, MenuContribution {
protected readonly remoteServer: IGitZoneRemoteServer;
protected readonly messages: MessageService;
registerCommands(registry: CommandRegistry): void;
registerMenus(menus: MenuModelRegistry): void;
}
declare const _default: ContainerModule;
export default _default;
//# sourceMappingURL=gitzone-remote-frontend-module.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"gitzone-remote-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/gitzone-remote-frontend-module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAsB,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAC;AAE9C,eAAO,MAAM,+BAA+B;;;CAG3C,CAAC;AAEF,qBACa,yBAA0B,YAAW,mBAAmB,EAAE,gBAAgB;IAErF,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAG,oBAAoB,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAC;IAE7C,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IASjD,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;CAM9C;;AAED,wBAWG"}
@@ -0,0 +1,64 @@
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GitZoneRemoteContribution = exports.GitZoneRemoteEnvironmentCommand = void 0;
const ws_connection_provider_js_1 = require("@theia/core/lib/browser/messaging/ws-connection-provider.js");
const common_menus_js_1 = require("@theia/core/lib/browser/common-menus.js");
const command_js_1 = require("@theia/core/lib/common/command.js");
const menu_model_registry_js_1 = require("@theia/core/lib/common/menu/menu-model-registry.js");
const message_service_js_1 = require("@theia/core/lib/common/message-service.js");
const index_js_1 = require("@theia/core/shared/inversify/index.js");
const gitzone_remote_protocol_js_1 = require("../common/gitzone-remote-protocol.js");
exports.GitZoneRemoteEnvironmentCommand = {
id: 'gitzone.remote.environment',
label: 'Git.Zone: Show Remote Environment',
};
let GitZoneRemoteContribution = class GitZoneRemoteContribution {
remoteServer;
messages;
registerCommands(registry) {
registry.registerCommand(exports.GitZoneRemoteEnvironmentCommand, {
execute: async () => {
const environment = await this.remoteServer.getEnvironment();
await this.messages.info(`Remote workspace: ${environment.workspacePath}`);
},
});
}
registerMenus(menus) {
menus.registerMenuAction(common_menus_js_1.CommonMenus.FILE_OPEN, {
commandId: exports.GitZoneRemoteEnvironmentCommand.id,
label: exports.GitZoneRemoteEnvironmentCommand.label,
});
}
};
exports.GitZoneRemoteContribution = GitZoneRemoteContribution;
__decorate([
(0, index_js_1.inject)(gitzone_remote_protocol_js_1.GitZoneRemoteServer),
__metadata("design:type", Object)
], GitZoneRemoteContribution.prototype, "remoteServer", void 0);
__decorate([
(0, index_js_1.inject)(message_service_js_1.MessageService),
__metadata("design:type", message_service_js_1.MessageService)
], GitZoneRemoteContribution.prototype, "messages", void 0);
exports.GitZoneRemoteContribution = GitZoneRemoteContribution = __decorate([
(0, index_js_1.injectable)()
], GitZoneRemoteContribution);
exports.default = new index_js_1.ContainerModule((bind) => {
bind(gitzone_remote_protocol_js_1.GitZoneRemoteServer)
.toDynamicValue((context) => context.container
.get(ws_connection_provider_js_1.WebSocketConnectionProvider)
.createProxy(gitzone_remote_protocol_js_1.gitZoneRemotePath))
.inSingletonScope();
bind(GitZoneRemoteContribution).toSelf().inSingletonScope();
bind(command_js_1.CommandContribution).toService(GitZoneRemoteContribution);
bind(menu_model_registry_js_1.MenuContribution).toService(GitZoneRemoteContribution);
});
//# sourceMappingURL=gitzone-remote-frontend-module.js.map
@@ -0,0 +1 @@
{"version":3,"file":"gitzone-remote-frontend-module.js","sourceRoot":"","sources":["../../src/browser/gitzone-remote-frontend-module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2GAA0G;AAC1G,6EAAsE;AACtE,kEAAyF;AACzF,+FAAyG;AACzG,kFAA2E;AAC3E,oEAA4F;AAC5F,qFAI8C;AAEjC,QAAA,+BAA+B,GAAG;IAC7C,EAAE,EAAE,4BAA4B;IAChC,KAAK,EAAE,mCAAmC;CAC3C,CAAC;AAGK,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAEjB,YAAY,CAAwB;IAGpC,QAAQ,CAAkB;IAE7C,gBAAgB,CAAC,QAAyB;QACxC,QAAQ,CAAC,eAAe,CAAC,uCAA+B,EAAE;YACxD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;gBAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;YAC7E,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,KAAwB;QACpC,KAAK,CAAC,kBAAkB,CAAC,6BAAW,CAAC,SAAS,EAAE;YAC9C,SAAS,EAAE,uCAA+B,CAAC,EAAE;YAC7C,KAAK,EAAE,uCAA+B,CAAC,KAAK;SAC7C,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAtBY,8DAAyB;AAEjB;IADlB,IAAA,iBAAM,EAAC,gDAAmB,CAAC;;+DAC2B;AAGpC;IADlB,IAAA,iBAAM,EAAC,mCAAc,CAAC;8BACO,mCAAc;2DAAC;oCALlC,yBAAyB;IADrC,IAAA,qBAAU,GAAE;GACA,yBAAyB,CAsBrC;AAED,kBAAe,IAAI,0BAAe,CAAC,CAAC,IAAI,EAAE,EAAE;IAC1C,IAAI,CAAC,gDAAmB,CAAC;SACtB,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1B,OAAO,CAAC,SAAS;SACd,GAAG,CAAC,uDAA2B,CAAC;SAChC,WAAW,CAAuB,8CAAiB,CAAC,CACxD;SACA,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,gCAAmB,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAC/D,IAAI,CAAC,yCAAgB,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC"}
@@ -0,0 +1,13 @@
export declare const gitZoneRemotePath = "/services/git-zone/remote";
export declare const GitZoneRemoteServer: unique symbol;
export interface IGitZoneRemoteEnvironment {
workspacePath: string;
processId: number;
opencodePort?: number;
theiaPort?: number;
serverVersion?: string;
}
export interface IGitZoneRemoteServer {
getEnvironment(): Promise<IGitZoneRemoteEnvironment>;
}
//# sourceMappingURL=gitzone-remote-protocol.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"gitzone-remote-protocol.d.ts","sourceRoot":"","sources":["../../src/common/gitzone-remote-protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAE7D,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AAEjE,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACtD"}
@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GitZoneRemoteServer = exports.gitZoneRemotePath = void 0;
exports.gitZoneRemotePath = '/services/git-zone/remote';
exports.GitZoneRemoteServer = Symbol('GitZoneRemoteServer');
//# sourceMappingURL=gitzone-remote-protocol.js.map
@@ -0,0 +1 @@
{"version":3,"file":"gitzone-remote-protocol.js","sourceRoot":"","sources":["../../src/common/gitzone-remote-protocol.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,2BAA2B,CAAC;AAEhD,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
import { ContainerModule } from '@theia/core/shared/inversify/index.js';
declare const _default: ContainerModule;
export default _default;
//# sourceMappingURL=gitzone-remote-backend-module.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"gitzone-remote-backend-module.d.ts","sourceRoot":"","sources":["../../src/node/gitzone-remote-backend-module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;;AAQxE,wBAUG"}
@@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const handler_js_1 = require("@theia/core/lib/common/messaging/handler.js");
const proxy_factory_js_1 = require("@theia/core/lib/common/messaging/proxy-factory.js");
const index_js_1 = require("@theia/core/shared/inversify/index.js");
const gitzone_remote_protocol_js_1 = require("../common/gitzone-remote-protocol.js");
const gitzone_remote_node_service_js_1 = require("./gitzone-remote-node-service.js");
exports.default = new index_js_1.ContainerModule((bind) => {
bind(gitzone_remote_node_service_js_1.GitZoneRemoteNodeService).toSelf().inSingletonScope();
bind(gitzone_remote_protocol_js_1.GitZoneRemoteServer).toService(gitzone_remote_node_service_js_1.GitZoneRemoteNodeService);
bind(handler_js_1.ConnectionHandler)
.toDynamicValue((context) => new proxy_factory_js_1.RpcConnectionHandler(gitzone_remote_protocol_js_1.gitZoneRemotePath, () => context.container.get(gitzone_remote_protocol_js_1.GitZoneRemoteServer)))
.inSingletonScope();
});
//# sourceMappingURL=gitzone-remote-backend-module.js.map
@@ -0,0 +1 @@
{"version":3,"file":"gitzone-remote-backend-module.js","sourceRoot":"","sources":["../../src/node/gitzone-remote-backend-module.ts"],"names":[],"mappings":";;AAAA,4EAAgF;AAChF,wFAAyF;AACzF,oEAAwE;AACxE,qFAI8C;AAC9C,qFAA4E;AAE5E,kBAAe,IAAI,0BAAe,CAAC,CAAC,IAAI,EAAE,EAAE;IAC1C,IAAI,CAAC,yDAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,gDAAmB,CAAC,CAAC,SAAS,CAAC,yDAAwB,CAAC,CAAC;IAC9D,IAAI,CAAC,8BAAiB,CAAC;SACpB,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1B,IAAI,uCAAoB,CAAQ,8CAAiB,EAAE,GAAG,EAAE,CACtD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAuB,gDAAmB,CAAC,CACjE,CACF;SACA,gBAAgB,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
import type { IGitZoneRemoteEnvironment, IGitZoneRemoteServer } from '../common/gitzone-remote-protocol.js';
export declare class GitZoneRemoteNodeService implements IGitZoneRemoteServer {
getEnvironment(): Promise<IGitZoneRemoteEnvironment>;
}
//# sourceMappingURL=gitzone-remote-node-service.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"gitzone-remote-node-service.d.ts","sourceRoot":"","sources":["../../src/node/gitzone-remote-node-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5G,qBACa,wBAAyB,YAAW,oBAAoB;IAC7D,cAAc,IAAI,OAAO,CAAC,yBAAyB,CAAC;CAS3D"}
@@ -0,0 +1,33 @@
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GitZoneRemoteNodeService = void 0;
const index_js_1 = require("@theia/core/shared/inversify/index.js");
let GitZoneRemoteNodeService = class GitZoneRemoteNodeService {
async getEnvironment() {
return {
workspacePath: process.env.GITZONE_IDE_WORKSPACE || process.cwd(),
processId: process.pid,
opencodePort: parseOptionalPort(process.env.GITZONE_IDE_OPENCODE_PORT),
theiaPort: parseOptionalPort(process.env.THEIA_PORT),
serverVersion: process.env.GITZONE_IDE_SERVER_VERSION,
};
}
};
exports.GitZoneRemoteNodeService = GitZoneRemoteNodeService;
exports.GitZoneRemoteNodeService = GitZoneRemoteNodeService = __decorate([
(0, index_js_1.injectable)()
], GitZoneRemoteNodeService);
const parseOptionalPort = (value) => {
if (!value) {
return undefined;
}
const port = Number(value);
return Number.isInteger(port) && port > 0 ? port : undefined;
};
//# sourceMappingURL=gitzone-remote-node-service.js.map
@@ -0,0 +1 @@
{"version":3,"file":"gitzone-remote-node-service.js","sourceRoot":"","sources":["../../src/node/gitzone-remote-node-service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oEAAmE;AAI5D,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,KAAK,CAAC,cAAc;QAClB,OAAO;YACL,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,EAAE;YACjE,SAAS,EAAE,OAAO,CAAC,GAAG;YACtB,YAAY,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YACtE,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YACpD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;SACtD,CAAC;IACJ,CAAC;CACF,CAAA;AAVY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,qBAAU,GAAE;GACA,wBAAwB,CAUpC;AAED,MAAM,iBAAiB,GAAG,CAAC,KAAyB,EAAE,EAAE;IACtD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC,CAAC"}
@@ -0,0 +1,20 @@
{
"name": "@git.zone/ide-extension-remote",
"version": "0.1.0",
"private": true,
"keywords": ["theia-extension"],
"scripts": {
"build": "tsc -p tsconfig.json"
},
"dependencies": {
"@git.zone/ide-protocol": "workspace:*",
"@theia/core": "1.71.0"
},
"theiaExtensions": [
{
"frontend": "lib/browser/gitzone-remote-frontend-module",
"backend": "lib/node/gitzone-remote-backend-module"
}
],
"files": ["src", "lib"]
}
@@ -0,0 +1,54 @@
import { WebSocketConnectionProvider } from '@theia/core/lib/browser/messaging/ws-connection-provider.js';
import { CommonMenus } from '@theia/core/lib/browser/common-menus.js';
import { CommandContribution, CommandRegistry } from '@theia/core/lib/common/command.js';
import { MenuContribution, MenuModelRegistry } from '@theia/core/lib/common/menu/menu-model-registry.js';
import { MessageService } from '@theia/core/lib/common/message-service.js';
import { ContainerModule, inject, injectable } from '@theia/core/shared/inversify/index.js';
import {
GitZoneRemoteServer,
gitZoneRemotePath,
type IGitZoneRemoteServer,
} from '../common/gitzone-remote-protocol.js';
export const GitZoneRemoteEnvironmentCommand = {
id: 'gitzone.remote.environment',
label: 'Git.Zone: Show Remote Environment',
};
@injectable()
export class GitZoneRemoteContribution implements CommandContribution, MenuContribution {
@inject(GitZoneRemoteServer)
protected readonly remoteServer!: IGitZoneRemoteServer;
@inject(MessageService)
protected readonly messages!: MessageService;
registerCommands(registry: CommandRegistry): void {
registry.registerCommand(GitZoneRemoteEnvironmentCommand, {
execute: async () => {
const environment = await this.remoteServer.getEnvironment();
await this.messages.info(`Remote workspace: ${environment.workspacePath}`);
},
});
}
registerMenus(menus: MenuModelRegistry): void {
menus.registerMenuAction(CommonMenus.FILE_OPEN, {
commandId: GitZoneRemoteEnvironmentCommand.id,
label: GitZoneRemoteEnvironmentCommand.label,
});
}
}
export default new ContainerModule((bind) => {
bind(GitZoneRemoteServer)
.toDynamicValue((context) =>
context.container
.get(WebSocketConnectionProvider)
.createProxy<IGitZoneRemoteServer>(gitZoneRemotePath),
)
.inSingletonScope();
bind(GitZoneRemoteContribution).toSelf().inSingletonScope();
bind(CommandContribution).toService(GitZoneRemoteContribution);
bind(MenuContribution).toService(GitZoneRemoteContribution);
});
@@ -0,0 +1,15 @@
export const gitZoneRemotePath = '/services/git-zone/remote';
export const GitZoneRemoteServer = Symbol('GitZoneRemoteServer');
export interface IGitZoneRemoteEnvironment {
workspacePath: string;
processId: number;
opencodePort?: number;
theiaPort?: number;
serverVersion?: string;
}
export interface IGitZoneRemoteServer {
getEnvironment(): Promise<IGitZoneRemoteEnvironment>;
}
@@ -0,0 +1,21 @@
import { ConnectionHandler } from '@theia/core/lib/common/messaging/handler.js';
import { RpcConnectionHandler } from '@theia/core/lib/common/messaging/proxy-factory.js';
import { ContainerModule } from '@theia/core/shared/inversify/index.js';
import {
GitZoneRemoteServer,
gitZoneRemotePath,
type IGitZoneRemoteServer,
} from '../common/gitzone-remote-protocol.js';
import { GitZoneRemoteNodeService } from './gitzone-remote-node-service.js';
export default new ContainerModule((bind) => {
bind(GitZoneRemoteNodeService).toSelf().inSingletonScope();
bind(GitZoneRemoteServer).toService(GitZoneRemoteNodeService);
bind(ConnectionHandler)
.toDynamicValue((context) =>
new RpcConnectionHandler<never>(gitZoneRemotePath, () =>
context.container.get<IGitZoneRemoteServer>(GitZoneRemoteServer),
),
)
.inSingletonScope();
});
@@ -0,0 +1,23 @@
import { injectable } from '@theia/core/shared/inversify/index.js';
import type { IGitZoneRemoteEnvironment, IGitZoneRemoteServer } from '../common/gitzone-remote-protocol.js';
@injectable()
export class GitZoneRemoteNodeService implements IGitZoneRemoteServer {
async getEnvironment(): Promise<IGitZoneRemoteEnvironment> {
return {
workspacePath: process.env.GITZONE_IDE_WORKSPACE || process.cwd(),
processId: process.pid,
opencodePort: parseOptionalPort(process.env.GITZONE_IDE_OPENCODE_PORT),
theiaPort: parseOptionalPort(process.env.THEIA_PORT),
serverVersion: process.env.GITZONE_IDE_SERVER_VERSION,
};
}
}
const parseOptionalPort = (value: string | undefined) => {
if (!value) {
return undefined;
}
const port = Number(value);
return Number.isInteger(port) && port > 0 ? port : undefined;
};
@@ -0,0 +1,14 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"module": "CommonJS",
"moduleResolution": "Node",
"verbatimModuleSyntax": false,
"rootDir": "src",
"outDir": "lib",
"declaration": true,
"declarationMap": true,
"sourceMap": true
},
"include": ["src/**/*.ts", "src/**/*.tsx"]
}