@lunora/studio 1.0.0-alpha.26 → 1.0.0-alpha.28
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/index.d.ts +9 -4
- package/dist/index.js +28 -28
- package/dist/mount.d.ts +1 -1
- package/dist/mount.js +1 -1
- package/dist/packem_shared/{ApiDocsPanel-BgrN4kml.js → ApiDocsPanel-BSSgtcVf.js} +1 -1
- package/dist/packem_shared/{ApiReferencePanel-1vubqG5s.js → ApiReferencePanel-D24xOjCw.js} +1 -1
- package/dist/packem_shared/{ApiTab-CHkX49o_.js → ApiTab-vo8uhE29.js} +3 -3
- package/dist/packem_shared/{AuditPanel-CP9HM9nq.js → AuditPanel-CBjYR6S5.js} +3 -3
- package/dist/packem_shared/{CommandPalette-BtgkBzZI.js → CommandPalette-L-CuSRUc.js} +1 -1
- package/dist/packem_shared/{DataBrowser-Bb1gTQ6c.js → DataBrowser-DBKOIVKS.js} +23 -6
- package/dist/packem_shared/{ExportImportPanel-Dj87tRa5.js → ExportImportPanel-DtDEy4OD.js} +2 -2
- package/dist/packem_shared/{FileBrowser-CWvxp_is.js → FileBrowser-DqLRjqsM.js} +3 -3
- package/dist/packem_shared/{FunctionRunner-DlWApMCH.js → FunctionRunner-BmRkCvT4.js} +1 -1
- package/dist/packem_shared/{FunctionStatsPanel-CuO2Tmw-.js → FunctionStatsPanel-Bi3kyQvu.js} +3 -3
- package/dist/packem_shared/{GlobalDataBrowser-3X9uRfdO.js → GlobalDataBrowser-DOjhvhKa.js} +4 -4
- package/dist/packem_shared/{HealthPanel-Dj0GRo5P.js → HealthPanel-C7IPO6Ts.js} +2 -2
- package/dist/packem_shared/HomePanel-dJIkHY_i.js +14 -0
- package/dist/packem_shared/{InsightsPanel-y_Q-xdPY.js → InsightsPanel-BD29GXXd.js} +3 -3
- package/dist/packem_shared/{LogsPanel-C7crgYoS.js → LogsPanel-2JhE1qep.js} +1 -1
- package/dist/packem_shared/{MailPanel-PILidruz.js → MailPanel-DwNsuFJC.js} +2 -2
- package/dist/packem_shared/MetricsPanel-CRa4ITlq.js +19 -0
- package/dist/packem_shared/{MigrationsPanel-DkIcRoE5.js → MigrationsPanel-Z1DmSSzf.js} +3 -3
- package/dist/packem_shared/{OpenRpcReferencePanel-vbcYbv3V.js → OpenRpcReferencePanel-Dq0yyVWz.js} +1 -1
- package/dist/packem_shared/{PitrPanel-yKJ1JPPk.js → PitrPanel-3mec0LTF.js} +1 -1
- package/dist/packem_shared/{ScheduledJobs-BWNwIN3I.js → ScheduledJobs--Z9GTmKb.js} +3 -3
- package/dist/packem_shared/{SchemaViewer-CNr8Wame.js → SchemaViewer-nxDV7dZJ.js} +1 -1
- package/dist/packem_shared/{SecurityAdvisorPanel-BBzv7L3c.js → SecurityAdvisorPanel-5tYrJdvn.js} +2 -2
- package/dist/packem_shared/{SettingsPanel-BKSKl8tl.js → SettingsPanel-SijRekVc.js} +2 -2
- package/dist/packem_shared/{SqlEditorPanel-CkemCQvy.js → SqlEditorPanel-DI4obotI.js} +5 -5
- package/dist/packem_shared/Studio-B_L5Q2-X.js +33 -0
- package/dist/packem_shared/{StudioApp-sRWTipvw.js → StudioApp-wxioPfiP.js} +1 -1
- package/dist/packem_shared/{TableEditor-JS3sXYgS.js → TableEditor-1T-5KYtr.js} +4 -4
- package/dist/packem_shared/{advisor-view-CGcfMiPq.js → advisor-view-DzqyvUU3.js} +1 -1
- package/dist/packem_shared/{app.d-Cnij4Zp5.d.ts → app.d-B6MyY_al.d.ts} +1 -1
- package/dist/packem_shared/{data-grid-B5CaV3wS.js → data-grid-CrapHxR-.js} +1 -1
- package/dist/packem_shared/{grid-features-CzUfqgsM.js → grid-features-DnTbXXNb.js} +1 -1
- package/dist/packem_shared/{HomePanel-BewOCuag.js → home-panel-VdQI_8oX.js} +504 -138
- package/dist/packem_shared/{internal-rXJEAhXS.js → internal-CvMZCVd6.js} +1 -1
- package/dist/packem_shared/{MetricsPanel-DioILzgf.js → metrics-panel-3FSfzgEX.js} +4 -4
- package/dist/packem_shared/{reference-view-B4E49Lip.js → reference-view-DVyk5kXj.js} +1 -1
- package/dist/packem_shared/{sql-editor-panel-CUJoYF1Z.js → sql-editor-panel-DBuIpCXk.js} +4 -4
- package/dist/packem_shared/{studio-r7cJPJ__.js → studio-Dm6H5DHS.js} +2459 -606
- package/dist/packem_shared/{table-_RzNvy3R.js → table-DsCa9Qp9.js} +1 -1
- package/dist/packem_shared/{table-editor-9fhJ4hMJ.js → table-editor-7iSgi3te.js} +3 -3
- package/dist/packem_shared/{table-list-sidebar-Bg7uzbvC.js → table-list-sidebar-BbSgfLJ2.js} +1 -1
- package/dist/packem_shared/{use-admin-query-BkbdNFNz.js → use-admin-query-CFl5GUg_.js} +1 -1
- package/dist/standalone/studio.js +171 -171
- package/dist/styles.css +1 -1
- package/package.json +5 -5
- package/dist/packem_shared/Studio-CkKjUl2u.js +0 -33
|
@@ -2,16 +2,375 @@ import { c } from 'react/compiler-runtime';
|
|
|
2
2
|
import { useNavigate } from '@tanstack/react-router';
|
|
3
3
|
import { B as Bar, E as EvilBarChart } from './bar-chart-CzJAgqkp.js';
|
|
4
4
|
import { B as Badge } from './badge-B2PKA1-5.js';
|
|
5
|
-
import {
|
|
5
|
+
import { a as CardContent, C as Card } from './card-DURq3ElK.js';
|
|
6
6
|
import { E as EmptyState } from './empty-state-DY_oe0k6.js';
|
|
7
|
-
import { u as useAdminQuery } from './use-admin-query-
|
|
7
|
+
import { u as useAdminQuery } from './use-admin-query-CFl5GUg_.js';
|
|
8
8
|
import { useT } from './DEFAULT_LOCALE-CiX4W7Kr.js';
|
|
9
9
|
import { ADMIN_FUNCTIONS } from './ADMIN_FUNCTIONS-CdaxLGkE.js';
|
|
10
|
-
import {
|
|
10
|
+
import { f as fireAndForget, c as callOptions, a as adminRef, h as formatBytes } from './internal-CvMZCVd6.js';
|
|
11
11
|
import { c as cn } from './utils-B05Dmz_H.js';
|
|
12
12
|
import { deriveInsights } from './DEFAULT_INSIGHT_THRESHOLDS-DjF0h-gA.js';
|
|
13
|
+
import { useLunora } from '@lunora/react';
|
|
14
|
+
import { useState, useEffect } from 'react';
|
|
13
15
|
import { jsxDEV } from 'react/jsx-dev-runtime';
|
|
14
16
|
|
|
17
|
+
const STUDIO_FEATURES = adminRef(ADMIN_FUNCTIONS.studioFeatures);
|
|
18
|
+
const DEFAULT_STUDIO_FEATURES = {
|
|
19
|
+
analytics: true,
|
|
20
|
+
auth: true,
|
|
21
|
+
flags: true,
|
|
22
|
+
kv: true,
|
|
23
|
+
mail: true,
|
|
24
|
+
payments: true,
|
|
25
|
+
queues: true,
|
|
26
|
+
scheduler: true,
|
|
27
|
+
storage: true,
|
|
28
|
+
vectors: true,
|
|
29
|
+
workflows: true
|
|
30
|
+
};
|
|
31
|
+
const coerceFeatures = (raw) => {
|
|
32
|
+
if (raw === null || typeof raw !== "object") {
|
|
33
|
+
return DEFAULT_STUDIO_FEATURES;
|
|
34
|
+
}
|
|
35
|
+
const record = raw;
|
|
36
|
+
const flag = (key) => typeof record[key] === "boolean" ? record[key] : true;
|
|
37
|
+
return {
|
|
38
|
+
analytics: flag("analytics"),
|
|
39
|
+
auth: flag("auth"),
|
|
40
|
+
flags: flag("flags"),
|
|
41
|
+
kv: flag("kv"),
|
|
42
|
+
mail: flag("mail"),
|
|
43
|
+
payments: flag("payments"),
|
|
44
|
+
queues: flag("queues"),
|
|
45
|
+
scheduler: flag("scheduler"),
|
|
46
|
+
storage: flag("storage"),
|
|
47
|
+
vectors: flag("vectors"),
|
|
48
|
+
workflows: flag("workflows")
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
const useStudioFeatures = () => {
|
|
52
|
+
const $ = c(3);
|
|
53
|
+
const client = useLunora();
|
|
54
|
+
const [features, setFeatures] = useState(DEFAULT_STUDIO_FEATURES);
|
|
55
|
+
let t0;
|
|
56
|
+
let t1;
|
|
57
|
+
if ($[0] !== client) {
|
|
58
|
+
t0 = () => {
|
|
59
|
+
fireAndForget((async () => {
|
|
60
|
+
try {
|
|
61
|
+
setFeatures(coerceFeatures(await client.query(STUDIO_FEATURES, {}, callOptions(""))));
|
|
62
|
+
} catch {
|
|
63
|
+
}
|
|
64
|
+
})());
|
|
65
|
+
};
|
|
66
|
+
t1 = [client];
|
|
67
|
+
$[0] = client;
|
|
68
|
+
$[1] = t0;
|
|
69
|
+
$[2] = t1;
|
|
70
|
+
} else {
|
|
71
|
+
t0 = $[1];
|
|
72
|
+
t1 = $[2];
|
|
73
|
+
}
|
|
74
|
+
useEffect(t0, t1);
|
|
75
|
+
return features;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const ChevronRight$1 = () => {
|
|
79
|
+
const $ = c(1);
|
|
80
|
+
let t0;
|
|
81
|
+
if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
82
|
+
t0 = /* @__PURE__ */ jsxDEV("svg", {
|
|
83
|
+
"aria-hidden": "true",
|
|
84
|
+
className: "size-4 text-muted-foreground",
|
|
85
|
+
fill: "none",
|
|
86
|
+
stroke: "currentColor",
|
|
87
|
+
strokeWidth: 1.6,
|
|
88
|
+
viewBox: "0 0 24 24",
|
|
89
|
+
children: /* @__PURE__ */ jsxDEV("path", {
|
|
90
|
+
d: "m9 6 6 6-6 6",
|
|
91
|
+
strokeLinecap: "round",
|
|
92
|
+
strokeLinejoin: "round"
|
|
93
|
+
}, void 0, false)
|
|
94
|
+
}, void 0, false);
|
|
95
|
+
$[0] = t0;
|
|
96
|
+
} else {
|
|
97
|
+
t0 = $[0];
|
|
98
|
+
}
|
|
99
|
+
return t0;
|
|
100
|
+
};
|
|
101
|
+
const BindingCard = (t0) => {
|
|
102
|
+
const $ = c(24);
|
|
103
|
+
const {
|
|
104
|
+
group
|
|
105
|
+
} = t0;
|
|
106
|
+
const t = useT();
|
|
107
|
+
const navigate = useNavigate();
|
|
108
|
+
let t1;
|
|
109
|
+
if ($[0] !== group.tab || $[1] !== navigate) {
|
|
110
|
+
t1 = () => {
|
|
111
|
+
fireAndForget(navigate({
|
|
112
|
+
to: `/${group.tab}`
|
|
113
|
+
}));
|
|
114
|
+
};
|
|
115
|
+
$[0] = group.tab;
|
|
116
|
+
$[1] = navigate;
|
|
117
|
+
$[2] = t1;
|
|
118
|
+
} else {
|
|
119
|
+
t1 = $[2];
|
|
120
|
+
}
|
|
121
|
+
const onOpen = t1;
|
|
122
|
+
const count = group.bindings.length;
|
|
123
|
+
let t2;
|
|
124
|
+
if ($[3] !== group.label) {
|
|
125
|
+
t2 = /* @__PURE__ */ jsxDEV("span", {
|
|
126
|
+
className: "text-sm font-medium text-foreground",
|
|
127
|
+
children: group.label
|
|
128
|
+
}, void 0, false);
|
|
129
|
+
$[3] = group.label;
|
|
130
|
+
$[4] = t2;
|
|
131
|
+
} else {
|
|
132
|
+
t2 = $[4];
|
|
133
|
+
}
|
|
134
|
+
let t3;
|
|
135
|
+
if ($[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
136
|
+
t3 = /* @__PURE__ */ jsxDEV(ChevronRight$1, {}, void 0, false);
|
|
137
|
+
$[5] = t3;
|
|
138
|
+
} else {
|
|
139
|
+
t3 = $[5];
|
|
140
|
+
}
|
|
141
|
+
let t4;
|
|
142
|
+
if ($[6] !== t2) {
|
|
143
|
+
t4 = /* @__PURE__ */ jsxDEV("div", {
|
|
144
|
+
className: "flex items-center justify-between",
|
|
145
|
+
children: [t2, t3]
|
|
146
|
+
}, void 0, true);
|
|
147
|
+
$[6] = t2;
|
|
148
|
+
$[7] = t4;
|
|
149
|
+
} else {
|
|
150
|
+
t4 = $[7];
|
|
151
|
+
}
|
|
152
|
+
let t5;
|
|
153
|
+
if ($[8] !== count || $[9] !== t) {
|
|
154
|
+
t5 = count === 1 ? t("1 binding") : t("{count} bindings", {
|
|
155
|
+
count
|
|
156
|
+
});
|
|
157
|
+
$[8] = count;
|
|
158
|
+
$[9] = t;
|
|
159
|
+
$[10] = t5;
|
|
160
|
+
} else {
|
|
161
|
+
t5 = $[10];
|
|
162
|
+
}
|
|
163
|
+
let t6;
|
|
164
|
+
if ($[11] !== t5) {
|
|
165
|
+
t6 = /* @__PURE__ */ jsxDEV("span", {
|
|
166
|
+
className: "text-xs text-muted-foreground",
|
|
167
|
+
children: t5
|
|
168
|
+
}, void 0, false);
|
|
169
|
+
$[11] = t5;
|
|
170
|
+
$[12] = t6;
|
|
171
|
+
} else {
|
|
172
|
+
t6 = $[12];
|
|
173
|
+
}
|
|
174
|
+
let t7;
|
|
175
|
+
if ($[13] !== count || $[14] !== group.bindings) {
|
|
176
|
+
t7 = count > 0 && /* @__PURE__ */ jsxDEV("div", {
|
|
177
|
+
className: "flex flex-wrap gap-1.5",
|
|
178
|
+
children: group.bindings.map(_temp$1)
|
|
179
|
+
}, void 0, false);
|
|
180
|
+
$[13] = count;
|
|
181
|
+
$[14] = group.bindings;
|
|
182
|
+
$[15] = t7;
|
|
183
|
+
} else {
|
|
184
|
+
t7 = $[15];
|
|
185
|
+
}
|
|
186
|
+
let t8;
|
|
187
|
+
if ($[16] !== t4 || $[17] !== t6 || $[18] !== t7) {
|
|
188
|
+
t8 = /* @__PURE__ */ jsxDEV(CardContent, {
|
|
189
|
+
className: "flex flex-col gap-2 py-4",
|
|
190
|
+
children: [t4, t6, t7]
|
|
191
|
+
}, void 0, true);
|
|
192
|
+
$[16] = t4;
|
|
193
|
+
$[17] = t6;
|
|
194
|
+
$[18] = t7;
|
|
195
|
+
$[19] = t8;
|
|
196
|
+
} else {
|
|
197
|
+
t8 = $[19];
|
|
198
|
+
}
|
|
199
|
+
let t9;
|
|
200
|
+
if ($[20] !== group.testId || $[21] !== onOpen || $[22] !== t8) {
|
|
201
|
+
t9 = /* @__PURE__ */ jsxDEV(Card, {
|
|
202
|
+
className: "cursor-pointer gap-0 py-0 transition-colors hover:bg-muted/40",
|
|
203
|
+
"data-testid": group.testId,
|
|
204
|
+
onClick: onOpen,
|
|
205
|
+
children: t8
|
|
206
|
+
}, void 0, false);
|
|
207
|
+
$[20] = group.testId;
|
|
208
|
+
$[21] = onOpen;
|
|
209
|
+
$[22] = t8;
|
|
210
|
+
$[23] = t9;
|
|
211
|
+
} else {
|
|
212
|
+
t9 = $[23];
|
|
213
|
+
}
|
|
214
|
+
return t9;
|
|
215
|
+
};
|
|
216
|
+
const TAB_ORDER = ["kv", "files", "vectors"];
|
|
217
|
+
const upsertCard = (current, card) => [...current.filter((group) => group.tab !== card.tab), card].toSorted((a, b) => TAB_ORDER.indexOf(a.tab) - TAB_ORDER.indexOf(b.tab));
|
|
218
|
+
const BindingsOverview = () => {
|
|
219
|
+
const $ = c(19);
|
|
220
|
+
const client = useLunora();
|
|
221
|
+
const features = useStudioFeatures();
|
|
222
|
+
const t = useT();
|
|
223
|
+
let t0;
|
|
224
|
+
if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
225
|
+
t0 = [];
|
|
226
|
+
$[0] = t0;
|
|
227
|
+
} else {
|
|
228
|
+
t0 = $[0];
|
|
229
|
+
}
|
|
230
|
+
const [groups, setGroups] = useState(t0);
|
|
231
|
+
let t1;
|
|
232
|
+
let t2;
|
|
233
|
+
if ($[1] !== client || $[2] !== features.kv || $[3] !== features.storage || $[4] !== features.vectors || $[5] !== t) {
|
|
234
|
+
t1 = () => {
|
|
235
|
+
const token = {
|
|
236
|
+
cancelled: false
|
|
237
|
+
};
|
|
238
|
+
const sources = [{
|
|
239
|
+
enabled: features.kv,
|
|
240
|
+
label: t("KV Namespaces"),
|
|
241
|
+
load: async () => {
|
|
242
|
+
const namespaces = await client.listKvNamespaces();
|
|
243
|
+
return namespaces.map(_temp2$1);
|
|
244
|
+
},
|
|
245
|
+
tab: "kv",
|
|
246
|
+
testId: "home-binding-kv"
|
|
247
|
+
}, {
|
|
248
|
+
enabled: features.storage,
|
|
249
|
+
label: t("R2 Buckets"),
|
|
250
|
+
load: () => client.listStorageBuckets(),
|
|
251
|
+
tab: "files",
|
|
252
|
+
testId: "home-binding-r2"
|
|
253
|
+
}, {
|
|
254
|
+
enabled: features.vectors,
|
|
255
|
+
label: t("Vectorize Indexes"),
|
|
256
|
+
load: async () => {
|
|
257
|
+
const indexes = await client.listVectorIndexes();
|
|
258
|
+
return indexes.map(_temp3$1);
|
|
259
|
+
},
|
|
260
|
+
tab: "vectors",
|
|
261
|
+
testId: "home-binding-vectors"
|
|
262
|
+
}];
|
|
263
|
+
for (const source of sources) {
|
|
264
|
+
if (!source.enabled) {
|
|
265
|
+
continue;
|
|
266
|
+
}
|
|
267
|
+
fireAndForget((async () => {
|
|
268
|
+
try {
|
|
269
|
+
const bindings = await source.load();
|
|
270
|
+
if (!token.cancelled) {
|
|
271
|
+
const card = {
|
|
272
|
+
bindings,
|
|
273
|
+
label: source.label,
|
|
274
|
+
tab: source.tab,
|
|
275
|
+
testId: source.testId
|
|
276
|
+
};
|
|
277
|
+
setGroups((current) => upsertCard(current, card));
|
|
278
|
+
}
|
|
279
|
+
} catch {
|
|
280
|
+
}
|
|
281
|
+
})());
|
|
282
|
+
}
|
|
283
|
+
return () => {
|
|
284
|
+
token.cancelled = true;
|
|
285
|
+
};
|
|
286
|
+
};
|
|
287
|
+
t2 = [client, features.kv, features.storage, features.vectors, t];
|
|
288
|
+
$[1] = client;
|
|
289
|
+
$[2] = features.kv;
|
|
290
|
+
$[3] = features.storage;
|
|
291
|
+
$[4] = features.vectors;
|
|
292
|
+
$[5] = t;
|
|
293
|
+
$[6] = t1;
|
|
294
|
+
$[7] = t2;
|
|
295
|
+
} else {
|
|
296
|
+
t1 = $[6];
|
|
297
|
+
t2 = $[7];
|
|
298
|
+
}
|
|
299
|
+
useEffect(t1, t2);
|
|
300
|
+
if (groups.length === 0) {
|
|
301
|
+
return null;
|
|
302
|
+
}
|
|
303
|
+
let t3;
|
|
304
|
+
if ($[8] !== t) {
|
|
305
|
+
t3 = t("Bindings");
|
|
306
|
+
$[8] = t;
|
|
307
|
+
$[9] = t3;
|
|
308
|
+
} else {
|
|
309
|
+
t3 = $[9];
|
|
310
|
+
}
|
|
311
|
+
let t4;
|
|
312
|
+
if ($[10] !== t3) {
|
|
313
|
+
t4 = /* @__PURE__ */ jsxDEV("h2", {
|
|
314
|
+
className: "text-sm font-semibold tracking-tight text-foreground",
|
|
315
|
+
children: t3
|
|
316
|
+
}, void 0, false);
|
|
317
|
+
$[10] = t3;
|
|
318
|
+
$[11] = t4;
|
|
319
|
+
} else {
|
|
320
|
+
t4 = $[11];
|
|
321
|
+
}
|
|
322
|
+
let t5;
|
|
323
|
+
if ($[12] !== groups) {
|
|
324
|
+
t5 = groups.map(_temp4$1);
|
|
325
|
+
$[12] = groups;
|
|
326
|
+
$[13] = t5;
|
|
327
|
+
} else {
|
|
328
|
+
t5 = $[13];
|
|
329
|
+
}
|
|
330
|
+
let t6;
|
|
331
|
+
if ($[14] !== t5) {
|
|
332
|
+
t6 = /* @__PURE__ */ jsxDEV("div", {
|
|
333
|
+
className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-3",
|
|
334
|
+
children: t5
|
|
335
|
+
}, void 0, false);
|
|
336
|
+
$[14] = t5;
|
|
337
|
+
$[15] = t6;
|
|
338
|
+
} else {
|
|
339
|
+
t6 = $[15];
|
|
340
|
+
}
|
|
341
|
+
let t7;
|
|
342
|
+
if ($[16] !== t4 || $[17] !== t6) {
|
|
343
|
+
t7 = /* @__PURE__ */ jsxDEV("section", {
|
|
344
|
+
className: "flex flex-col gap-3",
|
|
345
|
+
"data-testid": "home-bindings",
|
|
346
|
+
children: [t4, t6]
|
|
347
|
+
}, void 0, true);
|
|
348
|
+
$[16] = t4;
|
|
349
|
+
$[17] = t6;
|
|
350
|
+
$[18] = t7;
|
|
351
|
+
} else {
|
|
352
|
+
t7 = $[18];
|
|
353
|
+
}
|
|
354
|
+
return t7;
|
|
355
|
+
};
|
|
356
|
+
function _temp$1(binding) {
|
|
357
|
+
return /* @__PURE__ */ jsxDEV(Badge, {
|
|
358
|
+
variant: "secondary",
|
|
359
|
+
children: binding
|
|
360
|
+
}, binding, false);
|
|
361
|
+
}
|
|
362
|
+
function _temp2$1(ns) {
|
|
363
|
+
return ns.binding;
|
|
364
|
+
}
|
|
365
|
+
function _temp3$1(index) {
|
|
366
|
+
return index.name;
|
|
367
|
+
}
|
|
368
|
+
function _temp4$1(group) {
|
|
369
|
+
return /* @__PURE__ */ jsxDEV(BindingCard, {
|
|
370
|
+
group
|
|
371
|
+
}, group.tab, false);
|
|
372
|
+
}
|
|
373
|
+
|
|
15
374
|
const formatMs = (ms) => {
|
|
16
375
|
if (ms < 1e3) {
|
|
17
376
|
return `${String(Math.round(ms))}ms`;
|
|
@@ -676,7 +1035,7 @@ const averageLatencyMs = (functions) => {
|
|
|
676
1035
|
return functions.reduce((sum, function_) => sum + function_.totalDurationMs, 0) / calls;
|
|
677
1036
|
};
|
|
678
1037
|
const HomePanel = (t0) => {
|
|
679
|
-
const $ = c(
|
|
1038
|
+
const $ = c(150);
|
|
680
1039
|
const {
|
|
681
1040
|
initialShardKey
|
|
682
1041
|
} = t0;
|
|
@@ -1048,84 +1407,91 @@ const HomePanel = (t0) => {
|
|
|
1048
1407
|
t26 = $[93];
|
|
1049
1408
|
}
|
|
1050
1409
|
let t27;
|
|
1051
|
-
if ($[94]
|
|
1052
|
-
t27 = /* @__PURE__ */ jsxDEV(
|
|
1410
|
+
if ($[94] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
1411
|
+
t27 = /* @__PURE__ */ jsxDEV(BindingsOverview, {}, void 0, false);
|
|
1412
|
+
$[94] = t27;
|
|
1413
|
+
} else {
|
|
1414
|
+
t27 = $[94];
|
|
1415
|
+
}
|
|
1416
|
+
let t28;
|
|
1417
|
+
if ($[95] !== functions) {
|
|
1418
|
+
t28 = /* @__PURE__ */ jsxDEV("div", {
|
|
1053
1419
|
className: "lg:col-span-2",
|
|
1054
1420
|
children: /* @__PURE__ */ jsxDEV(TopFunctionsCard, {
|
|
1055
1421
|
functions
|
|
1056
1422
|
}, void 0, false)
|
|
1057
1423
|
}, void 0, false);
|
|
1058
|
-
$[
|
|
1059
|
-
$[
|
|
1424
|
+
$[95] = functions;
|
|
1425
|
+
$[96] = t28;
|
|
1060
1426
|
} else {
|
|
1061
|
-
|
|
1427
|
+
t28 = $[96];
|
|
1062
1428
|
}
|
|
1063
|
-
let
|
|
1064
|
-
if ($[
|
|
1065
|
-
|
|
1429
|
+
let t29;
|
|
1430
|
+
if ($[97] !== subscriptions) {
|
|
1431
|
+
t29 = /* @__PURE__ */ jsxDEV(LiveConnectionsCard, {
|
|
1066
1432
|
subs: subscriptions
|
|
1067
1433
|
}, void 0, false);
|
|
1068
|
-
$[
|
|
1069
|
-
$[
|
|
1434
|
+
$[97] = subscriptions;
|
|
1435
|
+
$[98] = t29;
|
|
1070
1436
|
} else {
|
|
1071
|
-
|
|
1437
|
+
t29 = $[98];
|
|
1072
1438
|
}
|
|
1073
|
-
let
|
|
1074
|
-
if ($[
|
|
1075
|
-
|
|
1439
|
+
let t30;
|
|
1440
|
+
if ($[99] !== activity) {
|
|
1441
|
+
t30 = /* @__PURE__ */ jsxDEV(RecentActivityCard, {
|
|
1076
1442
|
entries: activity
|
|
1077
1443
|
}, void 0, false);
|
|
1078
|
-
$[
|
|
1079
|
-
$[
|
|
1444
|
+
$[99] = activity;
|
|
1445
|
+
$[100] = t30;
|
|
1080
1446
|
} else {
|
|
1081
|
-
|
|
1447
|
+
t30 = $[100];
|
|
1082
1448
|
}
|
|
1083
|
-
let
|
|
1084
|
-
if ($[
|
|
1085
|
-
|
|
1449
|
+
let t31;
|
|
1450
|
+
if ($[101] !== t29 || $[102] !== t30) {
|
|
1451
|
+
t31 = /* @__PURE__ */ jsxDEV("div", {
|
|
1086
1452
|
className: "flex flex-col gap-3",
|
|
1087
|
-
children: [
|
|
1453
|
+
children: [t29, t30]
|
|
1088
1454
|
}, void 0, true);
|
|
1089
|
-
$[100] = t28;
|
|
1090
1455
|
$[101] = t29;
|
|
1091
1456
|
$[102] = t30;
|
|
1457
|
+
$[103] = t31;
|
|
1092
1458
|
} else {
|
|
1093
|
-
|
|
1459
|
+
t31 = $[103];
|
|
1094
1460
|
}
|
|
1095
|
-
let
|
|
1096
|
-
if ($[
|
|
1097
|
-
|
|
1461
|
+
let t32;
|
|
1462
|
+
if ($[104] !== t28 || $[105] !== t31) {
|
|
1463
|
+
t32 = /* @__PURE__ */ jsxDEV("div", {
|
|
1098
1464
|
className: "grid gap-3 lg:grid-cols-3",
|
|
1099
|
-
children: [
|
|
1465
|
+
children: [t28, t31]
|
|
1100
1466
|
}, void 0, true);
|
|
1101
|
-
$[
|
|
1102
|
-
$[104] = t30;
|
|
1467
|
+
$[104] = t28;
|
|
1103
1468
|
$[105] = t31;
|
|
1469
|
+
$[106] = t32;
|
|
1104
1470
|
} else {
|
|
1105
|
-
|
|
1471
|
+
t32 = $[106];
|
|
1106
1472
|
}
|
|
1107
|
-
let
|
|
1108
|
-
if ($[
|
|
1109
|
-
|
|
1110
|
-
$[
|
|
1111
|
-
$[
|
|
1473
|
+
let t33;
|
|
1474
|
+
if ($[107] !== t) {
|
|
1475
|
+
t33 = t("Advisors");
|
|
1476
|
+
$[107] = t;
|
|
1477
|
+
$[108] = t33;
|
|
1112
1478
|
} else {
|
|
1113
|
-
|
|
1479
|
+
t33 = $[108];
|
|
1114
1480
|
}
|
|
1115
|
-
let
|
|
1116
|
-
if ($[
|
|
1117
|
-
|
|
1481
|
+
let t34;
|
|
1482
|
+
if ($[109] !== t33) {
|
|
1483
|
+
t34 = /* @__PURE__ */ jsxDEV("h2", {
|
|
1118
1484
|
className: "text-sm font-semibold tracking-tight text-foreground",
|
|
1119
|
-
children:
|
|
1485
|
+
children: t33
|
|
1120
1486
|
}, void 0, false);
|
|
1121
|
-
$[108] = t32;
|
|
1122
1487
|
$[109] = t33;
|
|
1488
|
+
$[110] = t34;
|
|
1123
1489
|
} else {
|
|
1124
|
-
|
|
1490
|
+
t34 = $[110];
|
|
1125
1491
|
}
|
|
1126
|
-
let
|
|
1127
|
-
if ($[
|
|
1128
|
-
|
|
1492
|
+
let t35;
|
|
1493
|
+
if ($[111] !== performanceCount || $[112] !== securityCount || $[113] !== t || $[114] !== viewPerformance || $[115] !== viewSecurity) {
|
|
1494
|
+
t35 = securityCount === 0 && performanceCount === 0 ? /* @__PURE__ */ jsxDEV(EmptyState, {
|
|
1129
1495
|
description: t("No security or performance issues detected."),
|
|
1130
1496
|
icon: /* @__PURE__ */ jsxDEV("svg", {
|
|
1131
1497
|
"aria-hidden": "true",
|
|
@@ -1157,148 +1523,148 @@ const HomePanel = (t0) => {
|
|
|
1157
1523
|
title: t("Performance issues")
|
|
1158
1524
|
}, void 0, false)]
|
|
1159
1525
|
}, void 0, true);
|
|
1160
|
-
$[
|
|
1161
|
-
$[
|
|
1162
|
-
$[
|
|
1163
|
-
$[
|
|
1164
|
-
$[
|
|
1165
|
-
$[
|
|
1526
|
+
$[111] = performanceCount;
|
|
1527
|
+
$[112] = securityCount;
|
|
1528
|
+
$[113] = t;
|
|
1529
|
+
$[114] = viewPerformance;
|
|
1530
|
+
$[115] = viewSecurity;
|
|
1531
|
+
$[116] = t35;
|
|
1166
1532
|
} else {
|
|
1167
|
-
|
|
1533
|
+
t35 = $[116];
|
|
1168
1534
|
}
|
|
1169
|
-
let
|
|
1170
|
-
if ($[
|
|
1171
|
-
|
|
1535
|
+
let t36;
|
|
1536
|
+
if ($[117] !== t34 || $[118] !== t35) {
|
|
1537
|
+
t36 = /* @__PURE__ */ jsxDEV("section", {
|
|
1172
1538
|
className: "flex flex-col gap-3",
|
|
1173
1539
|
"data-testid": "home-advisors",
|
|
1174
|
-
children: [
|
|
1540
|
+
children: [t34, t35]
|
|
1175
1541
|
}, void 0, true);
|
|
1176
|
-
$[116] = t33;
|
|
1177
1542
|
$[117] = t34;
|
|
1178
1543
|
$[118] = t35;
|
|
1544
|
+
$[119] = t36;
|
|
1179
1545
|
} else {
|
|
1180
|
-
|
|
1546
|
+
t36 = $[119];
|
|
1181
1547
|
}
|
|
1182
|
-
let
|
|
1183
|
-
if ($[
|
|
1184
|
-
|
|
1185
|
-
$[
|
|
1186
|
-
$[
|
|
1548
|
+
let t37;
|
|
1549
|
+
if ($[120] !== t) {
|
|
1550
|
+
t37 = t("Get connected");
|
|
1551
|
+
$[120] = t;
|
|
1552
|
+
$[121] = t37;
|
|
1187
1553
|
} else {
|
|
1188
|
-
|
|
1554
|
+
t37 = $[121];
|
|
1189
1555
|
}
|
|
1190
|
-
let
|
|
1191
|
-
if ($[
|
|
1192
|
-
|
|
1556
|
+
let t38;
|
|
1557
|
+
if ($[122] !== t37) {
|
|
1558
|
+
t38 = /* @__PURE__ */ jsxDEV("h2", {
|
|
1193
1559
|
className: "text-sm font-semibold tracking-tight text-foreground",
|
|
1194
|
-
children:
|
|
1560
|
+
children: t37
|
|
1195
1561
|
}, void 0, false);
|
|
1196
|
-
$[121] = t36;
|
|
1197
1562
|
$[122] = t37;
|
|
1563
|
+
$[123] = t38;
|
|
1198
1564
|
} else {
|
|
1199
|
-
|
|
1565
|
+
t38 = $[123];
|
|
1200
1566
|
}
|
|
1201
|
-
let
|
|
1202
|
-
if ($[
|
|
1203
|
-
|
|
1204
|
-
$[
|
|
1205
|
-
$[
|
|
1567
|
+
let t39;
|
|
1568
|
+
if ($[124] !== t) {
|
|
1569
|
+
t39 = t("Client SDK");
|
|
1570
|
+
$[124] = t;
|
|
1571
|
+
$[125] = t39;
|
|
1206
1572
|
} else {
|
|
1207
|
-
|
|
1573
|
+
t39 = $[125];
|
|
1208
1574
|
}
|
|
1209
|
-
let
|
|
1210
|
-
if ($[
|
|
1211
|
-
|
|
1575
|
+
let t40;
|
|
1576
|
+
if ($[126] !== t39) {
|
|
1577
|
+
t40 = /* @__PURE__ */ jsxDEV(ConnectCard, {
|
|
1212
1578
|
command: "npm i @lunora/client",
|
|
1213
|
-
label:
|
|
1579
|
+
label: t39
|
|
1214
1580
|
}, void 0, false);
|
|
1215
|
-
$[125] = t38;
|
|
1216
1581
|
$[126] = t39;
|
|
1582
|
+
$[127] = t40;
|
|
1217
1583
|
} else {
|
|
1218
|
-
|
|
1584
|
+
t40 = $[127];
|
|
1219
1585
|
}
|
|
1220
|
-
let
|
|
1221
|
-
if ($[
|
|
1222
|
-
|
|
1223
|
-
$[
|
|
1224
|
-
$[
|
|
1586
|
+
let t41;
|
|
1587
|
+
if ($[128] !== t) {
|
|
1588
|
+
t41 = t("React");
|
|
1589
|
+
$[128] = t;
|
|
1590
|
+
$[129] = t41;
|
|
1225
1591
|
} else {
|
|
1226
|
-
|
|
1592
|
+
t41 = $[129];
|
|
1227
1593
|
}
|
|
1228
|
-
let
|
|
1229
|
-
if ($[
|
|
1230
|
-
|
|
1594
|
+
let t42;
|
|
1595
|
+
if ($[130] !== t41) {
|
|
1596
|
+
t42 = /* @__PURE__ */ jsxDEV(ConnectCard, {
|
|
1231
1597
|
command: "npm i @lunora/react",
|
|
1232
|
-
label:
|
|
1598
|
+
label: t41
|
|
1233
1599
|
}, void 0, false);
|
|
1234
|
-
$[129] = t40;
|
|
1235
1600
|
$[130] = t41;
|
|
1601
|
+
$[131] = t42;
|
|
1236
1602
|
} else {
|
|
1237
|
-
|
|
1603
|
+
t42 = $[131];
|
|
1238
1604
|
}
|
|
1239
|
-
let
|
|
1240
|
-
if ($[
|
|
1241
|
-
|
|
1242
|
-
$[
|
|
1243
|
-
$[
|
|
1605
|
+
let t43;
|
|
1606
|
+
if ($[132] !== t) {
|
|
1607
|
+
t43 = t("CLI");
|
|
1608
|
+
$[132] = t;
|
|
1609
|
+
$[133] = t43;
|
|
1244
1610
|
} else {
|
|
1245
|
-
|
|
1611
|
+
t43 = $[133];
|
|
1246
1612
|
}
|
|
1247
|
-
let
|
|
1248
|
-
if ($[
|
|
1249
|
-
|
|
1613
|
+
let t44;
|
|
1614
|
+
if ($[134] !== t43) {
|
|
1615
|
+
t44 = /* @__PURE__ */ jsxDEV(ConnectCard, {
|
|
1250
1616
|
command: "lunora dev",
|
|
1251
|
-
label:
|
|
1617
|
+
label: t43
|
|
1252
1618
|
}, void 0, false);
|
|
1253
|
-
$[133] = t42;
|
|
1254
1619
|
$[134] = t43;
|
|
1620
|
+
$[135] = t44;
|
|
1255
1621
|
} else {
|
|
1256
|
-
|
|
1622
|
+
t44 = $[135];
|
|
1257
1623
|
}
|
|
1258
|
-
let
|
|
1259
|
-
if ($[
|
|
1260
|
-
|
|
1624
|
+
let t45;
|
|
1625
|
+
if ($[136] !== t40 || $[137] !== t42 || $[138] !== t44) {
|
|
1626
|
+
t45 = /* @__PURE__ */ jsxDEV("div", {
|
|
1261
1627
|
className: "grid gap-3 sm:grid-cols-3",
|
|
1262
|
-
children: [
|
|
1628
|
+
children: [t40, t42, t44]
|
|
1263
1629
|
}, void 0, true);
|
|
1264
|
-
$[
|
|
1265
|
-
$[
|
|
1266
|
-
$[137] = t43;
|
|
1630
|
+
$[136] = t40;
|
|
1631
|
+
$[137] = t42;
|
|
1267
1632
|
$[138] = t44;
|
|
1633
|
+
$[139] = t45;
|
|
1268
1634
|
} else {
|
|
1269
|
-
|
|
1635
|
+
t45 = $[139];
|
|
1270
1636
|
}
|
|
1271
|
-
let
|
|
1272
|
-
if ($[
|
|
1273
|
-
|
|
1637
|
+
let t46;
|
|
1638
|
+
if ($[140] !== t38 || $[141] !== t45) {
|
|
1639
|
+
t46 = /* @__PURE__ */ jsxDEV("section", {
|
|
1274
1640
|
className: "flex flex-col gap-3",
|
|
1275
1641
|
"data-testid": "home-get-connected",
|
|
1276
|
-
children: [
|
|
1642
|
+
children: [t38, t45]
|
|
1277
1643
|
}, void 0, true);
|
|
1278
|
-
$[
|
|
1279
|
-
$[140] = t44;
|
|
1644
|
+
$[140] = t38;
|
|
1280
1645
|
$[141] = t45;
|
|
1646
|
+
$[142] = t46;
|
|
1281
1647
|
} else {
|
|
1282
|
-
|
|
1648
|
+
t46 = $[142];
|
|
1283
1649
|
}
|
|
1284
|
-
let
|
|
1285
|
-
if ($[
|
|
1286
|
-
|
|
1650
|
+
let t47;
|
|
1651
|
+
if ($[143] !== t18 || $[144] !== t19 || $[145] !== t26 || $[146] !== t32 || $[147] !== t36 || $[148] !== t46) {
|
|
1652
|
+
t47 = /* @__PURE__ */ jsxDEV("div", {
|
|
1287
1653
|
className: t18,
|
|
1288
1654
|
"data-testid": t19,
|
|
1289
|
-
children: [t26,
|
|
1655
|
+
children: [t26, t27, t32, t36, t46]
|
|
1290
1656
|
}, void 0, true);
|
|
1291
|
-
$[
|
|
1292
|
-
$[
|
|
1293
|
-
$[
|
|
1294
|
-
$[
|
|
1295
|
-
$[
|
|
1296
|
-
$[147] = t45;
|
|
1657
|
+
$[143] = t18;
|
|
1658
|
+
$[144] = t19;
|
|
1659
|
+
$[145] = t26;
|
|
1660
|
+
$[146] = t32;
|
|
1661
|
+
$[147] = t36;
|
|
1297
1662
|
$[148] = t46;
|
|
1663
|
+
$[149] = t47;
|
|
1298
1664
|
} else {
|
|
1299
|
-
|
|
1665
|
+
t47 = $[149];
|
|
1300
1666
|
}
|
|
1301
|
-
return
|
|
1667
|
+
return t47;
|
|
1302
1668
|
};
|
|
1303
1669
|
function _temp(value, index) {
|
|
1304
1670
|
return {
|
|
@@ -1331,4 +1697,4 @@ function _temp4(function_) {
|
|
|
1331
1697
|
return function_.maxDurationMs;
|
|
1332
1698
|
}
|
|
1333
1699
|
|
|
1334
|
-
export { HomePanel };
|
|
1700
|
+
export { HomePanel as H, useStudioFeatures as u };
|