@inpageedit/core 0.14.3 → 0.14.4
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/{PluginStoreApp-qiSVtnBy.js → PluginStoreApp-MbC3G9tu.js} +88 -84
- package/dist/PluginStoreApp-MbC3G9tu.js.map +1 -0
- package/dist/{index-DrIf5j8O.js → index-B3jld2sl.js} +2 -2
- package/dist/{index-DrIf5j8O.js.map → index-B3jld2sl.js.map} +1 -1
- package/dist/{index-MgXERLzL.js → index-BdHmr8jw.js} +3 -3
- package/dist/{index-MgXERLzL.js.map → index-BdHmr8jw.js.map} +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.js +2 -2
- package/dist/plugins/index.js +1 -1
- package/dist/services/index.js +1 -1
- package/dist/style.css +1 -1
- package/lib/index.umd.js +10 -10
- package/lib/index.umd.js.map +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/dist/PluginStoreApp-qiSVtnBy.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as K, l as P, e as d, h as u, y as U, C as te, k as G, r as w, f as q, q as i, D as L, z as
|
|
1
|
+
import { a as K, l as P, e as d, h as u, y as U, C as te, k as G, r as w, f as q, q as i, D as L, z as c, B as p, E as Y, G as J, H as D, I as F, F as Q, x as W, v as A, g as ie } from "./vueHooks-l04s8cIl.js";
|
|
2
2
|
import { c as T } from "./index-CM_6yF2v.js";
|
|
3
3
|
import { E as re } from "./Preferences-C10tZMl1.js";
|
|
4
4
|
import { _ as O } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
@@ -9,17 +9,17 @@ const H = /* @__PURE__ */ K({
|
|
|
9
9
|
active: { type: Boolean, default: !1 }
|
|
10
10
|
},
|
|
11
11
|
setup(x) {
|
|
12
|
-
const t = x,
|
|
12
|
+
const t = x, o = P(() => ({
|
|
13
13
|
"is-active": t.active,
|
|
14
14
|
"is-danger": t.variant === "danger",
|
|
15
15
|
"is-primary": t.variant === "primary",
|
|
16
16
|
"is-ghost": t.variant === "ghost",
|
|
17
17
|
"is-accent": t.variant === "accent"
|
|
18
18
|
}));
|
|
19
|
-
return (
|
|
20
|
-
class: U(["ipeps-button",
|
|
19
|
+
return (y, v) => (u(), d("button", {
|
|
20
|
+
class: U(["ipeps-button", o.value])
|
|
21
21
|
}, [
|
|
22
|
-
te(
|
|
22
|
+
te(y.$slots, "default")
|
|
23
23
|
], 2));
|
|
24
24
|
}
|
|
25
25
|
}), ne = { id: "ipe-registry-manager" }, ae = { class: "ipeps-header" }, oe = { class: "ipeps-header-title" }, le = { class: "ipeps-input-wrapper" }, ce = ["placeholder", "disabled"], de = {
|
|
@@ -31,7 +31,7 @@ const H = /* @__PURE__ */ K({
|
|
|
31
31
|
}, ke = { class: "text" }, be = { class: "description" }, $e = /* @__PURE__ */ K({
|
|
32
32
|
__name: "RegistryManager",
|
|
33
33
|
setup(x) {
|
|
34
|
-
const t = G(),
|
|
34
|
+
const t = G(), o = t.$, y = t.$$, v = w([]), _ = w(""), k = w(!1), b = (a) => {
|
|
35
35
|
try {
|
|
36
36
|
return new URL(a).hostname;
|
|
37
37
|
} catch {
|
|
@@ -39,39 +39,39 @@ const H = /* @__PURE__ */ K({
|
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
async function $() {
|
|
42
|
-
const a = await t.preferences.get("pluginStore.registries") || [],
|
|
42
|
+
const a = await t.preferences.get("pluginStore.registries") || [], l = await Promise.allSettled(
|
|
43
43
|
a.map(async (n) => {
|
|
44
|
-
const
|
|
44
|
+
const f = await t.store.getRegistryInfo(n);
|
|
45
45
|
return {
|
|
46
46
|
registryUrl: n,
|
|
47
47
|
label: b(n),
|
|
48
|
-
...
|
|
48
|
+
...f
|
|
49
49
|
};
|
|
50
50
|
})
|
|
51
51
|
);
|
|
52
|
-
|
|
52
|
+
v.value = l.filter((n) => n.status === "fulfilled").map((n) => n.value);
|
|
53
53
|
}
|
|
54
54
|
async function M() {
|
|
55
55
|
const a = _.value.trim();
|
|
56
56
|
if (a) {
|
|
57
|
-
if (
|
|
57
|
+
if (v.value.some((l) => l.registryUrl === a)) {
|
|
58
58
|
t.modal.notify("info", { content: "Registry already exists." });
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
61
|
k.value = !0;
|
|
62
62
|
try {
|
|
63
|
-
const
|
|
64
|
-
if (!
|
|
63
|
+
const l = await t.store.getRegistryInfo(a, "online_manifest", !0);
|
|
64
|
+
if (!l)
|
|
65
65
|
throw new Error("Invalid registry or unreachable");
|
|
66
66
|
const n = await t.preferences.get("pluginStore.registries") || [];
|
|
67
|
-
n.push(a), await t.preferences.set("pluginStore.registries", n),
|
|
67
|
+
n.push(a), await t.preferences.set("pluginStore.registries", n), v.value.push({
|
|
68
68
|
registryUrl: a,
|
|
69
69
|
label: b(a),
|
|
70
|
-
...
|
|
70
|
+
...l
|
|
71
71
|
}), _.value = "", t.modal.notify("success", { content: "Registry added." });
|
|
72
|
-
} catch (
|
|
72
|
+
} catch (l) {
|
|
73
73
|
t.modal.notify("error", {
|
|
74
|
-
content:
|
|
74
|
+
content: l instanceof Error ? l.message : String(l)
|
|
75
75
|
});
|
|
76
76
|
} finally {
|
|
77
77
|
k.value = !1;
|
|
@@ -79,57 +79,61 @@ const H = /* @__PURE__ */ K({
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
async function h(a) {
|
|
82
|
-
const n = (await t.preferences.get("pluginStore.registries") || []).filter((
|
|
83
|
-
await t.preferences.set("pluginStore.registries", n),
|
|
82
|
+
const n = (await t.preferences.get("pluginStore.registries") || []).filter((f) => f !== a);
|
|
83
|
+
await t.preferences.set("pluginStore.registries", n), v.value = v.value.filter((f) => f.registryUrl !== a);
|
|
84
84
|
}
|
|
85
85
|
async function N(a) {
|
|
86
|
-
const n = (await t.preferences.get("pluginStore.plugins") || []).filter((
|
|
86
|
+
const n = (await t.preferences.get("pluginStore.plugins") || []).filter((f) => f.registry === a);
|
|
87
87
|
if (n.length === 0) {
|
|
88
88
|
t.modal.confirm(
|
|
89
89
|
{
|
|
90
|
-
title:
|
|
91
|
-
content:
|
|
90
|
+
title: y`plugin-store.remove-registry.title`,
|
|
91
|
+
content: y`plugin-store.remove-registry.tip-content` + `
|
|
92
92
|
${a}`,
|
|
93
93
|
cancelBtn: {
|
|
94
|
-
label:
|
|
94
|
+
label: o`Cancel`,
|
|
95
95
|
className: "is-ghost"
|
|
96
96
|
},
|
|
97
97
|
okBtn: {
|
|
98
|
-
label:
|
|
98
|
+
label: o`Remove`,
|
|
99
99
|
className: "is-danger"
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
|
-
async (
|
|
103
|
-
|
|
102
|
+
async (f) => {
|
|
103
|
+
f && (await h(a), t.modal.notify("success", { content: y`plugin-store.remove-registry.remove-success` }));
|
|
104
104
|
}
|
|
105
105
|
);
|
|
106
106
|
return;
|
|
107
107
|
}
|
|
108
108
|
t.modal.dialog(
|
|
109
109
|
{
|
|
110
|
-
title:
|
|
110
|
+
title: y`plugin-store.remove-registry.title`,
|
|
111
111
|
content: T("div", { class: "theme-ipe-prose" }, [
|
|
112
|
-
T(
|
|
112
|
+
T(
|
|
113
|
+
"p",
|
|
114
|
+
{},
|
|
115
|
+
y({ count: n.length })`plugin-store.remove-registry.confirm-content`
|
|
116
|
+
),
|
|
113
117
|
T(
|
|
114
118
|
"ul",
|
|
115
119
|
{},
|
|
116
|
-
n.map((
|
|
120
|
+
n.map((f) => T("li", {}, f.id))
|
|
117
121
|
)
|
|
118
122
|
]),
|
|
119
123
|
buttons: [
|
|
120
124
|
{
|
|
121
|
-
label:
|
|
125
|
+
label: y`plugin-store.remove-registry.buttons.remove-only`,
|
|
122
126
|
className: "is-danger is-ghost",
|
|
123
|
-
method: async (
|
|
127
|
+
method: async (f, I) => {
|
|
124
128
|
await h(a), t.modal.notify("success", {
|
|
125
|
-
content:
|
|
129
|
+
content: y`plugin-store.remove-registry.remove-success`
|
|
126
130
|
}), I.close();
|
|
127
131
|
}
|
|
128
132
|
},
|
|
129
133
|
{
|
|
130
|
-
label:
|
|
134
|
+
label: y`plugin-store.remove-registry.buttons.remove-and-uninstall`,
|
|
131
135
|
className: "is-danger",
|
|
132
|
-
method: async (
|
|
136
|
+
method: async (f, I) => {
|
|
133
137
|
await h(a);
|
|
134
138
|
for (const C of n)
|
|
135
139
|
try {
|
|
@@ -140,7 +144,7 @@ ${a}`,
|
|
|
140
144
|
});
|
|
141
145
|
}
|
|
142
146
|
t.modal.notify("success", {
|
|
143
|
-
content:
|
|
147
|
+
content: y({
|
|
144
148
|
$1: n.length
|
|
145
149
|
})`plugin-store.remove-registry.remove-with-plugins-success`
|
|
146
150
|
}), I.close();
|
|
@@ -153,8 +157,8 @@ ${a}`,
|
|
|
153
157
|
);
|
|
154
158
|
}
|
|
155
159
|
function B(a) {
|
|
156
|
-
const
|
|
157
|
-
Array.isArray(
|
|
160
|
+
const l = a.changes["pluginStore.registries"];
|
|
161
|
+
Array.isArray(l) && $();
|
|
158
162
|
}
|
|
159
163
|
function E() {
|
|
160
164
|
const a = re.PLUGIN_REGISTRY_URL;
|
|
@@ -162,15 +166,15 @@ ${a}`,
|
|
|
162
166
|
}
|
|
163
167
|
return q(() => {
|
|
164
168
|
$(), t.on("preferences/changed", B);
|
|
165
|
-
}), (a,
|
|
169
|
+
}), (a, l) => (u(), d("div", ne, [
|
|
166
170
|
i("div", ae, [
|
|
167
|
-
i("div", oe,
|
|
171
|
+
i("div", oe, c(p(o)`Registries`), 1),
|
|
168
172
|
i("div", le, [
|
|
169
173
|
Y(i("input", {
|
|
170
174
|
class: "ipeps-input with-icon",
|
|
171
|
-
"onUpdate:modelValue":
|
|
175
|
+
"onUpdate:modelValue": l[0] || (l[0] = (n) => _.value = n),
|
|
172
176
|
type: "url",
|
|
173
|
-
placeholder:
|
|
177
|
+
placeholder: p(o)`Add registry URL` + " (https://...)",
|
|
174
178
|
disabled: k.value
|
|
175
179
|
}, null, 8, ce), [
|
|
176
180
|
[
|
|
@@ -180,7 +184,7 @@ ${a}`,
|
|
|
180
184
|
{ trim: !0 }
|
|
181
185
|
]
|
|
182
186
|
]),
|
|
183
|
-
|
|
187
|
+
l[1] || (l[1] = i("div", { class: "ipeps-input-icon" }, "📦", -1))
|
|
184
188
|
]),
|
|
185
189
|
L(H, {
|
|
186
190
|
onClick: M,
|
|
@@ -188,45 +192,45 @@ ${a}`,
|
|
|
188
192
|
variant: "primary"
|
|
189
193
|
}, {
|
|
190
194
|
default: D(() => [
|
|
191
|
-
F(
|
|
195
|
+
F(c(k.value ? p(o)`Adding...` : p(o)`Add`), 1)
|
|
192
196
|
]),
|
|
193
197
|
_: 1
|
|
194
198
|
}, 8, ["disabled"])
|
|
195
199
|
]),
|
|
196
|
-
|
|
197
|
-
(u(!0), d(Q, null, W(
|
|
200
|
+
v.value.length ? (u(), d("div", de, [
|
|
201
|
+
(u(!0), d(Q, null, W(v.value, (n) => (u(), d("div", {
|
|
198
202
|
class: "ipeps-item",
|
|
199
203
|
key: n.registryUrl
|
|
200
204
|
}, [
|
|
201
205
|
i("div", ue, [
|
|
202
|
-
i("div", ge,
|
|
206
|
+
i("div", ge, c(n.label), 1),
|
|
203
207
|
i("div", pe, [
|
|
204
208
|
i("div", ye, [
|
|
205
209
|
n.homepage ? (u(), d("a", {
|
|
206
210
|
key: 0,
|
|
207
211
|
href: n.homepage,
|
|
208
212
|
target: "_blank"
|
|
209
|
-
},
|
|
213
|
+
}, c(n.homepage), 9, ve)) : A("", !0)
|
|
210
214
|
]),
|
|
211
|
-
i("div", fe,
|
|
215
|
+
i("div", fe, c(n.registryUrl), 1)
|
|
212
216
|
]),
|
|
213
|
-
i("div", me,
|
|
217
|
+
i("div", me, c(n.packages.length) + " packages", 1)
|
|
214
218
|
]),
|
|
215
219
|
i("div", _e, [
|
|
216
220
|
L(H, {
|
|
217
|
-
onClick: (
|
|
221
|
+
onClick: (f) => N(n.registryUrl),
|
|
218
222
|
variant: "danger"
|
|
219
223
|
}, {
|
|
220
224
|
default: D(() => [
|
|
221
|
-
F(
|
|
225
|
+
F(c(p(o)`Remove`), 1)
|
|
222
226
|
]),
|
|
223
227
|
_: 1
|
|
224
228
|
}, 8, ["onClick"])
|
|
225
229
|
])
|
|
226
230
|
]))), 128))
|
|
227
231
|
])) : (u(), d("div", he, [
|
|
228
|
-
|
|
229
|
-
i("div", ke,
|
|
232
|
+
l[2] || (l[2] = i("div", { class: "icon" }, "🗂️", -1)),
|
|
233
|
+
i("div", ke, c(p(o)`No registries configured`), 1),
|
|
230
234
|
i("div", be, [
|
|
231
235
|
L(H, {
|
|
232
236
|
onClick: E,
|
|
@@ -234,7 +238,7 @@ ${a}`,
|
|
|
234
238
|
style: { padding: "0.25rem 0.5rem" }
|
|
235
239
|
}, {
|
|
236
240
|
default: D(() => [
|
|
237
|
-
F(
|
|
241
|
+
F(c(p(o)`Setup default registry`), 1)
|
|
238
242
|
]),
|
|
239
243
|
_: 1
|
|
240
244
|
})
|
|
@@ -242,7 +246,7 @@ ${a}`,
|
|
|
242
246
|
]))
|
|
243
247
|
]));
|
|
244
248
|
}
|
|
245
|
-
}), Re = /* @__PURE__ */ O($e, [["__scopeId", "data-v-
|
|
249
|
+
}), Re = /* @__PURE__ */ O($e, [["__scopeId", "data-v-0245c97d"]]), we = { id: "ipe-plugin-install-manager" }, Se = { class: "ipeps-header" }, Ue = { class: "ipeps-header-title" }, Ce = { class: "ipeps-input-wrapper" }, Pe = ["placeholder", "disabled"], Le = ["disabled"], Be = {
|
|
246
250
|
key: 0,
|
|
247
251
|
class: "ipeps-loading"
|
|
248
252
|
}, Ie = { class: "loading-text" }, Ae = {
|
|
@@ -263,7 +267,7 @@ ${a}`,
|
|
|
263
267
|
}, je = { class: "plugin-empty-text" }, ze = /* @__PURE__ */ K({
|
|
264
268
|
__name: "PluginInstallManager",
|
|
265
269
|
setup(x) {
|
|
266
|
-
const t = G(),
|
|
270
|
+
const t = G(), o = t.$, y = t.$$, v = w([]), _ = w([]), k = w(""), b = w(!1), $ = (s, r) => `${s}
|
|
267
271
|
${r}`, M = P(
|
|
268
272
|
() => new Set(_.value.map((s) => $(s.registry, s.id)))
|
|
269
273
|
), h = (s) => M.value.has(s), N = (s) => {
|
|
@@ -272,8 +276,8 @@ ${r}`, M = P(
|
|
|
272
276
|
} catch {
|
|
273
277
|
return s;
|
|
274
278
|
}
|
|
275
|
-
}, B = w(!1), E = P(() =>
|
|
276
|
-
() =>
|
|
279
|
+
}, B = w(!1), E = P(() => v.value.length > 0), a = P(
|
|
280
|
+
() => v.value.flatMap(
|
|
277
281
|
(s) => (s.packages || []).map((r) => ({
|
|
278
282
|
...r,
|
|
279
283
|
_key: $(s.registryUrl, r.id),
|
|
@@ -284,9 +288,9 @@ ${r}`, M = P(
|
|
|
284
288
|
isRegistryMissing: !1
|
|
285
289
|
}))
|
|
286
290
|
)
|
|
287
|
-
),
|
|
288
|
-
const s = k.value.trim().toLowerCase(), r = a.value, e = new Set(r.map((g) => g._key)), R = new Set(
|
|
289
|
-
const m =
|
|
291
|
+
), l = P(() => {
|
|
292
|
+
const s = k.value.trim().toLowerCase(), r = a.value, e = new Set(r.map((g) => g._key)), R = new Set(v.value.map((g) => g.registryUrl)), S = _.value.filter((g) => !e.has($(g.registry, g.id))).map((g) => {
|
|
293
|
+
const m = v.value.find((se) => se.registryUrl === g.registry);
|
|
290
294
|
return {
|
|
291
295
|
id: g.id,
|
|
292
296
|
name: void 0,
|
|
@@ -305,13 +309,13 @@ ${r}`, M = P(
|
|
|
305
309
|
(m) => m.name && m.name.toLowerCase().includes(s) || m.id && m.id.toLowerCase().includes(s) || m.description && m.description.toLowerCase().includes(s) || m.author && m.author.toLowerCase().includes(s) || m.registry && m.registry.toLowerCase().includes(s)
|
|
306
310
|
) : g;
|
|
307
311
|
return [...z(S), ...z(r)];
|
|
308
|
-
}), n = P(() =>
|
|
312
|
+
}), n = P(() => l.value), f = (s) => s.description ? s.description : s.isBroken ? s.isRegistryMissing ? y`plugin-store.broken.registry-unavailable` : y`plugin-store.broken.plugin-removed` : "", I = async (s, r) => {
|
|
309
313
|
t.store.installAndSetPreference(s, r);
|
|
310
314
|
}, C = async (s, r) => {
|
|
311
315
|
t.store.uninstallAndRemovePreference(s, r);
|
|
312
316
|
}, V = (s, r) => h($(s, r)) ? C(s, r) : I(s, r), X = (s) => V(s.registry, s.id), Z = async () => {
|
|
313
317
|
if (b.value) return;
|
|
314
|
-
if (
|
|
318
|
+
if (v.value.length === 0) {
|
|
315
319
|
t.modal.notify("info", {
|
|
316
320
|
content: "No registry configured. Please add a registry first."
|
|
317
321
|
});
|
|
@@ -319,7 +323,7 @@ ${r}`, M = P(
|
|
|
319
323
|
}
|
|
320
324
|
b.value = !0;
|
|
321
325
|
const s = await t.store.refreshAllRegistryCaches(), r = Object.entries(s).filter(([R, S]) => S !== null);
|
|
322
|
-
|
|
326
|
+
v.value = r.map(([R, S]) => ({
|
|
323
327
|
...S,
|
|
324
328
|
registryUrl: R
|
|
325
329
|
}));
|
|
@@ -341,7 +345,7 @@ ${e.join(`
|
|
|
341
345
|
registryUrl: e
|
|
342
346
|
}))
|
|
343
347
|
);
|
|
344
|
-
|
|
348
|
+
v.value = r.filter((e) => e.status === "fulfilled").map((e) => e.value), _.value = await t.preferences.get("pluginStore.plugins") || [], B.value = !0;
|
|
345
349
|
};
|
|
346
350
|
function ee(s) {
|
|
347
351
|
const r = s.changes["pluginStore.registries"], e = s.changes["pluginStore.plugins"];
|
|
@@ -352,13 +356,13 @@ ${e.join(`
|
|
|
352
356
|
}), ie(() => {
|
|
353
357
|
}), (s, r) => (u(), d("div", we, [
|
|
354
358
|
i("div", Se, [
|
|
355
|
-
i("div", Ue,
|
|
359
|
+
i("div", Ue, c(p(o)`Plugins`), 1),
|
|
356
360
|
i("div", Ce, [
|
|
357
361
|
Y(i("input", {
|
|
358
362
|
class: "ipeps-input with-icon",
|
|
359
363
|
"onUpdate:modelValue": r[0] || (r[0] = (e) => k.value = e),
|
|
360
364
|
type: "text",
|
|
361
|
-
placeholder:
|
|
365
|
+
placeholder: p(o)`Search plugins...`,
|
|
362
366
|
disabled: !a.value.length
|
|
363
367
|
}, null, 8, Pe), [
|
|
364
368
|
[
|
|
@@ -375,11 +379,11 @@ ${e.join(`
|
|
|
375
379
|
onClick: Z,
|
|
376
380
|
disabled: b.value || !E.value,
|
|
377
381
|
variant: "primary"
|
|
378
|
-
},
|
|
382
|
+
}, c(b.value ? p(o)`Refreshing...` : p(o)`Refresh`), 11, Le)
|
|
379
383
|
]),
|
|
380
384
|
!E.value && !B.value ? (u(), d("div", Be, [
|
|
381
385
|
r[2] || (r[2] = i("div", { class: "loading-spinner" }, null, -1)),
|
|
382
|
-
i("div", Ie,
|
|
386
|
+
i("div", Ie, c(p(o)`Loading...`), 1)
|
|
383
387
|
])) : n.value.length ? (u(), d("div", Ae, [
|
|
384
388
|
(u(!0), d(Q, null, W(n.value, (e) => (u(), d("div", {
|
|
385
389
|
class: U(["ipeps-item", { installed: h(e._key), broken: e.isBroken }]),
|
|
@@ -387,11 +391,11 @@ ${e.join(`
|
|
|
387
391
|
}, [
|
|
388
392
|
i("div", xe, [
|
|
389
393
|
i("div", Me, [
|
|
390
|
-
i("div", Ne,
|
|
394
|
+
i("div", Ne, c(e.name || e.id), 1),
|
|
391
395
|
h(e._key) || e.isBroken ? (u(), d("span", {
|
|
392
396
|
key: 0,
|
|
393
397
|
class: U(["ipeps-badge", { "is-installed": h(e._key), "is-broken": e.isBroken }])
|
|
394
|
-
},
|
|
398
|
+
}, c(e.isBroken ? p(y)`plugin-store.tags.broken` : p(y)`plugin-store.tags.installed`), 3)) : A("", !0)
|
|
395
399
|
]),
|
|
396
400
|
i("div", Ee, [
|
|
397
401
|
e.registryHomepage && !e.isRegistryMissing ? (u(), d("a", {
|
|
@@ -400,22 +404,22 @@ ${e.join(`
|
|
|
400
404
|
href: e.registryHomepage,
|
|
401
405
|
target: "_blank",
|
|
402
406
|
title: e.registryLabel
|
|
403
|
-
},
|
|
407
|
+
}, c(e.registryLabel), 9, Ve)) : (u(), d("span", {
|
|
404
408
|
key: 1,
|
|
405
409
|
class: U(["ipeps-tag registry-tag", { broken: e.isRegistryMissing }]),
|
|
406
410
|
title: e.registryLabel
|
|
407
|
-
},
|
|
411
|
+
}, c(e.registryLabel), 11, Te)),
|
|
408
412
|
i("div", {
|
|
409
413
|
class: U(["plugin-id ipeps-tag", { broken: e.isBroken && !e.isRegistryMissing }])
|
|
410
|
-
},
|
|
414
|
+
}, c(e.id), 3)
|
|
411
415
|
]),
|
|
412
416
|
i("div", {
|
|
413
417
|
class: U(["plugin-desc", { "broken-desc": e.isBroken }])
|
|
414
|
-
},
|
|
418
|
+
}, c(f(e)), 3),
|
|
415
419
|
i("div", De, [
|
|
416
|
-
e.version ? (u(), d("span", Fe, "v" +
|
|
417
|
-
e.author ? (u(), d("span", He, "👤 " +
|
|
418
|
-
e.license ? (u(), d("span", Ke, "📜 " +
|
|
420
|
+
e.version ? (u(), d("span", Fe, "v" + c(e.version), 1)) : A("", !0),
|
|
421
|
+
e.author ? (u(), d("span", He, "👤 " + c(e.author), 1)) : A("", !0),
|
|
422
|
+
e.license ? (u(), d("span", Ke, "📜 " + c(e.license), 1)) : A("", !0)
|
|
419
423
|
])
|
|
420
424
|
]),
|
|
421
425
|
L(H, {
|
|
@@ -424,23 +428,23 @@ ${e.join(`
|
|
|
424
428
|
onClick: (R) => X(e)
|
|
425
429
|
}, {
|
|
426
430
|
default: D(() => [
|
|
427
|
-
F(
|
|
431
|
+
F(c(h(e._key) ? p(o)`Remove` : p(o)`Install`), 1)
|
|
428
432
|
]),
|
|
429
433
|
_: 2
|
|
430
434
|
}, 1032, ["active", "variant", "onClick"])
|
|
431
435
|
], 2))), 128))
|
|
432
436
|
])) : (u(), d("div", Oe, [
|
|
433
437
|
r[3] || (r[3] = i("div", { class: "plugin-empty-icon" }, "📦", -1)),
|
|
434
|
-
i("div", je,
|
|
438
|
+
i("div", je, c(p(o)`No matching plugins found`), 1)
|
|
435
439
|
]))
|
|
436
440
|
]));
|
|
437
441
|
}
|
|
438
|
-
}), Ge = /* @__PURE__ */ O(ze, [["__scopeId", "data-v-
|
|
442
|
+
}), Ge = /* @__PURE__ */ O(ze, [["__scopeId", "data-v-d3aab2b1"]]), qe = { id: "ipe-plugin-store-app" }, Ye = /* @__PURE__ */ K({
|
|
439
443
|
__name: "PluginStoreApp",
|
|
440
444
|
setup(x) {
|
|
441
|
-
return (t,
|
|
445
|
+
return (t, o) => (u(), d("div", qe, [
|
|
442
446
|
L(Ge),
|
|
443
|
-
|
|
447
|
+
o[0] || (o[0] = i("div", { class: "divider-wrapper" }, [
|
|
444
448
|
i("hr", { class: "divider" })
|
|
445
449
|
], -1)),
|
|
446
450
|
L(Re)
|
|
@@ -450,4 +454,4 @@ ${e.join(`
|
|
|
450
454
|
export {
|
|
451
455
|
Ze as default
|
|
452
456
|
};
|
|
453
|
-
//# sourceMappingURL=PluginStoreApp-
|
|
457
|
+
//# sourceMappingURL=PluginStoreApp-MbC3G9tu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginStoreApp-MbC3G9tu.js","sources":["../src/plugins/plugin-store/components/ui/UIBaseButton.vue","../src/plugins/plugin-store/components/RegistryManager.vue","../src/plugins/plugin-store/components/PluginInstallManager.vue"],"sourcesContent":["<template lang=\"pug\">\nbutton.ipeps-button(:class='buttonClass')\n slot\n</template>\n\n<script setup lang=\"ts\" vapor>\nimport { computed } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n variant?: 'neutral' | 'primary' | 'danger' | 'ghost' | 'accent'\n active?: boolean\n }>(),\n {\n variant: 'neutral',\n active: false,\n }\n)\n\nconst buttonClass = computed(() => ({\n 'is-active': props.active,\n 'is-danger': props.variant === 'danger',\n 'is-primary': props.variant === 'primary',\n 'is-ghost': props.variant === 'ghost',\n 'is-accent': props.variant === 'accent',\n}))\n</script>\n","<template lang=\"pug\">\n#ipe-registry-manager\n .ipeps-header\n .ipeps-header-title {{ $`Registries` }}\n .ipeps-input-wrapper\n input.ipeps-input.with-icon(\n v-model.trim='inputValue',\n type='url',\n :placeholder='$`Add registry URL` + ` (https://...)`',\n :disabled='isAdding'\n )\n .ipeps-input-icon 📦\n UIBaseButton(@click='onAddRegistry', :disabled='isAdding || !inputValue', variant='primary') {{ isAdding ? $`Adding...` : $`Add` }}\n\n .ipeps-list(v-if='registries.length')\n .ipeps-item(v-for='reg in registries', :key='reg.registryUrl')\n .registry-info\n .item-name {{ reg.label }}\n .item-desc\n .homepage: a(v-if='reg.homepage', :href='reg.homepage', target='_blank') {{ reg.homepage }}\n .url {{ reg.registryUrl }}\n .item-meta {{ reg.packages.length }} packages\n .ipeps-actions\n UIBaseButton(@click='onRemoveRegistry(reg.registryUrl)', variant='danger') {{ $`Remove` }}\n .ipeps-empty(v-else)\n .icon 🗂️\n .text {{ $`No registries configured` }}\n .description\n UIBaseButton(\n @click='onAddOfficialRegistry',\n variant='primary',\n style='padding: 0.25rem 0.5rem'\n ) {{ $`Setup default registry` }}\n</template>\n\n<script setup lang=\"ts\" vapor>\nimport { onMounted, ref } from 'vue'\nimport { h } from 'jsx-dom'\nimport type { PluginStoreRegistry } from '../schema.js'\nimport UIBaseButton from './ui/UIBaseButton.vue'\n\nconst ctx = useIPE()\nconst $ = ctx.$\nconst $$ = ctx.$$\n\ninterface RegistryViewModel extends PluginStoreRegistry {\n registryUrl: string\n label: string\n}\n\nconst registries = ref<RegistryViewModel[]>([])\nconst inputValue = ref('')\nconst isAdding = ref(false)\n\nconst urlToLabel = (u: string) => {\n try {\n return new URL(u).hostname\n } catch {\n return u\n }\n}\n\nasync function loadRegistries() {\n const urls = (await ctx.preferences.get<string[]>('pluginStore.registries')) || []\n const results = await Promise.allSettled(\n urls.map(async (url) => {\n const info = await ctx.store.getRegistryInfo(url)\n return {\n registryUrl: url,\n label: urlToLabel(url),\n ...info,\n } as RegistryViewModel\n })\n )\n registries.value = results\n .filter((r) => r.status === 'fulfilled')\n .map((r) => (r as PromiseFulfilledResult<RegistryViewModel>).value)\n}\n\nasync function onAddRegistry() {\n const url = inputValue.value.trim()\n if (!url) return\n if (registries.value.some((r) => r.registryUrl === url)) {\n ctx.modal.notify('info', { content: 'Registry already exists.' })\n return\n }\n isAdding.value = true\n try {\n // try load immediately\n const info = await ctx.store.getRegistryInfo(url, 'online_manifest', true)\n if (!info) {\n throw new Error('Invalid registry or unreachable')\n }\n const current = (await ctx.preferences.get<string[]>('pluginStore.registries')) || []\n current.push(url)\n await ctx.preferences.set('pluginStore.registries', current)\n registries.value.push({\n registryUrl: url,\n label: urlToLabel(url),\n ...info,\n })\n inputValue.value = ''\n ctx.modal.notify('success', { content: 'Registry added.' })\n } catch (e) {\n ctx.modal.notify('error', {\n content: e instanceof Error ? e.message : String(e),\n })\n } finally {\n isAdding.value = false\n }\n}\n\nasync function removeRegistryUrl(url: string) {\n const current = (await ctx.preferences.get<string[]>('pluginStore.registries')) || []\n const next = current.filter((u) => u !== url)\n await ctx.preferences.set('pluginStore.registries', next)\n registries.value = registries.value.filter((r) => r.registryUrl !== url)\n}\n\nasync function onRemoveRegistry(url: string) {\n const installed =\n (await ctx.preferences.get<{ registry: string; id: string }[]>('pluginStore.plugins')) || []\n const installedOfReg = installed.filter((p) => p.registry === url)\n if (installedOfReg.length === 0) {\n ctx.modal.confirm(\n {\n title: $$`plugin-store.remove-registry.title`,\n content: $$`plugin-store.remove-registry.tip-content` + `\\n${url}`,\n cancelBtn: {\n label: $`Cancel`,\n className: 'is-ghost',\n },\n okBtn: {\n label: $`Remove`,\n className: 'is-danger',\n },\n },\n async (ok) => {\n if (!ok) return\n await removeRegistryUrl(url)\n ctx.modal.notify('success', { content: $$`plugin-store.remove-registry.remove-success` })\n }\n )\n return\n }\n\n ctx.modal.dialog(\n {\n title: $$`plugin-store.remove-registry.title`,\n content: h('div', { class: 'theme-ipe-prose' }, [\n h(\n 'p',\n {},\n $$({ count: installedOfReg.length })`plugin-store.remove-registry.confirm-content`\n ),\n h(\n 'ul',\n {},\n installedOfReg.map((p) => h('li', {}, p.id))\n ),\n ]),\n buttons: [\n {\n label: $$`plugin-store.remove-registry.buttons.remove-only`,\n className: 'is-danger is-ghost',\n method: async (_, m) => {\n await removeRegistryUrl(url)\n ctx.modal.notify('success', {\n content: $$`plugin-store.remove-registry.remove-success`,\n })\n m.close()\n },\n },\n {\n label: $$`plugin-store.remove-registry.buttons.remove-and-uninstall`,\n className: 'is-danger',\n method: async (_, m) => {\n await removeRegistryUrl(url)\n for (const p of installedOfReg) {\n try {\n await ctx.store.uninstallAndRemovePreference(p.registry, p.id)\n } catch (e) {\n // best-effort; notify but continue\n ctx.modal.notify('error', {\n content:\n e instanceof Error\n ? `Failed to uninstall ${p.id}: ${e.message}`\n : `Failed to uninstall ${p.id}`,\n })\n }\n }\n ctx.modal.notify('success', {\n content: $$({\n $1: installedOfReg.length,\n })`plugin-store.remove-registry.remove-with-plugins-success`,\n })\n m.close()\n },\n },\n ],\n },\n () => {}\n )\n}\n\nfunction onPreferencesChanged(payload: { changes: Record<string, unknown> }) {\n const regs = payload.changes['pluginStore.registries'] as string[]\n if (Array.isArray(regs)) {\n loadRegistries()\n }\n}\n\nfunction onAddOfficialRegistry() {\n const url = Endpoints.PLUGIN_REGISTRY_URL\n inputValue.value = url\n onAddRegistry()\n}\n\nonMounted(() => {\n loadRegistries()\n ctx.on('preferences/changed', onPreferencesChanged)\n})\n</script>\n\n<style scoped lang=\"scss\">\n@use './style.scss' as *;\n\n.registry-info {\n flex: 1;\n min-width: 0;\n .homepage {\n margin-top: 0.25rem;\n a {\n color: var(--ipe-modal-accent);\n text-decoration: none;\n font-size: 0.8125rem;\n transition: all 0.2s ease;\n &:hover {\n color: color-mix(in srgb, var(--ipe-modal-accent) 80%, var(--ipe-modal-text));\n text-decoration: underline;\n }\n }\n }\n .url {\n font-family: monospace;\n font-size: 0.75rem;\n color: var(--ipe-modal-muted);\n margin-top: 0.125rem;\n word-break: break-all;\n }\n}\n</style>\n","<template lang=\"pug\">\n#ipe-plugin-install-manager\n .ipeps-header\n .ipeps-header-title {{ $`Plugins` }}\n .ipeps-input-wrapper\n input.ipeps-input.with-icon(\n v-model.trim='searchInput',\n type='text',\n :placeholder='$`Search plugins...`',\n :disabled='!pluginsFromRegistries.length'\n )\n .ipeps-input-icon 🔍\n button.ipeps-button(\n @click='refreshRegistries',\n :disabled='isRefreshing || !hasRegistries',\n :class='{ refreshing: isRefreshing }',\n variant='primary'\n ) {{ isRefreshing ? $`Refreshing...` : $`Refresh` }}\n\n .ipeps-loading(v-if='!hasRegistries && !firstInit')\n .loading-spinner\n .loading-text {{ $`Loading...` }}\n\n .ipeps-list(v-else-if='allPluginsToDisplay.length')\n .ipeps-item(\n v-for='plugin in allPluginsToDisplay',\n :key='plugin._key',\n :class='{ installed: isInstalledKey(plugin._key), broken: plugin.isBroken }'\n )\n .plugin-info\n .plugin-header\n .item-name {{ plugin.name || plugin.id }}\n span.ipeps-badge(\n v-if='isInstalledKey(plugin._key) || plugin.isBroken',\n :class='{ \"is-installed\": isInstalledKey(plugin._key), \"is-broken\": plugin.isBroken }'\n ) {{ plugin.isBroken ? $$`plugin-store.tags.broken` : $$`plugin-store.tags.installed` }}\n .ipeps-tags\n a.ipeps-tag.registry-tag(\n v-if='plugin.registryHomepage && !plugin.isRegistryMissing',\n :href='plugin.registryHomepage',\n target='_blank',\n :title='plugin.registryLabel'\n ) {{ plugin.registryLabel }}\n span.ipeps-tag.registry-tag(\n v-else,\n :title='plugin.registryLabel',\n :class='{ broken: plugin.isRegistryMissing }'\n ) {{ plugin.registryLabel }}\n .plugin-id.ipeps-tag(:class='{ broken: plugin.isBroken && !plugin.isRegistryMissing }') {{ plugin.id }}\n .plugin-desc(:class='{ \"broken-desc\": plugin.isBroken }') {{ getDesc(plugin) }}\n .plugin-meta\n span.version(v-if='plugin.version') v{{ plugin.version }}\n span.author(v-if='plugin.author') 👤 {{ plugin.author }}\n span.license(v-if='plugin.license') 📜 {{ plugin.license }}\n UIBaseButton(\n :active='isInstalledKey(plugin._key)',\n :variant='isInstalledKey(plugin._key) ? \"danger\" : \"primary\"',\n @click='togglePluginByKey(plugin)'\n ) {{ isInstalledKey(plugin._key) ? $`Remove` : $`Install` }}\n\n .ipeps-empty(v-else)\n .plugin-empty-icon 📦\n .plugin-empty-text {{ $`No matching plugins found` }}\n</template>\n\n<script setup lang=\"ts\" vapor>\nimport { computed, onBeforeUnmount, onMounted, ref } from 'vue'\nimport type { PluginStorePackage, PluginStoreRegistry } from '../schema.js'\nimport UIBaseButton from './ui/UIBaseButton.vue'\n\ninterface RegistryWithUrl extends PluginStoreRegistry {\n registryUrl: string\n}\ninterface PluginIdentifier {\n registry: string\n id: string\n}\n\ninterface PluginViewModel extends PluginStorePackage {\n _key: string\n registry: string\n registryHomepage: string\n registryLabel: string\n isBroken: boolean\n isRegistryMissing: boolean\n}\n\n// --- state ---\nconst ctx = useIPE()\nconst $ = ctx.$\nconst $$ = ctx.$$\nconst registryInfos = ref<RegistryWithUrl[]>([])\nconst installedPlugins = ref<PluginIdentifier[]>([])\nconst searchInput = ref('')\nconst isRefreshing = ref(false)\n\n// helpers\nconst makeKey = (r: string, id: string) => `${r}\\n${id}` // stable + O(1)\n\nconst installedKeySet = computed(\n () => new Set(installedPlugins.value.map((p) => makeKey(p.registry, p.id)))\n)\nconst isInstalledKey = (key: string) => installedKeySet.value.has(key)\n\nconst urlToLabel = (registryUrl: string) => {\n try {\n return new URL(registryUrl).hostname\n } catch {\n return registryUrl\n }\n}\n\nconst firstInit = ref(false)\nconst hasRegistries = computed(() => registryInfos.value.length > 0)\n\nconst pluginsFromRegistries = computed<PluginViewModel[]>(\n () =>\n registryInfos.value.flatMap((reg) =>\n (reg.packages || []).map((pkg) => ({\n ...pkg,\n _key: makeKey(reg.registryUrl, pkg.id),\n registry: reg.registryUrl,\n registryHomepage: reg.homepage,\n registryLabel: urlToLabel(reg.registryUrl),\n isBroken: false,\n isRegistryMissing: false,\n }))\n ) as PluginViewModel[]\n)\n\n// merge normal + broken, and normalize once here\nconst normalizedPlugins = computed(() => {\n const q = searchInput.value.trim().toLowerCase()\n\n const all: Array<any> = pluginsFromRegistries.value\n\n // broken installed plugins (installed but not available now)\n const availableKeys = new Set(all.map((p) => p._key))\n const availableRegs = new Set(registryInfos.value.map((r) => r.registryUrl))\n\n const broken = installedPlugins.value\n .filter((p) => !availableKeys.has(makeKey(p.registry, p.id)))\n .map((p) => {\n const regInfo = registryInfos.value.find((r) => r.registryUrl === p.registry)\n return {\n id: p.id,\n name: undefined,\n description: undefined,\n version: undefined,\n author: undefined,\n license: undefined,\n _key: makeKey(p.registry, p.id),\n registry: p.registry,\n registryHomepage: regInfo?.homepage,\n registryLabel: urlToLabel(p.registry),\n isBroken: true,\n isRegistryMissing: !availableRegs.has(p.registry),\n }\n })\n\n const filtered = (list: any[]) => {\n if (!q) return list\n return list.filter(\n (p) =>\n (p.name && p.name.toLowerCase().includes(q)) ||\n (p.id && p.id.toLowerCase().includes(q)) ||\n (p.description && p.description.toLowerCase().includes(q)) ||\n (p.author && p.author.toLowerCase().includes(q)) ||\n (p.registry && p.registry.toLowerCase().includes(q))\n )\n }\n\n // broken on top\n return [...filtered(broken), ...filtered(all)]\n})\n\nconst allPluginsToDisplay = computed(() => normalizedPlugins.value)\n\nconst getDesc = (p: any) => {\n if (p.description) return p.description\n if (!p.isBroken) return ''\n return p.isRegistryMissing\n ? $$`plugin-store.broken.registry-unavailable`\n : $$`plugin-store.broken.plugin-removed`\n}\n\n// actions\nconst enablePlugin = async (registry: string, id: string) => {\n ctx.store.installAndSetPreference(registry, id)\n}\nconst disablePlugin = async (registry: string, id: string) => {\n ctx.store.uninstallAndRemovePreference(registry, id)\n}\nconst togglePlugin = (registry: string, id: string) =>\n isInstalledKey(makeKey(registry, id)) ? disablePlugin(registry, id) : enablePlugin(registry, id)\nconst togglePluginByKey = (p: any) => togglePlugin(p.registry, p.id)\n\nconst refreshRegistries = async () => {\n if (isRefreshing.value) return\n if (registryInfos.value.length === 0) {\n ctx.modal.notify('info', {\n content: 'No registry configured. Please add a registry first.',\n })\n return\n }\n\n isRefreshing.value = true\n const results = await ctx.store.refreshAllRegistryCaches()\n const okResults = Object.entries(results).filter(([_, r]) => r !== null)\n registryInfos.value = okResults.map(([url, r]) => ({\n ...r!,\n registryUrl: url,\n }))\n const failedUrls = Object.entries(results)\n .filter(([_, r]) => r === null)\n .map(([url]) => url)\n isRefreshing.value = false\n\n if (okResults.length === 0) {\n ctx.modal.notify('error', {\n content: 'All registries failed to refresh',\n })\n } else {\n ctx.modal.notify('success', {\n content: `${okResults.length} ${okResults.length === 1 ? 'registry' : 'registries'} refreshed successfully.`,\n })\n if (failedUrls.length > 0) {\n ctx.modal.notify('warning', {\n content: `${failedUrls.length} ${failedUrls.length === 1 ? 'registry' : 'registries'} failed to refresh:\\n${failedUrls.join('\\n')}`,\n })\n }\n }\n}\n\n// init\nconst init = async () => {\n firstInit.value = false\n const urls = (await ctx.store.ctx.preferences.get('pluginStore.registries')) || []\n const regResults = await Promise.allSettled(\n urls.map(async (url: string) => ({\n ...(await ctx.store.getRegistryInfo(url)),\n registryUrl: url,\n }))\n )\n registryInfos.value = regResults\n .filter((r) => r.status === 'fulfilled')\n .map((r) => (r as PromiseFulfilledResult<RegistryWithUrl>).value)\n\n installedPlugins.value = (await ctx.preferences.get('pluginStore.plugins')) || []\n\n firstInit.value = true\n}\n\nfunction onPreferencesChanged(payload: { changes: Record<string, unknown> }) {\n const regs = payload.changes['pluginStore.registries'] as string[]\n const plugins = payload.changes['pluginStore.plugins'] as PluginIdentifier[]\n if (Array.isArray(plugins)) installedPlugins.value = plugins\n if (Array.isArray(regs)) {\n init()\n }\n}\n\nonMounted(() => {\n init()\n ctx.on('preferences/changed', onPreferencesChanged)\n})\nonBeforeUnmount(() => {})\n</script>\n\n<style scoped lang=\"scss\">\n@use './style.scss' as *;\n\n.plugin-info {\n flex: 1;\n min-width: 0;\n}\n.plugin-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.375rem;\n}\n.registry-tag {\n color: var(--ipe-modal-accent);\n background: color-mix(in srgb, var(--ipe-modal-accent) 8%, transparent);\n border: 1px solid color-mix(in srgb, var(--ipe-modal-accent) 18%, transparent);\n text-decoration: none;\n transition: all 0.2s ease;\n &:hover {\n background: color-mix(in srgb, var(--ipe-modal-accent) 12%, transparent);\n border-color: color-mix(in srgb, var(--ipe-modal-accent) 30%, transparent);\n }\n &.broken {\n text-decoration: line-through;\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n.plugin-id {\n &.broken {\n opacity: 0.65;\n text-decoration: line-through;\n }\n}\n.plugin-desc {\n font-size: 0.8125rem;\n color: var(--ipe-modal-muted);\n margin-bottom: 0.5rem;\n line-height: 1.6;\n &.broken-desc {\n color: color-mix(in srgb, var(--ipe-modal-warning) 80%, var(--ipe-modal-text));\n font-style: italic;\n }\n}\n.plugin-meta {\n font-size: 0.75rem;\n color: var(--ipe-modal-muted);\n display: flex;\n gap: 1rem;\n align-items: center;\n .version {\n font-family: monospace;\n font-weight: 500;\n color: color-mix(in srgb, var(--ipe-modal-text) 80%, var(--ipe-modal-muted));\n }\n .author {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n }\n .license {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n }\n}\n</style>\n"],"names":["props","__props","buttonClass","computed","ctx","useIPE","$","$$","registries","ref","inputValue","isAdding","urlToLabel","u","loadRegistries","urls","results","url","info","r","onAddRegistry","current","e","removeRegistryUrl","next","onRemoveRegistry","installedOfReg","p","ok","h","_","m","onPreferencesChanged","payload","regs","onAddOfficialRegistry","Endpoints","onMounted","registryInfos","installedPlugins","searchInput","isRefreshing","makeKey","id","installedKeySet","isInstalledKey","key","registryUrl","firstInit","hasRegistries","pluginsFromRegistries","reg","pkg","normalizedPlugins","q","all","availableKeys","availableRegs","broken","regInfo","filtered","list","allPluginsToDisplay","getDesc","enablePlugin","registry","disablePlugin","togglePlugin","togglePluginByKey","refreshRegistries","okResults","failedUrls","init","regResults","plugins","onBeforeUnmount"],"mappings":"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"}
|
|
@@ -111,7 +111,7 @@ let w = class x extends (T = L) {
|
|
|
111
111
|
this.install(t.registry, t.id, t.source, "user-preference");
|
|
112
112
|
}
|
|
113
113
|
async _createManagementApp() {
|
|
114
|
-
const e = await this.ctx.withInject(["store"]), t = F(() => import("./PluginStoreApp-
|
|
114
|
+
const e = await this.ctx.withInject(["store"]), t = F(() => import("./PluginStoreApp-MbC3G9tu.js"));
|
|
115
115
|
return O(e, t);
|
|
116
116
|
}
|
|
117
117
|
async _injectPreferenceUI() {
|
|
@@ -388,4 +388,4 @@ let X = w;
|
|
|
388
388
|
export {
|
|
389
389
|
X as PluginPluginStore
|
|
390
390
|
};
|
|
391
|
-
//# sourceMappingURL=index-
|
|
391
|
+
//# sourceMappingURL=index-B3jld2sl.js.map
|