@vegamo/loom 0.1.6 → 0.1.7
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/README.md +12 -3
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/llm/client.js +1 -1
- package/dist/llm/client.js.map +1 -1
- package/dist/shared/config-wizard.d.ts +1 -1
- package/dist/shared/config-wizard.d.ts.map +1 -1
- package/dist/shared/config-wizard.js +11 -12
- package/dist/shared/config-wizard.js.map +1 -1
- package/dist/shared/config.d.ts +15 -10
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +29 -15
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/types.d.ts +1 -1
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -45,9 +45,16 @@ npm run build:all
|
|
|
45
45
|
## ⚙️ Configuration
|
|
46
46
|
|
|
47
47
|
### Configuration File
|
|
48
|
-
Loom
|
|
48
|
+
Loom uses a global config file (no `.env` dependency).
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
Default global config path:
|
|
51
|
+
- macOS/Linux: `~/.loom/config.json`
|
|
52
|
+
- Windows: `%APPDATA%/loom/config.json`
|
|
53
|
+
|
|
54
|
+
Optional override:
|
|
55
|
+
- `LOOM_CONFIG=/custom/path/config.json`
|
|
56
|
+
|
|
57
|
+
When you run `loom chat` for the first time, it will guide you to create/update this global file interactively.
|
|
51
58
|
|
|
52
59
|
Default chat onboarding values:
|
|
53
60
|
- `provider`: `deepseek`
|
|
@@ -55,7 +62,7 @@ Default chat onboarding values:
|
|
|
55
62
|
- `baseURL`: `https://api.deepseek.com/v1`
|
|
56
63
|
- `apiKey`: required, must be entered by user
|
|
57
64
|
|
|
58
|
-
You can also create
|
|
65
|
+
You can also create the global config manually:
|
|
59
66
|
```json
|
|
60
67
|
{
|
|
61
68
|
"outDir": "docs",
|
|
@@ -78,6 +85,8 @@ You can also create `loom.config.json` manually:
|
|
|
78
85
|
}
|
|
79
86
|
```
|
|
80
87
|
|
|
88
|
+
`docs/` remains in each project directory (`--dir`) and is not moved to global storage.
|
|
89
|
+
|
|
81
90
|
## 🚀 Quick Start
|
|
82
91
|
|
|
83
92
|
### 1. Generate API Documentation
|
package/dist/index.js
CHANGED
|
@@ -28,7 +28,7 @@ program
|
|
|
28
28
|
.description('Start TUI to generate JSON Schema documents via AI')
|
|
29
29
|
.option('-d, --dir <path>', 'Target project directory', process.cwd())
|
|
30
30
|
.action(async (opts) => {
|
|
31
|
-
const config = await ensureChatConfig(
|
|
31
|
+
const config = await ensureChatConfig();
|
|
32
32
|
const { render } = await import('ink');
|
|
33
33
|
const React = await import('react');
|
|
34
34
|
const { App } = await import('./tui/app.js');
|
|
@@ -47,7 +47,7 @@ program
|
|
|
47
47
|
.option('-p, --port <number>', 'Port number', '3000')
|
|
48
48
|
.option('-d, --dir <path>', 'Target project directory', process.cwd())
|
|
49
49
|
.action(async (opts) => {
|
|
50
|
-
const config = loadConfig(
|
|
50
|
+
const config = loadConfig();
|
|
51
51
|
const port = parseInt(opts.port, 10) || config.serve.port;
|
|
52
52
|
const docsDir = getOutDir(config, opts.dir);
|
|
53
53
|
const { startViewServer } = await import('./view/server.js');
|
|
@@ -62,7 +62,7 @@ program
|
|
|
62
62
|
.option('-p, --port <number>', 'Port number', '3001')
|
|
63
63
|
.option('-d, --dir <path>', 'Target project directory', process.cwd())
|
|
64
64
|
.action(async (opts) => {
|
|
65
|
-
const config = loadConfig(
|
|
65
|
+
const config = loadConfig();
|
|
66
66
|
const port = parseInt(opts.port, 10) || config.mock.port;
|
|
67
67
|
const docsDir = getOutDir(config, opts.dir);
|
|
68
68
|
const { startMockServer } = await import('./mocks/server.js');
|
|
@@ -77,7 +77,7 @@ program
|
|
|
77
77
|
.option('-p, --port <number>', 'Port number', '3000')
|
|
78
78
|
.option('-d, --dir <path>', 'Target project directory', process.cwd())
|
|
79
79
|
.action(async (opts) => {
|
|
80
|
-
const config = loadConfig(
|
|
80
|
+
const config = loadConfig();
|
|
81
81
|
const port = parseInt(opts.port, 10) || config.serve.port;
|
|
82
82
|
const docsDir = getOutDir(config, opts.dir);
|
|
83
83
|
const { startServe } = await import('./serve.js');
|
|
@@ -94,7 +94,7 @@ manifestCommand
|
|
|
94
94
|
.description('Rebuild docs manifest index')
|
|
95
95
|
.option('-d, --dir <path>', 'Target project directory', process.cwd())
|
|
96
96
|
.action(async (opts) => {
|
|
97
|
-
const config = loadConfig(
|
|
97
|
+
const config = loadConfig();
|
|
98
98
|
const docsDir = getOutDir(config, opts.dir);
|
|
99
99
|
const { rebuildManifest } = await import('./shared/manifest-utils.js');
|
|
100
100
|
const manifest = rebuildManifest(docsDir);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;AAEpC,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,+DAA+D;AAC/D,YAAY;AACZ,+DAA+D;AAC/D,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,kBAAkB,EAAE,0BAA0B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KACrE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAAG,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/client.js
CHANGED
|
@@ -27,7 +27,7 @@ export class LLMClient {
|
|
|
27
27
|
this.config = resolveLLMConfig(config);
|
|
28
28
|
if (!this.config.apiKey) {
|
|
29
29
|
throw new LLMError(`API key not found for provider "${this.config.provider}". ` +
|
|
30
|
-
|
|
30
|
+
'Set it in global config (~/.loom/config.json or %APPDATA%/loom/config.json).', 'auth_error');
|
|
31
31
|
}
|
|
32
32
|
this.client = new OpenAI({
|
|
33
33
|
apiKey: this.config.apiKey,
|
package/dist/llm/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAS5B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,gBAAgB;AAChB,MAAM,eAAe,GAAG,OAAO,CAAC;AAChC,eAAe;AACf,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,kBAAkB;AAClB,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,MAAM,OAAO,SAAS;IACZ,MAAM,CAAS;IACf,MAAM,CAAY;IAE1B,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,QAAQ,CAChB,mCAAmC,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK;gBACzD,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import type { LoomConfig } from './types.js';
|
|
|
3
3
|
* Ensure chat command has a usable config file.
|
|
4
4
|
* Missing/invalid API key triggers an interactive setup wizard.
|
|
5
5
|
*/
|
|
6
|
-
export declare function ensureChatConfig(
|
|
6
|
+
export declare function ensureChatConfig(): Promise<LoomConfig>;
|
|
7
7
|
//# sourceMappingURL=config-wizard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-wizard.d.ts","sourceRoot":"","sources":["../../src/shared/config-wizard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-wizard.d.ts","sourceRoot":"","sources":["../../src/shared/config-wizard.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAgF7C;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAoB5D"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createInterface } from 'node:readline/promises';
|
|
2
2
|
import { stdin as input, stdout as output } from 'node:process';
|
|
3
|
-
import
|
|
4
|
-
import { DEFAULT_CONFIG, getConfigPath, loadConfig, readRawConfig, writeConfig, } from './config.js';
|
|
3
|
+
import { DEFAULT_CONFIG, getGlobalConfigPath, loadConfig, readRawConfig, writeConfig, } from './config.js';
|
|
5
4
|
import { logger } from './logger.js';
|
|
6
5
|
function isPlaceholderValue(value) {
|
|
7
6
|
if (!value)
|
|
@@ -29,13 +28,13 @@ function shouldRunWizard(config, rawConfig) {
|
|
|
29
28
|
return true;
|
|
30
29
|
return false;
|
|
31
30
|
}
|
|
32
|
-
async function runWizard(
|
|
31
|
+
async function runWizard(baseConfig) {
|
|
33
32
|
if (!input.isTTY || !output.isTTY) {
|
|
34
33
|
throw new Error('Missing required config for chat and no interactive terminal available. ' +
|
|
35
|
-
`Please create ${
|
|
34
|
+
`Please create ${getGlobalConfigPath()} with llm.apiKey.`);
|
|
36
35
|
}
|
|
37
36
|
const rl = createInterface({ input, output });
|
|
38
|
-
logger.info(
|
|
37
|
+
logger.info(`Let us set up global config for chat: ${getGlobalConfigPath()}`);
|
|
39
38
|
logger.info('Press Enter to accept a default value.');
|
|
40
39
|
try {
|
|
41
40
|
const provider = await promptWithDefault(rl, 'LLM provider', 'deepseek');
|
|
@@ -52,8 +51,8 @@ async function runWizard(projectDir, baseConfig) {
|
|
|
52
51
|
apiKey,
|
|
53
52
|
},
|
|
54
53
|
};
|
|
55
|
-
writeConfig(
|
|
56
|
-
logger.success(`Saved config to ${
|
|
54
|
+
writeConfig(finalConfig);
|
|
55
|
+
logger.success(`Saved config to ${getGlobalConfigPath()}`);
|
|
57
56
|
return finalConfig;
|
|
58
57
|
}
|
|
59
58
|
finally {
|
|
@@ -64,21 +63,21 @@ async function runWizard(projectDir, baseConfig) {
|
|
|
64
63
|
* Ensure chat command has a usable config file.
|
|
65
64
|
* Missing/invalid API key triggers an interactive setup wizard.
|
|
66
65
|
*/
|
|
67
|
-
export async function ensureChatConfig(
|
|
66
|
+
export async function ensureChatConfig() {
|
|
68
67
|
let rawConfig;
|
|
69
68
|
let parseError = false;
|
|
70
69
|
try {
|
|
71
|
-
rawConfig = readRawConfig(
|
|
70
|
+
rawConfig = readRawConfig();
|
|
72
71
|
}
|
|
73
72
|
catch (err) {
|
|
74
|
-
logger.warn(`Failed to parse ${
|
|
73
|
+
logger.warn(`Failed to parse ${getGlobalConfigPath()}: ${err instanceof Error ? err.message : String(err)}`);
|
|
75
74
|
rawConfig = null;
|
|
76
75
|
parseError = true;
|
|
77
76
|
}
|
|
78
|
-
const config = parseError ? DEFAULT_CONFIG : loadConfig(
|
|
77
|
+
const config = parseError ? DEFAULT_CONFIG : loadConfig();
|
|
79
78
|
if (!shouldRunWizard(config, rawConfig)) {
|
|
80
79
|
return config;
|
|
81
80
|
}
|
|
82
|
-
return runWizard(
|
|
81
|
+
return runWizard(config);
|
|
83
82
|
}
|
|
84
83
|
//# sourceMappingURL=config-wizard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-wizard.js","sourceRoot":"","sources":["../../src/shared/config-wizard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"config-wizard.js","sourceRoot":"","sources":["../../src/shared/config-wizard.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/config.d.ts
CHANGED
|
@@ -1,30 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 全局配置加载
|
|
3
3
|
*
|
|
4
|
-
* 优先级: CLI 参数 >
|
|
4
|
+
* 优先级: CLI 参数 > 全局配置文件 > 默认值
|
|
5
5
|
*/
|
|
6
6
|
import type { LoomConfig } from './types.js';
|
|
7
7
|
/** 默认配置 */
|
|
8
8
|
export declare const DEFAULT_CONFIG: LoomConfig;
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
/**
|
|
10
|
+
* 获取全局配置路径
|
|
11
|
+
*
|
|
12
|
+
* 优先级:
|
|
13
|
+
* 1) LOOM_CONFIG 环境变量
|
|
14
|
+
* 2) Windows: %APPDATA%/loom/config.json
|
|
15
|
+
* 3) macOS/Linux: ~/.loom/config.json
|
|
16
|
+
*/
|
|
17
|
+
export declare function getGlobalConfigPath(): string;
|
|
12
18
|
/**
|
|
13
19
|
* 读取配置文件 (仅文件内容,不做默认值合并)
|
|
14
20
|
*
|
|
15
21
|
* @returns null 表示文件不存在
|
|
16
22
|
* @throws JSON 解析异常
|
|
17
23
|
*/
|
|
18
|
-
export declare function readRawConfig(
|
|
24
|
+
export declare function readRawConfig(): Partial<LoomConfig> | null;
|
|
19
25
|
/**
|
|
20
|
-
*
|
|
26
|
+
* 将配置写回全局配置文件
|
|
21
27
|
*/
|
|
22
|
-
export declare function writeConfig(
|
|
28
|
+
export declare function writeConfig(config: LoomConfig): void;
|
|
23
29
|
/**
|
|
24
|
-
*
|
|
25
|
-
* @param projectDir 目标项目根目录 (默认 process.cwd())
|
|
30
|
+
* 加载全局配置并合并默认值
|
|
26
31
|
*/
|
|
27
|
-
export declare function loadConfig(
|
|
32
|
+
export declare function loadConfig(): LoomConfig;
|
|
28
33
|
/**
|
|
29
34
|
* 获取 schema 文件输出的绝对路径
|
|
30
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,WAAW;AACX,eAAO,MAAM,cAAc,EAAE,UAa5B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAY5C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAQ1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAIpD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,UAAU,CAKvC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzE"}
|
package/dist/shared/config.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 全局配置加载
|
|
3
3
|
*
|
|
4
|
-
* 优先级: CLI 参数 >
|
|
4
|
+
* 优先级: CLI 参数 > 全局配置文件 > 默认值
|
|
5
5
|
*/
|
|
6
|
+
import os from 'node:os';
|
|
6
7
|
import path from 'node:path';
|
|
7
8
|
import fs from 'node:fs';
|
|
8
9
|
/** 默认配置 */
|
|
@@ -20,11 +21,24 @@ export const DEFAULT_CONFIG = {
|
|
|
20
21
|
port: 3001,
|
|
21
22
|
},
|
|
22
23
|
};
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
/**
|
|
25
|
+
* 获取全局配置路径
|
|
26
|
+
*
|
|
27
|
+
* 优先级:
|
|
28
|
+
* 1) LOOM_CONFIG 环境变量
|
|
29
|
+
* 2) Windows: %APPDATA%/loom/config.json
|
|
30
|
+
* 3) macOS/Linux: ~/.loom/config.json
|
|
31
|
+
*/
|
|
32
|
+
export function getGlobalConfigPath() {
|
|
33
|
+
const override = process.env.LOOM_CONFIG?.trim();
|
|
34
|
+
if (override) {
|
|
35
|
+
return path.resolve(override);
|
|
36
|
+
}
|
|
37
|
+
if (process.platform === 'win32') {
|
|
38
|
+
const appData = process.env.APPDATA?.trim() || path.join(os.homedir(), 'AppData', 'Roaming');
|
|
39
|
+
return path.join(appData, 'loom', 'config.json');
|
|
40
|
+
}
|
|
41
|
+
return path.join(os.homedir(), '.loom', 'config.json');
|
|
28
42
|
}
|
|
29
43
|
/**
|
|
30
44
|
* 读取配置文件 (仅文件内容,不做默认值合并)
|
|
@@ -32,8 +46,8 @@ export function getConfigPath(projectDir) {
|
|
|
32
46
|
* @returns null 表示文件不存在
|
|
33
47
|
* @throws JSON 解析异常
|
|
34
48
|
*/
|
|
35
|
-
export function readRawConfig(
|
|
36
|
-
const configPath =
|
|
49
|
+
export function readRawConfig() {
|
|
50
|
+
const configPath = getGlobalConfigPath();
|
|
37
51
|
if (!fs.existsSync(configPath)) {
|
|
38
52
|
return null;
|
|
39
53
|
}
|
|
@@ -41,18 +55,18 @@ export function readRawConfig(projectDir) {
|
|
|
41
55
|
return JSON.parse(raw);
|
|
42
56
|
}
|
|
43
57
|
/**
|
|
44
|
-
*
|
|
58
|
+
* 将配置写回全局配置文件
|
|
45
59
|
*/
|
|
46
|
-
export function writeConfig(
|
|
47
|
-
const configPath =
|
|
60
|
+
export function writeConfig(config) {
|
|
61
|
+
const configPath = getGlobalConfigPath();
|
|
62
|
+
fs.mkdirSync(path.dirname(configPath), { recursive: true });
|
|
48
63
|
fs.writeFileSync(configPath, `${JSON.stringify(config, null, 2)}\n`, 'utf-8');
|
|
49
64
|
}
|
|
50
65
|
/**
|
|
51
|
-
*
|
|
52
|
-
* @param projectDir 目标项目根目录 (默认 process.cwd())
|
|
66
|
+
* 加载全局配置并合并默认值
|
|
53
67
|
*/
|
|
54
|
-
export function loadConfig(
|
|
55
|
-
const fileConfig = readRawConfig(
|
|
68
|
+
export function loadConfig() {
|
|
69
|
+
const fileConfig = readRawConfig() ?? {};
|
|
56
70
|
// 深度合并: 默认值 + 文件配置
|
|
57
71
|
return mergeConfig(DEFAULT_CONFIG, fileConfig);
|
|
58
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,WAAW;AACX,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,MAAM,EAAE,MAAM;IACd,GAAG,EAAE;QACH,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,6BAA6B;KACvC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;KACX;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI;KACX;CACF,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,gBAAgB;AAChB,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sBAAsB;AACtB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,gBAAgB;AAChB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
|