@portel/photon 1.20.0 → 1.21.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.md +5 -5
- package/dist/ag-ui/adapter.d.ts.map +1 -1
- package/dist/ag-ui/adapter.js +25 -0
- package/dist/ag-ui/adapter.js.map +1 -1
- package/dist/auto-ui/beam/routes/api-browse.d.ts.map +1 -1
- package/dist/auto-ui/beam/routes/api-browse.js +8 -49
- package/dist/auto-ui/beam/routes/api-browse.js.map +1 -1
- package/dist/auto-ui/beam/routes/api-config.d.ts.map +1 -1
- package/dist/auto-ui/beam/routes/api-config.js +161 -20
- package/dist/auto-ui/beam/routes/api-config.js.map +1 -1
- package/dist/auto-ui/beam.d.ts.map +1 -1
- package/dist/auto-ui/beam.js +24 -31
- package/dist/auto-ui/beam.js.map +1 -1
- package/dist/auto-ui/bridge/index.d.ts.map +1 -1
- package/dist/auto-ui/bridge/index.js +107 -11
- package/dist/auto-ui/bridge/index.js.map +1 -1
- package/dist/auto-ui/bridge/renderers.d.ts +14 -0
- package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
- package/dist/auto-ui/bridge/renderers.js +692 -61
- package/dist/auto-ui/bridge/renderers.js.map +1 -1
- package/dist/auto-ui/frontend/index.html +3 -3
- package/dist/auto-ui/frontend/pure-view.html +19 -19
- package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
- package/dist/auto-ui/streamable-http-transport.js +144 -28
- package/dist/auto-ui/streamable-http-transport.js.map +1 -1
- package/dist/auto-ui/ui-resolver.d.ts +25 -0
- package/dist/auto-ui/ui-resolver.d.ts.map +1 -0
- package/dist/auto-ui/ui-resolver.js +95 -0
- package/dist/auto-ui/ui-resolver.js.map +1 -0
- package/dist/beam-form.bundle.js +26 -189
- package/dist/beam-form.bundle.js.map +4 -4
- package/dist/beam.bundle.js +1646 -494
- package/dist/beam.bundle.js.map +4 -4
- package/dist/cli/commands/beam.d.ts.map +1 -1
- package/dist/cli/commands/beam.js +47 -30
- package/dist/cli/commands/beam.js.map +1 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +36 -7
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/daemon.js +12 -6
- package/dist/cli/commands/daemon.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +90 -50
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +18 -6
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/publish.d.ts +14 -0
- package/dist/cli/commands/publish.d.ts.map +1 -0
- package/dist/cli/commands/publish.js +126 -0
- package/dist/cli/commands/publish.js.map +1 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +2 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +14 -2
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli-alias.d.ts.map +1 -1
- package/dist/cli-alias.js +2 -3
- package/dist/cli-alias.js.map +1 -1
- package/dist/context-store.d.ts +4 -4
- package/dist/context-store.d.ts.map +1 -1
- package/dist/context-store.js +18 -15
- package/dist/context-store.js.map +1 -1
- package/dist/context.d.ts +31 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +86 -9
- package/dist/context.js.map +1 -1
- package/dist/daemon/client.d.ts +9 -1
- package/dist/daemon/client.d.ts.map +1 -1
- package/dist/daemon/client.js +58 -2
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/manager.d.ts +5 -0
- package/dist/daemon/manager.d.ts.map +1 -1
- package/dist/daemon/manager.js +116 -34
- package/dist/daemon/manager.js.map +1 -1
- package/dist/daemon/ownership.d.ts +12 -0
- package/dist/daemon/ownership.d.ts.map +1 -0
- package/dist/daemon/ownership.js +55 -0
- package/dist/daemon/ownership.js.map +1 -0
- package/dist/daemon/protocol.d.ts +3 -1
- package/dist/daemon/protocol.d.ts.map +1 -1
- package/dist/daemon/protocol.js +14 -2
- package/dist/daemon/protocol.js.map +1 -1
- package/dist/daemon/server.js +587 -77
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/session-manager.d.ts +9 -1
- package/dist/daemon/session-manager.d.ts.map +1 -1
- package/dist/daemon/session-manager.js +54 -1
- package/dist/daemon/session-manager.js.map +1 -1
- package/dist/daemon/worker-host.js +7 -0
- package/dist/daemon/worker-host.js.map +1 -1
- package/dist/daemon/worker-manager.d.ts +12 -0
- package/dist/daemon/worker-manager.d.ts.map +1 -1
- package/dist/daemon/worker-manager.js +147 -16
- package/dist/daemon/worker-manager.js.map +1 -1
- package/dist/daemon/worker-protocol.d.ts +3 -0
- package/dist/daemon/worker-protocol.d.ts.map +1 -1
- package/dist/deploy/cloudflare.d.ts.map +1 -1
- package/dist/deploy/cloudflare.js +2 -4
- package/dist/deploy/cloudflare.js.map +1 -1
- package/dist/loader.d.ts +10 -9
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +224 -115
- package/dist/loader.js.map +1 -1
- package/dist/marketplace-manager.d.ts +1 -1
- package/dist/marketplace-manager.d.ts.map +1 -1
- package/dist/marketplace-manager.js +5 -4
- package/dist/marketplace-manager.js.map +1 -1
- package/dist/photon-cli-runner.d.ts.map +1 -1
- package/dist/photon-cli-runner.js +66 -23
- package/dist/photon-cli-runner.js.map +1 -1
- package/dist/photon-doc-extractor.d.ts.map +1 -1
- package/dist/photon-doc-extractor.js +59 -15
- package/dist/photon-doc-extractor.js.map +1 -1
- package/dist/photons/canvas/ui/canvas.photon.html +1493 -0
- package/dist/photons/canvas.photon.d.ts +400 -0
- package/dist/photons/canvas.photon.d.ts.map +1 -0
- package/dist/photons/canvas.photon.js +662 -0
- package/dist/photons/canvas.photon.js.map +1 -0
- package/dist/photons/canvas.photon.ts +814 -0
- package/dist/photons/publish.photon.d.ts +97 -0
- package/dist/photons/publish.photon.d.ts.map +1 -0
- package/dist/photons/publish.photon.js +569 -0
- package/dist/photons/publish.photon.js.map +1 -0
- package/dist/photons/publish.photon.ts +683 -0
- package/dist/photons/ui/canvas.photon.html +624 -0
- package/dist/resource-server.d.ts.map +1 -1
- package/dist/resource-server.js +7 -1
- package/dist/resource-server.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +14 -16
- package/dist/server.js.map +1 -1
- package/dist/shared-utils.d.ts +4 -0
- package/dist/shared-utils.d.ts.map +1 -1
- package/dist/shared-utils.js +24 -2
- package/dist/shared-utils.js.map +1 -1
- package/dist/template-manager.d.ts.map +1 -1
- package/dist/template-manager.js +56 -234
- package/dist/template-manager.js.map +1 -1
- package/dist/tsx-compiler.d.ts +23 -0
- package/dist/tsx-compiler.d.ts.map +1 -0
- package/dist/tsx-compiler.js +221 -0
- package/dist/tsx-compiler.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TSX View Compiler
|
|
3
|
+
*
|
|
4
|
+
* Transpiles and bundles .tsx view files into self-contained HTML documents
|
|
5
|
+
* using esbuild. Ships a tiny built-in JSX runtime (~1KB) that maps directly
|
|
6
|
+
* to DOM calls — no React, no Preact, no virtual DOM.
|
|
7
|
+
*
|
|
8
|
+
* Users can override with `@jsxImportSource` pragma or tsconfig.json in the
|
|
9
|
+
* ui/ folder to use React/Preact/Solid if they prefer.
|
|
10
|
+
*/
|
|
11
|
+
import * as esbuild from 'esbuild';
|
|
12
|
+
import * as fs from 'fs';
|
|
13
|
+
import * as fsAsync from 'fs/promises';
|
|
14
|
+
import * as os from 'os';
|
|
15
|
+
import * as path from 'path';
|
|
16
|
+
// ─── Built-in JSX Runtime ──────────────────────────────────────────────────
|
|
17
|
+
// Tiny DOM-based JSX factory. `h()` returns real DOM nodes, not virtual nodes.
|
|
18
|
+
// Injected into every TSX build unless the user overrides via tsconfig.
|
|
19
|
+
const JSX_RUNTIME = `
|
|
20
|
+
export function h(type, props, ...children) {
|
|
21
|
+
if (type === Fragment) {
|
|
22
|
+
const frag = document.createDocumentFragment();
|
|
23
|
+
_append(frag, children);
|
|
24
|
+
return frag;
|
|
25
|
+
}
|
|
26
|
+
if (typeof type === 'function') {
|
|
27
|
+
return type(Object.assign({}, props, { children: children.length <= 1 ? children[0] : children }));
|
|
28
|
+
}
|
|
29
|
+
const el = document.createElement(type);
|
|
30
|
+
if (props) {
|
|
31
|
+
for (const [k, v] of Object.entries(props)) {
|
|
32
|
+
if (k === 'children' || v == null || v === false) continue;
|
|
33
|
+
if (k.startsWith('on') && typeof v === 'function') {
|
|
34
|
+
el.addEventListener(k[2].toLowerCase() + k.slice(3), v);
|
|
35
|
+
} else if (k === 'style' && typeof v === 'object') {
|
|
36
|
+
Object.assign(el.style, v);
|
|
37
|
+
} else if (k === 'className') {
|
|
38
|
+
el.setAttribute('class', v);
|
|
39
|
+
} else if (k === 'htmlFor') {
|
|
40
|
+
el.setAttribute('for', v);
|
|
41
|
+
} else if (k === 'dangerouslySetInnerHTML') {
|
|
42
|
+
el.innerHTML = v.__html;
|
|
43
|
+
} else if (v === true) {
|
|
44
|
+
el.setAttribute(k, '');
|
|
45
|
+
} else {
|
|
46
|
+
el.setAttribute(k, String(v));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
_append(el, children);
|
|
51
|
+
return el;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function Fragment() {}
|
|
55
|
+
|
|
56
|
+
export function _append(parent, children) {
|
|
57
|
+
for (const child of children) {
|
|
58
|
+
if (child == null || child === false || child === true) continue;
|
|
59
|
+
if (Array.isArray(child)) { _append(parent, child); continue; }
|
|
60
|
+
parent.append(typeof child === 'object' ? child : String(child));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function render(element, container) {
|
|
65
|
+
if (typeof container === 'string') container = document.querySelector(container);
|
|
66
|
+
container.replaceChildren(element);
|
|
67
|
+
return element;
|
|
68
|
+
}
|
|
69
|
+
`.trim();
|
|
70
|
+
// Write runtime to a temp file once per process for esbuild inject
|
|
71
|
+
let _runtimePath = null;
|
|
72
|
+
function getRuntimePath() {
|
|
73
|
+
if (!_runtimePath) {
|
|
74
|
+
_runtimePath = path.join(os.tmpdir(), `photon-jsx-runtime-${process.pid}.js`);
|
|
75
|
+
fs.writeFileSync(_runtimePath, JSX_RUNTIME);
|
|
76
|
+
}
|
|
77
|
+
return _runtimePath;
|
|
78
|
+
}
|
|
79
|
+
// In-memory cache: filePath → { mtimeMs, html }
|
|
80
|
+
const cache = new Map();
|
|
81
|
+
/**
|
|
82
|
+
* Find the nearest tsconfig.json walking up from startDir.
|
|
83
|
+
* Stops at the photon asset folder root (parent of ui/).
|
|
84
|
+
*/
|
|
85
|
+
function findTsconfig(startDir) {
|
|
86
|
+
let dir = startDir;
|
|
87
|
+
const root = path.dirname(dir); // stop at parent of ui/
|
|
88
|
+
while (true) {
|
|
89
|
+
const candidate = path.join(dir, 'tsconfig.json');
|
|
90
|
+
if (fs.existsSync(candidate))
|
|
91
|
+
return candidate;
|
|
92
|
+
if (dir === root || dir === path.dirname(dir))
|
|
93
|
+
break;
|
|
94
|
+
dir = path.dirname(dir);
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Build esbuild options for a TSX file.
|
|
100
|
+
* Uses built-in DOM-based JSX runtime by default.
|
|
101
|
+
* Users can override via tsconfig.json (jsx/jsxImportSource settings).
|
|
102
|
+
*/
|
|
103
|
+
function buildOptions(filePath, tsconfigPath) {
|
|
104
|
+
const uiDir = path.dirname(filePath);
|
|
105
|
+
// If user has a tsconfig, let it control JSX settings
|
|
106
|
+
// Otherwise use our built-in runtime via inject
|
|
107
|
+
const hasUserTsconfig = !!tsconfigPath;
|
|
108
|
+
return {
|
|
109
|
+
entryPoints: [filePath],
|
|
110
|
+
bundle: true,
|
|
111
|
+
write: false,
|
|
112
|
+
format: 'esm',
|
|
113
|
+
platform: 'browser',
|
|
114
|
+
target: 'es2020',
|
|
115
|
+
// Built-in runtime: classic transform with injected h/Fragment
|
|
116
|
+
...(!hasUserTsconfig
|
|
117
|
+
? {
|
|
118
|
+
jsx: 'transform',
|
|
119
|
+
jsxFactory: 'h',
|
|
120
|
+
jsxFragment: 'Fragment',
|
|
121
|
+
inject: [getRuntimePath()],
|
|
122
|
+
}
|
|
123
|
+
: {
|
|
124
|
+
// Let tsconfig control jsx mode and import source
|
|
125
|
+
tsconfig: tsconfigPath,
|
|
126
|
+
}),
|
|
127
|
+
nodePaths: [
|
|
128
|
+
path.join(uiDir, 'node_modules'),
|
|
129
|
+
path.join(uiDir, '..', 'node_modules'),
|
|
130
|
+
path.join(uiDir, '..', '..', 'node_modules'),
|
|
131
|
+
path.join(uiDir, '..', '..', '..', 'node_modules'),
|
|
132
|
+
],
|
|
133
|
+
logLevel: 'silent',
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Wrap bundled JS in a self-contained HTML document.
|
|
138
|
+
*/
|
|
139
|
+
function wrapInHtml(js) {
|
|
140
|
+
return `<!doctype html>
|
|
141
|
+
<html lang="en">
|
|
142
|
+
<head>
|
|
143
|
+
<meta charset="UTF-8">
|
|
144
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
145
|
+
<style>*, *::before, *::after { box-sizing: border-box; } body { margin: 0; font-family: system-ui, -apple-system, sans-serif; }</style>
|
|
146
|
+
</head>
|
|
147
|
+
<body>
|
|
148
|
+
<div id="root"></div>
|
|
149
|
+
<script type="module">
|
|
150
|
+
${js}
|
|
151
|
+
</script>
|
|
152
|
+
</body>
|
|
153
|
+
</html>`;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Wrap an esbuild error in a developer-friendly HTML error page.
|
|
157
|
+
*/
|
|
158
|
+
function wrapError(filePath, error) {
|
|
159
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
160
|
+
const escaped = message.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
161
|
+
return `<!doctype html>
|
|
162
|
+
<html lang="en">
|
|
163
|
+
<head>
|
|
164
|
+
<meta charset="UTF-8">
|
|
165
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
166
|
+
<style>
|
|
167
|
+
body { margin: 0; padding: 24px; font-family: ui-monospace, monospace; background: #1a0000; color: #ff6b6b; }
|
|
168
|
+
h2 { margin: 0 0 16px; font-size: 14px; color: #ff4444; }
|
|
169
|
+
pre { white-space: pre-wrap; word-break: break-word; font-size: 13px; line-height: 1.5; }
|
|
170
|
+
.file { color: #888; font-size: 12px; margin-bottom: 8px; }
|
|
171
|
+
</style>
|
|
172
|
+
</head>
|
|
173
|
+
<body>
|
|
174
|
+
<h2>TSX Build Error</h2>
|
|
175
|
+
<div class="file">${path.basename(filePath)}</div>
|
|
176
|
+
<pre>${escaped}</pre>
|
|
177
|
+
</body>
|
|
178
|
+
</html>`;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Compile a TSX file into a self-contained HTML document.
|
|
182
|
+
*/
|
|
183
|
+
export async function compileTsx(filePath) {
|
|
184
|
+
const tsconfigPath = findTsconfig(path.dirname(filePath));
|
|
185
|
+
try {
|
|
186
|
+
const result = await esbuild.build(buildOptions(filePath, tsconfigPath));
|
|
187
|
+
const js = result.outputFiles?.[0]?.text ?? '';
|
|
188
|
+
return wrapInHtml(js);
|
|
189
|
+
}
|
|
190
|
+
catch (err) {
|
|
191
|
+
return wrapError(filePath, err);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Compile with mtime-based caching. Re-transpiles only when the file changes.
|
|
196
|
+
*/
|
|
197
|
+
export async function compileTsxCached(filePath) {
|
|
198
|
+
const stat = await fsAsync.stat(filePath);
|
|
199
|
+
const cached = cache.get(filePath);
|
|
200
|
+
if (cached && cached.mtimeMs === stat.mtimeMs) {
|
|
201
|
+
return cached.html;
|
|
202
|
+
}
|
|
203
|
+
const html = await compileTsx(filePath);
|
|
204
|
+
cache.set(filePath, { mtimeMs: stat.mtimeMs, html });
|
|
205
|
+
return html;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Synchronous variant for the build command (uses esbuild.buildSync).
|
|
209
|
+
*/
|
|
210
|
+
export function compileTsxSync(filePath) {
|
|
211
|
+
const tsconfigPath = findTsconfig(path.dirname(filePath));
|
|
212
|
+
try {
|
|
213
|
+
const result = esbuild.buildSync(buildOptions(filePath, tsconfigPath));
|
|
214
|
+
const js = result.outputFiles?.[0]?.text ?? '';
|
|
215
|
+
return wrapInHtml(js);
|
|
216
|
+
}
|
|
217
|
+
catch (err) {
|
|
218
|
+
return wrapError(filePath, err);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=tsx-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsx-compiler.js","sourceRoot":"","sources":["../src/tsx-compiler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@portel/photon",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.21.0",
|
|
4
4
|
"description": "You focus on the business logic. We'll enable the rest. Build MCP servers and CLI tools in a single TypeScript file.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
],
|
|
15
15
|
"scripts": {
|
|
16
16
|
"prepare": "git config core.hooksPath .githooks || true",
|
|
17
|
-
"build": "eslint src/ --quiet && tsc && cp -r src/photons dist/ && chmod +x dist/cli.js &&
|
|
17
|
+
"build": "eslint src/ --quiet && tsc && cp -r src/photons dist/ && chmod +x dist/cli.js && node scripts/build-beam.mjs",
|
|
18
18
|
"dev": "tsc --watch",
|
|
19
19
|
"lint": "eslint src/",
|
|
20
20
|
"lint:fix": "eslint src/ --fix",
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
23
23
|
"format:check": "prettier --check \"src/**/*.ts\"",
|
|
24
24
|
"typecheck": "tsc --noEmit",
|
|
25
|
-
"build:beam": "
|
|
26
|
-
"watch:beam": "
|
|
27
|
-
"dev:beam": "npm run build && npm run build:beam && (trap 'kill 0' EXIT; tsc --watch --preserveWatchOutput &
|
|
25
|
+
"build:beam": "node scripts/build-beam.mjs",
|
|
26
|
+
"watch:beam": "node scripts/build-beam.mjs --watch",
|
|
27
|
+
"dev:beam": "npm run build && npm run build:beam && (trap 'kill 0' EXIT; tsc --watch --preserveWatchOutput & node scripts/build-beam.mjs --watch & sleep 1 && tsx watch src/cli.ts beam)",
|
|
28
28
|
"prepublishOnly": "node -e \"const p=require('./package.json'); if(JSON.stringify(p.dependencies).includes('file:')) { console.error('ERROR: file: dependency found.'); process.exit(1); }\" && node -e \"const fs=require('fs'),path=require('path'); const p=require('./package.json'); for(const d of Object.keys(p.dependencies||{})){const t=path.join('node_modules',d); if(fs.lstatSync(t).isSymbolicLink()){console.error('ERROR: '+d+' is npm-linked. Run: npm unlink '+d+' && npm install '+d); process.exit(1);}}\" && npm run build && npm run build:beam",
|
|
29
29
|
"test": "bash scripts/run-tests.sh",
|
|
30
30
|
"test:chain": "npm run test:all",
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"@modelcontextprotocol/ext-apps": "^1.0.1",
|
|
113
113
|
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
114
114
|
"@portel/cli": "^1.1.0",
|
|
115
|
-
"@portel/photon-core": "^2.
|
|
115
|
+
"@portel/photon-core": "^2.19.1",
|
|
116
116
|
"boxen": "^8.0.1",
|
|
117
117
|
"chalk": "^5.4.1",
|
|
118
118
|
"chart.js": "^4.5.1",
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"cli-highlight": "^2.1.11",
|
|
121
121
|
"cli-table3": "^0.6.5",
|
|
122
122
|
"commander": "^12.1.0",
|
|
123
|
-
"esbuild": "^0.
|
|
123
|
+
"esbuild": "^0.28.0",
|
|
124
124
|
"fast-json-patch": "^3.1.1",
|
|
125
125
|
"ora": "^9.3.0",
|
|
126
126
|
"qrcode": "^1.5.4"
|