@vegamo/loom 0.1.5 → 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.
Files changed (56) hide show
  1. package/README.md +21 -3
  2. package/dist/agents/core/agent.d.ts.map +1 -1
  3. package/dist/agents/core/agent.js +3 -1
  4. package/dist/agents/core/agent.js.map +1 -1
  5. package/dist/agents/core/prompt.d.ts +2 -1
  6. package/dist/agents/core/prompt.d.ts.map +1 -1
  7. package/dist/agents/core/prompt.js +3 -2
  8. package/dist/agents/core/prompt.js.map +1 -1
  9. package/dist/index.js +5 -5
  10. package/dist/index.js.map +1 -1
  11. package/dist/llm/client.js +1 -1
  12. package/dist/llm/client.js.map +1 -1
  13. package/dist/mocks/router.d.ts.map +1 -1
  14. package/dist/mocks/router.js +16 -2
  15. package/dist/mocks/router.js.map +1 -1
  16. package/dist/serve.d.ts.map +1 -1
  17. package/dist/serve.js +2 -0
  18. package/dist/serve.js.map +1 -1
  19. package/dist/shared/config-wizard.d.ts +1 -1
  20. package/dist/shared/config-wizard.d.ts.map +1 -1
  21. package/dist/shared/config-wizard.js +11 -12
  22. package/dist/shared/config-wizard.js.map +1 -1
  23. package/dist/shared/config.d.ts +15 -10
  24. package/dist/shared/config.d.ts.map +1 -1
  25. package/dist/shared/config.js +29 -15
  26. package/dist/shared/config.js.map +1 -1
  27. package/dist/shared/mock-store.d.ts +59 -0
  28. package/dist/shared/mock-store.d.ts.map +1 -0
  29. package/dist/shared/mock-store.js +146 -0
  30. package/dist/shared/mock-store.js.map +1 -0
  31. package/dist/shared/mock-template.d.ts +11 -0
  32. package/dist/shared/mock-template.d.ts.map +1 -0
  33. package/dist/shared/mock-template.js +21 -0
  34. package/dist/shared/mock-template.js.map +1 -0
  35. package/dist/shared/requirement.d.ts +27 -0
  36. package/dist/shared/requirement.d.ts.map +1 -0
  37. package/dist/shared/requirement.js +70 -0
  38. package/dist/shared/requirement.js.map +1 -0
  39. package/dist/shared/schema-utils.d.ts.map +1 -1
  40. package/dist/shared/schema-utils.js +3 -1
  41. package/dist/shared/schema-utils.js.map +1 -1
  42. package/dist/shared/types.d.ts +1 -1
  43. package/dist/shared/types.d.ts.map +1 -1
  44. package/dist/tui/app.d.ts.map +1 -1
  45. package/dist/tui/app.js +18 -0
  46. package/dist/tui/app.js.map +1 -1
  47. package/dist/tui/components/Input.d.ts.map +1 -1
  48. package/dist/tui/components/Input.js +1 -0
  49. package/dist/tui/components/Input.js.map +1 -1
  50. package/dist/view/public/bundle.js +705 -327
  51. package/dist/view/public/bundle.js.map +4 -4
  52. package/dist/view/routes/mocks.d.ts +19 -0
  53. package/dist/view/routes/mocks.d.ts.map +1 -0
  54. package/dist/view/routes/mocks.js +165 -0
  55. package/dist/view/routes/mocks.js.map +1 -0
  56. package/package.json +3 -1
package/README.md CHANGED
@@ -45,9 +45,16 @@ npm run build:all
45
45
  ## ⚙️ Configuration
46
46
 
47
47
  ### Configuration File
48
- Loom now uses only `loom.config.json` (no `.env` dependency).
48
+ Loom uses a global config file (no `.env` dependency).
49
49
 
50
- When you run `loom chat` for the first time, it will guide you to create/update this file interactively.
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 `loom.config.json` manually:
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
@@ -426,6 +435,15 @@ Package configuration:
426
435
 
427
436
  ## 📋 Changelog
428
437
 
438
+ ### v0.1.6
439
+ - **Added**: Mock view / Mock edit pages for each endpoint, accessible from the module list
440
+ - **Added**: Sidecar `<name>.mock.json` storage for hand-written mock responses (one active override per endpoint)
441
+ - **Added**: Mock server now responds with the override's HTTP status code (e.g. saving a 400 mock makes `/mock/<path>` return real HTTP 400)
442
+ - **Added**: Status code switcher in Mock view/edit, marking which statuses already have a saved override
443
+ - **Added**: cURL example block on Mock view, generated from the endpoint's `request` schema (path params, query, headers, body all filled with samples)
444
+ - **Added**: Mock.js expression support inside saved mock bodies (`@cname`, `@integer(1,100)`, `'list|1-5': [...]` etc.) — templates are stored as-is and expanded on each request
445
+ - **Removed**: Inline "Mock Testing" section from the endpoint detail page (superseded by the dedicated Mock pages)
446
+
429
447
  ### v0.1.4
430
448
  - **Fixed**: Query parameters, path parameters, and headers for GET endpoints now display correctly in the Web Viewer
431
449
  - **Improved**: All request/response sections use a consistent Swagger-like table view (SchemaTableViewer) with type badges, constraints, and expand/collapse support
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agents/core/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAkBH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAc,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAKtG,qBAAa,KAAK;IAChB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,eAAe,CAAgC;IAEvD,WAAW;IACJ,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAEpC,kBAAkB;IACX,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;gBAEvF,MAAM,EAAE,WAAW;IAmC/B;;;;OAIG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoJpD;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;OAEG;YACW,OAAO;IAQrB;;;;OAIG;YACW,gBAAgB;IAsB9B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,IAAI;CAGb"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agents/core/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAmBH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAc,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAKtG,qBAAa,KAAK;IAChB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,eAAe,CAAgC;IAEvD,WAAW;IACJ,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAEpC,kBAAkB;IACX,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;gBAEvF,MAAM,EAAE,WAAW;IAmC/B;;;;OAIG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoJpD;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;OAEG;YACW,OAAO;IAQrB;;;;OAIG;YACW,gBAAgB;IAsB9B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,IAAI;CAGb"}
@@ -23,6 +23,7 @@ import { Memory } from '../memory/memory.js';
23
23
  import { buildSystemPrompt } from './prompt.js';
24
24
  import { listSchemaFiles } from '../../shared/schema-utils.js';
25
25
  import { listEntityFiles } from '../../shared/entity-utils.js';
26
+ import { loadRequirement } from '../../shared/requirement.js';
26
27
  import { getOutDir } from '../../shared/config.js';
27
28
  import { logger } from '../../shared/logger.js';
28
29
  import { schemaGenTool } from '../../tools/schema-gen.js';
@@ -261,7 +262,8 @@ export class Agent {
261
262
  initSystemPrompt() {
262
263
  const existing = listSchemaFiles(this.toolContext.outDir);
263
264
  const existingEntities = listEntityFiles(this.toolContext.outDir);
264
- const prompt = buildSystemPrompt(existing.map((f) => f.filename), existingEntities.map((f) => f.filename));
265
+ const requirementContent = loadRequirement(this.config.projectDir);
266
+ const prompt = buildSystemPrompt(existing.map((f) => f.filename), existingEntities.map((f) => f.filename), requirementContent);
265
267
  this.memory.add({ role: 'system', content: prompt });
266
268
  }
267
269
  setState(state) {
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/agents/core/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/agents/core/agent.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  *
7
7
  * @param existingSchemas 当前已有的 schema 文件列表 (提供上下文)
8
8
  * @param existingEntities 当前已有的实体文件列表
9
+ * @param requirementContent requirement.md 的内容 (如果存在)
9
10
  */
10
- export declare function buildSystemPrompt(existingSchemas?: string[], existingEntities?: string[]): string;
11
+ export declare function buildSystemPrompt(existingSchemas?: string[], existingEntities?: string[], requirementContent?: string | null): string;
11
12
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/agents/core/prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,eAAe,GAAE,MAAM,EAAO,EAC9B,gBAAgB,GAAE,MAAM,EAAO,GAC9B,MAAM,CA6GR"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/agents/core/prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,eAAe,GAAE,MAAM,EAAO,EAC9B,gBAAgB,GAAE,MAAM,EAAO,EAC/B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GACjC,MAAM,CA6GR"}
@@ -6,8 +6,9 @@
6
6
  *
7
7
  * @param existingSchemas 当前已有的 schema 文件列表 (提供上下文)
8
8
  * @param existingEntities 当前已有的实体文件列表
9
+ * @param requirementContent requirement.md 的内容 (如果存在)
9
10
  */
10
- export function buildSystemPrompt(existingSchemas = [], existingEntities = []) {
11
+ export function buildSystemPrompt(existingSchemas = [], existingEntities = [], requirementContent) {
11
12
  const schemaList = existingSchemas.length > 0
12
13
  ? `\nExisting schema files in docs directory:\n${existingSchemas.map((s) => `- ${s}`).join('\n')}`
13
14
  : '\nNo existing schema files yet.';
@@ -112,6 +113,6 @@ Each schema file groups related API endpoints (e.g., all user-related APIs in on
112
113
 
113
114
  ## Current State
114
115
  ${schemaList}
115
- ${entityList}`;
116
+ ${entityList}${requirementContent ? `\n\n## Project Requirements (from requirement.md)\n\nThe user has provided the following requirements document. Use it as context when designing APIs:\n\n${requirementContent}` : ''}`;
116
117
  }
117
118
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/agents/core/prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,kBAA4B,EAAE,EAC9B,mBAA6B,EAAE;IAE/B,MAAM,UAAU,GACd,eAAe,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,+CAA+C,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClG,CAAC,CAAC,iCAAiC,CAAC;IACxC,MAAM,UAAU,GACd,gBAAgB,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC,8CAA8C,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClG,CAAC,CAAC,iCAAiC,CAAC;IAExC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiGP,UAAU;EACV,UAAU,EAAE,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/agents/core/prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,kBAA4B,EAAE,EAC9B,mBAA6B,EAAE,EAC/B,kBAAkC;IAElC,MAAM,UAAU,GACd,eAAe,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,+CAA+C,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClG,CAAC,CAAC,iCAAiC,CAAC;IACxC,MAAM,UAAU,GACd,gBAAgB,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC,8CAA8C,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClG,CAAC,CAAC,iCAAiC,CAAC;IAExC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiGP,UAAU;EACV,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,6JAA6J,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7N,CAAC"}
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(opts.dir);
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(opts.dir);
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(opts.dir);
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(opts.dir);
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(opts.dir);
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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
- `Set it in loom.config.json.`, 'auth_error');
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,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/mocks/router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAa/C;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAW,GAClB,OAAO,CAAC,MAAM,CAAC,CAmCjB"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/mocks/router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAe/C;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAW,GAClB,OAAO,CAAC,MAAM,CAAC,CAoDjB"}
@@ -5,6 +5,8 @@
5
5
  */
6
6
  import { listSchemaFiles, readSchemaFile } from '../shared/schema-utils.js';
7
7
  import { generateMockData } from './generator.js';
8
+ import { getActiveMockOverride } from '../shared/mock-store.js';
9
+ import { expandMockTemplate } from '../shared/mock-template.js';
8
10
  import { logger } from '../shared/logger.js';
9
11
  /**
10
12
  * 将 schema 中的路径参数格式转换为 Fastify 格式
@@ -26,8 +28,20 @@ export async function registerMockRoutes(fastify, docsDir, prefix = '') {
26
28
  for (const endpoint of doc.endpoints) {
27
29
  const fullPath = normalizePath(endpoint.path, prefix);
28
30
  const method = endpoint.method.toLowerCase();
29
- fastify[method](fullPath, async () => {
30
- // 取第一个成功响应的 schema 来生成数据
31
+ const schemaFilename = fileMeta.filename;
32
+ const endpointPath = endpoint.path;
33
+ const endpointMethod = endpoint.method;
34
+ fastify[method](fullPath, async (_request, reply) => {
35
+ // 1. 优先用 active override (一个 endpoint 当前只有一份):
36
+ // 既决定 body, 也决定 HTTP 响应状态码
37
+ const active = getActiveMockOverride(docsDir, schemaFilename, endpointMethod, endpointPath);
38
+ if (active) {
39
+ const code = parseInt(active.statusCode, 10);
40
+ if (!Number.isNaN(code))
41
+ reply.code(code);
42
+ return expandMockTemplate(active.body);
43
+ }
44
+ // 2. fallback: 用第一个 2xx 的 schema 生成默认数据
31
45
  const successStatus = Object.keys(endpoint.response).find((s) => s.startsWith('2')) || '200';
32
46
  const responseSchema = endpoint.response[successStatus];
33
47
  if (responseSchema) {
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/mocks/router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C;;;GAGG;AACH,SAAS,aAAa,CAAC,UAAkB,EAAE,MAAc;IACvD,OAAO,MAAM,GAAG,UAAU,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAwB,EACxB,OAAe,EACf,SAAiB,EAAE;IAEnB,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE9C,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAK/B,CAAC;YAEZ,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnC,yBAAyB;gBACzB,MAAM,aAAa,GACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;gBACzE,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAExD,IAAI,cAAc,EAAE,CAAC;oBACnB,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBAC1C,CAAC;gBAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,UAAU,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,eAAe,QAAQ,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/mocks/router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C;;;GAGG;AACH,SAAS,aAAa,CAAC,UAAkB,EAAE,MAAc;IACvD,OAAO,MAAM,GAAG,UAAU,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAwB,EACxB,OAAe,EACf,SAAiB,EAAE;IAEnB,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE9C,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAK/B,CAAC;YAEZ,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACzC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;YACnC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;YAEvC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;gBAClD,+CAA+C;gBAC/C,8BAA8B;gBAC9B,MAAM,MAAM,GAAG,qBAAqB,CAClC,OAAO,EACP,cAAc,EACd,cAAc,EACd,YAAY,CACb,CAAC;gBACF,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1C,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;gBAED,wCAAwC;gBACxC,MAAM,aAAa,GACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;gBACzE,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACxD,IAAI,cAAc,EAAE,CAAC;oBACnB,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBAC1C,CAAC;gBAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,UAAU,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,eAAe,QAAQ,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CrE"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA2CrE"}
package/dist/serve.js CHANGED
@@ -16,6 +16,7 @@ import { fileURLToPath } from 'node:url';
16
16
  import { schemaRoutes } from './view/routes/schema.js';
17
17
  import { docsRoutes } from './view/routes/docs.js';
18
18
  import { entityRoutes } from './view/routes/entities.js';
19
+ import { mockRoutes } from './view/routes/mocks.js';
19
20
  import { registerMockRoutes } from './mocks/router.js';
20
21
  import { logger } from './shared/logger.js';
21
22
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
@@ -33,6 +34,7 @@ export async function startServe(options) {
33
34
  await app.register(schemaRoutes, { docsDir });
34
35
  await app.register(docsRoutes, { docsDir });
35
36
  await app.register(entityRoutes, { docsDir });
37
+ await app.register(mockRoutes, { docsDir });
36
38
  // Mock 路由 (带 /mock 前缀)
37
39
  const routeCount = await registerMockRoutes(app, docsDir, '/mock');
38
40
  // SPA fallback: BrowserRouter 刷新子路径时统一回退到 index.html
package/dist/serve.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.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(projectDir?: string): Promise<LoomConfig>;
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":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAgF7C;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB/E"}
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 path from 'node:path';
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(projectDir, baseConfig) {
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 ${path.basename(getConfigPath(projectDir))} with llm.apiKey.`);
34
+ `Please create ${getGlobalConfigPath()} with llm.apiKey.`);
36
35
  }
37
36
  const rl = createInterface({ input, output });
38
- logger.info('Let us set up loom.config.json for chat.');
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(projectDir, finalConfig);
56
- logger.success(`Saved config to ${getConfigPath(projectDir)}`);
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(projectDir) {
66
+ export async function ensureChatConfig() {
68
67
  let rawConfig;
69
68
  let parseError = false;
70
69
  try {
71
- rawConfig = readRawConfig(projectDir);
70
+ rawConfig = readRawConfig();
72
71
  }
73
72
  catch (err) {
74
- logger.warn(`Failed to parse ${path.basename(getConfigPath(projectDir))}: ${err instanceof Error ? err.message : String(err)}`);
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(projectDir);
77
+ const config = parseError ? DEFAULT_CONFIG : loadConfig();
79
78
  if (!shouldRunWizard(config, rawConfig)) {
80
79
  return config;
81
80
  }
82
- return runWizard(projectDir, config);
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":"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"}
1
+ {"version":3,"file":"config-wizard.js","sourceRoot":"","sources":["../../src/shared/config-wizard.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,35 @@
1
1
  /**
2
2
  * 全局配置加载
3
3
  *
4
- * 优先级: CLI 参数 > loom.config.json > 默认值
4
+ * 优先级: CLI 参数 > 全局配置文件 > 默认值
5
5
  */
6
6
  import type { LoomConfig } from './types.js';
7
7
  /** 默认配置 */
8
8
  export declare const DEFAULT_CONFIG: LoomConfig;
9
- /** 配置文件名 */
10
- export declare const CONFIG_FILENAME = "loom.config.json";
11
- export declare function getConfigPath(projectDir?: string): string;
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(projectDir?: string): Partial<LoomConfig> | null;
24
+ export declare function readRawConfig(): Partial<LoomConfig> | null;
19
25
  /**
20
- * 将配置写回 loom.config.json
26
+ * 将配置写回全局配置文件
21
27
  */
22
- export declare function writeConfig(projectDir: string | undefined, config: LoomConfig): void;
28
+ export declare function writeConfig(config: LoomConfig): void;
23
29
  /**
24
- * 从目标项目目录加载配置
25
- * @param projectDir 目标项目根目录 (默认 process.cwd())
30
+ * 加载全局配置并合并默认值
26
31
  */
27
- export declare function loadConfig(projectDir?: string): LoomConfig;
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;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,WAAW;AACX,eAAO,MAAM,cAAc,EAAE,UAa5B,CAAC;AAEF,YAAY;AACZ,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAElD,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAQ7E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAGpF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAK1D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzE"}
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"}
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * 全局配置加载
3
3
  *
4
- * 优先级: CLI 参数 > loom.config.json > 默认值
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
- export const CONFIG_FILENAME = 'loom.config.json';
25
- export function getConfigPath(projectDir) {
26
- const dir = projectDir || process.cwd();
27
- return path.resolve(dir, CONFIG_FILENAME);
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(projectDir) {
36
- const configPath = getConfigPath(projectDir);
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
- * 将配置写回 loom.config.json
58
+ * 将配置写回全局配置文件
45
59
  */
46
- export function writeConfig(projectDir, config) {
47
- const configPath = getConfigPath(projectDir);
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(projectDir) {
55
- const fileConfig = readRawConfig(projectDir) ?? {};
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,YAAY;AACZ,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAElD,MAAM,UAAU,aAAa,CAAC,UAAmB;IAC/C,MAAM,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,UAAmB;IAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,UAA8B,EAAE,MAAkB;IAC5E,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,UAAmB;IAC5C,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAEnD,mBAAmB;IACnB,OAAO,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,MAAkB,EAAE,UAAmB;IAC/D,MAAM,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,QAAoB,EACpB,SAA8B;IAE9B,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM;QAC3C,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE;QAC1C,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE;QAChD,IAAI,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE;KAC9C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}