koishi-plugin-market-next 2.11.11

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 (39) hide show
  1. package/lib/browser/index.d.ts +12 -0
  2. package/lib/browser/index.mjs +77 -0
  3. package/lib/browser/index.mjs.map +7 -0
  4. package/lib/browser/market.d.ts +12 -0
  5. package/lib/index.d.ts +1 -0
  6. package/lib/node/deps.d.ts +15 -0
  7. package/lib/node/index.d.ts +33 -0
  8. package/lib/node/index.js +597 -0
  9. package/lib/node/index.js.map +7 -0
  10. package/lib/node/installer.d.ts +72 -0
  11. package/lib/node/market.d.ts +40 -0
  12. package/lib/shared/index.d.ts +32 -0
  13. package/lib/shared/index.js +60 -0
  14. package/lib/shared/index.js.map +7 -0
  15. package/lib/shared/index.mjs +36 -0
  16. package/lib/shared/index.mjs.map +7 -0
  17. package/package.json +89 -0
  18. package/src/browser/index.ts +27 -0
  19. package/src/browser/market.ts +19 -0
  20. package/src/index.ts +2 -0
  21. package/src/node/deps.ts +26 -0
  22. package/src/node/index.ts +192 -0
  23. package/src/node/installer.ts +313 -0
  24. package/src/node/locales/message.de-DE.yml +25 -0
  25. package/src/node/locales/message.en-US.yml +25 -0
  26. package/src/node/locales/message.fr-FR.yml +25 -0
  27. package/src/node/locales/message.ja-JP.yml +25 -0
  28. package/src/node/locales/message.ru-RU.yml +25 -0
  29. package/src/node/locales/message.zh-CN.yml +28 -0
  30. package/src/node/locales/message.zh-TW.yml +25 -0
  31. package/src/node/locales/schema.de-DE.yml +9 -0
  32. package/src/node/locales/schema.en-US.yml +9 -0
  33. package/src/node/locales/schema.fr-FR.yml +9 -0
  34. package/src/node/locales/schema.ja-JP.yml +9 -0
  35. package/src/node/locales/schema.ru-RU.yml +9 -0
  36. package/src/node/locales/schema.zh-CN.yml +10 -0
  37. package/src/node/locales/schema.zh-TW.yml +9 -0
  38. package/src/node/market.ts +120 -0
  39. package/src/shared/index.ts +64 -0
@@ -0,0 +1,12 @@
1
+ import { Context, Schema } from 'koishi';
2
+ import MarketProvider from './market';
3
+ export * from './market';
4
+ export * from '../shared';
5
+ export { MarketProvider };
6
+ export declare const filter = false;
7
+ export declare const name = "market";
8
+ export declare const inject: string[];
9
+ export interface Config {
10
+ }
11
+ export declare const Config: Schema<Config>;
12
+ export declare function apply(ctx: Context, config: Config): void;
@@ -0,0 +1,77 @@
1
+ // src/browser/index.ts
2
+ import { Schema } from "koishi";
3
+
4
+ // src/shared/index.ts
5
+ import { Logger, Time } from "koishi";
6
+ import { DataService } from "@koishijs/console";
7
+ var logger = new Logger("market");
8
+ var MarketProvider = class extends DataService {
9
+ _task;
10
+ _timestamp = 0;
11
+ _error;
12
+ constructor(ctx) {
13
+ super(ctx, "market", { authority: 4 });
14
+ ctx.console.addListener("market/refresh", () => this.start(true), { authority: 4 });
15
+ ctx.on("console/connection", async (client) => {
16
+ if (!ctx.console.clients[client.id]) return;
17
+ if (Date.now() - this._timestamp <= Time.hour * 12) return;
18
+ if (await this.ctx.serial("console/intercept", client, { authority: 4 })) return;
19
+ this.start();
20
+ });
21
+ }
22
+ start(refresh = false) {
23
+ this._task = null;
24
+ this._error = null;
25
+ this._timestamp = Date.now();
26
+ this.refresh();
27
+ }
28
+ async prepare() {
29
+ return this._task ||= this.collect().catch((error) => {
30
+ logger.warn(error);
31
+ this._error = error;
32
+ this._task = null;
33
+ });
34
+ }
35
+ };
36
+
37
+ // src/browser/market.ts
38
+ var MarketProvider2 = class extends MarketProvider {
39
+ async collect() {
40
+ return this.ctx.loader.market;
41
+ }
42
+ async get() {
43
+ const market = await this.prepare();
44
+ if (!market) return { data: {}, failed: 0, total: 0, progress: 0 };
45
+ return {
46
+ data: Object.fromEntries(market.objects.map((item) => [item.package.name, item])),
47
+ failed: 0,
48
+ total: market.objects.length,
49
+ progress: market.objects.length
50
+ };
51
+ }
52
+ };
53
+
54
+ // src/browser/index.ts
55
+ var filter = false;
56
+ var name = "market";
57
+ var inject = ["console"];
58
+ var Config = Schema.object({});
59
+ function apply(ctx, config) {
60
+ ctx.plugin(MarketProvider2);
61
+ ctx.console.addEntry(process.env.KOISHI_BASE ? [
62
+ process.env.KOISHI_BASE + "/dist/index.js",
63
+ process.env.KOISHI_BASE + "/dist/style.css"
64
+ ] : [
65
+ // @ts-ignore
66
+ import.meta.url.replace(/\/src\/[^/]+\/[^/]+$/, "/client/index.ts")
67
+ ]);
68
+ }
69
+ export {
70
+ Config,
71
+ MarketProvider2 as MarketProvider,
72
+ apply,
73
+ filter,
74
+ inject,
75
+ name
76
+ };
77
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/browser/index.ts", "../../src/shared/index.ts", "../../src/browser/market.ts"],
4
+ "sourcesContent": ["import { Context, Schema } from 'koishi'\nimport MarketProvider from './market'\n\nexport * from './market'\nexport * from '../shared'\n\nexport { MarketProvider }\n\nexport const filter = false\nexport const name = 'market'\nexport const inject = ['console']\n\nexport interface Config {}\n\nexport const Config: Schema<Config> = Schema.object({})\n\nexport function apply(ctx: Context, config: Config) {\n ctx.plugin(MarketProvider)\n\n ctx.console.addEntry(process.env.KOISHI_BASE ? [\n process.env.KOISHI_BASE + '/dist/index.js',\n process.env.KOISHI_BASE + '/dist/style.css',\n ] : [\n // @ts-ignore\n import.meta.url.replace(/\\/src\\/[^/]+\\/[^/]+$/, '/client/index.ts'),\n ])\n}\n", "import { Awaitable, Context, Dict, Logger, Time } from 'koishi'\nimport { DataService } from '@koishijs/console'\nimport { SearchObject, SearchResult } from '@koishijs/registry'\n\ndeclare module '@koishijs/console' {\n interface Events {\n 'market/refresh'(): void\n }\n\n namespace Console {\n interface Services {\n market: MarketProvider\n }\n }\n}\n\nconst logger = new Logger('market')\n\nexport abstract class MarketProvider extends DataService<MarketProvider.Payload> {\n protected _task: Promise<any>\n private _timestamp = 0\n protected _error: any\n\n constructor(ctx: Context) {\n super(ctx, 'market', { authority: 4 })\n\n ctx.console.addListener('market/refresh', () => this.start(true), { authority: 4 })\n\n ctx.on('console/connection', async (client) => {\n if (!ctx.console.clients[client.id]) return\n if (Date.now() - this._timestamp <= Time.hour * 12) return\n if (await this.ctx.serial('console/intercept', client, { authority: 4 })) return\n this.start()\n })\n }\n\n start(refresh = false): Awaitable<void> {\n this._task = null\n this._error = null\n this._timestamp = Date.now()\n this.refresh()\n }\n\n abstract collect(): Promise<void | SearchResult>\n\n async prepare(): Promise<SearchResult> {\n return this._task ||= this.collect().catch((error) => {\n logger.warn(error)\n this._error = error\n this._task = null\n })\n }\n}\n\nexport namespace MarketProvider {\n export interface Payload {\n registry?: string\n data: Dict<SearchObject>\n total: number\n failed: number\n progress: number\n gravatar?: string\n }\n}\n", "import { MarketProvider as BaseMarketProvider } from '../shared'\nimport {} from '@koishijs/plugin-config'\n\nexport default class MarketProvider extends BaseMarketProvider {\n async collect() {\n return this.ctx.loader.market\n }\n\n async get() {\n const market = await this.prepare()\n if (!market) return { data: {}, failed: 0, total: 0, progress: 0 }\n return {\n data: Object.fromEntries(market.objects.map(item => [item.package.name, item])),\n failed: 0,\n total: market.objects.length,\n progress: market.objects.length,\n }\n }\n}\n"],
5
+ "mappings": ";AAAA,SAAkB,cAAc;;;ACAhC,SAAmC,QAAQ,YAAY;AACvD,SAAS,mBAAmB;AAe5B,IAAM,SAAS,IAAI,OAAO,QAAQ;AAE3B,IAAe,iBAAf,cAAsC,YAAoC;AAAA,EACrE;AAAA,EACF,aAAa;AAAA,EACX;AAAA,EAEV,YAAY,KAAc;AACxB,UAAM,KAAK,UAAU,EAAE,WAAW,EAAE,CAAC;AAErC,QAAI,QAAQ,YAAY,kBAAkB,MAAM,KAAK,MAAM,IAAI,GAAG,EAAE,WAAW,EAAE,CAAC;AAElF,QAAI,GAAG,sBAAsB,OAAO,WAAW;AAC7C,UAAI,CAAC,IAAI,QAAQ,QAAQ,OAAO,EAAE,EAAG;AACrC,UAAI,KAAK,IAAI,IAAI,KAAK,cAAc,KAAK,OAAO,GAAI;AACpD,UAAI,MAAM,KAAK,IAAI,OAAO,qBAAqB,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAG;AAC1E,WAAK,MAAM;AAAA,IACb,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,UAAU,OAAwB;AACtC,SAAK,QAAQ;AACb,SAAK,SAAS;AACd,SAAK,aAAa,KAAK,IAAI;AAC3B,SAAK,QAAQ;AAAA,EACf;AAAA,EAIA,MAAM,UAAiC;AACrC,WAAO,KAAK,UAAU,KAAK,QAAQ,EAAE,MAAM,CAAC,UAAU;AACpD,aAAO,KAAK,KAAK;AACjB,WAAK,SAAS;AACd,WAAK,QAAQ;AAAA,IACf,CAAC;AAAA,EACH;AACF;;;ACjDA,IAAqBA,kBAArB,cAA4C,eAAmB;AAAA,EAC7D,MAAM,UAAU;AACd,WAAO,KAAK,IAAI,OAAO;AAAA,EACzB;AAAA,EAEA,MAAM,MAAM;AACV,UAAM,SAAS,MAAM,KAAK,QAAQ;AAClC,QAAI,CAAC,OAAQ,QAAO,EAAE,MAAM,CAAC,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,EAAE;AACjE,WAAO;AAAA,MACL,MAAM,OAAO,YAAY,OAAO,QAAQ,IAAI,UAAQ,CAAC,KAAK,QAAQ,MAAM,IAAI,CAAC,CAAC;AAAA,MAC9E,QAAQ;AAAA,MACR,OAAO,OAAO,QAAQ;AAAA,MACtB,UAAU,OAAO,QAAQ;AAAA,IAC3B;AAAA,EACF;AACF;;;AFVO,IAAM,SAAS;AACf,IAAM,OAAO;AACb,IAAM,SAAS,CAAC,SAAS;AAIzB,IAAM,SAAyB,OAAO,OAAO,CAAC,CAAC;AAE/C,SAAS,MAAM,KAAc,QAAgB;AAClD,MAAI,OAAOC,eAAc;AAEzB,MAAI,QAAQ,SAAS,QAAQ,IAAI,cAAc;AAAA,IAC7C,QAAQ,IAAI,cAAc;AAAA,IAC1B,QAAQ,IAAI,cAAc;AAAA,EAC5B,IAAI;AAAA;AAAA,IAEF,YAAY,IAAI,QAAQ,wBAAwB,kBAAkB;AAAA,EACpE,CAAC;AACH;",
6
+ "names": ["MarketProvider", "MarketProvider"]
7
+ }
@@ -0,0 +1,12 @@
1
+ import { MarketProvider as BaseMarketProvider } from '../shared';
2
+ export default class MarketProvider extends BaseMarketProvider {
3
+ collect(): Promise<import("@koishijs/registry").SearchResult>;
4
+ get(): Promise<{
5
+ data: {
6
+ [k: string]: import("@koishijs/registry").SearchObject;
7
+ };
8
+ failed: number;
9
+ total: number;
10
+ progress: number;
11
+ }>;
12
+ }
package/lib/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './node';
@@ -0,0 +1,15 @@
1
+ import { Context, Dict } from 'koishi';
2
+ import { DataService } from '@koishijs/console';
3
+ import { DependencyMetaKey, RemotePackage } from '@koishijs/registry';
4
+ import { Dependency } from './installer';
5
+ declare class DependencyProvider extends DataService<Dict<Dependency>> {
6
+ ctx: Context;
7
+ constructor(ctx: Context);
8
+ get(): Promise<Dict<Dependency>>;
9
+ }
10
+ declare class RegistryProvider extends DataService<Dict<Dict<Pick<RemotePackage, DependencyMetaKey>>>> {
11
+ ctx: Context;
12
+ constructor(ctx: Context);
13
+ get(): Promise<Dict<Dict<Pick<RemotePackage, DependencyMetaKey>>>>;
14
+ }
15
+ export { DependencyProvider, RegistryProvider };
@@ -0,0 +1,33 @@
1
+ import { Context, Dict, Schema } from 'koishi';
2
+ import { DependencyMetaKey, RemotePackage } from '@koishijs/registry';
3
+ import { DependencyProvider, RegistryProvider } from './deps';
4
+ import Installer from './installer';
5
+ import MarketProvider from './market';
6
+ export * from '../shared';
7
+ export { Installer };
8
+ declare module 'koishi' {
9
+ interface Context {
10
+ installer: Installer;
11
+ }
12
+ }
13
+ declare module '@koishijs/console' {
14
+ namespace Console {
15
+ interface Services {
16
+ dependencies: DependencyProvider;
17
+ registry: RegistryProvider;
18
+ }
19
+ }
20
+ interface Events {
21
+ 'market/install'(deps: Dict<string>, forced?: boolean): Promise<number>;
22
+ 'market/registry'(names: string[]): Promise<Dict<Dict<Pick<RemotePackage, DependencyMetaKey>>>>;
23
+ }
24
+ }
25
+ export declare const name = "market";
26
+ export declare const inject: string[];
27
+ export declare const usage = "\n\u5982\u679C\u63D2\u4EF6\u5E02\u573A\u9875\u9762\u63D0\u793A\u300C\u65E0\u6CD5\u8FDE\u63A5\u5230\u63D2\u4EF6\u5E02\u573A\u300D\uFF0C\u5219\u53EF\u4EE5\u9009\u62E9\u4E00\u4E2A Koishi \u793E\u533A\u63D0\u4F9B\u7684\u955C\u50CF\u5730\u5740\uFF0C\u586B\u5165\u4E0B\u65B9\u5BF9\u5E94\u7684\u914D\u7F6E\u9879\u4E2D\u3002\n\n## \u63D2\u4EF6\u5E02\u573A\uFF08\u586B\u5165 search.endpoint\uFF09\n\n- Koishi\uFF08\u5168\u7403\uFF09\uFF1Ahttps://registry.koishi.chat/index.json\n- [t4wefan](https://k.ilharp.cc/2611)\uFF08\u5927\u9646\uFF09\uFF1Ahttps://registry.koishi.t4wefan.pub/index.json\n- [Lipraty](https://k.ilharp.cc/3530)\uFF08\u5927\u9646\uFF09\uFF1Ahttps://koi.nyan.zone/registry/index.json\n- [itzdrli](https://k.ilharp.cc/9975)\uFF08\u5168\u7403\uFF09\uFF1Ahttps://kp.itzdrli.cc\n- [Q78KG](https://k.ilharp.cc/10042)\uFF08\u5168\u7403\uFF09\uFF1Ahttps://koishi-registry.yumetsuki.moe/index.json\n\n\u8981\u6D4F\u89C8\u66F4\u591A\u793E\u533A\u955C\u50CF\uFF0C\u8BF7\u8BBF\u95EE [Koishi \u8BBA\u575B\u4E0A\u7684\u955C\u50CF\u4E00\u89C8](https://k.ilharp.cc/4000)\u3002";
28
+ export interface Config {
29
+ registry?: Installer.Config;
30
+ search?: MarketProvider.Config;
31
+ }
32
+ export declare const Config: Schema<Config>;
33
+ export declare function apply(ctx: Context, config: Config): void;