@camera.ui/server 0.0.94 → 0.0.96
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/interface/assets/{404-BvpgHGlA.js → 404-Clo6qjGo.js} +1 -1
- package/dist/interface/assets/{About-BCNMNyg8.js → About-Bfjj72u5.js} +1 -1
- package/dist/interface/assets/{Adminpanel-B0OTwlea.js → Adminpanel-B_SQSHyD.js} +1 -1
- package/dist/interface/assets/{Automation-BTp9IgO9.js → Automation-CQm0ZHfh.js} +2 -2
- package/dist/interface/assets/{Automations-DYnpW6sZ.js → Automations-Dbs6NMx-.js} +1 -1
- package/dist/interface/assets/{Camera-BaYP1YDU.js → Camera-CTIUE1PX.js} +2 -2
- package/dist/interface/assets/{CameraConsole-BdmOe5_y.js → CameraConsole-BQVlxqb1.js} +1 -1
- package/dist/interface/assets/{Cameras-BX1vYQf1.js → Cameras-CyZMjvQu.js} +1 -1
- package/dist/interface/assets/{Camview-WKrFnWE_.js → Camview-BnpJaGfI.js} +1 -1
- package/dist/interface/assets/{Config-MiH-DMPP.js → Config-Dc7jeUIy.js} +1 -1
- package/dist/interface/assets/{ConfigActionCameraControl-DY9lfyb-.js → ConfigActionCameraControl-aMa-699v.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-BzoTjUZt.js → ConfigActionNotification-D_4Y919Q.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-DdXWHgcG.js → ConfigActionPlugin-DMAUig6Q.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-D8_z1S-I.js → ConfigActionSensor-DuHOX22J.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-BImtQaNm.js → ConfigActionSnapshot-Dtde_3hQ.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-BiZJOBjM.js → ConfigConditionSensorState-CyPhwS7K.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerDetection-Cd7sZk8S.js → ConfigTriggerDetection-C7RtR75f.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerGeofence-qhLKaH1I.js → ConfigTriggerGeofence-CDU2jx7z.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-fn74bD5T.js → ConfigTriggerSensor-t0MTHl1T.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-C6tHuU5p.js → ConfigTriggerSystem-DXCusYWo.js} +1 -1
- package/dist/interface/assets/{Console-CouprsTc.js → Console-D32_FF2q.js} +1 -1
- package/dist/interface/assets/{CuiAvatar-4mQ1VfCP.js → CuiAvatar-DQfgB_0j.js} +1 -1
- package/dist/interface/assets/{CuiBottomSheet-k8Zb5XD1.js → CuiBottomSheet-Cgbt7aQP.js} +1 -1
- package/dist/interface/assets/CuiBottomSheet-HO59nDTz.js +1 -0
- package/dist/interface/assets/{CuiCameraCard-CGhZ-FYr.js → CuiCameraCard-BJpi9GYb.js} +1 -1
- package/dist/interface/assets/{CuiCameraPipCard-BzzOZlKR.js → CuiCameraPipCard-CLa09t5W.js} +1 -1
- package/dist/interface/assets/{CuiCameraRecordings-vljiYHz7.js → CuiCameraRecordings-DbPr4N27.js} +1 -1
- package/dist/interface/assets/{CuiCameraShares-kPpvCTUH.js → CuiCameraShares-BCTN3Ie-.js} +1 -1
- package/dist/interface/assets/{CuiCameraSnapshot-BWDbpVN7.js → CuiCameraSnapshot-fX1tTzWs.js} +1 -1
- package/dist/interface/assets/{CuiCameraTable-C8X20w8S.js → CuiCameraTable-DMKLoisE.js} +1 -1
- package/dist/interface/assets/{CuiImage-CJBGhAfQ.js → CuiImage-Ab94PYIg.js} +1 -1
- package/dist/interface/assets/{CuiMenu-DhzA8fK1.js → CuiMenu-CX2XxBmg.js} +1 -1
- package/dist/interface/assets/{CuiPluginCard-cbmwOjLF.js → CuiPluginCard-DQXny68Q.js} +2 -2
- package/dist/interface/assets/{CuiPluginOAuthButton-Dn87Ix6E.js → CuiPluginOAuthButton-BvRVOPAt.js} +2 -2
- package/dist/interface/assets/{CuiQRCode-CMROqC15.js → CuiQRCode-DOVuTNfQ.js} +1 -1
- package/dist/interface/assets/{CuiRecordingsGrid-BkA9YcHq.js → CuiRecordingsGrid-CS01gjpz.js} +1 -1
- package/dist/interface/assets/{CuiSchema-BeMqdQ_W.js → CuiSchema-L35JTZ5Y.js} +1 -1
- package/dist/interface/assets/{Faces-CNRBtzW7.js → Faces-DLdVxTYg.js} +1 -1
- package/dist/interface/assets/{FirstSteps-CNuVbY5-.js → FirstSteps-c4m_l-s9.js} +1 -1
- package/dist/interface/assets/{Instances-CrUVwyDT.js → Instances-BE8EkRQ4.js} +1 -1
- package/dist/interface/assets/{Menu-DMCqoiJX.js → Menu-BK9rk_sp.js} +1 -1
- package/dist/interface/assets/{OAuthDeviceFlow-DVHqJJ0-.js → OAuthDeviceFlow-DwoyMn6e.js} +1 -1
- package/dist/interface/assets/{Plugin-4QhPU2z5.js → Plugin-B4UvyHA4.js} +1 -1
- package/dist/interface/assets/{PluginConsole-BGcYTBBP.js → PluginConsole-00dw-HUB.js} +1 -1
- package/dist/interface/assets/{PluginSchema-BsQbR0zX.js → PluginSchema-7qwKEn6c.js} +1 -1
- package/dist/interface/assets/{Plugins-B5g1RJAK.js → Plugins-CFXvg0P-.js} +2 -2
- package/dist/interface/assets/{Recordings-KHQAIrEW.js → Recordings-MSRod46b.js} +1 -1
- package/dist/interface/assets/{Settings-DRsnud_Q.js → Settings-CnGCN9cC.js} +1 -1
- package/dist/interface/assets/SettingsAccount-DoFSZhI5.js +1 -0
- package/dist/interface/assets/{SettingsAccount-DySpU4el.js → SettingsAccount-lIy74Kjh.js} +1 -1
- package/dist/interface/assets/SettingsAppearance-DA8ON3Ts.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-CGdPmMkM.js → SettingsAppearance-DLnlx8bM.js} +1 -1
- package/dist/interface/assets/{SettingsBackup-BmGR_7CF.js → SettingsBackup-CpBqig7H.js} +1 -1
- package/dist/interface/assets/{SettingsNotifications-BVKeFwwT.js → SettingsNotifications-di325j-b.js} +1 -1
- package/dist/interface/assets/{SettingsRecordings-Dr9-c7f7.js → SettingsRecordings-DvNlji2N.js} +1 -1
- package/dist/interface/assets/{SettingsRemote-ht_onhMJ.js → SettingsRemote-Kb-ichM0.js} +1 -1
- package/dist/interface/assets/{SettingsSystem-B0UMgWbE.js → SettingsSystem-C0OHXycw.js} +2 -2
- package/dist/interface/assets/{SettingsUsers-Bb1juUy8.js → SettingsUsers-Dx8Fm2QE.js} +1 -1
- package/dist/interface/assets/{Terminal-DvvXgMu-.js → Terminal-BR9InMiL.js} +1 -1
- package/dist/interface/assets/VersionsHandler-J7N_cZBS.js +7 -0
- package/dist/interface/assets/{Workers-D_wZn8hC.js → Workers-BINNsLDU.js} +1 -1
- package/dist/interface/assets/{api-DbOpzNbt.js → api-D23Y8GEd.js} +1 -1
- package/dist/interface/assets/api-DjhIYzsF.js +2 -0
- package/dist/interface/assets/{auth-C14L3iEn.js → auth-CeN6oTgU.js} +1 -1
- package/dist/interface/assets/{automations-BwTCZACp.js → automations-G3fWqK-C.js} +1 -1
- package/dist/interface/assets/{backup-I44o7LfB.js → backup-KFYNv85J.js} +1 -1
- package/dist/interface/assets/{cameras-CJU6PhVu.js → cameras-DeAGPYqb.js} +1 -1
- package/dist/interface/assets/cloudHandoff-Di9OHN7W.js +1 -0
- package/dist/interface/assets/copy-16-filled-DUaht4LK.js +1 -0
- package/dist/interface/assets/{deviceId-3kTQbnbi.js → deviceId-CgRNCVsl.js} +1 -1
- package/dist/interface/assets/{hasPermission-CuUcJNef.js → hasPermission-nr9uI1sh.js} +1 -1
- package/dist/interface/assets/{instances-fJJkMjZZ.js → instances-Cz4DJwNc.js} +1 -1
- package/dist/interface/assets/{locale-JdE3H3At.js → locale-fNpCK2bH.js} +1 -1
- package/dist/interface/assets/{main-smWr0ZCq.js → main-sGc9j7q_.js} +2 -2
- package/dist/interface/assets/{notifications-BHvHIRSM.js → notifications-euShmBTH.js} +1 -1
- package/dist/interface/assets/{plugins-C6jbSDXS.js → plugins-DsiC2cVL.js} +1 -1
- package/dist/interface/assets/{round-restart-alt-CNkzBawa.js → round-restart-alt-AXgxJgvx.js} +1 -1
- package/dist/interface/assets/{router-BZ7fTrv9.js → router-BLvVFGz9.js} +2 -2
- package/dist/interface/assets/{server-BBHyrnAu.js → server-CfW4FWmD.js} +1 -1
- package/dist/interface/assets/{shares-DQJerWK4.js → shares-CifP6qUz.js} +1 -1
- package/dist/interface/assets/{theme-B2nITMtK.js → theme-3K07RHLA.js} +1 -1
- package/dist/interface/assets/{useBiometricCredentials-wKhzGV-q.js → useBiometricCredentials-DS-lOPkp.js} +1 -1
- package/dist/interface/assets/{useCameraOptions-CtBJS7bp.js → useCameraOptions-CO9VqYVT.js} +1 -1
- package/dist/interface/assets/{useCuiDialog-Bp7p3zLy.js → useCuiDialog-BlhSS0jk.js} +1 -1
- package/dist/interface/assets/{useFileDownload-CBx3wVDu.js → useFileDownload-DEM9UhjP.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-BTa94fXn.js → useLogsSocket-CNAQ1g8I.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-Dj6ybIhF.js → useStreamStatus-Bn6gxutk.js} +1 -1
- package/dist/interface/assets/{view-grid-CstDugYR.js → view-grid-Cg2Wk0qw.js} +1 -1
- package/dist/interface/index.html +26 -26
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +10 -6
- package/dist/server/src/api/controllers/plugins.controller.d.ts +0 -1
- package/dist/server/src/api/controllers/plugins.controller.js +22 -108
- package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
- package/dist/server/src/api/controllers/server.controller.js +2 -13
- package/dist/server/src/api/controllers/server.controller.js.map +1 -1
- package/dist/server/src/api/services/backup.service.js.map +1 -1
- package/dist/server/src/api/services/instances.service.js.map +1 -1
- package/dist/server/src/api/services/plugins.service.d.ts +0 -2
- package/dist/server/src/api/services/plugins.service.js +10 -111
- package/dist/server/src/api/services/plugins.service.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/server.d.ts +0 -2
- package/dist/server/src/api/websocket/nsp/server.js +17 -90
- package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
- package/dist/server/src/camera/streaming/rtp-session.js +1 -0
- package/dist/server/src/camera/streaming/rtp-session.js.map +1 -1
- package/dist/server/src/utils/npm/auth.d.ts +2 -0
- package/dist/server/src/utils/npm/auth.js +54 -0
- package/dist/server/src/utils/npm/auth.js.map +1 -0
- package/dist/server/src/utils/npm/index.d.ts +44 -0
- package/dist/server/src/utils/npm/index.js +115 -0
- package/dist/server/src/utils/npm/index.js.map +1 -0
- package/package.json +10 -6
- package/dist/interface/assets/CuiBottomSheet-FXwjLm5t.js +0 -1
- package/dist/interface/assets/SettingsAccount-Cny3sanY.js +0 -1
- package/dist/interface/assets/SettingsAppearance-DvKlfkfH.js +0 -1
- package/dist/interface/assets/VersionsHandler-BkjcICiT.js +0 -7
- package/dist/interface/assets/api-Tan5u5QZ.js +0 -2
- package/dist/interface/assets/cloudHandoff-AW0MqbxU.js +0 -1
- package/dist/interface/assets/copy-16-filled-CG924HKI.js +0 -1
- /package/dist/interface/assets/{logo-512-DLKVOU2S.png → error-256-DLKVOU2S.png} +0 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { getNpmPath } from '@camera.ui/common/node';
|
|
2
|
+
import { TTLCache } from '@isaacs/ttlcache';
|
|
3
|
+
import { spawn } from 'node:child_process';
|
|
4
|
+
import { basename, dirname } from 'node:path';
|
|
5
|
+
import { platform } from 'node:os';
|
|
6
|
+
import npmFetch from 'npm-registry-fetch';
|
|
7
|
+
import pacote from 'pacote';
|
|
8
|
+
import { gt, parse } from 'semver';
|
|
9
|
+
import { resolveNpmOptions } from './auth.js';
|
|
10
|
+
const DEP_INSTALL_TIMEOUT_MS = 5 * 60 * 1000;
|
|
11
|
+
const PACKUMENT_TTL_MS = 60 * 1000;
|
|
12
|
+
const packumentCache = new TTLCache({ ttl: PACKUMENT_TTL_MS, max: 200 });
|
|
13
|
+
function npmOptions(extra) {
|
|
14
|
+
return { ...resolveNpmOptions(), ...extra };
|
|
15
|
+
}
|
|
16
|
+
export async function getPackument(name, options) {
|
|
17
|
+
const full = options?.full ?? false;
|
|
18
|
+
const key = `${full ? 'full' : 'abbr'}:${name}`;
|
|
19
|
+
if (!options?.refresh) {
|
|
20
|
+
const cached = packumentCache.get(key);
|
|
21
|
+
if (cached) {
|
|
22
|
+
return cached;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const packument = full
|
|
26
|
+
? await pacote.packument(name, { ...npmOptions(), fullMetadata: true })
|
|
27
|
+
: await pacote.packument(name, npmOptions());
|
|
28
|
+
packumentCache.set(key, packument);
|
|
29
|
+
return packument;
|
|
30
|
+
}
|
|
31
|
+
export function invalidatePackage(name) {
|
|
32
|
+
if (!name) {
|
|
33
|
+
packumentCache.clear();
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
packumentCache.delete(`abbr:${name}`);
|
|
37
|
+
packumentCache.delete(`full:${name}`);
|
|
38
|
+
}
|
|
39
|
+
export async function getDistTags(name) {
|
|
40
|
+
const packument = await getPackument(name);
|
|
41
|
+
return packument['dist-tags'] ?? {};
|
|
42
|
+
}
|
|
43
|
+
export async function getManifest(spec) {
|
|
44
|
+
return pacote.manifest(spec, npmOptions());
|
|
45
|
+
}
|
|
46
|
+
export async function getVersionsAndDistTags(name) {
|
|
47
|
+
const packument = await getPackument(name);
|
|
48
|
+
return {
|
|
49
|
+
versions: Object.keys(packument.versions ?? {}).reverse(),
|
|
50
|
+
'dist-tags': packument['dist-tags'] ?? {},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export async function checkForUpdate(name, currentVersion, prereleaseTag = 'beta') {
|
|
54
|
+
const tags = await getDistTags(name);
|
|
55
|
+
const latest = tags.latest;
|
|
56
|
+
const prerelease = tags[prereleaseTag];
|
|
57
|
+
const updateAvailable = latest ? gt(latest, currentVersion) : false;
|
|
58
|
+
let betaUpdateAvailable = false;
|
|
59
|
+
if (!updateAvailable && prerelease) {
|
|
60
|
+
const parsed = parse(currentVersion);
|
|
61
|
+
if (parsed?.prerelease[0] === prereleaseTag && gt(prerelease, currentVersion)) {
|
|
62
|
+
betaUpdateAvailable = true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const latestVersion = betaUpdateAvailable ? prerelease : latest;
|
|
66
|
+
return { updateAvailable, betaUpdateAvailable, latestVersion };
|
|
67
|
+
}
|
|
68
|
+
export async function searchPackages(query, size = 250) {
|
|
69
|
+
const result = (await npmFetch.json(`/-/v1/search?text=${encodeURIComponent(query)}&size=${size}`, npmOptions()));
|
|
70
|
+
return (result.objects ?? []).map((entry) => entry.package);
|
|
71
|
+
}
|
|
72
|
+
export async function extractPackage(spec, dest) {
|
|
73
|
+
await pacote.extract(spec, dest, npmOptions());
|
|
74
|
+
}
|
|
75
|
+
export function installDependencies(packageDir, onOutput) {
|
|
76
|
+
return new Promise((resolve, reject) => {
|
|
77
|
+
const npmCmd = getNpmPath()[0];
|
|
78
|
+
const args = ['install', '--omit=dev', '--include=prod', '--no-progress'];
|
|
79
|
+
const env = {
|
|
80
|
+
...process.env,
|
|
81
|
+
NODE_ENV: 'production',
|
|
82
|
+
npm_config_update_notifier: 'false',
|
|
83
|
+
npm_config_prefer_online: 'true',
|
|
84
|
+
npm_config_progress: 'false',
|
|
85
|
+
npm_config_prefix: packageDir,
|
|
86
|
+
npm_config_color: 'always',
|
|
87
|
+
FORCE_COLOR: '1',
|
|
88
|
+
};
|
|
89
|
+
if (platform() !== 'win32' && basename(packageDir) === 'lib') {
|
|
90
|
+
env.npm_config_prefix = dirname(packageDir);
|
|
91
|
+
}
|
|
92
|
+
const child = spawn(npmCmd, args, { cwd: packageDir, env, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
93
|
+
const handleChunk = (data) => onOutput?.(data.toString());
|
|
94
|
+
child.stdout.on('data', handleChunk);
|
|
95
|
+
child.stderr.on('data', handleChunk);
|
|
96
|
+
const timeoutTimer = setTimeout(() => {
|
|
97
|
+
child.kill('SIGTERM');
|
|
98
|
+
reject(new Error('Operation timed out after 5 minutes'));
|
|
99
|
+
}, DEP_INSTALL_TIMEOUT_MS);
|
|
100
|
+
child.on('close', (code) => {
|
|
101
|
+
clearTimeout(timeoutTimer);
|
|
102
|
+
if (code === 0) {
|
|
103
|
+
resolve();
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
reject(new Error(`Operation failed with exit code ${code}. Please review log for details.`));
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
child.on('error', (err) => {
|
|
110
|
+
clearTimeout(timeoutTimer);
|
|
111
|
+
reject(new Error(`Failed to start process: ${err.message}`));
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/utils/npm/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camera.ui/server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.96",
|
|
4
4
|
"description": "camera.ui server",
|
|
5
5
|
"author": "seydx (https://github.com/cameraui/camera.ui)",
|
|
6
6
|
"type": "module",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"compare-versions": "^6.1.1",
|
|
50
50
|
"dotenv": "^17.4.2",
|
|
51
51
|
"express-useragent": "^2.2.0",
|
|
52
|
-
"fastify": "^5.
|
|
52
|
+
"fastify": "^5.9.0",
|
|
53
53
|
"fastify-plugin": "^6.0.0",
|
|
54
54
|
"fastify-type-provider-zod": "7.0.0",
|
|
55
55
|
"fkill": "^10.0.3",
|
|
@@ -58,10 +58,12 @@
|
|
|
58
58
|
"js-yaml": "^5.2.0",
|
|
59
59
|
"jsonwebtoken": "^9.0.3",
|
|
60
60
|
"lmdb": "^3.5.6",
|
|
61
|
-
"node-av": "^6.1.
|
|
61
|
+
"node-av": "^6.1.1-beta.1",
|
|
62
62
|
"node-forge": "^1.4.0",
|
|
63
|
+
"npm-registry-fetch": "^20.0.1",
|
|
63
64
|
"object-path": "^0.11.8",
|
|
64
65
|
"otplib": "^13.4.1",
|
|
66
|
+
"pacote": "^22.0.0",
|
|
65
67
|
"ps-list": "^9.0.0",
|
|
66
68
|
"qrcode": "^1.5.4",
|
|
67
69
|
"qs": "^6.15.3",
|
|
@@ -71,7 +73,7 @@
|
|
|
71
73
|
"socket.io": "^4.8.3",
|
|
72
74
|
"systeminformation": "^5.31.11",
|
|
73
75
|
"tail": "^2.2.6",
|
|
74
|
-
"tar": "^7.5.
|
|
76
|
+
"tar": "^7.5.19",
|
|
75
77
|
"tsyringe": "^4.10.0",
|
|
76
78
|
"undici": "^8.5.0",
|
|
77
79
|
"uuid": "^14.0.1",
|
|
@@ -86,7 +88,9 @@
|
|
|
86
88
|
"@types/jsonwebtoken": "^9.0.10",
|
|
87
89
|
"@types/node": "26.0.1",
|
|
88
90
|
"@types/node-forge": "^1.3.14",
|
|
91
|
+
"@types/npm-registry-fetch": "^8.0.9",
|
|
89
92
|
"@types/object-path": "^0.11.4",
|
|
93
|
+
"@types/pacote": "^11.1.8",
|
|
90
94
|
"@types/qrcode": "^1.5.6",
|
|
91
95
|
"@types/semver": "^7.7.1",
|
|
92
96
|
"@types/tail": "^2.2.3",
|
|
@@ -96,11 +100,11 @@
|
|
|
96
100
|
"cross-env": "^10.1.0",
|
|
97
101
|
"eslint": "9.39.2",
|
|
98
102
|
"globals": "^17.7.0",
|
|
99
|
-
"prettier": "^3.
|
|
103
|
+
"prettier": "^3.9.1",
|
|
100
104
|
"rimraf": "^6.1.3",
|
|
101
105
|
"typescript": "5.9.3",
|
|
102
106
|
"typescript-eslint": "^8.62.0",
|
|
103
|
-
"updates": "^17.18.
|
|
107
|
+
"updates": "^17.18.1",
|
|
104
108
|
"vitest": "^4.1.9"
|
|
105
109
|
},
|
|
106
110
|
"bugs": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./CuiBottomSheet-k8Zb5XD1.js";export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./SettingsAccount-DySpU4el.js";export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./SettingsAppearance-CGdPmMkM.js";export{e as default};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{S as e}from"./api-Tan5u5QZ.js";import{$n as t,$t as n,Cn as r,Hn as ee,In as i,Jn as te,Rn as a,Sn as o,Vn as ne,Xt as s,Yn as c,Yt as l,Zt as re,ar as ie,dn as u,dr as d,in as f,on as p,sr as m,wn as h,z as ae}from"./vendor-TwHhULaP.js";import{Bn as oe,Vn as se,di as ce}from"./vendor-cameraui-CeENiq5U.js";import{t as le}from"./useSharedComposables-Dyso8kmC.js";import{J as ue,j as de}from"./vendor-primevue-D-xm-xIu.js";import{t as fe}from"./plugins-C6jbSDXS.js";import{n as g,t as _}from"./useLogsSocket-BTa94fXn.js";import{a as v,i as pe,n as me,o as y,r as he,t as ge}from"./vendor-markdown-Cuk4GbAg.js";import{t as _e}from"./server-BBHyrnAu.js";var b={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function x(e,t){return h(),n(`svg`,b,[...t[0]||=[s(`path`,{fill:`currentColor`,d:`M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12z`},null,-1)]])}var ve=c({name:`mdi-content-copy`,render:x});function S(e){return`id`in e&&!(`type`in e)}function C(e){return`type`in e}var ye={key:0},be={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},xe=[`innerHTML`],Se={key:1},Ce={class:`text-muted`},we={key:2},w={class:`cui-label`},T={key:3,class:`w-full h-full relative`},E={key:4,class:`w-full h-full p-4 flex items-center justify-center`},D=p({__name:`VersionsHandler`,props:{target:{},installVersion:{},isNewPlugin:{type:Boolean},action:{}},setup(c,{expose:p}){y.registerLanguage(`typescript`,he),y.registerLanguage(`yaml`,me),y.registerLanguage(`json`,v),y.registerLanguage(`python`,pe);let b=new fe,x=new _e,D=ae(),O=c,k=e(),{t:A}=ce(),{mdBreakpoint:j}=le(),M=u(`dialogRef`),N=u(`dialogRefProps`),{target:P,installVersion:F,isNewPlugin:I}=ie(O);b.toggleQueryActivator(`getPluginVersionsQuery`,!1),b.toggleQueryActivator(`getPluginChangelogQuery`,!1),x.toggleQueryActivator(`checkVersionQuery`,!1);let Te=l(()=>S(P.value)?P.value.pluginName:`server`),L=l(()=>O.action===`uninstall`&&S(P.value)),R=_({target:Te.value,onStdout:e=>U.value?.writeTerminal(e),onDisconnect:()=>U.value?.writeTerminal(`
|
|
2
|
-
\rWebsocket failed to connect! Is the server running?\r
|
|
3
|
-
\r
|
|
4
|
-
`),onClearLog:()=>U.value?.clearTerminal(),onReconnected:()=>{U.value?.writeTerminal(`\r
|
|
5
|
-
--- Reconnected ---\r
|
|
6
|
-
\r
|
|
7
|
-
`)}}),Ee=l(()=>({pluginversion:W.value||F.value})),{data:De,isBusy:z}=x.checkVersionQuery(),{data:B,isBusy:V}=b.getPluginVersionsQuery(S(P.value)?P.value.pluginName:``),{data:Oe,isBusy:ke,suspense:Ae}=b.getPluginChangelogQuery(S(P.value)?P.value.pluginName:``,Ee),{mutate:je,isPending:Me}=x.restartServerQuery(),{mutate:Ne,isPending:Pe}=b.restartPluginQuery(),{mutateAsync:Fe,isPending:Ie}=b.installPluginQuery(),{mutateAsync:Le,isPending:Re}=b.uninstallPluginQuery(),{mutateAsync:ze,isPending:Be}=x.updateServerQuery(),H=ge(`commonmark`,{highlight(e,t){if(t&&y.getLanguage(t))try{return`<pre><code class="hljs">`+y.highlight(e,{language:t,ignoreIllegals:!0}).value+`</code></pre>`}catch{}return`<pre><code class="hljs">`+H.utils.escapeHtml(e)+`</code></pre>`}}),U=i(`consoleRef`),W=t(),G=t(!1),K=t(!1),q=t(!1),J=t(!1),Y=t(!1),Ve=l(()=>V.value||z.value),He=l(()=>!!(N.loading?.value||V.value||z.value||ke.value||Ie.value||Re.value||Be.value||Pe.value||Me.value)),X=l(()=>S(P.value)?B.value?.versions||[]:C(P.value)&&De.value?.versions.toReversed()||[]),Z=l(()=>{if(S(P.value))return Oe.value}),Ue=l(()=>({fontSize:j.value?12:14}));function Q(){G.value=!0,R.connect()}async function We(){if(S(P.value))try{b.toggleQueryActivator(`getPluginChangelogQuery`,!0);let{isError:e}=await Ae();if(e)throw Error(`Failed to fetch changelog`);K.value=!0}catch{}else C(P.value)}async function $(e){if(!K.value&&(await We(),K.value)){N.confirmText&&(N.confirmText.value=A(`components.form.button.continue`)),Y.value=!0;return}Q();try{S(P.value)?await Fe({pluginData:{pluginname:P.value.pluginName,pluginversion:e}}):C(P.value)&&(await ze({serverData:{version:e}}),D.invalidateQueries({queryKey:[`api`]})),q.value=!0,N.confirmText&&(N.confirmText.value=I.value?A(`components.form.button.finish`):A(`components.form.button.restart`))}catch(e){k.add({severity:`error`,detail:e,life:3e3})}}async function Ge(){if(S(P.value)){Q();try{await Le({pluginName:P.value.pluginName}),J.value=!0,N.confirmText&&(N.confirmText.value=A(`components.form.button.finish`))}catch(e){k.add({severity:`error`,detail:e,life:3e3})}}}function Ke(){S(P.value)?Ne({pluginName:P.value.pluginName}):C(P.value)&&je()}async function qe(){if(L.value)return J.value?void 0:(await Ge(),null);if(!(q.value&&I.value)){if(q.value){Ke();return}return Y.value?(Y.value=!1,F.value?await $(F.value):W.value&&await $(W.value),null):F.value?(await $(F.value),null):W.value?(await $(W.value),null):(k.add({severity:`error`,detail:A(`components.toast.no_version_selected`),life:3e3}),null)}}return a(X,e=>{e.length&&(W.value=e[0])},{immediate:!0,deep:!0}),a(G,e=>{e?M.value.data.dialogContentClass=`not-md:px-0 h-full md:h-[50vh]`:delete M.value.data.dialogContentClass}),a(j,e=>{!e&&(G.value||K.value)&&M.value.options.props&&(M.value.options.props.style.height=`60vh`,M.value.options.props.style.width=`70vh`,M.value.options.props.style.maxWidth=`100%`)}),o(()=>{L.value||(F.value?$(F.value):S(P.value)?b.toggleQueryActivator(`getPluginVersionsQuery`,!0):C(P.value)&&x.toggleQueryActivator(`checkVersionQuery`,!0))}),r(()=>{R.disconnect()}),p({isLoading:He,onConfirm:qe}),(e,t)=>{let r=de,i=ve,a=se,o=g,c=oe,l=ue;return h(),n(`div`,null,[m(K)&&m(Z)&&!m(G)?(h(),n(`div`,ye,[s(`h3`,be,d(e.$t(`components.form.label.changelog`)),1),s(`div`,{class:`markdown-body`,innerHTML:m(H).render(m(Z))},null,8,xe)])):m(L)&&!m(G)?(h(),n(`div`,Se,[s(`p`,Ce,d(e.$t(`components.dialog.message.confirm_uninstall_plugin`)),1)])):!m(F)&&!m(G)&&!m(K)?(h(),n(`div`,we,[s(`label`,w,d(e.$t(`components.form.label.version`)),1),f(r,{modelValue:m(W),"onUpdate:modelValue":t[0]||=e=>te(W)?W.value=e:null,options:m(X),loading:m(Ve),class:`w-full mt-2`},null,8,[`modelValue`,`options`,`loading`])])):m(G)?(h(),n(`div`,T,[ee((h(),re(a,{type:`button`,severity:`secondary`,rounded:``,class:`!absolute top-2 right-2 z-10 !w-8 !h-8 !p-0 opacity-70 hover:opacity-100`,onClick:t[1]||=e=>m(U)?.copyAll()},{default:ne(()=>[f(i,{class:`w-4 h-4`})]),_:1})),[[l,e.$t(`components.form.button.copy`),void 0,{left:!0}]]),f(o,{ref_key:`consoleRef`,ref:U,options:m(Ue),class:`bg-black !w-full`,"ignore-breakpoint":``,onResize:m(R).reportSize},null,8,[`options`,`onResize`])])):(h(),n(`div`,E,[f(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{D as default};
|