@spaceflow/core 0.1.2 → 0.2.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.
Files changed (63) hide show
  1. package/dist/129.js +9 -0
  2. package/dist/260.js +9 -0
  3. package/dist/524.js +9 -0
  4. package/dist/976.js +157 -0
  5. package/dist/976.js.map +1 -0
  6. package/dist/index.js +6673 -0
  7. package/dist/index.js.map +1 -0
  8. package/package.json +8 -13
  9. package/src/config/config-loader.ts +5 -6
  10. package/src/config/config-reader.service.ts +6 -11
  11. package/src/config/config-reader.ts +75 -0
  12. package/src/config/index.ts +4 -1
  13. package/src/config/load-env.ts +15 -0
  14. package/src/config/schema-generator.service.ts +0 -2
  15. package/src/config/spaceflow.config.ts +7 -20
  16. package/src/extension-system/define-extension.ts +25 -0
  17. package/src/extension-system/extension.interface.ts +0 -63
  18. package/src/extension-system/index.ts +5 -0
  19. package/src/extension-system/types.ts +201 -0
  20. package/src/index.ts +15 -18
  21. package/src/shared/claude-setup/claude-setup.service.ts +3 -8
  22. package/src/shared/claude-setup/index.ts +0 -1
  23. package/src/shared/feishu-sdk/feishu-sdk.service.ts +33 -21
  24. package/src/shared/feishu-sdk/fieshu-card.service.ts +9 -11
  25. package/src/shared/feishu-sdk/index.ts +0 -1
  26. package/src/shared/git-provider/git-provider.service.ts +1 -6
  27. package/src/shared/git-provider/index.ts +0 -1
  28. package/src/shared/git-sdk/git-sdk.service.ts +0 -2
  29. package/src/shared/git-sdk/index.ts +0 -1
  30. package/src/shared/llm-proxy/adapters/claude-code.adapter.spec.ts +15 -32
  31. package/src/shared/llm-proxy/adapters/claude-code.adapter.ts +5 -6
  32. package/src/shared/llm-proxy/adapters/open-code.adapter.ts +1 -3
  33. package/src/shared/llm-proxy/adapters/openai.adapter.spec.ts +7 -21
  34. package/src/shared/llm-proxy/adapters/openai.adapter.ts +1 -3
  35. package/src/shared/llm-proxy/index.ts +0 -1
  36. package/src/shared/llm-proxy/interfaces/config.interface.ts +8 -0
  37. package/src/shared/llm-proxy/llm-proxy.service.spec.ts +91 -68
  38. package/src/shared/llm-proxy/llm-proxy.service.ts +5 -8
  39. package/src/shared/mcp/index.ts +1 -33
  40. package/src/shared/output/index.ts +0 -1
  41. package/src/shared/output/output.service.ts +43 -13
  42. package/src/shared/rspack-config/rspack-config.ts +0 -6
  43. package/src/shared/storage/index.ts +0 -1
  44. package/src/shared/storage/storage.service.ts +16 -8
  45. package/src/shared/storage/types.ts +0 -44
  46. package/src/shared/verbose/index.ts +15 -0
  47. package/CHANGELOG.md +0 -1197
  48. package/nest-cli.json +0 -10
  49. package/rspack.config.mjs +0 -62
  50. package/src/app.module.ts +0 -18
  51. package/src/config/config-reader.module.ts +0 -16
  52. package/src/shared/claude-setup/claude-setup.module.ts +0 -8
  53. package/src/shared/feishu-sdk/feishu-sdk.module.ts +0 -77
  54. package/src/shared/git-provider/git-provider.module.ts +0 -73
  55. package/src/shared/git-sdk/git-sdk.module.ts +0 -8
  56. package/src/shared/llm-proxy/llm-proxy.module.ts +0 -140
  57. package/src/shared/output/output.module.ts +0 -9
  58. package/src/shared/storage/storage.module.ts +0 -150
  59. package/test/app.e2e-spec.ts +0 -22
  60. package/tsconfig.build.json +0 -4
  61. package/tsconfig.json +0 -25
  62. package/tsconfig.skill.json +0 -18
  63. package/vitest.config.ts +0 -58
package/nest-cli.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "$schema": "https://json.schemastore.org/nest-cli",
3
- "collection": "@nestjs/schematics",
4
- "sourceRoot": "src",
5
- "compilerOptions": {
6
- "deleteOutDir": true,
7
- "webpack": true,
8
- "webpackConfigPath": "webpack.config.cjs"
9
- }
10
- }
package/rspack.config.mjs DELETED
@@ -1,62 +0,0 @@
1
- import { fileURLToPath } from "url";
2
- import { dirname, resolve } from "path";
3
-
4
- const __dirname = dirname(fileURLToPath(import.meta.url));
5
-
6
- export default {
7
- optimization: {
8
- minimize: false,
9
- },
10
- entry: {
11
- index: "./src/index.ts",
12
- },
13
- plugins: [],
14
- target: "node",
15
- mode: process.env.NODE_ENV === "production" ? "production" : "development",
16
- output: {
17
- filename: "[name].js",
18
- path: resolve(__dirname, "dist"),
19
- library: { type: "module" },
20
- chunkFormat: "module",
21
- clean: true,
22
- },
23
- experiments: {
24
- outputModule: true,
25
- },
26
- externalsType: "module-import",
27
- externals: [
28
- { micromatch: "node-commonjs micromatch" },
29
- /^(?!src\/)[^./]/, // node_modules 包(排除 src/ 别名)
30
- ],
31
- resolve: {
32
- extensions: [".ts", ".js"],
33
- extensionAlias: {
34
- ".js": [".ts", ".js"],
35
- },
36
- tsConfig: {
37
- configFile: resolve(__dirname, "tsconfig.json"),
38
- },
39
- },
40
- module: {
41
- rules: [
42
- {
43
- test: /\.ts$/,
44
- exclude: /node_modules/,
45
- loader: "builtin:swc-loader",
46
- options: {
47
- jsc: {
48
- parser: {
49
- syntax: "typescript",
50
- decorators: true,
51
- },
52
- transform: {
53
- legacyDecorator: true,
54
- decoratorMetadata: true,
55
- },
56
- target: "es2022",
57
- },
58
- },
59
- },
60
- ],
61
- },
62
- };
package/src/app.module.ts DELETED
@@ -1,18 +0,0 @@
1
- import { Module } from "@nestjs/common";
2
- import { StorageModule } from "./shared/storage/storage.module";
3
- import { OutputModule } from "./shared/output";
4
- import { ConfigModule } from "@nestjs/config";
5
- import { configLoaders, getEnvFilePaths } from "./config";
6
-
7
- @Module({
8
- imports: [
9
- ConfigModule.forRoot({
10
- isGlobal: true,
11
- load: configLoaders,
12
- envFilePath: getEnvFilePaths(),
13
- }),
14
- StorageModule.forFeature(),
15
- OutputModule,
16
- ],
17
- })
18
- export class AppModule {}
@@ -1,16 +0,0 @@
1
- import { Global, Module } from "@nestjs/common";
2
- import { ConfigReaderService } from "./config-reader.service";
3
- import { SchemaGeneratorService } from "./schema-generator.service";
4
-
5
- /**
6
- * 配置读取模块
7
- * 提供插件配置读取服务和 Schema 生成服务
8
- *
9
- * 插件的 defaultConfig 通过 getMetadata() 返回,在插件加载时自动注册
10
- */
11
- @Global()
12
- @Module({
13
- providers: [ConfigReaderService, SchemaGeneratorService],
14
- exports: [ConfigReaderService, SchemaGeneratorService],
15
- })
16
- export class ConfigReaderModule {}
@@ -1,8 +0,0 @@
1
- import { Module } from "@nestjs/common";
2
- import { ClaudeSetupService } from "./claude-setup.service";
3
-
4
- @Module({
5
- providers: [ClaudeSetupService],
6
- exports: [ClaudeSetupService],
7
- })
8
- export class ClaudeSetupModule {}
@@ -1,77 +0,0 @@
1
- import { DynamicModule, Module } from "@nestjs/common";
2
- import { ConfigModule, ConfigService } from "@nestjs/config";
3
- import { EventEmitterModule } from "@nestjs/event-emitter";
4
- import { FeishuSdkService } from "./feishu-sdk.service";
5
- import { FeishuCardService } from "./fieshu-card.service";
6
- import { FeishuModuleOptions, FeishuModuleAsyncOptions, FEISHU_MODULE_OPTIONS } from "./types";
7
- import { feishuConfig, FeishuConfig } from "../../config";
8
-
9
- @Module({})
10
- export class FeishuSdkModule {
11
- /**
12
- * 同步注册模块
13
- */
14
- static forRoot(options: FeishuModuleOptions): DynamicModule {
15
- return {
16
- module: FeishuSdkModule,
17
- imports: [EventEmitterModule.forRoot()],
18
- providers: [
19
- {
20
- provide: FEISHU_MODULE_OPTIONS,
21
- useValue: options,
22
- },
23
- FeishuSdkService,
24
- FeishuCardService,
25
- ],
26
- exports: [FeishuSdkService, FeishuCardService],
27
- };
28
- }
29
-
30
- /**
31
- * 异步注册模块 - 支持从环境变量等动态获取配置
32
- */
33
- static forRootAsync(options: FeishuModuleAsyncOptions): DynamicModule {
34
- return {
35
- module: FeishuSdkModule,
36
- imports: [EventEmitterModule.forRoot()],
37
- providers: [
38
- {
39
- provide: FEISHU_MODULE_OPTIONS,
40
- useFactory: options.useFactory,
41
- inject: options.inject || [],
42
- },
43
- FeishuSdkService,
44
- FeishuCardService,
45
- ],
46
- exports: [FeishuSdkService, FeishuCardService],
47
- };
48
- }
49
-
50
- /**
51
- * 使用 ConfigService 注册模块
52
- */
53
- static forFeature(): DynamicModule {
54
- return {
55
- module: FeishuSdkModule,
56
- imports: [ConfigModule.forFeature(feishuConfig), EventEmitterModule.forRoot()],
57
- providers: [
58
- {
59
- provide: FEISHU_MODULE_OPTIONS,
60
- useFactory: (configService: ConfigService): FeishuModuleOptions => {
61
- const config = configService.get<FeishuConfig>("feishu");
62
- return {
63
- appId: config?.appId || "",
64
- appSecret: config?.appSecret || "",
65
- appType: config?.appType,
66
- domain: config?.domain,
67
- };
68
- },
69
- inject: [ConfigService],
70
- },
71
- FeishuSdkService,
72
- FeishuCardService,
73
- ],
74
- exports: [FeishuSdkService, FeishuCardService],
75
- };
76
- }
77
- }
@@ -1,73 +0,0 @@
1
- import { DynamicModule, Module } from "@nestjs/common";
2
- import { ConfigModule, ConfigService } from "@nestjs/config";
3
- import { GitProviderService } from "./git-provider.service";
4
- import {
5
- type GitProviderModuleOptions,
6
- type GitProviderModuleAsyncOptions,
7
- GIT_PROVIDER_MODULE_OPTIONS,
8
- } from "./types";
9
- import { gitProviderConfig, type GitProviderConfig } from "../../config/git-provider.config";
10
-
11
- @Module({})
12
- export class GitProviderModule {
13
- /**
14
- * 同步注册模块
15
- */
16
- static forRoot(options: GitProviderModuleOptions): DynamicModule {
17
- return {
18
- module: GitProviderModule,
19
- providers: [
20
- {
21
- provide: GIT_PROVIDER_MODULE_OPTIONS,
22
- useValue: options,
23
- },
24
- GitProviderService,
25
- ],
26
- exports: [GitProviderService],
27
- };
28
- }
29
-
30
- /**
31
- * 异步注册模块 - 支持从环境变量等动态获取配置
32
- */
33
- static forRootAsync(options: GitProviderModuleAsyncOptions): DynamicModule {
34
- return {
35
- module: GitProviderModule,
36
- providers: [
37
- {
38
- provide: GIT_PROVIDER_MODULE_OPTIONS,
39
- useFactory: options.useFactory,
40
- inject: options.inject || [],
41
- },
42
- GitProviderService,
43
- ],
44
- exports: [GitProviderService],
45
- };
46
- }
47
-
48
- /**
49
- * 使用 ConfigService 注册模块
50
- */
51
- static forFeature(): DynamicModule {
52
- return {
53
- module: GitProviderModule,
54
- imports: [ConfigModule.forFeature(gitProviderConfig)],
55
- providers: [
56
- {
57
- provide: GIT_PROVIDER_MODULE_OPTIONS,
58
- useFactory: (configService: ConfigService): GitProviderModuleOptions => {
59
- const config = configService.get<GitProviderConfig>("gitProvider");
60
- return {
61
- provider: config?.provider || "gitea",
62
- baseUrl: config?.serverUrl || "",
63
- token: config?.token || "",
64
- };
65
- },
66
- inject: [ConfigService],
67
- },
68
- GitProviderService,
69
- ],
70
- exports: [GitProviderService],
71
- };
72
- }
73
- }
@@ -1,8 +0,0 @@
1
- import { Module } from "@nestjs/common";
2
- import { GitSdkService } from "./git-sdk.service";
3
-
4
- @Module({
5
- providers: [GitSdkService],
6
- exports: [GitSdkService],
7
- })
8
- export class GitSdkModule {}
@@ -1,140 +0,0 @@
1
- import { Module, DynamicModule, Provider, Type } from "@nestjs/common";
2
- import { LlmProxyService } from "./llm-proxy.service";
3
- import { ClaudeCodeAdapter } from "./adapters/claude-code.adapter";
4
- import { OpenAIAdapter } from "./adapters/openai.adapter";
5
- import { ClaudeSetupModule } from "../claude-setup";
6
- import type { LlmProxyConfig } from "./interfaces";
7
- import { OpenCodeAdapter } from "./adapters";
8
-
9
- export interface LlmProxyModuleOptions extends LlmProxyConfig {}
10
-
11
- export interface LlmProxyModuleAsyncOptions {
12
- imports?: any[];
13
- useFactory?: (...args: any[]) => Promise<LlmProxyConfig> | LlmProxyConfig;
14
- inject?: any[];
15
- useClass?: Type<LlmProxyOptionsFactory>;
16
- useExisting?: Type<LlmProxyOptionsFactory>;
17
- }
18
-
19
- export interface LlmProxyOptionsFactory {
20
- createLlmProxyOptions(): Promise<LlmProxyConfig> | LlmProxyConfig;
21
- }
22
-
23
- @Module({})
24
- export class LlmProxyModule {
25
- static forRoot(options: LlmProxyModuleOptions): DynamicModule {
26
- const resolvedOptions = this.resolveOpenCodeConfig(options);
27
- return {
28
- module: LlmProxyModule,
29
- imports: [ClaudeSetupModule],
30
- providers: [
31
- {
32
- provide: "LLM_PROXY_CONFIG",
33
- useValue: resolvedOptions,
34
- },
35
- ClaudeCodeAdapter,
36
- OpenAIAdapter,
37
- OpenCodeAdapter,
38
- LlmProxyService,
39
- ],
40
- exports: [LlmProxyService, ClaudeCodeAdapter, OpenCodeAdapter, OpenAIAdapter],
41
- };
42
- }
43
-
44
- static forRootAsync(options: LlmProxyModuleAsyncOptions): DynamicModule {
45
- const asyncProviders = this.createAsyncProviders(options);
46
-
47
- return {
48
- module: LlmProxyModule,
49
- imports: [...(options.imports || []), ClaudeSetupModule],
50
- providers: [
51
- ...asyncProviders,
52
- ClaudeCodeAdapter,
53
- OpenAIAdapter,
54
- OpenCodeAdapter,
55
- LlmProxyService,
56
- ],
57
- exports: [LlmProxyService, ClaudeCodeAdapter, OpenCodeAdapter, OpenAIAdapter],
58
- };
59
- }
60
-
61
- private static createAsyncProviders(options: LlmProxyModuleAsyncOptions): Provider[] {
62
- if (options.useFactory) {
63
- const originalFactory = options.useFactory;
64
- return [
65
- {
66
- provide: "LLM_PROXY_CONFIG",
67
- useFactory: async (...args: any[]) => {
68
- const config = await originalFactory(...args);
69
- return this.resolveOpenCodeConfig(config);
70
- },
71
- inject: options.inject || [],
72
- },
73
- ];
74
- }
75
-
76
- if (options.useClass) {
77
- return [
78
- {
79
- provide: "LLM_PROXY_CONFIG",
80
- useFactory: async (optionsFactory: LlmProxyOptionsFactory) =>
81
- optionsFactory.createLlmProxyOptions(),
82
- inject: [options.useClass],
83
- },
84
- {
85
- provide: options.useClass,
86
- useClass: options.useClass,
87
- },
88
- ];
89
- }
90
-
91
- if (options.useExisting) {
92
- return [
93
- {
94
- provide: "LLM_PROXY_CONFIG",
95
- useFactory: async (optionsFactory: LlmProxyOptionsFactory) =>
96
- optionsFactory.createLlmProxyOptions(),
97
- inject: [options.useExisting],
98
- },
99
- ];
100
- }
101
-
102
- return [];
103
- }
104
-
105
- private static resolveOpenCodeConfig(config: LlmProxyConfig): LlmProxyConfig {
106
- if (!config.openCode) {
107
- return config;
108
- }
109
-
110
- const providerID = config.openCode.providerID || "openai";
111
- let apiKey = config.openCode.apiKey;
112
- let baseUrl = config.openCode.baseUrl;
113
- let model = config.openCode.model;
114
-
115
- // 根据 providerID 从对应的 adapter 配置中读取缺失的值
116
- if (providerID === "openai" && config.openai) {
117
- if (!apiKey) apiKey = config.openai.apiKey;
118
- if (!baseUrl) baseUrl = config.openai.baseUrl;
119
- if (!model) model = config.openai.model;
120
- } else if (providerID === "anthropic" && config.claudeCode) {
121
- if (!apiKey) apiKey = config.claudeCode.authToken;
122
- if (!baseUrl) baseUrl = config.claudeCode.baseUrl;
123
- if (!model) model = config.claudeCode.model;
124
- }
125
-
126
- // 如果有任何值需要更新
127
- if (
128
- apiKey !== config.openCode.apiKey ||
129
- baseUrl !== config.openCode.baseUrl ||
130
- model !== config.openCode.model
131
- ) {
132
- return {
133
- ...config,
134
- openCode: { ...config.openCode, apiKey, baseUrl, model },
135
- };
136
- }
137
-
138
- return config;
139
- }
140
- }
@@ -1,9 +0,0 @@
1
- import { Global, Module } from "@nestjs/common";
2
- import { OutputService } from "./output.service";
3
-
4
- @Global()
5
- @Module({
6
- providers: [OutputService],
7
- exports: [OutputService],
8
- })
9
- export class OutputModule {}
@@ -1,150 +0,0 @@
1
- import { DynamicModule, Module } from "@nestjs/common";
2
- import { ConfigModule, ConfigService } from "@nestjs/config";
3
- import { StorageService } from "./storage.service";
4
- import { MemoryAdapter } from "./adapters/memory.adapter";
5
- import { FileAdapter } from "./adapters/file.adapter";
6
- import { StorageAdapter } from "./adapters/storage-adapter.interface";
7
- import {
8
- type StorageModuleOptions,
9
- type StorageModuleAsyncOptions,
10
- STORAGE_MODULE_OPTIONS,
11
- STORAGE_ADAPTER,
12
- } from "./types";
13
- import { storageConfig, StorageConfig } from "../../config";
14
-
15
- /**
16
- * 创建适配器实例
17
- */
18
- function createAdapter(options: StorageModuleOptions): StorageAdapter {
19
- switch (options.adapter) {
20
- case "file":
21
- if (!options.filePath) {
22
- throw new Error("filePath is required for file adapter");
23
- }
24
- return new FileAdapter(options.filePath);
25
- case "memory":
26
- default:
27
- return new MemoryAdapter();
28
- }
29
- }
30
-
31
- @Module({})
32
- export class StorageModule {
33
- /**
34
- * 同步注册模块
35
- *
36
- * @example
37
- * ```ts
38
- * StorageModule.forRoot({
39
- * adapter: 'memory',
40
- * defaultTtl: 3600000, // 1 hour
41
- * })
42
- * ```
43
- *
44
- * @example
45
- * ```ts
46
- * StorageModule.forRoot({
47
- * adapter: 'file',
48
- * filePath: './data/storage.json',
49
- * })
50
- * ```
51
- */
52
- static forRoot(options: StorageModuleOptions): DynamicModule {
53
- return {
54
- module: StorageModule,
55
- providers: [
56
- {
57
- provide: STORAGE_MODULE_OPTIONS,
58
- useValue: options,
59
- },
60
- {
61
- provide: STORAGE_ADAPTER,
62
- useValue: createAdapter(options),
63
- },
64
- StorageService,
65
- ],
66
- exports: [StorageService],
67
- };
68
- }
69
-
70
- /**
71
- * 异步注册模块
72
- *
73
- * @example
74
- * ```ts
75
- * StorageModule.forRootAsync({
76
- * useFactory: (configService: ConfigService) => ({
77
- * adapter: configService.get('STORAGE_ADAPTER') || 'memory',
78
- * filePath: configService.get('STORAGE_FILE_PATH'),
79
- * }),
80
- * inject: [ConfigService],
81
- * })
82
- * ```
83
- */
84
- static forRootAsync(options: StorageModuleAsyncOptions): DynamicModule {
85
- return {
86
- module: StorageModule,
87
- providers: [
88
- {
89
- provide: STORAGE_MODULE_OPTIONS,
90
- useFactory: options.useFactory,
91
- inject: options.inject || [],
92
- },
93
- {
94
- provide: STORAGE_ADAPTER,
95
- useFactory: (opts: StorageModuleOptions) => createAdapter(opts),
96
- inject: [STORAGE_MODULE_OPTIONS],
97
- },
98
- StorageService,
99
- ],
100
- exports: [StorageService],
101
- };
102
- }
103
-
104
- /**
105
- * 使用 ConfigService 注册模块
106
- *
107
- * 环境变量:
108
- * - STORAGE_ADAPTER: 'memory' | 'file'
109
- * - STORAGE_FILE_PATH: 文件存储路径
110
- * - STORAGE_DEFAULT_TTL: 默认过期时间(毫秒)
111
- * - STORAGE_MAX_KEYS: 最大 key 数量
112
- *
113
- * @example
114
- * ```ts
115
- * @Module({
116
- * imports: [StorageModule.forFeature()],
117
- * })
118
- * export class AppModule {}
119
- * ```
120
- */
121
- static forFeature(): DynamicModule {
122
- return {
123
- global: true,
124
- module: StorageModule,
125
- imports: [ConfigModule.forFeature(storageConfig)],
126
- providers: [
127
- {
128
- provide: STORAGE_MODULE_OPTIONS,
129
- useFactory: (configService: ConfigService): StorageModuleOptions => {
130
- const config = configService.get<StorageConfig>("storage");
131
- return {
132
- adapter: config?.adapter || "memory",
133
- filePath: config?.filePath,
134
- defaultTtl: config?.defaultTtl,
135
- maxKeys: config?.maxKeys,
136
- };
137
- },
138
- inject: [ConfigService],
139
- },
140
- {
141
- provide: STORAGE_ADAPTER,
142
- useFactory: (opts: StorageModuleOptions) => createAdapter(opts),
143
- inject: [STORAGE_MODULE_OPTIONS],
144
- },
145
- StorageService,
146
- ],
147
- exports: [StorageService],
148
- };
149
- }
150
- }
@@ -1,22 +0,0 @@
1
- import { Test, TestingModule } from "@nestjs/testing";
2
- import { INestApplication } from "@nestjs/common";
3
- import * as request from "supertest";
4
- import { App } from "supertest/types";
5
- import { AppModule } from "./../src/app.module";
6
-
7
- describe("AppController (e2e)", () => {
8
- let app: INestApplication<App>;
9
-
10
- beforeEach(async () => {
11
- const moduleFixture: TestingModule = await Test.createTestingModule({
12
- imports: [AppModule],
13
- }).compile();
14
-
15
- app = moduleFixture.createNestApplication();
16
- await app.init();
17
- });
18
-
19
- it("/ (GET)", () => {
20
- return request(app.getHttpServer()).get("/").expect(200).expect("Hello World!");
21
- });
22
- });
@@ -1,4 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
4
- }
package/tsconfig.json DELETED
@@ -1,25 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "module": "ESNext",
4
- "moduleResolution": "bundler",
5
- "declaration": true,
6
- "removeComments": true,
7
- "emitDecoratorMetadata": true,
8
- "experimentalDecorators": true,
9
- "esModuleInterop": true,
10
- "allowSyntheticDefaultImports": true,
11
- "target": "ES2023",
12
- "sourceMap": true,
13
- "outDir": "./dist",
14
- "baseUrl": "./",
15
- "incremental": true,
16
- "skipLibCheck": true,
17
- "strictNullChecks": true,
18
- "forceConsistentCasingInFileNames": true,
19
- "noImplicitAny": false,
20
- "strictBindCallApply": false,
21
- "noFallthroughCasesInSwitch": false,
22
- "resolveJsonModule": true,
23
- "types": ["vitest/globals"]
24
- }
25
- }
@@ -1,18 +0,0 @@
1
- {
2
- "$schema": "https://json.schemastore.org/tsconfig",
3
- "compilerOptions": {
4
- "target": "ES2022",
5
- "module": "ESNext",
6
- "moduleResolution": "bundler",
7
- "lib": ["ES2022"],
8
- "strict": false,
9
- "esModuleInterop": true,
10
- "skipLibCheck": true,
11
- "forceConsistentCasingInFileNames": true,
12
- "experimentalDecorators": true,
13
- "emitDecoratorMetadata": true,
14
- "declaration": false,
15
- "sourceMap": true,
16
- "resolveJsonModule": true
17
- }
18
- }