vatts 1.2.0-alpha.1 → 1.2.0-alpha.2
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/adapters/express.js +5 -1
- package/dist/adapters/factory.js +58 -21
- package/dist/adapters/fastify.js +5 -1
- package/dist/adapters/native.js +5 -1
- package/dist/api/console.js +25 -17
- package/dist/api/framework.js +22 -15
- package/dist/api/http.js +7 -2
- package/dist/builder.js +19 -10
- package/dist/client/clientRouter.js +6 -2
- package/dist/client/rpc.js +7 -4
- package/dist/env/env.js +18 -11
- package/dist/global/global.d.ts +177 -122
- package/dist/helpers.js +108 -67
- package/dist/hotReload.d.ts +6 -0
- package/dist/hotReload.js +179 -31
- package/dist/index.js +159 -115
- package/dist/react/BuildingPage.d.ts +2 -1
- package/dist/react/BuildingPage.js +47 -4
- package/dist/react/DefaultNotFound.d.ts +2 -1
- package/dist/react/DefaultNotFound.js +92 -17
- package/dist/react/DevIndicator.js +66 -23
- package/dist/react/ErrorModal.js +91 -40
- package/dist/react/Link.d.ts +2 -2
- package/dist/react/Link.js +27 -5
- package/dist/react/client.js +16 -5
- package/dist/react/entry.client.js +70 -30
- package/dist/react/image/Image.js +8 -3
- package/dist/react/renderer-react.js +53 -25
- package/dist/renderer.d.ts +4 -0
- package/dist/renderer.js +13 -5
- package/dist/router.js +82 -63
- package/dist/rpc/annotations.js +7 -3
- package/dist/rpc/server.js +21 -15
- package/dist/rpc/types.js +4 -1
- package/dist/types/framework.js +2 -1
- package/dist/types.js +2 -1
- package/dist/vue/App.vue +34 -37
- package/dist/vue/BuildingPage.vue +118 -102
- package/dist/vue/ErrorModal.vue +19 -37
- package/dist/vue/Link.vue +8 -7
- package/dist/vue/client.js +16 -6
- package/dist/vue/entry.client.js +8 -3
- package/dist/vue/image/Image.vue +25 -19
- package/dist/vue/renderer.vue.js +80 -26
- package/package.json +25 -12
- package/dist/global/global.js +0 -17
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = BuildingScreen;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
function BuildingScreen() {
|
|
3
9
|
let version = "1.0.0";
|
|
4
10
|
try {
|
|
5
11
|
version = require("../package.json").version;
|
|
@@ -198,9 +204,46 @@ export default function BuildingScreen() {
|
|
|
198
204
|
to { transform: rotate(360deg); }
|
|
199
205
|
}
|
|
200
206
|
`;
|
|
201
|
-
return (
|
|
207
|
+
return (react_1.default.createElement("html", { lang: "en" },
|
|
208
|
+
react_1.default.createElement("head", null,
|
|
209
|
+
react_1.default.createElement("meta", { charSet: "UTF-8" }),
|
|
210
|
+
react_1.default.createElement("meta", { name: "viewport", content: "width=device-width, initial-scale=1.0" }),
|
|
211
|
+
react_1.default.createElement("title", null, "Vatts.js | Building..."),
|
|
212
|
+
react_1.default.createElement("link", { rel: "preconnect", href: "https://fonts.googleapis.com" }),
|
|
213
|
+
react_1.default.createElement("link", { rel: "preconnect", href: "https://fonts.gstatic.com", crossOrigin: "" }),
|
|
214
|
+
react_1.default.createElement("link", { href: "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;900&family=JetBrains+Mono:wght@400;500&display=swap", rel: "stylesheet" }),
|
|
215
|
+
react_1.default.createElement("style", { dangerouslySetInnerHTML: { __html: styles } })),
|
|
216
|
+
react_1.default.createElement("body", null,
|
|
217
|
+
react_1.default.createElement("div", { className: "container" },
|
|
218
|
+
react_1.default.createElement("div", { className: "build-card" },
|
|
219
|
+
react_1.default.createElement("div", { className: "neon-line" }),
|
|
220
|
+
react_1.default.createElement("div", { className: "content" },
|
|
221
|
+
react_1.default.createElement("div", { className: "logo-wrapper" },
|
|
222
|
+
react_1.default.createElement("div", { className: "logo-glow" }),
|
|
223
|
+
react_1.default.createElement("img", { src: "https://raw.githubusercontent.com/mfrazlab/vatts.js/master/docs/public/logo.png", alt: "Vatts Logo" })),
|
|
224
|
+
react_1.default.createElement("h1", null,
|
|
225
|
+
"Vatts",
|
|
226
|
+
react_1.default.createElement("span", null, ".js")),
|
|
227
|
+
react_1.default.createElement("p", null, "Building your application..."),
|
|
228
|
+
react_1.default.createElement("div", { className: "terminal-box" },
|
|
229
|
+
react_1.default.createElement("div", { className: "term-line" },
|
|
230
|
+
react_1.default.createElement("div", { className: "term-spinner" }),
|
|
231
|
+
react_1.default.createElement("span", { className: "file-name" },
|
|
232
|
+
"Compiling ",
|
|
233
|
+
react_1.default.createElement("span", { className: "accent" }, "src/vatts.ts"),
|
|
234
|
+
"...")),
|
|
235
|
+
react_1.default.createElement("div", { className: "term-line", style: { opacity: 0.5 } },
|
|
236
|
+
react_1.default.createElement("span", null, "\u2713"),
|
|
237
|
+
react_1.default.createElement("span", { className: "file-name" }, "Optimizing assets")))),
|
|
238
|
+
react_1.default.createElement("div", { className: "card-footer" },
|
|
239
|
+
react_1.default.createElement("span", null, "Building..."),
|
|
240
|
+
react_1.default.createElement("div", { className: "status-active" },
|
|
241
|
+
react_1.default.createElement("div", { className: "dot" }),
|
|
242
|
+
"v",
|
|
243
|
+
version)))),
|
|
244
|
+
react_1.default.createElement("script", { dangerouslySetInnerHTML: { __html: `
|
|
202
245
|
setTimeout(() => {
|
|
203
246
|
window.location.reload();
|
|
204
247
|
}, 2500);
|
|
205
|
-
` } })
|
|
248
|
+
` } }))));
|
|
206
249
|
}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export default function ErrorPage(): React.JSX.Element;
|
|
@@ -1,4 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.default = ErrorPage;
|
|
2
37
|
/*
|
|
3
38
|
* This file is part of the Vatts.js Project.
|
|
4
39
|
* Copyright (c) 2026 itsmuzin
|
|
@@ -15,12 +50,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
15
50
|
* See the License for the specific language governing permissions and
|
|
16
51
|
* limitations under the License.
|
|
17
52
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const [path, setPath] = useState('/');
|
|
21
|
-
const [hoverHome, setHoverHome] = useState(false);
|
|
22
|
-
const [hoverRetry, setHoverRetry] = useState(false);
|
|
23
|
-
useEffect(() => {
|
|
53
|
+
const react_1 = __importStar(require("react"));
|
|
54
|
+
function ErrorPage() {
|
|
55
|
+
const [path, setPath] = (0, react_1.useState)('/');
|
|
56
|
+
const [hoverHome, setHoverHome] = (0, react_1.useState)(false);
|
|
57
|
+
const [hoverRetry, setHoverRetry] = (0, react_1.useState)(false);
|
|
58
|
+
(0, react_1.useEffect)(() => {
|
|
24
59
|
if (typeof window !== 'undefined') {
|
|
25
60
|
setPath(window.location.pathname);
|
|
26
61
|
}
|
|
@@ -154,14 +189,54 @@ export default function ErrorPage() {
|
|
|
154
189
|
textDecoration: 'none',
|
|
155
190
|
color: '#fff',
|
|
156
191
|
};
|
|
157
|
-
return (
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
192
|
+
return (react_1.default.createElement("div", null,
|
|
193
|
+
react_1.default.createElement("style", { dangerouslySetInnerHTML: { __html: globalStyles } }),
|
|
194
|
+
react_1.default.createElement("div", { style: containerStyle },
|
|
195
|
+
react_1.default.createElement("div", { style: cardStyle },
|
|
196
|
+
react_1.default.createElement("div", { style: neonLine }),
|
|
197
|
+
react_1.default.createElement("div", { style: contentStyle },
|
|
198
|
+
react_1.default.createElement("div", { style: codeStyle }, "404"),
|
|
199
|
+
react_1.default.createElement("div", { style: terminalBoxStyle },
|
|
200
|
+
react_1.default.createElement("div", { style: { display: 'flex', gap: 6, marginBottom: 8, opacity: 0.3 } },
|
|
201
|
+
react_1.default.createElement("div", { style: { width: 8, height: 8, borderRadius: '50%', background: '#fff' } }),
|
|
202
|
+
react_1.default.createElement("div", { style: { width: 8, height: 8, borderRadius: '50%', background: '#fff' } }),
|
|
203
|
+
react_1.default.createElement("div", { style: { width: 8, height: 8, borderRadius: '50%', background: '#fff' } })),
|
|
204
|
+
react_1.default.createElement("div", null,
|
|
205
|
+
react_1.default.createElement("span", { style: { color: '#64748b' } }, "GET"),
|
|
206
|
+
' ',
|
|
207
|
+
react_1.default.createElement("span", { style: { color: '#fff' } }, path)),
|
|
208
|
+
react_1.default.createElement("div", { style: { marginTop: 4, color: '#475569' } },
|
|
209
|
+
react_1.default.createElement("span", null, "Error: Route not found"))),
|
|
210
|
+
react_1.default.createElement("div", { style: { display: 'flex', gap: 12, width: '100%' } },
|
|
211
|
+
react_1.default.createElement("a", { href: "/", onMouseEnter: () => setHoverHome(true), onMouseLeave: () => setHoverHome(false), style: { ...getBtnStyle('primary', hoverHome), flex: 1, justifyContent: 'center' } },
|
|
212
|
+
react_1.default.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" },
|
|
213
|
+
react_1.default.createElement("path", { d: "M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }),
|
|
214
|
+
react_1.default.createElement("polyline", { points: "9 22 9 12 15 12 15 22" })),
|
|
215
|
+
"Back Home"),
|
|
216
|
+
react_1.default.createElement("button", { onClick: () => window.location.reload(), onMouseEnter: () => setHoverRetry(true), onMouseLeave: () => setHoverRetry(false), style: { ...getBtnStyle('secondary', hoverRetry), flex: 1, justifyContent: 'center' } },
|
|
217
|
+
react_1.default.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" },
|
|
218
|
+
react_1.default.createElement("path", { d: "M21 2v6h-6" }),
|
|
219
|
+
react_1.default.createElement("path", { d: "M3 12a9 9 0 0 1 15-6.7L21 8" }),
|
|
220
|
+
react_1.default.createElement("path", { d: "M3 22v-6h6" }),
|
|
221
|
+
react_1.default.createElement("path", { d: "M21 12a9 9 0 0 1-15 6.7L3 16" })),
|
|
222
|
+
"Retry"))),
|
|
223
|
+
react_1.default.createElement("div", { style: {
|
|
224
|
+
padding: '12px 32px',
|
|
225
|
+
background: 'rgba(255,255,255,0.02)',
|
|
226
|
+
borderTop: '1px solid rgba(255,255,255,0.05)',
|
|
227
|
+
display: 'flex',
|
|
228
|
+
justifyContent: 'space-between',
|
|
229
|
+
alignItems: 'center',
|
|
230
|
+
fontSize: 11,
|
|
231
|
+
color: 'rgba(255,255,255,0.3)'
|
|
232
|
+
} },
|
|
233
|
+
react_1.default.createElement("span", null, "Vatts Server"),
|
|
234
|
+
react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: 6 } },
|
|
235
|
+
react_1.default.createElement("div", { style: { width: 6, height: 6, borderRadius: '50%', background: '#475569' } }),
|
|
236
|
+
react_1.default.createElement("span", { style: { color: '#94a3b8' } }, "Not Found")))),
|
|
237
|
+
react_1.default.createElement("a", { href: "https://npmjs.com/package/vatts", target: "_blank", rel: "noopener noreferrer", style: brandStyle, onMouseEnter: (e) => e.currentTarget.style.opacity = '1', onMouseLeave: (e) => e.currentTarget.style.opacity = '0.4' },
|
|
238
|
+
react_1.default.createElement("img", { src: "https://raw.githubusercontent.com/mfrazlab/vatts.js/master/docs/public/logo.png", alt: "Vatts Logo", style: { width: 20, height: 20, filter: 'grayscale(1) brightness(2)' } }),
|
|
239
|
+
react_1.default.createElement("span", { style: { fontSize: 13, fontWeight: 600, color: '#fff' } },
|
|
240
|
+
"Vatts",
|
|
241
|
+
react_1.default.createElement("span", { style: { color: "#64748b" } }, ".js"))))));
|
|
167
242
|
}
|
|
@@ -1,11 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.default = DevIndicator;
|
|
37
|
+
const react_1 = __importStar(require("react"));
|
|
38
|
+
const react_dom_1 = require("react-dom");
|
|
39
|
+
function DevIndicator({ hasBuildError = false, onClickBuildError, }) {
|
|
40
|
+
const [isVisible, setIsVisible] = (0, react_1.useState)(true);
|
|
41
|
+
const [hotState, setHotState] = (0, react_1.useState)('idle');
|
|
42
|
+
const [mounted, setMounted] = (0, react_1.useState)(false);
|
|
43
|
+
(0, react_1.useEffect)(() => {
|
|
9
44
|
setMounted(true);
|
|
10
45
|
const handler = (ev) => {
|
|
11
46
|
const detail = ev?.detail;
|
|
@@ -26,7 +61,8 @@ export default function DevIndicator({ hasBuildError = false, onClickBuildError,
|
|
|
26
61
|
const isReloading = hotState === 'reloading';
|
|
27
62
|
const isError = !!hasBuildError;
|
|
28
63
|
// Criamos o elemento via Portal para injetar no final do <body>
|
|
29
|
-
return createPortal(
|
|
64
|
+
return (0, react_dom_1.createPortal)(react_1.default.createElement(react_1.default.Fragment, null,
|
|
65
|
+
react_1.default.createElement("style", null, `
|
|
30
66
|
@keyframes vatts-pulse {
|
|
31
67
|
0% { opacity: 0.4; }
|
|
32
68
|
50% { opacity: 1; }
|
|
@@ -127,18 +163,25 @@ export default function DevIndicator({ hasBuildError = false, onClickBuildError,
|
|
|
127
163
|
font-size: 9px;
|
|
128
164
|
font-weight: 900;
|
|
129
165
|
}
|
|
130
|
-
`
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
166
|
+
`),
|
|
167
|
+
react_1.default.createElement("div", { className: `vatts-dev-badge${isError ? ' clickable' : ''}`, onClick: () => isError && onClickBuildError?.() },
|
|
168
|
+
isReloading ? (react_1.default.createElement("div", { className: "vatts-spinner" })) : (react_1.default.createElement("div", { className: `vatts-status-dot${isReloading ? ' reloading' : ''}${isError ? ' error' : ''}` })),
|
|
169
|
+
react_1.default.createElement("div", { className: "vatts-logo" },
|
|
170
|
+
"VATTS",
|
|
171
|
+
react_1.default.createElement("span", null, ".JS"),
|
|
172
|
+
isError && react_1.default.createElement("span", { className: "vatts-error-pill" }, "ERROR")),
|
|
173
|
+
react_1.default.createElement("button", { onClick: (e) => {
|
|
174
|
+
e.stopPropagation();
|
|
175
|
+
setIsVisible(false);
|
|
176
|
+
}, style: {
|
|
177
|
+
background: 'none',
|
|
178
|
+
border: 'none',
|
|
179
|
+
color: 'rgba(255,255,255,0.2)',
|
|
180
|
+
cursor: 'pointer',
|
|
181
|
+
fontSize: '16px',
|
|
182
|
+
padding: '0 0 0 4px',
|
|
183
|
+
marginLeft: '4px',
|
|
184
|
+
display: 'flex',
|
|
185
|
+
alignItems: 'center'
|
|
186
|
+
} }, "\u00D7"))), document.body);
|
|
144
187
|
}
|
package/dist/react/ErrorModal.js
CHANGED
|
@@ -1,4 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ErrorModal = ErrorModal;
|
|
2
37
|
/*
|
|
3
38
|
* This file is part of the Vatts.js Project.
|
|
4
39
|
* Copyright (c) 2026 itsmuzin
|
|
@@ -15,8 +50,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
15
50
|
* See the License for the specific language governing permissions and
|
|
16
51
|
* limitations under the License.
|
|
17
52
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
53
|
+
const react_1 = __importStar(require("react"));
|
|
54
|
+
const react_dom_1 = require("react-dom");
|
|
20
55
|
// --- ANSI PARSER LOGIC (Monochrome Adjusted) ---
|
|
21
56
|
const ANSI_COLORS = {
|
|
22
57
|
'30': '#475569',
|
|
@@ -30,7 +65,7 @@ const ANSI_COLORS = {
|
|
|
30
65
|
'90': '#64748b',
|
|
31
66
|
};
|
|
32
67
|
function AnsiText({ text }) {
|
|
33
|
-
const parts = useMemo(() => {
|
|
68
|
+
const parts = (0, react_1.useMemo)(() => {
|
|
34
69
|
const regex = /\u001b\[(\d+)(?:;\d+)*m/g;
|
|
35
70
|
const result = [];
|
|
36
71
|
let lastIndex = 0;
|
|
@@ -56,23 +91,23 @@ function AnsiText({ text }) {
|
|
|
56
91
|
}
|
|
57
92
|
return result;
|
|
58
93
|
}, [text]);
|
|
59
|
-
return (
|
|
94
|
+
return (react_1.default.createElement("span", null, parts.map((part, i) => (react_1.default.createElement("span", { key: i, style: { color: part.color || 'inherit' } }, part.text)))));
|
|
60
95
|
}
|
|
61
96
|
// --- MAIN MODAL ---
|
|
62
|
-
|
|
63
|
-
const [visible, setVisible] = useState(false);
|
|
64
|
-
const [isHoveringClose, setIsHoveringClose] = useState(false);
|
|
65
|
-
const [isHoveringCopy, setIsHoveringCopy] = useState(false);
|
|
66
|
-
const [mounted, setMounted] = useState(false);
|
|
97
|
+
function ErrorModal({ error, isOpen, onClose, onCopy, }) {
|
|
98
|
+
const [visible, setVisible] = (0, react_1.useState)(false);
|
|
99
|
+
const [isHoveringClose, setIsHoveringClose] = (0, react_1.useState)(false);
|
|
100
|
+
const [isHoveringCopy, setIsHoveringCopy] = (0, react_1.useState)(false);
|
|
101
|
+
const [mounted, setMounted] = (0, react_1.useState)(false);
|
|
67
102
|
// Paleta Next.js
|
|
68
103
|
const primaryColor = '#ffffff';
|
|
69
104
|
const primaryRgb = '255, 255, 255';
|
|
70
105
|
const borderColor = 'rgba(255, 255, 255, 0.1)';
|
|
71
|
-
useEffect(() => {
|
|
106
|
+
(0, react_1.useEffect)(() => {
|
|
72
107
|
setMounted(true);
|
|
73
108
|
return () => setMounted(false);
|
|
74
109
|
}, []);
|
|
75
|
-
useEffect(() => {
|
|
110
|
+
(0, react_1.useEffect)(() => {
|
|
76
111
|
if (isOpen) {
|
|
77
112
|
document.body.style.overflow = 'hidden';
|
|
78
113
|
setTimeout(() => setVisible(true), 10);
|
|
@@ -83,7 +118,7 @@ export function ErrorModal({ error, isOpen, onClose, onCopy, }) {
|
|
|
83
118
|
}
|
|
84
119
|
return () => { document.body.style.overflow = ''; };
|
|
85
120
|
}, [isOpen]);
|
|
86
|
-
useEffect(() => {
|
|
121
|
+
(0, react_1.useEffect)(() => {
|
|
87
122
|
if (!isOpen)
|
|
88
123
|
return;
|
|
89
124
|
const onKey = (e) => {
|
|
@@ -185,31 +220,47 @@ export function ErrorModal({ error, isOpen, onClose, onCopy, }) {
|
|
|
185
220
|
borderColor: hovering ? 'rgba(255, 255, 255, 0.1)' : 'transparent',
|
|
186
221
|
};
|
|
187
222
|
};
|
|
188
|
-
const modalContent = (
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
223
|
+
const modalContent = (react_1.default.createElement("div", { style: overlayStyle, onMouseDown: onClose },
|
|
224
|
+
react_1.default.createElement("div", { style: cardStyle, onMouseDown: (e) => e.stopPropagation() },
|
|
225
|
+
react_1.default.createElement("div", { style: neonLine }),
|
|
226
|
+
react_1.default.createElement("div", { style: headerStyle },
|
|
227
|
+
react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: 12 } },
|
|
228
|
+
react_1.default.createElement("span", { style: {
|
|
229
|
+
fontSize: 11,
|
|
230
|
+
fontWeight: 900,
|
|
231
|
+
color: '#ffffff',
|
|
232
|
+
background: '#ef4444',
|
|
233
|
+
padding: '2px 8px',
|
|
234
|
+
borderRadius: 4,
|
|
235
|
+
letterSpacing: '0.05em'
|
|
236
|
+
} }, "ERROR"),
|
|
237
|
+
error.plugin && (react_1.default.createElement("span", { style: {
|
|
238
|
+
fontSize: 11,
|
|
239
|
+
color: '#64748b',
|
|
240
|
+
background: 'rgba(255, 255, 255, 0.03)',
|
|
241
|
+
padding: '2px 8px',
|
|
242
|
+
borderRadius: 4,
|
|
243
|
+
fontFamily: 'monospace',
|
|
244
|
+
border: '1px solid rgba(255, 255, 255, 0.05)'
|
|
245
|
+
} }, error.plugin))),
|
|
246
|
+
react_1.default.createElement("div", { style: { display: 'flex', gap: 8 } },
|
|
247
|
+
onCopy && (react_1.default.createElement("button", { onClick: onCopy, onMouseEnter: () => setIsHoveringCopy(true), onMouseLeave: () => setIsHoveringCopy(false), style: getBtnStyle('secondary', isHoveringCopy) }, "Copy Log")),
|
|
248
|
+
react_1.default.createElement("button", { onClick: onClose, onMouseEnter: () => setIsHoveringClose(true), onMouseLeave: () => setIsHoveringClose(false), style: getBtnStyle('primary', isHoveringClose) }, "Close"))),
|
|
249
|
+
react_1.default.createElement("div", { style: terminalContent },
|
|
250
|
+
react_1.default.createElement(AnsiText, { text: rawOutput }),
|
|
251
|
+
stackOutput && (react_1.default.createElement("div", { style: { marginTop: 24, opacity: 0.4, borderTop: '1px dashed rgba(255,255,255,0.1)', paddingTop: 16 } },
|
|
252
|
+
react_1.default.createElement(AnsiText, { text: stackOutput })))),
|
|
253
|
+
react_1.default.createElement("div", { style: {
|
|
254
|
+
padding: '10px 24px',
|
|
255
|
+
background: 'rgba(255,255,255,0.01)',
|
|
256
|
+
borderTop: '1px solid rgba(255,255,255,0.03)',
|
|
257
|
+
display: 'flex',
|
|
258
|
+
justifyContent: 'space-between',
|
|
259
|
+
fontSize: 11,
|
|
260
|
+
color: 'rgba(255,255,255,0.3)',
|
|
261
|
+
fontFamily: 'Inter, sans-serif'
|
|
262
|
+
} },
|
|
263
|
+
react_1.default.createElement("span", null, "vatts-cli"),
|
|
264
|
+
react_1.default.createElement("span", { style: { color: '#64748b', fontWeight: 500 } }, "Watching for changes...")))));
|
|
265
|
+
return (0, react_dom_1.createPortal)(modalContent, document.body);
|
|
215
266
|
}
|
package/dist/react/Link.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type AnchorHTMLAttributes, type ReactNode } from 'react';
|
|
1
|
+
import React, { type AnchorHTMLAttributes, type ReactNode } from 'react';
|
|
2
2
|
interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
3
3
|
href: string;
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
}
|
|
6
|
-
export declare function Link({ href, children, ...props }: LinkProps):
|
|
6
|
+
export declare function Link({ href, children, ...props }: LinkProps): React.JSX.Element;
|
|
7
7
|
export {};
|
package/dist/react/Link.js
CHANGED
|
@@ -1,10 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Link = Link;
|
|
7
|
+
/*
|
|
8
|
+
* This file is part of the Vatts.js Project.
|
|
9
|
+
* Copyright (c) 2026 itsmuzin
|
|
10
|
+
*
|
|
11
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
+
* you may not use this file except in compliance with the License.
|
|
13
|
+
* You may obtain a copy of the License at
|
|
14
|
+
*
|
|
15
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
+
*
|
|
17
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
+
* See the License for the specific language governing permissions and
|
|
21
|
+
* limitations under the License.
|
|
22
|
+
*/
|
|
23
|
+
const react_1 = __importDefault(require("react"));
|
|
24
|
+
const clientRouter_1 = require("../client/clientRouter");
|
|
25
|
+
function Link({ href, children, ...props }) {
|
|
4
26
|
const handleClick = async (e) => {
|
|
5
27
|
e.preventDefault();
|
|
6
28
|
// Usa o novo sistema de router
|
|
7
|
-
await router.push(href);
|
|
29
|
+
await clientRouter_1.router.push(href);
|
|
8
30
|
};
|
|
9
|
-
return (
|
|
31
|
+
return (react_1.default.createElement("a", { href: href, ...props, onClick: handleClick }, children));
|
|
10
32
|
}
|
package/dist/react/client.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/*
|
|
2
3
|
* This file is part of the Vatts.js Project.
|
|
3
4
|
* Copyright (c) 2026 itsmuzin
|
|
@@ -14,10 +15,20 @@
|
|
|
14
15
|
* See the License for the specific language governing permissions and
|
|
15
16
|
* limitations under the License.
|
|
16
17
|
*/
|
|
18
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.VattsImage = exports.Image = exports.importServer = exports.router = exports.Link = void 0;
|
|
17
23
|
// Este arquivo exporta apenas código seguro para o cliente (navegador)
|
|
18
|
-
|
|
19
|
-
|
|
24
|
+
var Link_1 = require("./Link");
|
|
25
|
+
Object.defineProperty(exports, "Link", { enumerable: true, get: function () { return Link_1.Link; } });
|
|
26
|
+
var clientRouter_1 = require("../client/clientRouter");
|
|
27
|
+
Object.defineProperty(exports, "router", { enumerable: true, get: function () { return clientRouter_1.router; } });
|
|
20
28
|
// RPC (client-side)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
29
|
+
var rpc_1 = require("../client/rpc");
|
|
30
|
+
Object.defineProperty(exports, "importServer", { enumerable: true, get: function () { return rpc_1.importServer; } });
|
|
31
|
+
var Image_1 = require("./image/Image");
|
|
32
|
+
Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return __importDefault(Image_1).default; } });
|
|
33
|
+
var Image_2 = require("./image/Image");
|
|
34
|
+
Object.defineProperty(exports, "VattsImage", { enumerable: true, get: function () { return __importDefault(Image_2).default; } });
|