@koishi-ce/plugin-market 1.0.0

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.
@@ -0,0 +1,28 @@
1
+ commands.plugin:
2
+ description: 插件管理
3
+
4
+ commands.plugin.install:
5
+ description: 安装插件
6
+ messages:
7
+ expect-name: 请输入插件名。
8
+ already-installed: 该插件已安装。
9
+ not-found: 未找到该插件。
10
+ success: 安装成功!
11
+
12
+ commands.plugin.uninstall:
13
+ description: 卸载插件
14
+ messages:
15
+ expect-name: 请输入插件名。
16
+ not-installed: 该插件未安装。
17
+ success: 卸载成功!
18
+
19
+ commands.plugin.upgrade:
20
+ description: 升级插件
21
+ options:
22
+ self: 升级 Koishi 本体
23
+ messages:
24
+ all-updated: 所有插件已是最新版本。
25
+ available: 有可用的依赖更新:
26
+ prompt: 输入「Y」升级全部依赖,输入「N」取消操作。
27
+ cancelled: 已取消操作。
28
+ success: 升级成功!
@@ -0,0 +1,10 @@
1
+ registry:
2
+ $description: 插件源设置
3
+ endpoint: 插件的下载源。默认跟随当前项目的 npm config。
4
+ timeout: 获取插件数据的超时时间。
5
+
6
+ search:
7
+ $description: 搜索设置
8
+ endpoint: 用于搜索插件市场的网址。默认跟随插件源设置。
9
+ timeout: 搜索插件市场的超时时间。
10
+ proxyAgent: 用于搜索插件市场的代理。
package/lib/index.d.ts ADDED
@@ -0,0 +1,165 @@
1
+ import { Awaitable, Context, Dict as Dict$1, HTTP, Schema, Service } from "@koishi-ce/koishi";
2
+ import { DataService } from "@koishi-ce/console";
3
+ import { DependencyMetaKey, RemotePackage, SearchObject as SearchObject$1, SearchResult } from "@koishi-ce/registry";
4
+ //#region src/node/installer.d.ts
5
+ interface Dependency {
6
+ /**
7
+ * requested semver range
8
+ * @example `^1.2.3` -> `1.2.3`
9
+ */
10
+ request: string;
11
+ /**
12
+ * installed package version
13
+ * @example `1.2.5`
14
+ */
15
+ resolved?: string | undefined;
16
+ /** whether it is a workspace package */
17
+ workspace?: boolean | undefined;
18
+ /** valid (unsupported) syntax */
19
+ invalid?: boolean | undefined;
20
+ /** latest version */
21
+ latest?: string | undefined;
22
+ }
23
+ declare class Installer extends Service {
24
+ http: HTTP;
25
+ endpoint: string | undefined;
26
+ fullCache: Dict$1<Dict$1<Pick<RemotePackage, DependencyMetaKey>>>;
27
+ tempCache: Dict$1<Dict$1<Pick<RemotePackage, DependencyMetaKey>>>;
28
+ private pkgTasks;
29
+ private agent;
30
+ private manifest;
31
+ private depTask;
32
+ private flushData;
33
+ config: Installer.Config;
34
+ constructor(ctx: Context, config: Installer.Config);
35
+ get cwd(): any;
36
+ start(): Promise<void>;
37
+ resolveName(name: string): string[];
38
+ findVersion(names: string[]): Promise<any>;
39
+ private _getPackage;
40
+ setPackage(name: string, versions: RemotePackage[]): void;
41
+ getPackage(name: string): any;
42
+ private _getDeps;
43
+ getDeps(): Promise<Dict$1<Dependency>>;
44
+ refreshData(): void;
45
+ refresh(refresh?: boolean): void;
46
+ exec(args: string[]): Promise<number>;
47
+ override(deps: Dict$1<string | null>): Promise<void>;
48
+ private _install;
49
+ private _getLocalDeps;
50
+ install(deps: Dict$1<string | null>, forced?: boolean): Promise<number>;
51
+ static Config: Schema<Installer.Config>;
52
+ }
53
+ declare namespace Installer {
54
+ interface Config {
55
+ endpoint?: string;
56
+ timeout?: number;
57
+ }
58
+ }
59
+ //#endregion
60
+ //#region src/node/deps.d.ts
61
+ declare class DependencyProvider extends DataService<Dict$1<Dependency>> {
62
+ constructor(ctx: Context);
63
+ get(): Promise<any>;
64
+ }
65
+ declare class RegistryProvider extends DataService<Dict$1<Dict$1<Pick<RemotePackage, DependencyMetaKey>>>> {
66
+ constructor(ctx: Context);
67
+ get(): Promise<any>;
68
+ }
69
+ //#endregion
70
+ //#region src/shared/index.d.ts
71
+ declare module "@koishi-ce/console" {
72
+ interface Events {
73
+ "market/refresh"(): void;
74
+ }
75
+ namespace Console {
76
+ interface Services {
77
+ market: MarketProvider;
78
+ }
79
+ }
80
+ }
81
+ declare abstract class MarketProvider extends DataService<MarketProvider.Payload> {
82
+ private _task;
83
+ private _timestamp;
84
+ protected _error: unknown;
85
+ constructor(ctx: Context);
86
+ start(_refresh?: boolean): Awaitable<void>;
87
+ abstract collect(): Promise<SearchResult | undefined>;
88
+ prepare(): Promise<SearchResult | undefined>;
89
+ }
90
+ declare namespace MarketProvider {
91
+ interface Payload {
92
+ registry?: string | undefined;
93
+ data: Dict$1<SearchObject$1>;
94
+ total: number;
95
+ failed: number;
96
+ progress: number;
97
+ gravatar?: string | undefined;
98
+ }
99
+ }
100
+ //#endregion
101
+ //#region src/node/market.d.ts
102
+ declare class MarketProvider$1 extends MarketProvider {
103
+ private http?;
104
+ private failed;
105
+ private scanner;
106
+ private fullCache;
107
+ private tempCache;
108
+ private flushData;
109
+ config: MarketProvider$1.Config;
110
+ constructor(ctx: Context, config: MarketProvider$1.Config);
111
+ start(refresh?: boolean): Promise<void>;
112
+ collect(): Promise<undefined>;
113
+ get(): Promise<{
114
+ data: {};
115
+ failed: number;
116
+ total: number;
117
+ progress: number;
118
+ registry?: never;
119
+ gravatar?: never;
120
+ } | {
121
+ registry: any;
122
+ data: Dict<SearchObject>;
123
+ failed: number;
124
+ total: any;
125
+ progress: any;
126
+ gravatar: string | undefined;
127
+ }>;
128
+ static Config: Schema<MarketProvider$1.Config>;
129
+ }
130
+ declare namespace MarketProvider$1 {
131
+ interface Config {
132
+ endpoint?: string;
133
+ timeout?: number;
134
+ }
135
+ }
136
+ //#endregion
137
+ //#region src/node/index.d.ts
138
+ declare module "@koishi-ce/koishi" {
139
+ interface Context {
140
+ installer: Installer;
141
+ }
142
+ }
143
+ declare module "@koishi-ce/console" {
144
+ namespace Console {
145
+ interface Services {
146
+ dependencies: DependencyProvider;
147
+ registry: RegistryProvider;
148
+ }
149
+ }
150
+ interface Events {
151
+ "market/install"(deps: Dict$1<string>, forced?: boolean): Promise<number>;
152
+ "market/registry"(names: string[]): Promise<Dict$1<Dict$1<Pick<RemotePackage, DependencyMetaKey>>>>;
153
+ }
154
+ }
155
+ declare const name = "market";
156
+ declare const inject: string[];
157
+ declare const usage = "\n如果插件市场页面提示「无法连接到插件市场」,则可以选择一个 Koishi 社区提供的镜像地址,填入下方对应的配置项中。\n\n## 插件市场(填入 search.endpoint)\n\n- Koishi(全球):https://registry.koishi.chat/index.json\n- [t4wefan](https://k.ilharp.cc/2611)(大陆):https://registry.koishi.t4wefan.pub/index.json\n- [Lipraty](https://k.ilharp.cc/3530)(大陆):https://koi.nyan.zone/registry/index.json\n- [itzdrli](https://k.ilharp.cc/9975)(全球):https://kp.itzdrli.cc\n- [Q78KG](https://k.ilharp.cc/10042)(全球):https://koishi-registry.yumetsuki.moe/index.json\n\n要浏览更多社区镜像,请访问 [Koishi 论坛上的镜像一览](https://k.ilharp.cc/4000)。";
158
+ interface Config {
159
+ registry?: Installer.Config;
160
+ search?: MarketProvider$1.Config;
161
+ }
162
+ declare const Config: Schema<Config>;
163
+ declare function apply(ctx: Context, config: Config): any;
164
+ //#endregion
165
+ export { Config, DependencyProvider, Installer, MarketProvider, RegistryProvider, apply, inject, name, usage };