New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

koishi-core

Package Overview
Dependencies
Maintainers
1
Versions
182
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

koishi-core - npm Package Compare versions

Comparing version 3.0.0-beta.1 to 3.0.0-beta.2

2

dist/app.d.ts

@@ -44,3 +44,3 @@ /// <reference types="node" />

status: AppStatus;
bots: import("./server").Bot[] & Record<string, import("./server").Bot>;
bots: import("./server").Bot<never>[] & Record<string, import("./server").Bot<never>>;
_commands: Command[];

@@ -47,0 +47,0 @@ _commandMap: Record<string, Command>;

import { Logger } from 'koishi-utils';
import { Command } from './command';
import { Session, SessionType } from './session';
import { Session } from './session';
import { User, Channel, Database } from './database';

@@ -32,3 +32,3 @@ import { Argv, Domain } from './parser';

get router(): Router<any, {}>;
get servers(): Record<string, Server<import("./server").Bot>>;
get servers(): Record<string, Server<never>>;
get database(): Database;

@@ -61,3 +61,3 @@ set database(database: Database);

removeListener<K extends EventName>(name: K, listener: EventMap[K]): boolean;
middleware(middleware: Middleware, prepend?: boolean): any;
middleware(middleware: Middleware, prepend?: boolean): () => boolean;
removeMiddleware(middleware: Middleware): boolean;

@@ -74,3 +74,3 @@ command<D extends string>(def: D, config?: Command.Config): Command<never, never, Domain.ArgumentType<D>>;

declare type SessionEventMap = {
[K in FlattenEvents<SessionType>]: K extends `${infer X}/${infer R}` ? R extends `${infer Y}/${any}` ? (session: Session.Payload<X, Y>) => void : (session: Session.Payload<X, R>) => void : (session: Session.Payload<K>) => void;
[K in FlattenEvents<Session.Events>]: K extends `${infer X}/${infer R}` ? R extends `${infer Y}/${any}` ? (session: Session.Payload<X, Y>) => void : (session: Session.Payload<X, R>) => void : (session: Session.Payload<K>) => void;
};

@@ -77,0 +77,0 @@ declare type EventName = keyof EventMap;

import * as utils from 'koishi-utils';
import { Platform, At } from './server';
export declare type TableType = keyof Tables;

@@ -7,3 +8,3 @@ export interface Tables {

}
export interface User extends Record<PlatformType, string> {
export interface User extends Record<Platform, string> {
id: number;

@@ -23,10 +24,7 @@ flag: number;

export type Observed<K extends Field = Field> = utils.Observed<Pick<User, K>, Promise<void>>;
type Getter = (type: PlatformType, id: string) => Partial<User>;
type Getter = (type: Platform, id: string) => Partial<User>;
export function extend(getter: Getter): void;
export function create(type: PlatformType, id: string): User;
export function create(type: Platform, id: string): User;
export {};
}
export interface Platforms {
}
export declare type PlatformType = keyof Platforms;
export interface Channel {

@@ -45,9 +43,8 @@ id: string;

export type Observed<K extends Field = Field> = utils.Observed<Pick<Channel, K>, Promise<void>>;
type Getter = (type: PlatformType, id: string) => Partial<Channel>;
type Getter = (type: Platform, id: string) => Partial<Channel>;
export function extend(getter: Getter): void;
export function create(type: PlatformType, id: string): Channel;
export function create(type: Platform, id: string): Channel;
export {};
}
declare type MaybeArray<T> = T | readonly T[];
declare type At<O, T extends keyof O, F> = [T] extends [never] ? F : O[T];
export interface Database {

@@ -60,9 +57,9 @@ getUser<K extends User.Field, T extends User.Field>(type: T, id: User[T], fields?: readonly K[]): Promise<Pick<User, K | T>>;

removeUser<T extends User.Field>(type: T, id: At<User, T, string>): Promise<void>;
getChannel<K extends Channel.Field>(type: PlatformType, id: string, fields?: readonly K[]): Promise<Pick<Channel, K | 'id'>>;
getChannel<K extends Channel.Field>(type: PlatformType, ids: readonly string[], fields?: readonly K[]): Promise<Pick<Channel, K | 'id'>[]>;
getChannel<K extends Channel.Field>(type: PlatformType, id: MaybeArray<string>, fields?: readonly K[]): Promise<any>;
getChannelList<K extends Channel.Field>(fields?: readonly K[], type?: PlatformType, assignees?: readonly string[]): Promise<Pick<Channel, K>[]>;
setChannel(type: PlatformType, id: string, data: Partial<Channel>): Promise<void>;
createChannel(type: PlatformType, id: string, data: Partial<Channel>): Promise<void>;
removeChannel(type: PlatformType, id: string): Promise<void>;
getChannel<K extends Channel.Field>(type: Platform, id: string, fields?: readonly K[]): Promise<Pick<Channel, K | 'id'>>;
getChannel<K extends Channel.Field>(type: Platform, ids: readonly string[], fields?: readonly K[]): Promise<Pick<Channel, K | 'id'>[]>;
getChannel<K extends Channel.Field>(type: Platform, id: MaybeArray<string>, fields?: readonly K[]): Promise<any>;
getChannelList<K extends Channel.Field>(fields?: readonly K[], type?: Platform, assignees?: readonly string[]): Promise<Pick<Channel, K>[]>;
setChannel(type: Platform, id: string, data: Partial<Channel>): Promise<void>;
createChannel(type: Platform, id: string, data: Partial<Channel>): Promise<void>;
removeChannel(type: Platform, id: string): Promise<void>;
}

@@ -69,0 +66,0 @@ declare type DatabaseExtensionMethods<I> = {

@@ -1,4 +0,3 @@

import { Session, MessageInfo, GroupInfo, GroupMemberInfo, UserInfo, MessageSubtype } from './session';
import { Session, MessageInfo, GroupInfo, GroupMemberInfo, UserInfo } from './session';
import { App } from './app';
import { PlatformType } from './database';
export interface BotOptions {

@@ -9,8 +8,10 @@ type?: string;

export declare function createBots<T extends Bot>(key: 'selfId' | 'sid'): T[] & Record<string, T>;
declare type BotStatic<T extends Bot = Bot> = new (app: App, options: BotOptions) => T;
export declare abstract class Server<T extends Bot = Bot> {
export declare type At<O, T extends keyof O, F> = [T] extends [never] ? F : O[T];
declare type BotInstance<T extends Platform> = At<Bot.Platforms, T, Bot>;
declare type BotStatic<T extends Platform> = new (app: App, options: BotOptions) => BotInstance<T>;
export declare abstract class Server<T extends Platform = Platform> {
app: App;
private BotStatic;
static types: Record<string, new (app: App) => Server>;
bots: T[] & Record<string, T>;
bots: At<Bot.Platforms, T, Bot<never>>[] & Record<string, At<Bot.Platforms, T, Bot<never>>>;
abstract listen(): Promise<void>;

@@ -34,7 +35,12 @@ abstract close(): void;

}
export interface Bot extends BotOptions {
export declare namespace Bot {
interface Platforms {
}
}
export declare type Platform = keyof Bot.Platforms;
export interface Bot<P = Platform> extends BotOptions {
[Bot.send](session: Session, message: string): Promise<void>;
ready?: boolean;
version?: string;
platform?: PlatformType;
platform?: P;
getSelfId(): Promise<string>;

@@ -52,3 +58,3 @@ getStatusCode(): Promise<BotStatusCode>;

}
export declare class Bot {
export declare class Bot<P extends Platform> {
app: App;

@@ -60,3 +66,3 @@ static readonly send: unique symbol;

get sid(): string;
createSession(subtype: MessageSubtype, ctxType: 'group' | 'user', ctxId: string, content: string): Session<never, never, never, "group-member" | "friend-added" | "friend-deleted" | "friend-updated" | "channel-added" | "channel-deleted" | "channel-updated" | "group-added" | "group-deleted" | "group-updated" | "group-member-added" | "group-member-deleted" | "group-member-updated" | "group-role-added" | "group-role-deleted" | "group-role-updated" | "group-file-added" | "group-file-deleted" | "group-file-updated" | "group-emoji-added" | "group-emoji-deleted" | "group-emoji-updated" | "message" | "message-deleted" | "message-updated" | "send" | "friend-request" | "group-request" | "group-member-request" | "notice", "group" | "private" | "role" | "ban" | "approve" | "invite" | "leave" | "kick" | "poke" | "lucky-king" | "honor">;
createSession<T extends keyof Session.Events['send']>(subtype: T, ctxType: 'group' | 'user', ctxId: string, content: string): Session<never, never, P, "send", T>;
getGroupMemberMap(groupId: string): Promise<{

@@ -63,0 +69,0 @@ [k: string]: string;

@@ -1,2 +0,2 @@

import { User, Channel, Platforms, PlatformType, TableType, Tables } from './database';
import { User, Channel, TableType, Tables } from './database';
import { Command } from './command';

@@ -6,40 +6,3 @@ import { Argv } from './parser';

import { App } from './app';
import { Bot } from './server';
declare type Genres = 'friend' | 'channel' | 'group' | 'group-member' | 'group-role' | 'group-file' | 'group-emoji';
declare type Actions = 'added' | 'deleted' | 'updated';
declare type MessageActions = 'message' | 'message-deleted' | 'message-updated' | 'send';
export interface SessionType extends Record<`${Genres}-${Actions}`, {}>, Record<MessageActions, MessageType> {
'friend-request': {};
'group-request': {};
'group-member-request': {};
'group-added': GroupMemberAddedType;
'group-member-added': GroupMemberAddedType;
'group-deleted': GroupMemberDeletedType;
'group-member-deleted': GroupMemberDeletedType;
'group-member': {
'role': {};
'ban': {};
};
'notice': {
'poke': {};
'lucky-king': {};
'honor': {
'talkative': {};
'performer': {};
'emotion': {};
};
};
}
interface GroupMemberAddedType {
'approve': {};
'invite': {};
}
interface GroupMemberDeletedType {
'leave': {};
'kick': {};
}
interface MessageType {
'private': {};
'group': {};
}
import { Bot, Platform } from './server';
declare type UnionToIntersection<U> = (U extends any ? (key: U) => void : never) extends (key: infer I) => void ? I : never;

@@ -51,11 +14,48 @@ declare type Flatten<T, K extends keyof T = keyof T> = UnionToIntersection<T[K]>;

export declare namespace Session {
type TypeX<X> = Extract<keyof SessionType, X>;
type TypeY<X, Y> = Extract<InnerKeys<SessionType, TypeX<X>>, Y>;
export type Payload<X, Y = any> = Session<never, never, never, TypeX<X>, TypeY<X, Y>>;
type Genres = 'friend' | 'channel' | 'group' | 'group-member' | 'group-role' | 'group-file' | 'group-emoji';
type Actions = 'added' | 'deleted' | 'updated';
type MessageActions = 'message' | 'message-deleted' | 'message-updated' | 'send';
export interface Events extends Record<`${Genres}-${Actions}`, {}>, Record<MessageActions, MessageType> {
'friend-request': {};
'group-request': {};
'group-member-request': {};
'group-added': GroupMemberAddedType;
'group-member-added': GroupMemberAddedType;
'group-deleted': GroupMemberDeletedType;
'group-member-deleted': GroupMemberDeletedType;
'group-member': {
'role': {};
'ban': {};
};
'notice': {
'poke': {};
'lucky-king': {};
'honor': {
'talkative': {};
'performer': {};
'emotion': {};
};
};
}
interface GroupMemberAddedType {
'approve': {};
'invite': {};
}
interface GroupMemberDeletedType {
'leave': {};
'kick': {};
}
interface MessageType {
'private': {};
'group': {};
}
type ParamX<X> = Extract<keyof Events, X>;
type ParamY<X, Y> = Extract<InnerKeys<Events, ParamX<X>>, Y>;
export type Payload<X, Y = any> = Session<never, never, Platform, ParamX<X>, ParamY<X, Y>>;
export {};
}
export declare class Session<U extends User.Field = never, G extends Channel.Field = never, K extends PlatformType = never, X extends keyof SessionType = keyof SessionType, Y extends InnerKeys<SessionType, X> = InnerKeys<SessionType, X>> {
export declare class Session<U extends User.Field = never, G extends Channel.Field = never, K extends Platform = Platform, X extends keyof Session.Events = keyof Session.Events, Y extends InnerKeys<Session.Events, X> = InnerKeys<Session.Events, X>> {
type?: X;
subtype?: Y;
subsubtype?: InnerKeys<UnionToIntersection<SessionType[X]>, Y>;
subsubtype?: InnerKeys<UnionToIntersection<Session.Events[X]>, Y>;
platform?: K;

@@ -94,3 +94,3 @@ selfId?: string;

};
get $bot(): [K] extends [never] ? Bot : Platforms[K];
get $bot(): [K] extends [never] ? Bot : Bot.Platforms[K];
get $username(): string;

@@ -115,3 +115,3 @@ get database(): import("./database").Database;

execute(argv: Argv, next?: NextFunction): Promise<string>;
middleware(middleware: Middleware): any;
middleware(middleware: Middleware): () => boolean;
prompt(timeout?: number): Promise<unknown>;

@@ -168,5 +168,4 @@ suggest(options: SuggestOptions): Promise<void>;

}
export declare type MessageSubtype = keyof MessageType;
export interface MessageInfo extends MessageBase {
subtype?: MessageSubtype;
subtype?: keyof Session.Events['message'];
}

@@ -173,0 +172,0 @@ export interface GroupInfo {

{
"name": "koishi-core",
"description": "Core features for Koishi",
"version": "3.0.0-beta.1",
"version": "3.0.0-beta.2",
"main": "dist/index.js",

@@ -15,6 +15,2 @@ "typings": "dist/index.d.ts",

"license": "MIT",
"scripts": {
"lint": "eslint src --ext .ts",
"precommit": "yarn lint"
},
"repository": {

@@ -21,0 +17,0 @@ "type": "git",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc