@nine-lab/nine-mu 0.1.359 → 0.1.361
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/dist/nine-mu.js +68 -45
- package/dist/nine-mu.js.map +1 -1
- package/dist/nine-mu.umd.js +1 -1
- package/dist/nine-mu.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/exception/ExceptionHook.js +68 -37
package/dist/nine-mu.js
CHANGED
|
@@ -17538,7 +17538,7 @@ render_fn = function() {
|
|
|
17538
17538
|
const customImport = nine$1.cssPath ? `@import "${nine$1.cssPath}/nine-mu.css";` : "";
|
|
17539
17539
|
this.shadowRoot.innerHTML = `
|
|
17540
17540
|
<style>
|
|
17541
|
-
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.
|
|
17541
|
+
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.360"}/dist/css/nine-mu.css";
|
|
17542
17542
|
${customImport}
|
|
17543
17543
|
</style>
|
|
17544
17544
|
<div class="wrapper">
|
|
@@ -43788,7 +43788,7 @@ class NineDiff extends HTMLElement {
|
|
|
43788
43788
|
const customImport = nine.cssPath ? `@import "${nine.cssPath}/nine-mu.css";` : "";
|
|
43789
43789
|
this.shadowRoot.innerHTML = `
|
|
43790
43790
|
<style>
|
|
43791
|
-
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.
|
|
43791
|
+
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.360"}/dist/css/nine-mu.css";
|
|
43792
43792
|
${customImport}
|
|
43793
43793
|
</style>
|
|
43794
43794
|
|
|
@@ -43928,7 +43928,7 @@ renderScaffolding_fn = function() {
|
|
|
43928
43928
|
const customImport = nine$1.cssPath ? `@import "${nine$1.cssPath}/nine-mu.css";` : "";
|
|
43929
43929
|
this.shadowRoot.innerHTML = `
|
|
43930
43930
|
<style>
|
|
43931
|
-
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.
|
|
43931
|
+
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.360"}/dist/css/nine-mu.css";
|
|
43932
43932
|
${customImport}
|
|
43933
43933
|
</style>
|
|
43934
43934
|
|
|
@@ -44037,7 +44037,7 @@ render_fn2 = function() {
|
|
|
44037
44037
|
const customImport = nine$1.cssPath ? `@import "${nine$1.cssPath}/nine-mu.css";` : "";
|
|
44038
44038
|
this.shadowRoot.innerHTML = `
|
|
44039
44039
|
<style>
|
|
44040
|
-
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.
|
|
44040
|
+
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.360"}/dist/css/nine-mu.css";
|
|
44041
44041
|
${customImport}
|
|
44042
44042
|
</style>
|
|
44043
44043
|
|
|
@@ -44367,7 +44367,7 @@ class ChatMessageBody extends HTMLElement {
|
|
|
44367
44367
|
const customImport = nine.cssPath ? `@import "${nine.cssPath}/nine-mu.css";` : "";
|
|
44368
44368
|
this.shadowRoot.innerHTML = `
|
|
44369
44369
|
<style>
|
|
44370
|
-
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.
|
|
44370
|
+
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.360"}/dist/css/nine-mu.css";
|
|
44371
44371
|
${customImport}
|
|
44372
44372
|
</style>
|
|
44373
44373
|
|
|
@@ -44467,69 +44467,71 @@ if (!customElements.get("nine-chat-progress")) {
|
|
|
44467
44467
|
}
|
|
44468
44468
|
const NineExceptionStyles = {
|
|
44469
44469
|
container: {
|
|
44470
|
-
|
|
44471
|
-
|
|
44472
|
-
|
|
44470
|
+
minHeight: "100%",
|
|
44471
|
+
flexGrow: 1,
|
|
44472
|
+
padding: "25px",
|
|
44473
44473
|
background: "#121314",
|
|
44474
44474
|
// 터미널 다크 블랙 배경
|
|
44475
|
-
// ⭐ 모든
|
|
44475
|
+
// ⭐ 모든 요소의 폰트 크기, 패딩, 높이 기준을 부모 레벨에서 완벽히 통일
|
|
44476
44476
|
fontFamily: 'Consolas, Monaco, "Courier New", monospace',
|
|
44477
|
+
fontSize: "14px",
|
|
44478
|
+
lineHeight: "1.6",
|
|
44479
|
+
// 줄간격을 터미널 배시 화면 비율(1.6)로 고정
|
|
44480
|
+
color: "#999",
|
|
44481
|
+
// 기본 텍스트 색상 #999 적용
|
|
44477
44482
|
textAlign: "left",
|
|
44478
44483
|
boxShadow: "0 4px 12px rgba(0,0,0,0.3)",
|
|
44479
|
-
|
|
44480
|
-
display: "flex",
|
|
44481
|
-
flexDirection: "column",
|
|
44482
|
-
gap: "10px",
|
|
44483
|
-
// 줄간 간격을 10px로 타이트하게 조여 터미널 감성 극대화
|
|
44484
|
-
lineHeight: "1.2"
|
|
44485
|
-
// 모든 라인의 글자 높이 기준 통일
|
|
44484
|
+
boxSizing: "border-box"
|
|
44486
44485
|
},
|
|
44486
|
+
// 1. 모든 라인의 display 형식을 'block'으로 맞추고 마진/패딩을 0으로 통일
|
|
44487
44487
|
systemError: {
|
|
44488
44488
|
color: "#999",
|
|
44489
|
-
// 요청하신 대로 #999 색상 지정
|
|
44490
44489
|
fontWeight: "bold",
|
|
44491
|
-
fontSize: "14px",
|
|
44492
44490
|
margin: "0",
|
|
44493
|
-
|
|
44494
|
-
|
|
44495
|
-
padding: "0"
|
|
44491
|
+
padding: "0",
|
|
44492
|
+
display: "block"
|
|
44496
44493
|
},
|
|
44494
|
+
// 2. 에러 본문 텍스트도 불필요한 속성을 다 버리고 일반 라인과 똑같이 흐르게 교정
|
|
44497
44495
|
pre: {
|
|
44498
44496
|
background: "transparent",
|
|
44499
44497
|
color: "#666",
|
|
44498
|
+
// aa is not defined는 요청하신 #666 적용
|
|
44500
44499
|
padding: "0",
|
|
44501
44500
|
margin: "0",
|
|
44502
|
-
// pre 태그 고유의 불규칙한 여백 완전 제거
|
|
44503
44501
|
border: "none",
|
|
44504
44502
|
overflowX: "auto",
|
|
44505
44503
|
whiteSpace: "pre-wrap",
|
|
44506
|
-
fontFamily: "
|
|
44507
|
-
|
|
44504
|
+
fontFamily: "inherit",
|
|
44505
|
+
// 부모 폰트 그대로 상속
|
|
44506
|
+
fontSize: "inherit",
|
|
44507
|
+
// 부모 크기 그대로 상속
|
|
44508
|
+
display: "block"
|
|
44509
|
+
},
|
|
44510
|
+
// 3. 에러 위치 추적 라인
|
|
44511
|
+
locationRow: {
|
|
44512
|
+
color: "#666",
|
|
44513
|
+
margin: "0",
|
|
44514
|
+
padding: "0",
|
|
44508
44515
|
display: "block"
|
|
44509
44516
|
},
|
|
44517
|
+
// 4. 하단 영역의 flex와 gap을 완전히 제거하여 줄간격 왜곡 원천 차단
|
|
44510
44518
|
footer: {
|
|
44511
|
-
fontSize: "14px",
|
|
44512
|
-
color: "#999",
|
|
44513
44519
|
margin: "0",
|
|
44514
44520
|
padding: "0",
|
|
44515
|
-
display: "
|
|
44516
|
-
flexDirection: "column",
|
|
44517
|
-
gap: "10px"
|
|
44518
|
-
// 후속 로그가 찍힐 때도 동일한 간격 유지
|
|
44521
|
+
display: "block"
|
|
44519
44522
|
},
|
|
44520
44523
|
promptRow: {
|
|
44521
44524
|
margin: "0",
|
|
44522
44525
|
padding: "0",
|
|
44523
44526
|
display: "block",
|
|
44524
44527
|
color: "#999"
|
|
44525
|
-
// 대화형 구문도 완벽하게 #999 색상 일치
|
|
44526
44528
|
},
|
|
44527
44529
|
cliLink: {
|
|
44528
44530
|
color: "#38A169",
|
|
44529
|
-
//
|
|
44530
|
-
padding: "0
|
|
44531
|
-
fontFamily: "
|
|
44532
|
-
fontSize: "
|
|
44531
|
+
// y 링크 터미널 그린
|
|
44532
|
+
padding: "0",
|
|
44533
|
+
fontFamily: "inherit",
|
|
44534
|
+
fontSize: "inherit",
|
|
44533
44535
|
fontWeight: "bold",
|
|
44534
44536
|
cursor: "pointer",
|
|
44535
44537
|
textDecoration: "underline",
|
|
@@ -44550,6 +44552,9 @@ class NineExceptionHook extends React.Component {
|
|
|
44550
44552
|
}
|
|
44551
44553
|
componentDidCatch(error, errorInfo) {
|
|
44552
44554
|
console.error("🚨 [Nine-Library] 본문 렌더링 에러 포착:", error);
|
|
44555
|
+
this.setState({
|
|
44556
|
+
errorInfo: errorInfo || null
|
|
44557
|
+
});
|
|
44553
44558
|
if (this.props.onCatch) {
|
|
44554
44559
|
this.props.onCatch(error, errorInfo);
|
|
44555
44560
|
}
|
|
@@ -44574,7 +44579,7 @@ class NineExceptionHook extends React.Component {
|
|
|
44574
44579
|
}
|
|
44575
44580
|
handleLocationChange() {
|
|
44576
44581
|
setTimeout(() => {
|
|
44577
|
-
if (this.state.hasError && this.
|
|
44582
|
+
if (this.state.hasError && this.lastPath !== window.location.pathname) {
|
|
44578
44583
|
console.log("[Nine-Library] 페이지 주소 변경 감지 -> 에러 상태 초기화");
|
|
44579
44584
|
this.lastPath = window.location.pathname;
|
|
44580
44585
|
this.setState({ hasError: false, error: null, reportStatus: "idle" });
|
|
@@ -44596,27 +44601,44 @@ class NineExceptionHook extends React.Component {
|
|
|
44596
44601
|
}, 600);
|
|
44597
44602
|
}
|
|
44598
44603
|
render() {
|
|
44599
|
-
var _a2;
|
|
44604
|
+
var _a2, _b;
|
|
44600
44605
|
if (this.state.hasError) {
|
|
44601
44606
|
if (this.props.fallback) {
|
|
44602
44607
|
return this.props.fallback(this.state.error);
|
|
44603
44608
|
}
|
|
44604
44609
|
const errorMessage = ((_a2 = this.state.error) == null ? void 0 : _a2.message) || String(this.state.error);
|
|
44605
44610
|
const customStyles = this.props.styles || {};
|
|
44611
|
+
let errorLocation = "";
|
|
44612
|
+
if ((_b = this.state.errorInfo) == null ? void 0 : _b.componentStack) {
|
|
44613
|
+
const lines = this.state.errorInfo.componentStack.trim().split("\n");
|
|
44614
|
+
const targetLine = lines[0] || "";
|
|
44615
|
+
const match = targetLine.match(/at\s+(\w+)\s+\((.*)\)/) || targetLine.match(/at\s+(.*)/);
|
|
44616
|
+
if (match) {
|
|
44617
|
+
errorLocation = match[2] ? `${match[1]} (${match[2]})` : match[1];
|
|
44618
|
+
} else {
|
|
44619
|
+
errorLocation = targetLine.trim();
|
|
44620
|
+
}
|
|
44621
|
+
}
|
|
44606
44622
|
return React.createElement(
|
|
44607
44623
|
"div",
|
|
44608
44624
|
{
|
|
44609
44625
|
style: { ...NineExceptionStyles.container, ...customStyles.container, ...this.props.containerStyle }
|
|
44610
44626
|
},
|
|
44611
|
-
// 1.
|
|
44627
|
+
// 1. [SYSTEM] 라인
|
|
44612
44628
|
React.createElement(
|
|
44613
44629
|
"div",
|
|
44614
44630
|
{ style: { ...NineExceptionStyles.systemError, ...customStyles.systemError } },
|
|
44615
44631
|
"[SYSTEM] COMPONENT RENDER ERROR DETECTED"
|
|
44616
44632
|
),
|
|
44617
|
-
// 2.
|
|
44633
|
+
// 2. aa is not defined 라인
|
|
44618
44634
|
React.createElement("pre", { style: { ...NineExceptionStyles.pre, ...customStyles.pre } }, errorMessage),
|
|
44619
|
-
// 3.
|
|
44635
|
+
// 3. at MemberUsers 라인
|
|
44636
|
+
errorLocation && React.createElement(
|
|
44637
|
+
"div",
|
|
44638
|
+
{ style: { ...NineExceptionStyles.locationRow, ...customStyles.locationRow } },
|
|
44639
|
+
` at ${errorLocation}`
|
|
44640
|
+
),
|
|
44641
|
+
// 4. CLI 프롬프트 및 후속 결과 라인 영역
|
|
44620
44642
|
React.createElement(
|
|
44621
44643
|
"div",
|
|
44622
44644
|
{ style: { ...NineExceptionStyles.footer, ...customStyles.footer } },
|
|
@@ -44634,16 +44656,17 @@ class NineExceptionHook extends React.Component {
|
|
|
44634
44656
|
),
|
|
44635
44657
|
React.createElement("span", null, "/n)?")
|
|
44636
44658
|
),
|
|
44659
|
+
// display: 'block'과 margin/padding 0을 주어 다른 라인들과 오차 없이 간격을 맞춤
|
|
44637
44660
|
this.state.reportStatus === "sending" && React.createElement(
|
|
44638
44661
|
"div",
|
|
44639
|
-
{ style: { color: "#ED8936", margin: "0",
|
|
44662
|
+
{ style: { color: "#ED8936", margin: "0", padding: "0", display: "block" } },
|
|
44640
44663
|
">> Connecting to Control Tower... Sending payload."
|
|
44641
44664
|
),
|
|
44642
44665
|
this.state.reportStatus === "success" && React.createElement(
|
|
44643
44666
|
"div",
|
|
44644
|
-
{ style: {
|
|
44645
|
-
React.createElement("div", { style: { color: "#38A169", fontWeight: "bold",
|
|
44646
|
-
React.createElement("div", { style: { color: "#A0AEC0", fontStyle: "italic", fontSize: "13px",
|
|
44667
|
+
{ style: { margin: "0", padding: "0", display: "block" } },
|
|
44668
|
+
React.createElement("div", { style: { color: "#38A169", fontWeight: "bold", display: "block", margin: "0" } }, ">> Transmit complete. Core engine initialized."),
|
|
44669
|
+
React.createElement("div", { style: { color: "#A0AEC0", fontStyle: "italic", fontSize: "13px", display: "block", margin: "4px 0 0 0" } }, "AI가 소스 코드를 재수정하는 동안 잠시만 기다려주세요...")
|
|
44647
44670
|
)
|
|
44648
44671
|
)
|
|
44649
44672
|
);
|
|
@@ -44652,7 +44675,7 @@ class NineExceptionHook extends React.Component {
|
|
|
44652
44675
|
}
|
|
44653
44676
|
}
|
|
44654
44677
|
const NineMu = {
|
|
44655
|
-
version: "0.1.
|
|
44678
|
+
version: "0.1.360",
|
|
44656
44679
|
init: (config2) => {
|
|
44657
44680
|
trace$1.log("🛠️ Nine-Mu Engine initialized", config2);
|
|
44658
44681
|
}
|