@mandujs/core 0.12.2 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +304 -304
- package/README.md +653 -653
- package/package.json +1 -1
- package/src/brain/architecture/analyzer.ts +28 -26
- package/src/brain/doctor/analyzer.ts +1 -1
- package/src/bundler/build.ts +91 -91
- package/src/bundler/css.ts +302 -302
- package/src/bundler/dev.ts +0 -1
- package/src/change/history.ts +3 -3
- package/src/change/snapshot.ts +10 -9
- package/src/change/transaction.ts +2 -2
- package/src/client/Link.tsx +227 -227
- package/src/client/globals.ts +44 -44
- package/src/client/hooks.ts +267 -267
- package/src/client/index.ts +5 -5
- package/src/client/island.ts +8 -8
- package/src/client/router.ts +435 -435
- package/src/client/runtime.ts +23 -23
- package/src/client/serialize.ts +404 -404
- package/src/client/window-state.ts +101 -101
- package/src/config/mandu.ts +94 -96
- package/src/config/validate.ts +213 -215
- package/src/config/watcher.ts +311 -311
- package/src/constants.ts +40 -40
- package/src/content/content-layer.ts +314 -314
- package/src/content/content.test.ts +433 -433
- package/src/content/data-store.ts +245 -245
- package/src/content/digest.ts +133 -133
- package/src/content/index.ts +164 -164
- package/src/content/loader-context.ts +172 -172
- package/src/content/loaders/api.ts +216 -216
- package/src/content/loaders/file.ts +169 -169
- package/src/content/loaders/glob.ts +252 -252
- package/src/content/loaders/index.ts +34 -34
- package/src/content/loaders/types.ts +137 -137
- package/src/content/meta-store.ts +209 -209
- package/src/content/types.ts +282 -282
- package/src/content/watcher.ts +135 -135
- package/src/contract/client-safe.test.ts +42 -42
- package/src/contract/client-safe.ts +114 -114
- package/src/contract/client.ts +16 -16
- package/src/contract/define.ts +459 -459
- package/src/contract/handler.ts +10 -10
- package/src/contract/normalize.test.ts +276 -276
- package/src/contract/normalize.ts +404 -404
- package/src/contract/registry.test.ts +206 -206
- package/src/contract/registry.ts +568 -568
- package/src/contract/schema.ts +48 -48
- package/src/contract/types.ts +58 -58
- package/src/contract/validator.ts +32 -32
- package/src/devtools/ai/context-builder.ts +375 -375
- package/src/devtools/ai/index.ts +25 -25
- package/src/devtools/ai/mcp-connector.ts +465 -465
- package/src/devtools/client/catchers/error-catcher.ts +327 -327
- package/src/devtools/client/catchers/index.ts +18 -18
- package/src/devtools/client/catchers/network-proxy.ts +363 -363
- package/src/devtools/client/components/index.ts +39 -39
- package/src/devtools/client/components/kitchen-root.tsx +362 -362
- package/src/devtools/client/components/mandu-character.tsx +241 -241
- package/src/devtools/client/components/overlay.tsx +368 -368
- package/src/devtools/client/components/panel/errors-panel.tsx +259 -259
- package/src/devtools/client/components/panel/guard-panel.tsx +244 -244
- package/src/devtools/client/components/panel/index.ts +32 -32
- package/src/devtools/client/components/panel/islands-panel.tsx +304 -304
- package/src/devtools/client/components/panel/network-panel.tsx +292 -292
- package/src/devtools/client/components/panel/panel-container.tsx +259 -259
- package/src/devtools/client/filters/context-filters.ts +282 -282
- package/src/devtools/client/filters/index.ts +16 -16
- package/src/devtools/client/index.ts +63 -63
- package/src/devtools/client/persistence.ts +335 -335
- package/src/devtools/client/state-manager.ts +478 -478
- package/src/devtools/design-tokens.ts +263 -263
- package/src/devtools/hook/create-hook.ts +207 -207
- package/src/devtools/hook/index.ts +13 -13
- package/src/devtools/index.ts +439 -439
- package/src/devtools/init.ts +266 -266
- package/src/devtools/protocol.ts +237 -237
- package/src/devtools/server/index.ts +17 -17
- package/src/devtools/server/source-context.ts +444 -444
- package/src/devtools/types.ts +319 -319
- package/src/devtools/worker/index.ts +25 -25
- package/src/devtools/worker/redaction-worker.ts +222 -222
- package/src/devtools/worker/worker-manager.ts +409 -409
- package/src/error/classifier.ts +2 -2
- package/src/error/domains.ts +265 -265
- package/src/error/formatter.ts +32 -32
- package/src/error/result.ts +46 -46
- package/src/error/stack-analyzer.ts +5 -0
- package/src/error/types.ts +6 -6
- package/src/errors/extractor.ts +409 -409
- package/src/errors/index.ts +19 -19
- package/src/filling/auth.ts +308 -308
- package/src/filling/context.ts +569 -569
- package/src/filling/deps.ts +238 -238
- package/src/generator/contract-glue.ts +2 -1
- package/src/generator/generate.ts +12 -10
- package/src/generator/index.ts +3 -3
- package/src/generator/templates.ts +80 -79
- package/src/guard/analyzer.ts +360 -360
- package/src/guard/ast-analyzer.ts +806 -806
- package/src/guard/auto-correct.ts +1 -1
- package/src/guard/check.ts +128 -128
- package/src/guard/contract-guard.ts +9 -9
- package/src/guard/file-type.test.ts +24 -24
- package/src/guard/presets/atomic.ts +70 -70
- package/src/guard/presets/clean.ts +77 -77
- package/src/guard/presets/cqrs.test.ts +35 -14
- package/src/guard/presets/fsd.ts +79 -79
- package/src/guard/presets/hexagonal.ts +68 -68
- package/src/guard/presets/index.ts +291 -291
- package/src/guard/reporter.ts +445 -445
- package/src/guard/rules.ts +12 -12
- package/src/guard/statistics.ts +578 -578
- package/src/guard/suggestions.ts +358 -358
- package/src/guard/types.ts +348 -348
- package/src/guard/validator.ts +834 -834
- package/src/guard/watcher.ts +404 -404
- package/src/index.ts +1 -0
- package/src/intent/index.ts +310 -310
- package/src/island/index.ts +304 -304
- package/src/logging/index.ts +22 -22
- package/src/logging/transports.ts +365 -365
- package/src/paths.test.ts +47 -0
- package/src/paths.ts +47 -0
- package/src/plugins/index.ts +38 -38
- package/src/plugins/registry.ts +377 -377
- package/src/plugins/types.ts +363 -363
- package/src/report/build.ts +1 -1
- package/src/report/index.ts +1 -1
- package/src/router/fs-patterns.ts +387 -387
- package/src/router/fs-routes.ts +344 -401
- package/src/router/fs-scanner.ts +497 -497
- package/src/router/fs-types.ts +270 -278
- package/src/router/index.ts +81 -81
- package/src/runtime/boundary.tsx +232 -232
- package/src/runtime/compose.ts +222 -222
- package/src/runtime/lifecycle.ts +381 -381
- package/src/runtime/logger.test.ts +345 -345
- package/src/runtime/logger.ts +677 -677
- package/src/runtime/router.test.ts +476 -476
- package/src/runtime/router.ts +105 -105
- package/src/runtime/security.ts +155 -155
- package/src/runtime/server.ts +24 -24
- package/src/runtime/session-key.ts +328 -328
- package/src/runtime/ssr.ts +367 -367
- package/src/runtime/streaming-ssr.ts +1245 -1245
- package/src/runtime/trace.ts +144 -144
- package/src/seo/index.ts +214 -214
- package/src/seo/integration/ssr.ts +307 -307
- package/src/seo/render/basic.ts +427 -427
- package/src/seo/render/index.ts +143 -143
- package/src/seo/render/jsonld.ts +539 -539
- package/src/seo/render/opengraph.ts +191 -191
- package/src/seo/render/robots.ts +116 -116
- package/src/seo/render/sitemap.ts +137 -137
- package/src/seo/render/twitter.ts +126 -126
- package/src/seo/resolve/index.ts +353 -353
- package/src/seo/resolve/opengraph.ts +143 -143
- package/src/seo/resolve/robots.ts +73 -73
- package/src/seo/resolve/title.ts +94 -94
- package/src/seo/resolve/twitter.ts +73 -73
- package/src/seo/resolve/url.ts +97 -97
- package/src/seo/routes/index.ts +290 -290
- package/src/seo/types.ts +575 -575
- package/src/slot/validator.ts +39 -39
- package/src/spec/index.ts +3 -3
- package/src/spec/load.ts +76 -76
- package/src/spec/lock.ts +56 -56
- package/src/utils/bun.ts +8 -8
- package/src/utils/lru-cache.ts +75 -75
- package/src/utils/safe-io.ts +188 -188
- package/src/utils/string-safe.ts +298 -298
- package/src/watcher/rules.ts +5 -5
package/src/error/result.ts
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import type { ManduError } from "./types";
|
|
2
|
-
import { ErrorCode } from "./types";
|
|
3
|
-
import { formatErrorResponse } from "./formatter";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Result 타입 - 성공/실패를 명시적으로 표현
|
|
7
|
-
*/
|
|
8
|
-
export type Result<T> =
|
|
9
|
-
| { ok: true; value: T }
|
|
10
|
-
| { ok: false; error: ManduError };
|
|
11
|
-
|
|
12
|
-
export const ok = <T>(value: T): Result<T> => ({ ok: true, value });
|
|
13
|
-
export const err = (error: ManduError): Result<never> => ({ ok: false, error });
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* ManduError -> HTTP status 매핑
|
|
17
|
-
*/
|
|
18
|
-
export function statusFromError(error: ManduError): number {
|
|
19
|
-
if (typeof error.httpStatus === "number") {
|
|
20
|
-
return error.httpStatus;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
switch (error.code) {
|
|
24
|
-
case ErrorCode.SPEC_NOT_FOUND:
|
|
25
|
-
return 404;
|
|
26
|
-
case ErrorCode.SPEC_PARSE_ERROR:
|
|
27
|
-
case ErrorCode.SPEC_VALIDATION_ERROR:
|
|
28
|
-
case ErrorCode.SPEC_ROUTE_DUPLICATE:
|
|
29
|
-
return 400;
|
|
30
|
-
case ErrorCode.SPEC_ROUTE_NOT_FOUND:
|
|
31
|
-
return 404;
|
|
32
|
-
case ErrorCode.SLOT_VALIDATION_ERROR:
|
|
33
|
-
return 400;
|
|
34
|
-
default:
|
|
35
|
-
return 500;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* 에러를 Response로 변환
|
|
41
|
-
*/
|
|
42
|
-
export function errorToResponse(error: ManduError, isDev: boolean): Response {
|
|
43
|
-
return Response.json(formatErrorResponse(error, { isDev }), {
|
|
44
|
-
status: statusFromError(error),
|
|
45
|
-
});
|
|
46
|
-
}
|
|
1
|
+
import type { ManduError } from "./types";
|
|
2
|
+
import { ErrorCode } from "./types";
|
|
3
|
+
import { formatErrorResponse } from "./formatter";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Result 타입 - 성공/실패를 명시적으로 표현
|
|
7
|
+
*/
|
|
8
|
+
export type Result<T> =
|
|
9
|
+
| { ok: true; value: T }
|
|
10
|
+
| { ok: false; error: ManduError };
|
|
11
|
+
|
|
12
|
+
export const ok = <T>(value: T): Result<T> => ({ ok: true, value });
|
|
13
|
+
export const err = (error: ManduError): Result<never> => ({ ok: false, error });
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* ManduError -> HTTP status 매핑
|
|
17
|
+
*/
|
|
18
|
+
export function statusFromError(error: ManduError): number {
|
|
19
|
+
if (typeof error.httpStatus === "number") {
|
|
20
|
+
return error.httpStatus;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
switch (error.code) {
|
|
24
|
+
case ErrorCode.SPEC_NOT_FOUND:
|
|
25
|
+
return 404;
|
|
26
|
+
case ErrorCode.SPEC_PARSE_ERROR:
|
|
27
|
+
case ErrorCode.SPEC_VALIDATION_ERROR:
|
|
28
|
+
case ErrorCode.SPEC_ROUTE_DUPLICATE:
|
|
29
|
+
return 400;
|
|
30
|
+
case ErrorCode.SPEC_ROUTE_NOT_FOUND:
|
|
31
|
+
return 404;
|
|
32
|
+
case ErrorCode.SLOT_VALIDATION_ERROR:
|
|
33
|
+
return 400;
|
|
34
|
+
default:
|
|
35
|
+
return 500;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 에러를 Response로 변환
|
|
41
|
+
*/
|
|
42
|
+
export function errorToResponse(error: ManduError, isDev: boolean): Response {
|
|
43
|
+
return Response.json(formatErrorResponse(error, { isDev }), {
|
|
44
|
+
status: statusFromError(error),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
@@ -183,6 +183,11 @@ export class StackTraceAnalyzer {
|
|
|
183
183
|
isSpecFile(file: string): boolean {
|
|
184
184
|
const normalized = this.normalizePath(file);
|
|
185
185
|
|
|
186
|
+
// .mandu/ 디렉토리 내 생성된 매니페스트/락 파일
|
|
187
|
+
if (normalized.startsWith(".mandu/") && normalized.endsWith(".json")) {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
|
|
186
191
|
// spec/ 디렉토리 내 JSON 파일
|
|
187
192
|
if (normalized.startsWith("spec/") && normalized.endsWith(".json")) {
|
|
188
193
|
return true;
|
package/src/error/types.ts
CHANGED
|
@@ -73,12 +73,12 @@ export interface DebugInfo {
|
|
|
73
73
|
export interface ManduError {
|
|
74
74
|
/** 에러 타입 */
|
|
75
75
|
errorType: ErrorType;
|
|
76
|
-
/** 에러 코드 */
|
|
77
|
-
code: ErrorCode | string;
|
|
78
|
-
/** HTTP 상태 코드 (선택) */
|
|
79
|
-
httpStatus?: number;
|
|
80
|
-
/** 에러 메시지 */
|
|
81
|
-
message: string;
|
|
76
|
+
/** 에러 코드 */
|
|
77
|
+
code: ErrorCode | string;
|
|
78
|
+
/** HTTP 상태 코드 (선택) */
|
|
79
|
+
httpStatus?: number;
|
|
80
|
+
/** 에러 메시지 */
|
|
81
|
+
message: string;
|
|
82
82
|
/** 한줄 요약 (에이전트용) */
|
|
83
83
|
summary: string;
|
|
84
84
|
/** 수정 대상 정보 */
|