@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.
- package/dist/index.css +2 -0
- package/dist/index.js +6 -0
- package/lib/assets/message.zh-CN-B_nH77kB.yml +28 -0
- package/lib/assets/schema.zh-CN-CLU01Lrj.yml +10 -0
- package/lib/index.d.ts +165 -0
- package/lib/index.mjs +513 -0
- package/package.json +88 -0
- package/src/browser/index.ts +26 -0
- package/src/browser/market.ts +21 -0
- package/src/index.ts +2 -0
- package/src/node/deps.ts +28 -0
- package/src/node/index.ts +229 -0
- package/src/node/installer.ts +388 -0
- package/src/node/locales/message.de-DE.yml +25 -0
- package/src/node/locales/message.en-US.yml +25 -0
- package/src/node/locales/message.fr-FR.yml +25 -0
- package/src/node/locales/message.ja-JP.yml +25 -0
- package/src/node/locales/message.ru-RU.yml +25 -0
- package/src/node/locales/message.zh-CN.yml +28 -0
- package/src/node/locales/message.zh-TW.yml +25 -0
- package/src/node/locales/schema.de-DE.yml +9 -0
- package/src/node/locales/schema.en-US.yml +9 -0
- package/src/node/locales/schema.fr-FR.yml +9 -0
- package/src/node/locales/schema.ja-JP.yml +9 -0
- package/src/node/locales/schema.ru-RU.yml +9 -0
- package/src/node/locales/schema.zh-CN.yml +10 -0
- package/src/node/locales/schema.zh-TW.yml +9 -0
- package/src/node/market.ts +149 -0
- package/src/shared/index.ts +73 -0
|
@@ -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: 升级成功!
|
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 };
|