@delta-comic/plugin 2.1.0 → 3.0.0-next.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.
Files changed (62) hide show
  1. package/dist/global-B4SQiBzS.mjs +1446 -0
  2. package/dist/global-B4SQiBzS.mjs.map +1 -0
  3. package/dist/lib/index.d.mts +927 -0
  4. package/dist/lib/index.mjs +535 -0
  5. package/dist/lib/index.mjs.map +1 -0
  6. package/dist/native-CHH-Olpj.mjs +63 -0
  7. package/dist/native-CHH-Olpj.mjs.map +1 -0
  8. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  9. package/dist/runtime-DQbAfFDr.mjs +663 -0
  10. package/dist/runtime-DQbAfFDr.mjs.map +1 -0
  11. package/dist/storage-DMKDlPzl.mjs +351 -0
  12. package/dist/storage-DMKDlPzl.mjs.map +1 -0
  13. package/dist/vite/index.d.mts +33 -0
  14. package/dist/vite/index.mjs +81 -0
  15. package/dist/vite/index.mjs.map +1 -0
  16. package/package.json +30 -37
  17. package/README.md +0 -42
  18. package/dist/core-BF7YwnuZ.js +0 -2
  19. package/dist/core-Czlf2w3A.js +0 -521
  20. package/dist/core-Czlf2w3A.js.map +0 -1
  21. package/dist/index.css +0 -3
  22. package/dist/index.js +0 -6764
  23. package/dist/index.js.map +0 -1
  24. package/dist/lib/config.d.ts +0 -71
  25. package/dist/lib/depends.d.ts +0 -7
  26. package/dist/lib/driver/booter.d.ts +0 -4
  27. package/dist/lib/driver/core.d.ts +0 -67
  28. package/dist/lib/driver/icon.d.ts +0 -3
  29. package/dist/lib/driver/index.d.ts +0 -4
  30. package/dist/lib/driver/init/booter/0_configSetter.d.ts +0 -8
  31. package/dist/lib/driver/init/booter/10_apiTest.d.ts +0 -9
  32. package/dist/lib/driver/init/booter/20_resourceTest.d.ts +0 -8
  33. package/dist/lib/driver/init/booter/30_boot.d.ts +0 -8
  34. package/dist/lib/driver/init/booter/40_auth.d.ts +0 -8
  35. package/dist/lib/driver/init/booter/50_otherProcess.d.ts +0 -8
  36. package/dist/lib/driver/init/booter/utils.d.ts +0 -3
  37. package/dist/lib/driver/init/installer/10_normalUrl.d.ts +0 -12
  38. package/dist/lib/driver/init/installer/20_local.d.ts +0 -12
  39. package/dist/lib/driver/init/installer/30_dev.d.ts +0 -12
  40. package/dist/lib/driver/init/installer/40_github.d.ts +0 -12
  41. package/dist/lib/driver/init/installer/9999_awesome.d.ts +0 -12
  42. package/dist/lib/driver/init/loader/1_userscript.d.ts +0 -11
  43. package/dist/lib/driver/init/loader/2_zip.d.ts +0 -11
  44. package/dist/lib/driver/init/utils.d.ts +0 -29
  45. package/dist/lib/driver/install.d.ts +0 -14
  46. package/dist/lib/driver/loader.d.ts +0 -5
  47. package/dist/lib/driver/store.d.ts +0 -37
  48. package/dist/lib/env/Inject.vue.d.ts +0 -18
  49. package/dist/lib/env/index.d.ts +0 -12
  50. package/dist/lib/global.d.ts +0 -26
  51. package/dist/lib/index.d.ts +0 -6
  52. package/dist/lib/plugin/api.d.ts +0 -8
  53. package/dist/lib/plugin/auth.d.ts +0 -15
  54. package/dist/lib/plugin/content.d.ts +0 -8
  55. package/dist/lib/plugin/index.d.ts +0 -58
  56. package/dist/lib/plugin/otherProgress.d.ts +0 -4
  57. package/dist/lib/plugin/resource.d.ts +0 -5
  58. package/dist/lib/plugin/search.d.ts +0 -75
  59. package/dist/lib/plugin/share.d.ts +0 -26
  60. package/dist/lib/plugin/subscribe.d.ts +0 -15
  61. package/dist/lib/plugin/user.d.ts +0 -47
  62. package/dist/pack.tgz +0 -0
@@ -0,0 +1,927 @@
1
+ import { PluginArchiveDB } from "@delta-comic/db";
2
+ import { App, Component, MaybeRefOrGetter, Raw, Ref } from "vue";
3
+ import { FormConfigure, FormResult, FormSingleConfigure, FormSingleResult, SourcedKeyMap, StreamQuery, uni } from "@delta-comic/model";
4
+ import { DownloadMessageBind } from "@delta-comic/ui";
5
+
6
+ //#region lib/configPointer.d.ts
7
+ type ConfigDescription = Record<string, Required<Pick<FormSingleConfigure, 'defaultValue'>> & FormSingleConfigure>;
8
+ declare class ConfigPointer<T extends ConfigDescription = ConfigDescription> {
9
+ pluginName: string;
10
+ config: T;
11
+ configName: string;
12
+ readonly key: symbol;
13
+ constructor(pluginName: string, config: T, configName: string);
14
+ }
15
+ //#endregion
16
+ //#region lib/i18n.d.ts
17
+ interface PluginLocaleMessage {
18
+ [key: string]: PluginLocaleMessage | string;
19
+ }
20
+ type PluginLocaleMessages = Record<string, PluginLocaleMessage>;
21
+ interface PluginI18nAdapter {
22
+ setLocaleMessage(locale: string, message: PluginLocaleMessage): void;
23
+ translate?(key: string, params?: Record<string, number | string>): string;
24
+ }
25
+ declare class PluginI18nRegistry {
26
+ private adapter?;
27
+ private baseMessages;
28
+ private readonly pluginMessages;
29
+ install(adapter: PluginI18nAdapter, baseMessages: PluginLocaleMessages): void;
30
+ register(plugin: string, messages: PluginLocaleMessages): void;
31
+ remove(plugin: string): void;
32
+ translate(key: string, params?: Record<string, number | string>): string;
33
+ private compose;
34
+ private locales;
35
+ private refresh;
36
+ }
37
+ declare const pluginI18n: PluginI18nRegistry;
38
+ declare const pluginMessageKey: (key: string) => string;
39
+ declare const translatePluginText: (value: string) => string;
40
+ declare namespace share_d_exports {
41
+ export { Config$7 as Config, InitiativeItem, PopupConfig, ShareToken };
42
+ }
43
+ interface Config$7 {
44
+ initiative: InitiativeItem[];
45
+ tokenListen: ShareToken[];
46
+ }
47
+ interface ShareToken {
48
+ key: string;
49
+ name: string;
50
+ patten(chipboard: string): boolean;
51
+ show(chipboard: string): Promise<PopupConfig> | PopupConfig;
52
+ }
53
+ interface PopupConfig {
54
+ title: string;
55
+ detail: string;
56
+ onPositive(): void;
57
+ onNegative(): void;
58
+ }
59
+ interface InitiativeItem {
60
+ key: string;
61
+ name: string;
62
+ icon: Component | uni.image.Image;
63
+ bgColor?: string;
64
+ call(page: uni.content.ContentPage): Promise<{
65
+ token?: string;
66
+ } | void>;
67
+ filter(page: uni.content.ContentPage): boolean;
68
+ }
69
+ declare namespace content_d_exports {
70
+ export { Config$6 as Config };
71
+ }
72
+ type Config$6 = Record<string, {
73
+ itemCard?: uni.item.ItemCardComponent;
74
+ commentRow?: uni.comment.CommentRow;
75
+ layout?: uni.content.LayoutComponent;
76
+ contentPage?: uni.content.ContentPageLike;
77
+ downloadProvider?: uni.download.ContentDownloadProvider;
78
+ itemTranslator?: uni.item.ItemTranslator;
79
+ }>;
80
+ declare namespace subscribe_d_exports {
81
+ export { Config$5 as Config };
82
+ }
83
+ interface Config$5 {
84
+ getUpdateList(olds: {
85
+ author: uni.item.Author;
86
+ list: uni.item.Item[];
87
+ }[], signal: AbortSignal): PromiseLike<{
88
+ isUpdated: boolean;
89
+ whichUpdated: uni.item.Author[];
90
+ }>;
91
+ onAdd?(author: uni.item.Author): any;
92
+ onRemove?(author: uni.item.Author): any;
93
+ fetchAuthorContent: StreamQuery<uni.item.Item, {
94
+ author: uni.item.Author;
95
+ }>;
96
+ }
97
+ declare namespace user_d_exports {
98
+ export { ActionPageItem, Config$4 as Config, UserAction, UserActionPage };
99
+ }
100
+ interface Config$4 {
101
+ edit?: Component;
102
+ card?: uni.user.UserCardComponent;
103
+ authorIcon?: Record<string, Component>;
104
+ /**
105
+ * 1. download
106
+ * 2. upload (收藏那些云端未收藏的漫画)
107
+ */
108
+ syncFavourite?: {
109
+ download: () => PromiseLike<uni.item.Item[]>;
110
+ upload: (items: uni.item.RawItem[]) => PromiseLike<any>;
111
+ };
112
+ /**
113
+ * 你希望展示的(`userActions`)自己的板块的页面
114
+ */
115
+ userActionPages?: UserActionPage[];
116
+ /**
117
+ * 在用户界面,在历史记录那个板块的下方,你希望展示的自己的板块
118
+ */
119
+ userActions?: Record<string, UserAction>;
120
+ }
121
+ interface UserAction {
122
+ call(author: uni.item.Author): any;
123
+ name: string;
124
+ icon?: Component;
125
+ }
126
+ interface UserActionPage {
127
+ title?: string;
128
+ items: ActionPageItem[];
129
+ clickPage?: Component;
130
+ clickText?: string;
131
+ }
132
+ type ActionPageItem = {
133
+ name: string;
134
+ key: string;
135
+ type: 'button';
136
+ icon: Component;
137
+ page: Component;
138
+ } | {
139
+ name: string;
140
+ key: string;
141
+ type: 'statistic';
142
+ icon?: Component;
143
+ value: MaybeRefOrGetter<string | number>;
144
+ };
145
+ declare namespace api_d_exports {
146
+ export { Config$3 as Config };
147
+ }
148
+ interface Config$3 {
149
+ forks: () => PromiseLike<string[]> | string[];
150
+ /**
151
+ * error -> 不可用
152
+ * other -> 可用并比对时间
153
+ */
154
+ test: (fork: string, signal: AbortSignal) => PromiseLike<void>;
155
+ }
156
+ declare namespace otherProgress_d_exports {
157
+ export { Config$2 as Config, OtherProgressRunnerOptions, runOtherProgress };
158
+ }
159
+ interface Config$2 {
160
+ /** Run immediately with adjacent async steps; a trailing async group does not block loading. */
161
+ async?: boolean;
162
+ call: (setDescription: (description: string) => void) => PromiseLike<any>;
163
+ name: string;
164
+ }
165
+ interface OtherProgressRunnerOptions {
166
+ onBackgroundError?: (error: AggregateError) => void;
167
+ setMeta: (meta: {
168
+ description: string;
169
+ name: string;
170
+ }) => void;
171
+ }
172
+ declare const runOtherProgress: (progresses: readonly Config$2[], {
173
+ setMeta,
174
+ onBackgroundError
175
+ }: OtherProgressRunnerOptions) => Promise<void>;
176
+ declare namespace search_d_exports {
177
+ export { Barcode, Category, Config$1 as Config, HotLevelboard, HotMainList, HotSearchItem, HotSearchProvider, HotSearchTarget, HotTopButton, ItemProvider, RouteToContent, SearchMethod, Tabbar };
178
+ }
179
+ interface Config$1 {
180
+ /**
181
+ * @description
182
+ * key: id
183
+ */
184
+ methods?: Record<string, SearchMethod>;
185
+ tabbar?: Tabbar[];
186
+ categories?: Category[];
187
+ hotPage?: {
188
+ levelBoard?: HotLevelboard[];
189
+ topButton?: HotTopButton[];
190
+ mainListCard?: HotMainList[];
191
+ };
192
+ barcode?: Barcode[];
193
+ /** Search landing-page sections supplied by this plugin. */
194
+ hotSearch?: HotSearchProvider[];
195
+ fetchRandomItems?: ItemProvider;
196
+ }
197
+ type ItemProvider = (signal: AbortSignal) => uni.item.Item[] | PromiseLike<uni.item.Item[]>;
198
+ interface SearchMethod {
199
+ name: string;
200
+ sorts: {
201
+ text: string;
202
+ value: string;
203
+ }[];
204
+ defaultSort: string;
205
+ fetchSearchResult: StreamQuery<uni.item.Item, {
206
+ input: string;
207
+ sort: string;
208
+ }>;
209
+ getAutoComplete(input: string, signal: AbortSignal): PromiseLike<({
210
+ text: string;
211
+ value: string;
212
+ } | Component)[]>;
213
+ }
214
+ interface HotSearchTarget {
215
+ /** Search method key declared by the same plugin. */
216
+ method: string;
217
+ /** Falls back to the search method's default sort when omitted. */
218
+ sort?: string;
219
+ }
220
+ interface HotSearchItem {
221
+ text: string;
222
+ /** Search input used after selection. Defaults to `text`. */
223
+ value?: string;
224
+ badge?: {
225
+ text: string;
226
+ tone?: 'accent' | 'warning';
227
+ };
228
+ /** Overrides the provider target for this item. */
229
+ target?: HotSearchTarget;
230
+ }
231
+ interface HotSearchProvider {
232
+ title: string;
233
+ target: HotSearchTarget;
234
+ fetchItems(signal: AbortSignal): PromiseLike<HotSearchItem[]> | HotSearchItem[];
235
+ }
236
+ interface HotLevelboard {
237
+ name: string;
238
+ content: ItemProvider;
239
+ }
240
+ interface HotMainList {
241
+ name: string;
242
+ content: ItemProvider;
243
+ onClick?(): any;
244
+ }
245
+ interface HotTopButton {
246
+ name: string;
247
+ icon: Component;
248
+ bgColor: string;
249
+ onClick?(): any;
250
+ }
251
+ interface Category {
252
+ title: string;
253
+ namespace: string;
254
+ search: {
255
+ methodId: string;
256
+ input: string;
257
+ sort: string;
258
+ };
259
+ }
260
+ interface Tabbar {
261
+ title: string;
262
+ id: string;
263
+ comp: Component<{
264
+ isActive: boolean;
265
+ tabbar: Tabbar;
266
+ }>;
267
+ }
268
+ type RouteToContent = (contentType_: uni.content.ContentType_, id: string, ep: string, preload?: uni.item.Item) => PromiseLike<any>;
269
+ interface Barcode {
270
+ match: (searchText: string) => boolean;
271
+ /**
272
+ * 选中后返回路由信息
273
+ */
274
+ getContent: (searchText: string, signal: AbortSignal) => PromiseLike<Parameters<RouteToContent>>;
275
+ name: string;
276
+ }
277
+ declare namespace auth_d_exports {
278
+ export { CallbackResult, Config, InjectCode, Method };
279
+ }
280
+ interface Config {
281
+ signUp: (by: Method) => PromiseLike<any>;
282
+ logIn: (by: Method) => PromiseLike<any>;
283
+ passSelect: () => PromiseLike<'signUp' | 'logIn' | false>;
284
+ }
285
+ type Method = {
286
+ form<T extends FormConfigure>(form: T): Promise<{ [x in keyof T]: FormSingleResult<T[x]> }>;
287
+ /**
288
+ * @param injectCode 你可以在js调用`callback(...)`来完成鉴权,传值为你给的回调
289
+ */
290
+ website<T>(url: string, injectCode: InjectCode): Promise<CallbackResult<T>>;
291
+ };
292
+ interface InjectCode {
293
+ js: string;
294
+ css: string;
295
+ }
296
+ interface CallbackResult<T> {
297
+ callbackValue: T;
298
+ cookie: string;
299
+ localStorage: Record<string, string>;
300
+ sessionStorage: Record<string, string>;
301
+ href: string;
302
+ title: string;
303
+ }
304
+ declare namespace resource_d_exports {
305
+ export { Content };
306
+ }
307
+ interface Content {
308
+ process?: Record<string, uni.resource.ProcessInstance>;
309
+ types?: uni.resource.ResourceType[];
310
+ }
311
+ //#endregion
312
+ //#region lib/plugin/index.d.ts
313
+ interface PluginConfigValues {
314
+ name: string;
315
+ content?: Config$6;
316
+ resource?: Content;
317
+ api?: Record<string, Config$3>;
318
+ user?: Config$4;
319
+ auth?: Config;
320
+ /** Locale messages are merged in plugin load order; later plugins may override existing keys. */
321
+ i18n?: PluginLocaleMessages;
322
+ otherProgress?: Config$2[];
323
+ search?: Config$1;
324
+ /**
325
+ * 插件的配置项需在此处注册
326
+ * 传入`Store.ConfigPointer`
327
+ */
328
+ config?: ConfigPointer[];
329
+ subscribe?: Record<string, Config$5>;
330
+ share?: Config$7;
331
+ }
332
+ type DefineResult = {
333
+ api?: Record<string, string | undefined | false>;
334
+ };
335
+ type Platform = 'tauri' | 'web';
336
+ interface PluginConfigHooks {
337
+ /** Runs after app.use() registration and before app.mount() for preboot plugins. */
338
+ onPreboot?(context: {
339
+ app: App;
340
+ platform: Platform;
341
+ safe: boolean;
342
+ }): (() => Promise<void> | void) | Promise<(() => Promise<void> | void) | void> | void;
343
+ /**
344
+ * 返回值如果不为空,则会await后作为expose暴露
345
+ */
346
+ onBooted?(ins: DefineResult): (PromiseLike<object> | object) | void;
347
+ /** Runs before a normal plugin is reloaded or the runtime is disposed. */
348
+ onUnload?(): Promise<void> | void;
349
+ /** Runs once before an installed plugin and its persisted files are removed. */
350
+ onUninstall?(): Promise<void> | void;
351
+ }
352
+ type PluginConfig = PluginConfigValues & PluginConfigHooks;
353
+ interface ConfigEnv {
354
+ safe: boolean;
355
+ platform: Platform;
356
+ }
357
+ /**
358
+ * 这仅是个辅助定义的函数,没有副作用
359
+ */
360
+ declare const definePlugin: <T extends PluginConfig>(config: T | PluginConfigFactory<T>) => PluginConfigFactory<T>;
361
+ type PluginExpose<T extends PluginConfig> = ReturnType<T['onBooted'] extends (() => object) ? T['onBooted'] : () => void>;
362
+ type PluginConfigFactory<T extends PluginConfig = PluginConfig> = (env: ConfigEnv) => T;
363
+ interface BuiltInPluginDefinition<T extends PluginConfig = PluginConfig> {
364
+ meta: PluginArchiveDB.Meta;
365
+ config: PluginConfigFactory<T>;
366
+ enabledByDefault?: boolean;
367
+ }
368
+ /** Defines a trusted plugin that is bundled with the application. */
369
+ declare const defineInnerPlugin: <T extends PluginConfig>(definition: BuiltInPluginDefinition<T>) => BuiltInPluginDefinition<T>;
370
+ //#endregion
371
+ //#region lib/config.d.ts
372
+ type ConfigSave<T> = {
373
+ form: ConfigDescription;
374
+ data: Ref<T>;
375
+ name: string;
376
+ ready: Promise<void>;
377
+ };
378
+ declare class ConfigStore {
379
+ readonly form: import("vue").ShallowReactive<Map<symbol, ConfigSave<any>>>;
380
+ private readonly darkMode;
381
+ private readonly isSystemDark;
382
+ get isDark(): boolean;
383
+ constructor();
384
+ $load<T extends ConfigPointer>(pointer: T): ConfigSave<FormResult<T['config']>>;
385
+ $loadApp(): ConfigSave<FormResult<{
386
+ recordHistory: {
387
+ type: "switch";
388
+ defaultValue: true;
389
+ info: string;
390
+ };
391
+ showAIProject: {
392
+ type: "switch";
393
+ defaultValue: true;
394
+ info: string;
395
+ };
396
+ darkMode: {
397
+ type: "radio";
398
+ defaultValue: string;
399
+ info: string;
400
+ comp: "select";
401
+ selects: {
402
+ label: string;
403
+ value: string;
404
+ }[];
405
+ };
406
+ language: {
407
+ type: "radio";
408
+ defaultValue: string;
409
+ info: string;
410
+ comp: "select";
411
+ selects: {
412
+ label: string;
413
+ value: string;
414
+ }[];
415
+ };
416
+ easilyTitle: {
417
+ type: "switch";
418
+ defaultValue: false;
419
+ info: string;
420
+ };
421
+ githubToken: {
422
+ type: "string";
423
+ defaultValue: string;
424
+ info: string;
425
+ placeholder: string;
426
+ };
427
+ receivePerReleaseUpdate: {
428
+ type: "switch";
429
+ defaultValue: false;
430
+ info: string;
431
+ };
432
+ cloudEnabled: {
433
+ type: "switch";
434
+ defaultValue: false;
435
+ info: string;
436
+ };
437
+ cloudServerUrl: {
438
+ type: "string";
439
+ defaultValue: string;
440
+ info: string;
441
+ placeholder: string;
442
+ };
443
+ installOverride: {
444
+ type: "pairs";
445
+ defaultValue: [];
446
+ info: string;
447
+ required: true;
448
+ };
449
+ }>>;
450
+ $isExistConfig(pointer: ConfigPointer): boolean;
451
+ $registerConfig(pointer: ConfigPointer): ConfigSave<any>;
452
+ /** @deprecated Use `$registerConfig`. */
453
+ $resignerConfig(pointer: ConfigPointer): ConfigSave<any>;
454
+ $unregisterConfig(pointer: ConfigPointer): void;
455
+ }
456
+ declare const useConfig: () => ConfigStore;
457
+ //#endregion
458
+ //#region lib/depends.d.ts
459
+ interface DependDefineConstraint<_T> {}
460
+ type DependDefine<T> = symbol & DependDefineConstraint<T> & {
461
+ _ts: T;
462
+ };
463
+ declare const exposeSymbol: (name: string) => symbol;
464
+ declare const declareDepType: <T>(name: string) => DependDefine<T>;
465
+ declare class DependencyRegistry {
466
+ readonly exposes: Map<symbol, unknown>;
467
+ constructor(exposes?: Map<symbol, unknown>);
468
+ provide<T>(define: DependDefine<T>, value: T): T;
469
+ require<T>(define: DependDefine<T>): T;
470
+ has(define: DependDefine<unknown>): boolean;
471
+ delete(define: DependDefine<unknown>): boolean;
472
+ clear(): void;
473
+ }
474
+ type InferDependType<T extends DependDefine<any>> = T['_ts'];
475
+ declare const pluginExposes: Map<symbol, unknown>;
476
+ declare const defaultDependencyRegistry: DependencyRegistry;
477
+ declare const createDependencyRegistry: () => DependencyRegistry;
478
+ declare const provide: <T>(define: DependDefine<T>, value: T) => T;
479
+ declare const require: <T>(define: DependDefine<T>) => T;
480
+ //#endregion
481
+ //#region lib/global.d.ts
482
+ declare class _Global {
483
+ share: import("vue").ShallowReactive<import("vue").ShallowReactive<SourcedKeyMap<[plugin: string, key: string], InitiativeItem>>>;
484
+ shareToken: import("vue").ShallowReactive<import("vue").ShallowReactive<SourcedKeyMap<[plugin: string, key: string], ShareToken>>>;
485
+ userActions: import("vue").ShallowReactive<import("vue").ShallowReactive<SourcedKeyMap<[plugin: string, key: string], UserAction>>>;
486
+ subscribes: import("vue").ShallowReactive<import("vue").ShallowReactive<SourcedKeyMap<[plugin: string, key: string], Config$5>>>;
487
+ globalNodes: import("vue").ShallowReactive<Raw<Component>[]>;
488
+ private readonly globalNodeOwners;
489
+ private readonly registrationOwners;
490
+ /**
491
+ * Associates global registrations made by a plugin with that plugin. The runtime
492
+ * deliberately loads plugins serially while this ambient scope is active.
493
+ */
494
+ withRegistrationOwner<T>(plugin: string, action: () => Promise<T>): Promise<T>;
495
+ private get registrationOwner();
496
+ addGlobalNode(component: Raw<Component>, plugin?: string | undefined): Raw<Component>;
497
+ /** Removes only registrations owned by the requested plugin. */
498
+ removeOwnedRegistrations(plugin: string): void;
499
+ tabbar: import("vue").ShallowReactive<Map<string, Tabbar[]>>;
500
+ addTabbar(plugin: string, ...tabbar: Tabbar[]): void;
501
+ categories: import("vue").ShallowReactive<Map<string, Category[]>>;
502
+ addCategories(plugin: string, ...categories: Category[]): void;
503
+ barcode: import("vue").ShallowReactive<Map<string, Barcode[]>>;
504
+ addBarcode(plugin: string, ...barcode: Barcode[]): void;
505
+ hotSearch: import("vue").ShallowReactive<Map<string, HotSearchProvider[]>>;
506
+ addHotSearch(plugin: string, ...providers: HotSearchProvider[]): void;
507
+ levelboard: import("vue").ShallowReactive<Map<string, HotLevelboard[]>>;
508
+ addLevelboard(plugin: string, ...levelboard: HotLevelboard[]): void;
509
+ topButton: import("vue").ShallowReactive<Map<string, HotTopButton[]>>;
510
+ addTopButton(plugin: string, ...topButton: HotTopButton[]): void;
511
+ mainLists: import("vue").ShallowReactive<Map<string, HotMainList[]>>;
512
+ addMainList(plugin: string, ...mainLists: HotMainList[]): void;
513
+ }
514
+ declare const Global: _Global;
515
+ //#endregion
516
+ //#region lib/manifest.d.ts
517
+ type PluginIconReference = {
518
+ type: 'local';
519
+ path: string;
520
+ fragment: string;
521
+ } | {
522
+ type: 'remote';
523
+ url: string;
524
+ };
525
+ /**
526
+ * Accepts a credential-free HTTP(S) URL or a safe path inside the plugin archive.
527
+ * Query strings and fragments are kept for both forms.
528
+ */
529
+ declare const parsePluginIconReference: (value: unknown, path?: string) => PluginIconReference;
530
+ declare class PluginManifestError extends Error {
531
+ constructor(message: string);
532
+ }
533
+ /**
534
+ * Validates the exact manifest format emitted by the `deltaComic` Vite plugin.
535
+ * The returned value is safe to use as the persisted plugin metadata shape.
536
+ */
537
+ declare const parsePluginManifest: (value: unknown) => PluginArchiveDB.Meta;
538
+ declare const isPluginManifestCompatible: (manifest: PluginArchiveDB.Meta, coreVersion: string) => boolean;
539
+ //#endregion
540
+ //#region lib/marketplace/types.d.ts
541
+ declare const AWESOME_REGISTRY_BASE_URL = "https://raw.githubusercontent.com/delta-comic/awesome-plugins/main/";
542
+ declare const AWESOME_REGISTRY_INDEX_PATH = "registry/index.json";
543
+ declare const AWESOME_REGISTRY_SCHEMA_VERSION: 1;
544
+ interface AwesomeRegistryPageReference {
545
+ page: number;
546
+ items: number;
547
+ path: string;
548
+ }
549
+ interface AwesomeRegistryIndex {
550
+ schemaVersion: typeof AWESOME_REGISTRY_SCHEMA_VERSION;
551
+ pageSize: number;
552
+ totalItems: number;
553
+ totalPages: number;
554
+ pages: AwesomeRegistryPageReference[];
555
+ }
556
+ interface AwesomeRegistryPagination {
557
+ page: number;
558
+ pageSize: number;
559
+ totalItems: number;
560
+ totalPages: number;
561
+ previous: string | null;
562
+ next: string | null;
563
+ }
564
+ type AwesomePluginDownload = {
565
+ type: 'github';
566
+ repository: string;
567
+ } | {
568
+ type: 'url';
569
+ url: string;
570
+ };
571
+ interface AwesomePluginRepository {
572
+ owner: string;
573
+ name: string;
574
+ url: string;
575
+ defaultBranch: string;
576
+ lastCommitAt: string;
577
+ readmeUrl?: string;
578
+ }
579
+ interface AwesomePluginRelease {
580
+ version: string;
581
+ url: string;
582
+ publishedAt: string;
583
+ manifestUrl: string | null;
584
+ }
585
+ interface AwesomePluginListing {
586
+ schemaVersion: typeof AWESOME_REGISTRY_SCHEMA_VERSION;
587
+ id: string;
588
+ authors: string[];
589
+ download: AwesomePluginDownload;
590
+ repository?: AwesomePluginRepository;
591
+ release?: AwesomePluginRelease;
592
+ }
593
+ interface AwesomeRegistryPage {
594
+ schemaVersion: typeof AWESOME_REGISTRY_SCHEMA_VERSION;
595
+ pagination: AwesomeRegistryPagination;
596
+ items: AwesomePluginListing[];
597
+ }
598
+ interface AwesomeRegistryResult<T> {
599
+ data: T;
600
+ cachedAt: string;
601
+ stale: boolean;
602
+ }
603
+ interface AwesomeMarketplaceEntry {
604
+ listing: AwesomePluginListing;
605
+ manifest?: PluginArchiveDB.Meta;
606
+ manifestError?: string;
607
+ }
608
+ interface MarketplaceStorage {
609
+ getItem(key: string): string | null;
610
+ removeItem(key: string): void;
611
+ setItem(key: string, value: string): void;
612
+ }
613
+ //#endregion
614
+ //#region lib/marketplace/cache.d.ts
615
+ declare class AwesomeRegistryCache {
616
+ private readonly storage?;
617
+ private readonly prefix;
618
+ constructor(storage?: MarketplaceStorage | undefined, prefix?: string);
619
+ readIndex(): {
620
+ cachedAt: string;
621
+ data: AwesomeRegistryIndex;
622
+ } | undefined;
623
+ writeIndex(data: AwesomeRegistryIndex): string;
624
+ readPage(path: string): {
625
+ cachedAt: string;
626
+ data: AwesomeRegistryPage;
627
+ } | undefined;
628
+ writePage(path: string, data: AwesomeRegistryPage): string;
629
+ private read;
630
+ private remove;
631
+ private write;
632
+ }
633
+ //#endregion
634
+ //#region lib/marketplace/client.d.ts
635
+ interface AwesomeRegistryClientOptions {
636
+ baseUrl?: string;
637
+ cache?: AwesomeRegistryCache;
638
+ requestJson?: (url: string) => Promise<unknown>;
639
+ storage?: MarketplaceStorage;
640
+ }
641
+ declare class AwesomeRegistryNetworkError extends Error {
642
+ readonly cause?: unknown;
643
+ constructor(message: string, cause?: unknown);
644
+ }
645
+ declare class AwesomeRegistryClient {
646
+ private readonly baseUrl;
647
+ private readonly cache;
648
+ private readonly requestJson;
649
+ constructor(options?: AwesomeRegistryClientOptions);
650
+ loadIndex(): Promise<AwesomeRegistryResult<AwesomeRegistryIndex>>;
651
+ loadPage(path: string): Promise<AwesomeRegistryResult<AwesomeRegistryPage>>;
652
+ findListing(id: string): Promise<AwesomePluginListing>;
653
+ loadManifest(listing: AwesomePluginListing): Promise<PluginArchiveDB.Meta | undefined>;
654
+ private load;
655
+ }
656
+ //#endregion
657
+ //#region lib/marketplace/validation.d.ts
658
+ declare class AwesomeRegistryValidationError extends Error {
659
+ constructor(message: string);
660
+ }
661
+ declare class AwesomeRegistryVersionError extends AwesomeRegistryValidationError {
662
+ readonly received: unknown;
663
+ constructor(received: unknown, path: string);
664
+ }
665
+ declare const parseAwesomeRegistryIndex: (value: unknown) => AwesomeRegistryIndex;
666
+ declare const parseAwesomePluginListing: (value: unknown, field?: string) => AwesomePluginListing;
667
+ declare const parseAwesomeRegistryPage: (value: unknown) => AwesomeRegistryPage;
668
+ declare const assertAwesomeRegistryPagePath: (value: string) => string;
669
+ //#endregion
670
+ //#region lib/marketplace/index.d.ts
671
+ declare const marketplaceDownloadToInstallInput: (download: AwesomePluginDownload) => string;
672
+ declare const marketplaceListingInstallId: (listing: AwesomePluginListing) => string;
673
+ declare const marketplaceListingSource: (listing: AwesomePluginListing) => string;
674
+ //#endregion
675
+ //#region lib/pluginIcon.d.ts
676
+ /** Resolves persisted plugin icon metadata into a URL that an `<img>` can consume. */
677
+ declare const resolvePluginIconUrl: (pluginId: string | undefined, icon: string | undefined) => Promise<string | undefined>;
678
+ //#endregion
679
+ //#region lib/driver/store.d.ts
680
+ declare class PluginStore {
681
+ readonly plugins: import("vue").ShallowReactive<Map<string, Raw<PluginConfig>>>;
682
+ /** Plugins whose complete boot pipeline has completed successfully. */
683
+ readonly ready: import("vue").ShallowReactive<Set<string>>;
684
+ readonly revision: import("vue").ShallowRef<number, number>;
685
+ private readonly pluginNames;
686
+ /**
687
+ * Returns true only when every registered booter has completed successfully.
688
+ *
689
+ * `plugins.has()` intentionally is not used here: the config is inserted before
690
+ * the first booter runs and can therefore describe a partially initialized plugin.
691
+ */
692
+ $isLoaded(plugin: string): boolean;
693
+ /** Starts a new load generation and invalidates the previous readiness state. */
694
+ $markLoading(plugin: string): void;
695
+ /** Marks a plugin ready after all booters have completed. */
696
+ $markReady(plugin: string): void;
697
+ /** Removes all lifecycle state for a plugin. */
698
+ $markUnloaded(plugin: string): void;
699
+ $refreshI18nNames(): Promise<void>;
700
+ $getI18nName(key: string): string;
701
+ $upsertArchives(archives: PluginArchiveDB.Archive[]): Promise<void>;
702
+ $touch(): void;
703
+ }
704
+ declare const pluginStore: PluginStore;
705
+ declare const usePluginStore: () => PluginStore;
706
+ //#endregion
707
+ //#region lib/driver/loadPlan.d.ts
708
+ interface PluginDependencyMissing {
709
+ pluginName: string;
710
+ dependencyName: string;
711
+ }
712
+ interface PluginLoadPlan {
713
+ levels: PluginArchiveDB.Archive[][];
714
+ missing: PluginDependencyMissing[];
715
+ cycles: string[][];
716
+ }
717
+ declare const findCyclePaths: (plugins: PluginArchiveDB.Archive[]) => string[][];
718
+ declare const planPluginLoadOrder: (plugins: PluginArchiveDB.Archive[]) => PluginLoadPlan;
719
+ type PluginMessageTranslator = (key: string, params: Record<string, number | string>) => string;
720
+ declare const formatPluginLoadPlanError: (plan: Pick<PluginLoadPlan, 'missing' | 'cycles'>, translate?: PluginMessageTranslator) => string;
721
+ //#endregion
722
+ //#region lib/driver/extensionTypes.d.ts
723
+ interface PluginInstallerDescription {
724
+ title: string;
725
+ description: string;
726
+ }
727
+ declare abstract class PluginInstaller {
728
+ /**
729
+ * @returns string mean redirect
730
+ */
731
+ abstract download(input: string): Promise<File | string>;
732
+ /**
733
+ * @returns string mean redirect
734
+ */
735
+ abstract update(pluginMeta: PluginArchiveDB.Archive): Promise<File | string>;
736
+ /**
737
+ * @returns string mean redirect
738
+ */
739
+ abstract fetchPluginMetaFile(input: string): Promise<File | string>;
740
+ abstract isMatched(input: string): boolean;
741
+ abstract name: string;
742
+ abstract description: PluginInstallerDescription;
743
+ }
744
+ declare abstract class PluginLoader {
745
+ abstract name: string;
746
+ abstract load(pluginMeta: PluginArchiveDB.Archive): Promise<PluginConfigFactory | undefined>;
747
+ abstract install(file: File, context?: PluginLoaderInstallContext): Promise<PluginArchiveDB.Meta>;
748
+ abstract canInstall(file: File): boolean;
749
+ /** need full download */
750
+ abstract decodeMeta(file: File): Promise<PluginArchiveDB.Meta>;
751
+ /** no need full download */
752
+ abstract decodeMetaFile(file: File): Promise<PluginArchiveDB.Meta | string>;
753
+ abstract isMetaFile(file: File): boolean;
754
+ }
755
+ interface PluginLoaderInstallContext {
756
+ report: (progress: PluginLoaderInstallProgress) => void;
757
+ }
758
+ interface PluginLoaderInstallProgress {
759
+ description?: string;
760
+ progress?: number;
761
+ }
762
+ type PluginBooterSetMeta = (meta: Partial<{
763
+ description: string;
764
+ name: string;
765
+ }> | string) => void;
766
+ declare abstract class PluginBooter {
767
+ abstract name: string;
768
+ abstract call(cfg: PluginConfig, setMeta: PluginBooterSetMeta, env: Record<any, any>): Promise<any>;
769
+ }
770
+ declare namespace loader_d_exports {
771
+ export { BootConfigOptions, PluginBootRollback, PluginLoadingInfo, bootConfig, bootResolvedConfig, createPluginLoadingInfo, ensurePluginLoadingInfo, loadAllPlugins, loadPlugin, loadPluginConfig, loaders, markPluginLoadError };
772
+ }
773
+ declare const loaders: import("vue").ShallowReactive<PluginLoader[]>;
774
+ type PluginBootRollback = (config: PluginConfig | undefined, expectedName: string | undefined) => Promise<void> | void;
775
+ interface BootConfigOptions {
776
+ expectedName?: string;
777
+ rollback?: PluginBootRollback;
778
+ }
779
+ declare const createPluginLoadingInfo: () => PluginLoadingInfo;
780
+ declare const ensurePluginLoadingInfo: (info: Ref<Record<string, PluginLoadingInfo>>, pluginName: string) => PluginLoadingInfo;
781
+ declare const markPluginLoadError: (info: Ref<Record<string, PluginLoadingInfo>>, pluginName: string, error: unknown) => void;
782
+ /** 解析 config factory 并启动插件;任何中途失败都保留原始错误并执行回滚。 */
783
+ declare const bootConfig: (configFactory: PluginConfigFactory, info: Ref<Record<string, PluginLoadingInfo>>, options?: BootConfigOptions) => Promise<PluginConfig>;
784
+ declare const bootResolvedConfig: (cfg: ReturnType<PluginConfigFactory>, info: Ref<Record<string, PluginLoadingInfo>>) => Promise<void>;
785
+ declare const loadPluginConfig: (meta: PluginArchiveDB.Archive) => Promise<PluginConfigFactory | undefined>;
786
+ declare const loadPlugin: (meta: PluginArchiveDB.Archive, info: Ref<Record<string, PluginLoadingInfo>>) => Promise<void>;
787
+ type PluginLoadingInfo = {
788
+ steps: {
789
+ name: string;
790
+ description: string;
791
+ }[];
792
+ progress: {
793
+ errorReason?: string;
794
+ stepsIndex: number;
795
+ status: 'wait' | 'process' | 'error' | 'done';
796
+ };
797
+ };
798
+ declare const loadAllPlugins: () => Promise<PluginRuntimeOperation>;
799
+ //#endregion
800
+ //#region lib/driver/runtime.d.ts
801
+ interface PrebootRecovery {
802
+ failedAt: number;
803
+ plugins: string[];
804
+ reason: string;
805
+ }
806
+ interface PluginRuntimeOperation {
807
+ operation: Promise<void>;
808
+ progress: Ref<Record<string, PluginLoadingInfo>>;
809
+ }
810
+ interface LoadNormalOptions {
811
+ pluginNames?: readonly string[];
812
+ }
813
+ declare class PluginRuntime {
814
+ private readonly active;
815
+ private readonly activePrebootNames;
816
+ private readonly prebootCleanups;
817
+ private readonly preparedPreboot;
818
+ private readonly startupPluginNames;
819
+ private readonly startupPrebootNames;
820
+ private builtInSynchronization?;
821
+ private enabledPrebootNames;
822
+ private normalOperation?;
823
+ private startupSnapshotReady;
824
+ private prebootActivated;
825
+ get activeNormalPluginNames(): string[];
826
+ loadNormal(options?: LoadNormalOptions): PluginRuntimeOperation;
827
+ reloadNormal(options?: LoadNormalOptions): PluginRuntimeOperation;
828
+ preparePreboot(app: App): Promise<{
829
+ reloadRequired: boolean;
830
+ }>;
831
+ activatePreboot(progress?: Ref<Record<string, PluginLoadingInfo>, Record<string, PluginLoadingInfo>>): Promise<{
832
+ reloadRequired: boolean;
833
+ }>;
834
+ uninstall(pluginName: string): Promise<void>;
835
+ readRecovery(): PrebootRecovery | null;
836
+ clearRecovery(): void;
837
+ private trackNormalOperation;
838
+ private ensureBuiltInPlugins;
839
+ private captureStartupSnapshot;
840
+ private loadKind;
841
+ private unloadKind;
842
+ private unloadOne;
843
+ private failPreboot;
844
+ }
845
+ declare const pluginRuntime: PluginRuntime;
846
+ //#endregion
847
+ //#region lib/driver/runtimePlan.d.ts
848
+ type ClientPluginKind = 'normal' | 'preboot';
849
+ declare const pluginKind: (plugin: PluginArchiveDB.Archive) => ClientPluginKind;
850
+ declare const selectPluginsForPhase: (plugins: PluginArchiveDB.Archive[], kind: ClientPluginKind, startupPrebootNames?: ReadonlySet<string>, activePrebootNames?: ReadonlySet<string>) => PluginArchiveDB.Archive[];
851
+ declare const failedDependencies: (plugin: PluginArchiveDB.Archive, failedPluginNames: ReadonlySet<string>) => string[];
852
+ declare const filterPluginsBySelection: (plugins: PluginArchiveDB.Archive[], pluginNames?: ReadonlySet<string>) => {
853
+ displayName: string;
854
+ enable: boolean;
855
+ installInput: string;
856
+ installerName: string;
857
+ loaderName: string;
858
+ meta: PluginArchiveDB.Meta;
859
+ pluginName: string;
860
+ }[];
861
+ //#endregion
862
+ //#region lib/driver/builtIn.d.ts
863
+ declare const BUILT_IN_PLUGIN_LOADER = "builtin";
864
+ declare const isBuiltInPluginName: (pluginName: string) => boolean;
865
+ declare const isBuiltInPlugin: (plugin: Pick<PluginArchiveDB.Archive, 'loaderName'>) => boolean;
866
+ declare const builtInDefinitionToArchive: (definition: BuiltInPluginDefinition, enable?: boolean) => PluginArchiveDB.Archive;
867
+ /** Mirrors compile-time definitions into the plugin catalog while preserving their enable state. */
868
+ declare const synchronizeBuiltInPlugins: () => Promise<void>;
869
+ //#endregion
870
+ //#region lib/driver/extensions.d.ts
871
+ interface NamedExtension {
872
+ name: string;
873
+ }
874
+ interface RuntimeExtensionOptions {
875
+ order?: number;
876
+ }
877
+ declare class OrderedExtensionRegistry<T extends NamedExtension> {
878
+ private readonly direction;
879
+ readonly values: import("vue").ShallowReactive<T[]>;
880
+ private readonly entries;
881
+ private sequence;
882
+ constructor(direction: 'ascending' | 'descending');
883
+ register(extension: T, options?: RuntimeExtensionOptions, owner?: string): () => void;
884
+ removeOwner(owner: string): void;
885
+ private refresh;
886
+ }
887
+ declare class PluginRuntimeExtensions {
888
+ readonly booters: OrderedExtensionRegistry<PluginBooter>;
889
+ readonly installers: OrderedExtensionRegistry<PluginInstaller>;
890
+ readonly loaders: OrderedExtensionRegistry<PluginLoader>;
891
+ private readonly owners;
892
+ registerBooter(booter: PluginBooter, options?: RuntimeExtensionOptions): () => void;
893
+ registerInstaller(installer: PluginInstaller, options?: RuntimeExtensionOptions): () => void;
894
+ registerLoader(loader: PluginLoader, options?: RuntimeExtensionOptions): () => void;
895
+ removeOwner(owner: string): void;
896
+ withOwner<T>(owner: string, action: () => Promise<T>): Promise<T>;
897
+ }
898
+ declare const runtimeExtensions: PluginRuntimeExtensions;
899
+ declare const registerBooter: (booter: PluginBooter, options?: RuntimeExtensionOptions) => () => void;
900
+ declare const registerInstaller: (installer: PluginInstaller, options?: RuntimeExtensionOptions) => () => void;
901
+ declare const registerLoader: (loader: PluginLoader, options?: RuntimeExtensionOptions) => () => void;
902
+ declare namespace booter_d_exports {
903
+ export { bootPlugin, booters };
904
+ }
905
+ declare const booters: import("vue").ShallowReactive<PluginBooter[]>;
906
+ declare const bootPlugin: (cfg: PluginConfig, info: Ref<Record<string, PluginLoadingInfo>>) => Promise<void>;
907
+ declare namespace install_d_exports {
908
+ export { installDepends, installFilePlugin, installPlugin, installers, uninstallPlugin, updatePlugin };
909
+ }
910
+ declare const installers: import("vue").ShallowReactive<PluginInstaller[]>;
911
+ declare const installDepends: (m: DownloadMessageBind, meta: PluginArchiveDB.Meta, installedPlugins?: Set<string>) => Promise<void>;
912
+ declare const installPlugin: (input: string, __installedPlugins?: Set<string>) => Promise<void>;
913
+ declare const installFilePlugin: (file: File, __installedPlugins?: Set<string>) => Promise<void>;
914
+ declare const updatePlugin: (pluginMeta: PluginArchiveDB.Archive, __installedPlugins?: Set<string>) => Promise<void>;
915
+ declare const uninstallPlugin: (pluginName: string) => Promise<void>;
916
+ //#endregion
917
+ //#region lib/index.d.ts
918
+ declare module '@delta-comic/utils' {
919
+ interface SharedFunctions {
920
+ routeToContent(contentType_: uni.content.ContentType_, id: string, ep: string, preload?: uni.item.Item): Promise<any>;
921
+ routeToSearch(input: string, source?: [plugin: string, name: string], sort?: string): Promise<any>;
922
+ pushShareToken(token: string): Promise<any>;
923
+ }
924
+ }
925
+ //#endregion
926
+ export { AWESOME_REGISTRY_BASE_URL, AWESOME_REGISTRY_INDEX_PATH, AWESOME_REGISTRY_SCHEMA_VERSION, type api_d_exports as Api, type auth_d_exports as Auth, AwesomeMarketplaceEntry, AwesomePluginDownload, AwesomePluginListing, AwesomePluginRelease, AwesomePluginRepository, AwesomeRegistryCache, AwesomeRegistryClient, AwesomeRegistryClientOptions, AwesomeRegistryIndex, AwesomeRegistryNetworkError, AwesomeRegistryPage, AwesomeRegistryPageReference, AwesomeRegistryPagination, AwesomeRegistryResult, AwesomeRegistryValidationError, AwesomeRegistryVersionError, BUILT_IN_PLUGIN_LOADER, booter_d_exports as Booter, BuiltInPluginDefinition, ClientPluginKind, ConfigDescription, ConfigEnv, ConfigPointer, ConfigSave, ConfigStore, type content_d_exports as Content, DefineResult, DependDefine, DependencyRegistry, Global, InferDependType, install_d_exports as Install, LoadNormalOptions, loader_d_exports as Loader, MarketplaceStorage, type otherProgress_d_exports as OtherProgress, Platform, PluginBooter, PluginBooterSetMeta, PluginConfig, PluginConfigFactory, PluginConfigHooks, PluginConfigValues, PluginDependencyMissing, PluginExpose, PluginI18nAdapter, PluginI18nRegistry, PluginIconReference, PluginInstaller, PluginInstallerDescription, PluginLoadPlan, PluginLoader, PluginLoaderInstallContext, PluginLoaderInstallProgress, type PluginLoadingInfo, PluginLocaleMessage, PluginLocaleMessages, PluginManifestError, PluginRuntimeExtensions, PluginRuntimeOperation, PluginStore, PrebootRecovery, type resource_d_exports as Resource, RuntimeExtensionOptions, type search_d_exports as Search, type share_d_exports as Share, type subscribe_d_exports as Subscribe, type user_d_exports as User, assertAwesomeRegistryPagePath, builtInDefinitionToArchive, createDependencyRegistry, declareDepType, defaultDependencyRegistry, defineInnerPlugin, definePlugin, exposeSymbol, failedDependencies, filterPluginsBySelection, findCyclePaths, formatPluginLoadPlanError, isBuiltInPlugin, isBuiltInPluginName, isPluginManifestCompatible, marketplaceDownloadToInstallInput, marketplaceListingInstallId, marketplaceListingSource, parseAwesomePluginListing, parseAwesomeRegistryIndex, parseAwesomeRegistryPage, parsePluginIconReference, parsePluginManifest, planPluginLoadOrder, pluginExposes, pluginI18n, pluginKind, pluginMessageKey, pluginRuntime, pluginStore, provide, registerBooter, registerInstaller, registerLoader, require, resolvePluginIconUrl, runtimeExtensions, selectPluginsForPhase, synchronizeBuiltInPlugins, translatePluginText, useConfig, usePluginStore };
927
+ //# sourceMappingURL=index.d.mts.map