node-karin 1.8.0 → 1.8.3
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/CHANGELOG.md +843 -819
- package/README.md +32 -0
- package/default/config/adapter.json +27 -27
- package/default/config/config.json +44 -44
- package/default/config/groups.json +66 -66
- package/default/config/pm2.json +15 -15
- package/default/config/privates.json +25 -25
- package/default/config/redis.json +5 -5
- package/default/config/render.json +18 -18
- package/dist/cli/index.cjs +1 -1
- package/dist/cli/index.mjs +6609 -24
- package/dist/global.d.d.ts +48 -48
- package/dist/index.mjs +34 -12
- package/dist/web/assets/css/index-BrG42AwU.css.br +0 -0
- package/dist/web/assets/js/components-CxadY39V.js.br +0 -0
- package/dist/web/assets/js/entry-CHFt_H9g.js.br +0 -0
- package/dist/web/assets/js/hooks-DCwZcclx.js.br +0 -0
- package/dist/web/assets/js/page-404.tsx-DuSCXxgV.js +1 -0
- package/dist/web/assets/js/page-dashboard-DeOjlIBI.js.br +0 -0
- package/dist/web/assets/js/page-loading.tsx-DGpPkY1i.js.br +0 -0
- package/dist/web/assets/js/page-login.tsx-Uw_-NauC.js.br +0 -0
- package/dist/web/assets/js/{utils-Cj3xTboC.js → utils-qrmq67Xg.js} +1 -1
- package/dist/web/assets/js/vendor-heroui-CWZ6Mu45.js.br +0 -0
- package/dist/web/assets/js/vendor-others-BM6DakDu.js.br +0 -0
- package/dist/web/assets/js/vendor-react-BFjuLQyM.js.br +0 -0
- package/dist/web/assets/js/vendor-visual-CzYP84zg.js.br +0 -0
- package/dist/web/grid.svg +5 -5
- package/dist/web/icon.css +24 -24
- package/dist/web/index.html +32 -32
- package/dist/web/sha256.min.js.br +0 -0
- package/package.json +192 -192
- package/dist/web/assets/css/index-DxLRZkvi.css.br +0 -0
- package/dist/web/assets/js/components-Bp80gYJA.js.br +0 -0
- package/dist/web/assets/js/entry-DhKjPdoJ.js.br +0 -0
- package/dist/web/assets/js/hooks-CSKAeqvP.js.br +0 -0
- package/dist/web/assets/js/page-404.tsx-Dr2zAhTf.js +0 -1
- package/dist/web/assets/js/page-dashboard-B6B4ob8B.js.br +0 -0
- package/dist/web/assets/js/page-loading.tsx-g_ta_NRr.js.br +0 -0
- package/dist/web/assets/js/page-login.tsx-Cm98Ubip.js.br +0 -0
- package/dist/web/assets/js/vendor-heroui-CMeNhCFh.js.br +0 -0
- package/dist/web/assets/js/vendor-others-Bv0hrdEA.js.br +0 -0
- package/dist/web/assets/js/vendor-react-ChUmQ3I2.js.br +0 -0
- package/dist/web/assets/js/vendor-visual-CdiJEXnN.js.br +0 -0
package/dist/global.d.d.ts
CHANGED
|
@@ -17,52 +17,52 @@ declare const createDebug: (prefix: string) => {
|
|
|
17
17
|
enable: (bool: boolean) => void;
|
|
18
18
|
} & ((...args: any[]) => void);
|
|
19
19
|
|
|
20
|
-
/* eslint-disable no-var */
|
|
21
|
-
declare global {
|
|
22
|
-
var logger: Logger
|
|
23
|
-
var debug: ReturnType<typeof createDebug>
|
|
24
|
-
type EventEmitter = events.EventEmitter
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
declare global {
|
|
28
|
-
namespace NodeJS {
|
|
29
|
-
interface ProcessEnv {
|
|
30
|
-
/** 是否启用HTTP */
|
|
31
|
-
HTTP_ENABLE: string
|
|
32
|
-
/** HTTP监听端口 */
|
|
33
|
-
HTTP_PORT: string
|
|
34
|
-
/** HTTP监听地址 */
|
|
35
|
-
HTTP_HOST: string
|
|
36
|
-
/** HTTP鉴权秘钥 仅用于karin自身Api */
|
|
37
|
-
HTTP_AUTH_KEY: string
|
|
38
|
-
/** ws_server鉴权秘钥 */
|
|
39
|
-
WS_SERVER_AUTH_KEY: string
|
|
40
|
-
/** 是否启用Redis 关闭后将使用内部虚拟Redis */
|
|
41
|
-
REDIS_ENABLE: string
|
|
42
|
-
/** 重启是否调用pm2 如果不调用则会直接关机 此配置适合有进程守护的程序 */
|
|
43
|
-
PM2_RESTART: string
|
|
44
|
-
/** 日志等级 */
|
|
45
|
-
LOG_LEVEL: string
|
|
46
|
-
/** 日志保留天数 */
|
|
47
|
-
LOG_DAYS_TO_KEEP: string
|
|
48
|
-
/** 日志文件最大大小 如果此项大于0则启用日志分割 */
|
|
49
|
-
LOG_MAX_LOG_SIZE: string
|
|
50
|
-
/** logger.fnc颜色 */
|
|
51
|
-
LOG_FNC_COLOR: string
|
|
52
|
-
/** 运行器 "node" | "pm2" | "tsx" */
|
|
53
|
-
RUNTIME: 'node' | 'pm2' | 'tsx'
|
|
54
|
-
/** ffmpeg路径 */
|
|
55
|
-
FFMPEG_PATH: string
|
|
56
|
-
/** ffprobe路径 */
|
|
57
|
-
FFPROBE_PATH: string
|
|
58
|
-
/** ffplay路径 */
|
|
59
|
-
FFPLAY_PATH: string
|
|
60
|
-
/** node-karin版本 */
|
|
61
|
-
KARIN_VERSION: string
|
|
62
|
-
/** tsx监察者模式 */
|
|
63
|
-
TSX_WATCH: string
|
|
64
|
-
/** 日志实时Api最多支持同时连接数 */
|
|
65
|
-
LOG_MAX_CONNECTIONS: string
|
|
66
|
-
}
|
|
67
|
-
}
|
|
20
|
+
/* eslint-disable no-var */
|
|
21
|
+
declare global {
|
|
22
|
+
var logger: Logger
|
|
23
|
+
var debug: ReturnType<typeof createDebug>
|
|
24
|
+
type EventEmitter = events.EventEmitter
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
declare global {
|
|
28
|
+
namespace NodeJS {
|
|
29
|
+
interface ProcessEnv {
|
|
30
|
+
/** 是否启用HTTP */
|
|
31
|
+
HTTP_ENABLE: string
|
|
32
|
+
/** HTTP监听端口 */
|
|
33
|
+
HTTP_PORT: string
|
|
34
|
+
/** HTTP监听地址 */
|
|
35
|
+
HTTP_HOST: string
|
|
36
|
+
/** HTTP鉴权秘钥 仅用于karin自身Api */
|
|
37
|
+
HTTP_AUTH_KEY: string
|
|
38
|
+
/** ws_server鉴权秘钥 */
|
|
39
|
+
WS_SERVER_AUTH_KEY: string
|
|
40
|
+
/** 是否启用Redis 关闭后将使用内部虚拟Redis */
|
|
41
|
+
REDIS_ENABLE: string
|
|
42
|
+
/** 重启是否调用pm2 如果不调用则会直接关机 此配置适合有进程守护的程序 */
|
|
43
|
+
PM2_RESTART: string
|
|
44
|
+
/** 日志等级 */
|
|
45
|
+
LOG_LEVEL: string
|
|
46
|
+
/** 日志保留天数 */
|
|
47
|
+
LOG_DAYS_TO_KEEP: string
|
|
48
|
+
/** 日志文件最大大小 如果此项大于0则启用日志分割 */
|
|
49
|
+
LOG_MAX_LOG_SIZE: string
|
|
50
|
+
/** logger.fnc颜色 */
|
|
51
|
+
LOG_FNC_COLOR: string
|
|
52
|
+
/** 运行器 "node" | "pm2" | "tsx" */
|
|
53
|
+
RUNTIME: 'node' | 'pm2' | 'tsx'
|
|
54
|
+
/** ffmpeg路径 */
|
|
55
|
+
FFMPEG_PATH: string
|
|
56
|
+
/** ffprobe路径 */
|
|
57
|
+
FFPROBE_PATH: string
|
|
58
|
+
/** ffplay路径 */
|
|
59
|
+
FFPLAY_PATH: string
|
|
60
|
+
/** node-karin版本 */
|
|
61
|
+
KARIN_VERSION: string
|
|
62
|
+
/** tsx监察者模式 */
|
|
63
|
+
TSX_WATCH: string
|
|
64
|
+
/** 日志实时Api最多支持同时连接数 */
|
|
65
|
+
LOG_MAX_CONNECTIONS: string
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
68
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -27954,7 +27954,7 @@ var init_tool = __esm({
|
|
|
27954
27954
|
}
|
|
27955
27955
|
return true;
|
|
27956
27956
|
};
|
|
27957
|
-
spawnProcess = (command2, args, options = {}, emitLog) => {
|
|
27957
|
+
spawnProcess = (command2, args, options = {}, emitLog, pnpm) => {
|
|
27958
27958
|
return new Promise((resolve) => {
|
|
27959
27959
|
const proc = spawn(command2, args, {
|
|
27960
27960
|
shell: true,
|
|
@@ -27965,12 +27965,17 @@ var init_tool = __esm({
|
|
|
27965
27965
|
}
|
|
27966
27966
|
});
|
|
27967
27967
|
proc.stdout.on("data", (data) => {
|
|
27968
|
-
|
|
27969
|
-
|
|
27968
|
+
const message2 = data.toString();
|
|
27969
|
+
logger.debug(message2);
|
|
27970
|
+
emitLog(message2);
|
|
27970
27971
|
});
|
|
27971
27972
|
proc.stderr.on("data", (data) => {
|
|
27972
|
-
|
|
27973
|
-
|
|
27973
|
+
const message2 = data.toString();
|
|
27974
|
+
if (message2.includes("ERR_PNPM_PUBLIC_HOIST_PATTERN_DIFF")) {
|
|
27975
|
+
pnpm && pnpm();
|
|
27976
|
+
}
|
|
27977
|
+
logger.debug(message2);
|
|
27978
|
+
emitLog(message2);
|
|
27974
27979
|
});
|
|
27975
27980
|
proc.on("close", (code) => {
|
|
27976
27981
|
proc.kill();
|
|
@@ -28206,12 +28211,18 @@ var init_installMarket = __esm({
|
|
|
28206
28211
|
async (_2, emitLog) => {
|
|
28207
28212
|
const args = ["add", data.target, "--save"];
|
|
28208
28213
|
if (isWorkspace()) args.push("-w");
|
|
28209
|
-
|
|
28210
|
-
|
|
28211
|
-
|
|
28212
|
-
|
|
28213
|
-
|
|
28214
|
-
|
|
28214
|
+
let IS_ERR_PNPM_PUBLIC_HOIST_PATTERN_DIFF = false;
|
|
28215
|
+
await spawnProcess("pnpm", args, {}, emitLog, () => {
|
|
28216
|
+
IS_ERR_PNPM_PUBLIC_HOIST_PATTERN_DIFF = true;
|
|
28217
|
+
});
|
|
28218
|
+
if (IS_ERR_PNPM_PUBLIC_HOIST_PATTERN_DIFF) {
|
|
28219
|
+
emitLog("\u68C0\u6D4B\u5230 ERR_PNPM_PUBLIC_HOIST_PATTERN_DIFF \u9519\u8BEF\uFF0C\u5C1D\u8BD5\u4FEE\u590D...");
|
|
28220
|
+
emitLog("\u6267\u884C pnpm install -f \u5F3A\u5236\u91CD\u5EFA\u6A21\u5757\u76EE\u5F55");
|
|
28221
|
+
await spawnProcess("pnpm", ["install", "-f"], {}, emitLog);
|
|
28222
|
+
emitLog("\u6A21\u5757\u76EE\u5F55\u91CD\u5EFA\u5B8C\u6210\uFF0C\u91CD\u65B0\u5C1D\u8BD5\u5B89\u88C5\u63D2\u4EF6");
|
|
28223
|
+
await spawnProcess("pnpm", args, {}, emitLog);
|
|
28224
|
+
emitLog("\u5B89\u88C5\u5B8C\u6210\uFF0C\u5C1D\u8BD5\u52A0\u8F7D\u63D2\u4EF6");
|
|
28225
|
+
}
|
|
28215
28226
|
await pkgHotReload("npm", data.target);
|
|
28216
28227
|
return true;
|
|
28217
28228
|
}
|
|
@@ -28382,7 +28393,18 @@ var init_installCustom = __esm({
|
|
|
28382
28393
|
const args = ["add", pkg2, "--save"];
|
|
28383
28394
|
if (isWorkspace()) args.push("-w");
|
|
28384
28395
|
if (data.registry) args.push(`--registry=${data.registry}`);
|
|
28385
|
-
|
|
28396
|
+
let IS_ERR_PNPM_PUBLIC_HOIST_PATTERN_DIFF = false;
|
|
28397
|
+
await spawnProcess("pnpm", args, {}, emitLog, () => {
|
|
28398
|
+
IS_ERR_PNPM_PUBLIC_HOIST_PATTERN_DIFF = true;
|
|
28399
|
+
});
|
|
28400
|
+
if (IS_ERR_PNPM_PUBLIC_HOIST_PATTERN_DIFF) {
|
|
28401
|
+
emitLog("\u68C0\u6D4B\u5230 ERR_PNPM_PUBLIC_HOIST_PATTERN_DIFF \u9519\u8BEF\uFF0C\u5C1D\u8BD5\u4FEE\u590D...");
|
|
28402
|
+
emitLog("\u6267\u884C pnpm install -f \u5F3A\u5236\u91CD\u5EFA\u6A21\u5757\u76EE\u5F55");
|
|
28403
|
+
await spawnProcess("pnpm", ["install", "-f"], {}, emitLog);
|
|
28404
|
+
emitLog("\u6A21\u5757\u76EE\u5F55\u91CD\u5EFA\u5B8C\u6210\uFF0C\u91CD\u65B0\u5C1D\u8BD5\u5B89\u88C5\u63D2\u4EF6");
|
|
28405
|
+
await spawnProcess("pnpm", args, {}, emitLog);
|
|
28406
|
+
emitLog("\u5B89\u88C5\u5B8C\u6210\uFF0C\u5C1D\u8BD5\u52A0\u8F7D\u63D2\u4EF6");
|
|
28407
|
+
}
|
|
28386
28408
|
await pkgHotReload("npm", data.target);
|
|
28387
28409
|
return true;
|
|
28388
28410
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as t}from"./vendor-react-BFjuLQyM.js";import{P as r}from"./components-CxadY39V.js";import"./vendor-others-BM6DakDu.js";import"./vendor-editor-B8hjWfkw.js";import"./vendor-ui-utils-5rYIvRjL.js";import"./vendor-heroui-CWZ6Mu45.js";import"./page-dashboard-DeOjlIBI.js";import"./hooks-DCwZcclx.js";import"./utils-qrmq67Xg.js";import"./vendor-visual-CzYP84zg.js";const x=()=>t.jsx("div",{className:"min-h-screen flex items-center justify-center",children:t.jsx(r,{})});export{x as default};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{V as p}from"./vendor-react-
|
|
1
|
+
import{V as p}from"./vendor-react-BFjuLQyM.js";import{a5 as g}from"./components-CxadY39V.js";const k=async(t,n,e,r)=>{const{setIsLogModalOpen:i,setTaskId:c,setTaskLogs:o,setTaskName:f}=n;f("更新插件");const a=["开始创建更新任务...",`options: ${JSON.stringify(t)}`];o(a);try{const s=await g(t);if(s.success&&s.taskId)c(s.taskId),o([...a,`
|
|
2
2
|
任务创建成功!`,`任务ID: ${s.taskId}`,"正在连接任务执行日志..."]),i(!0),typeof e=="function"&&e(),typeof r=="function"&&r();else throw new Error(s.message||"未知错误")}catch(s){console.error("更新失败:",s),p.error(`更新失败: ${s.message}`)}};export{k as c};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/web/grid.svg
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse">
|
|
3
|
-
<path d="M 10 0 L 0 0 0 10" fill="none" stroke="currentColor" stroke-width="0.5"/>
|
|
4
|
-
</pattern>
|
|
5
|
-
<rect width="100" height="100" fill="url(#grid)"/>
|
|
1
|
+
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse">
|
|
3
|
+
<path d="M 10 0 L 0 0 0 10" fill="none" stroke="currentColor" stroke-width="0.5"/>
|
|
4
|
+
</pattern>
|
|
5
|
+
<rect width="100" height="100" fill="url(#grid)"/>
|
|
6
6
|
</svg>
|
package/dist/web/icon.css
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
/* https://fonts.googleapis.com/icon?family=Material+Icons */
|
|
2
|
-
|
|
3
|
-
/* fallback */
|
|
4
|
-
@font-face {
|
|
5
|
-
font-family: 'Material Icons';
|
|
6
|
-
font-style: normal;
|
|
7
|
-
font-weight: 400;
|
|
8
|
-
src: url(./flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2');
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.material-icons {
|
|
12
|
-
font-family: 'Material Icons';
|
|
13
|
-
font-weight: normal;
|
|
14
|
-
font-style: normal;
|
|
15
|
-
font-size: 24px;
|
|
16
|
-
line-height: 1;
|
|
17
|
-
letter-spacing: normal;
|
|
18
|
-
text-transform: none;
|
|
19
|
-
display: inline-block;
|
|
20
|
-
white-space: nowrap;
|
|
21
|
-
word-wrap: normal;
|
|
22
|
-
direction: ltr;
|
|
23
|
-
-webkit-font-feature-settings: 'liga';
|
|
24
|
-
-webkit-font-smoothing: antialiased;
|
|
1
|
+
/* https://fonts.googleapis.com/icon?family=Material+Icons */
|
|
2
|
+
|
|
3
|
+
/* fallback */
|
|
4
|
+
@font-face {
|
|
5
|
+
font-family: 'Material Icons';
|
|
6
|
+
font-style: normal;
|
|
7
|
+
font-weight: 400;
|
|
8
|
+
src: url(./flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2');
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.material-icons {
|
|
12
|
+
font-family: 'Material Icons';
|
|
13
|
+
font-weight: normal;
|
|
14
|
+
font-style: normal;
|
|
15
|
+
font-size: 24px;
|
|
16
|
+
line-height: 1;
|
|
17
|
+
letter-spacing: normal;
|
|
18
|
+
text-transform: none;
|
|
19
|
+
display: inline-block;
|
|
20
|
+
white-space: nowrap;
|
|
21
|
+
word-wrap: normal;
|
|
22
|
+
direction: ltr;
|
|
23
|
+
-webkit-font-feature-settings: 'liga';
|
|
24
|
+
-webkit-font-smoothing: antialiased;
|
|
25
25
|
}
|
package/dist/web/index.html
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="UTF-8" />
|
|
6
|
-
<link rel="icon" type="image/svg+xml" href="/web/karin.png" />
|
|
7
|
-
<link rel="stylesheet" href="/web/icon.css">
|
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>KarinJS WebUI</title>
|
|
10
|
-
<meta key="title" content="Vite + NextUI" property="og:title" />
|
|
11
|
-
<meta content="Make beautiful websites regardless of your design experience." property="og:description" />
|
|
12
|
-
<meta content="Make beautiful websites regardless of your design experience." name="description" />
|
|
13
|
-
<meta key="viewport"
|
|
14
|
-
content="viewport-fit=cover, width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
|
|
15
|
-
name="viewport" />
|
|
16
|
-
<link href="/web/assets/ico/favicon-BoqZd694.ico" rel="icon" />
|
|
17
|
-
<script type="module" crossorigin src="/web/assets/js/entry-
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<link rel="icon" type="image/svg+xml" href="/web/karin.png" />
|
|
7
|
+
<link rel="stylesheet" href="/web/icon.css">
|
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
+
<title>KarinJS WebUI</title>
|
|
10
|
+
<meta key="title" content="Vite + NextUI" property="og:title" />
|
|
11
|
+
<meta content="Make beautiful websites regardless of your design experience." property="og:description" />
|
|
12
|
+
<meta content="Make beautiful websites regardless of your design experience." name="description" />
|
|
13
|
+
<meta key="viewport"
|
|
14
|
+
content="viewport-fit=cover, width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
|
|
15
|
+
name="viewport" />
|
|
16
|
+
<link href="/web/assets/ico/favicon-BoqZd694.ico" rel="icon" />
|
|
17
|
+
<script type="module" crossorigin src="/web/assets/js/entry-CHFt_H9g.js"></script>
|
|
18
18
|
<link rel="modulepreload" crossorigin href="/web/assets/js/vendor-editor-B8hjWfkw.js">
|
|
19
|
-
<link rel="modulepreload" crossorigin href="/web/assets/js/vendor-others-
|
|
19
|
+
<link rel="modulepreload" crossorigin href="/web/assets/js/vendor-others-BM6DakDu.js">
|
|
20
20
|
<link rel="modulepreload" crossorigin href="/web/assets/js/vendor-ui-utils-5rYIvRjL.js">
|
|
21
|
-
<link rel="modulepreload" crossorigin href="/web/assets/js/vendor-react-
|
|
22
|
-
<link rel="modulepreload" crossorigin href="/web/assets/js/vendor-heroui-
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/web/assets/js/hooks-
|
|
24
|
-
<link rel="modulepreload" crossorigin href="/web/assets/js/vendor-visual-
|
|
25
|
-
<link rel="modulepreload" crossorigin href="/web/assets/js/components-
|
|
26
|
-
<link rel="modulepreload" crossorigin href="/web/assets/js/utils-
|
|
27
|
-
<link rel="modulepreload" crossorigin href="/web/assets/js/page-dashboard-
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/web/assets/js/vendor-react-BFjuLQyM.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/web/assets/js/vendor-heroui-CWZ6Mu45.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/web/assets/js/hooks-DCwZcclx.js">
|
|
24
|
+
<link rel="modulepreload" crossorigin href="/web/assets/js/vendor-visual-CzYP84zg.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/web/assets/js/components-CxadY39V.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/web/assets/js/utils-qrmq67Xg.js">
|
|
27
|
+
<link rel="modulepreload" crossorigin href="/web/assets/js/page-dashboard-DeOjlIBI.js">
|
|
28
28
|
<link rel="stylesheet" crossorigin href="/web/assets/css/vendor-editor-CFbL2ovg.css">
|
|
29
29
|
<link rel="stylesheet" crossorigin href="/web/assets/css/vendor-others-ZgkIHsf0.css">
|
|
30
30
|
<link rel="stylesheet" crossorigin href="/web/assets/css/components-ep7vm38G.css">
|
|
31
|
-
<link rel="stylesheet" crossorigin href="/web/assets/css/index-
|
|
32
|
-
</head>
|
|
33
|
-
|
|
34
|
-
<body>
|
|
35
|
-
<div id="root"></div>
|
|
36
|
-
</body>
|
|
37
|
-
|
|
31
|
+
<link rel="stylesheet" crossorigin href="/web/assets/css/index-BrG42AwU.css">
|
|
32
|
+
</head>
|
|
33
|
+
|
|
34
|
+
<body>
|
|
35
|
+
<div id="root"></div>
|
|
36
|
+
</body>
|
|
37
|
+
|
|
38
38
|
</html>
|
|
Binary file
|