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

koishi-plugin-common

Package Overview
Dependencies
Maintainers
1
Versions
141
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

koishi-plugin-common - npm Package Compare versions

Comparing version 1.0.4 to 1.0.5

dist/request-handler.d.ts

57

dist/admin.js

@@ -7,7 +7,7 @@ "use strict";

const groupActionMap = {};
function registerUserAction(name, callback, fields = []) {
function registerUserAction(name, callback, fields) {
userActionMap[koishi_utils_1.paramCase(name)] = { callback, fields };
}
exports.registerUserAction = registerUserAction;
function registerGroupAction(name, callback, fields = []) {
function registerGroupAction(name, callback, fields) {
groupActionMap[koishi_utils_1.paramCase(name)] = { callback, fields };

@@ -30,3 +30,3 @@ }

}
});
}, ['authority']);
registerUserAction('setFlag', async (meta, user, ...flags) => {

@@ -43,6 +43,6 @@ if (!flags.length)

return meta.$send('用户信息已修改。');
});
}, ['flag']);
registerUserAction('unsetFlag', async (meta, user, ...flags) => {
if (!flags.length)
return meta.$send(`可用的 flag 有:${koishi_core_1.userFlags.join(', ')}。`);
return meta.$send(`可用的标记有 ${koishi_core_1.userFlags.join(', ')}。`);
const notFound = koishi_utils_1.difference(flags, koishi_core_1.userFlags);

@@ -56,3 +56,3 @@ if (notFound.length)

return meta.$send('用户信息已修改。');
});
}, ['flag']);
registerUserAction('clearUsage', async (meta, user, ...commands) => {

@@ -69,3 +69,3 @@ if (commands.length) {

return meta.$send('用户信息已修改。');
});
}, ['usage']);
registerUserAction('showUsage', async (meta, user, ...commands) => {

@@ -81,3 +81,27 @@ const { usage } = user;

].join('\n'));
});
}, ['usage']);
registerGroupAction('setFlag', async (meta, group, ...flags) => {
if (!flags.length)
return meta.$send(`可用的标记有 ${koishi_core_1.groupFlags.join(', ')}。`);
const notFound = koishi_utils_1.difference(flags, koishi_core_1.groupFlags);
if (notFound.length)
return meta.$send(`未找到标记 ${notFound.join(', ')}。`);
for (const name of flags) {
group.flag |= koishi_core_1.GroupFlag[name];
}
await group._update();
return meta.$send('群信息已修改。');
}, ['flag']);
registerGroupAction('unsetFlag', async (meta, group, ...flags) => {
if (!flags.length)
return meta.$send(`可用的标记有 ${koishi_core_1.groupFlags.join(', ')}。`);
const notFound = koishi_utils_1.difference(flags, koishi_core_1.groupFlags);
if (notFound.length)
return meta.$send(`未找到标记 ${notFound.join(', ')}。`);
for (const name of flags) {
group.flag &= ~koishi_core_1.GroupFlag[name];
}
await group._update();
return meta.$send('群信息已修改。');
}, ['flag']);
function apply(ctx, options) {

@@ -92,10 +116,8 @@ const userActions = Object.keys(userActionMap).map(koishi_utils_1.paramCase).join(', ');

const isGroup = 'g' in options || 'G' in options;
if ('user' in options && isGroup) {
if ('user' in options && isGroup)
return meta.$send('不能同时目标为指定用户和群。');
}
const actionList = isGroup ? groupActions : userActions;
const actionMap = isGroup ? groupActionMap : userActionMap;
if (!name) {
if (!name)
return meta.$send(`当前的可用指令有:${actionList}。`);
}
const action = actionMap[koishi_utils_1.paramCase(name)];

@@ -105,8 +127,9 @@ if (!action)

if (isGroup) {
const fields = action.fields ? action.fields.slice() : koishi_core_1.groupFields;
let group;
if (options.thisGroup) {
group = await ctx.database.observeGroup(meta.$group);
group = await ctx.database.observeGroup(meta.$group, fields);
}
else if (typeof options.group === 'number') {
group = await ctx.database.observeGroup(options.group);
else if (koishi_utils_1.isInteger(options.group) && options.group > 0) {
group = await ctx.database.observeGroup(options.group, fields);
}

@@ -118,3 +141,3 @@ if (!group)

else {
const fields = action.fields.slice();
const fields = action.fields ? action.fields.slice() : koishi_core_1.userFields;
if (!fields.includes('authority'))

@@ -129,3 +152,3 @@ fields.push('authority');

if (!user)
return meta.$send('未找到用户。');
return meta.$send('未找到指定的用户。');
if (qq !== meta.$user.id && meta.$user.authority <= user.authority)

@@ -132,0 +155,0 @@ return meta.$send('权限不足。');

@@ -56,3 +56,2 @@ "use strict";

app.receiver.once('ready', async () => {
logger.info('foo bar');
await Promise.all([

@@ -59,0 +58,0 @@ ...Object.keys(authorizeUserInverseMap).map(key => updateAuthorizeInfo(+key, authorizeUserInverseMap[+key])),

@@ -5,2 +5,3 @@ "use strict";

ctx.command('help [command]', '显示帮助信息', { authority: 0, ...options })
.userFields(['authority', 'usage'])
.shortcut('帮助', { fuzzy: true })

@@ -7,0 +8,0 @@ .shortcut('全局指令', { options: { shortcut: true } })

@@ -14,3 +14,3 @@ import { Context, CommandConfig } from 'koishi-core';

import repeater, { RepeaterOptions } from './repeater';
import requestHandler, { HandlerConfig } from './requestHandler';
import requestHandler, { HandlerConfig } from './request-handler';
import respondent, { Respondent } from './respondent';

@@ -17,0 +17,0 @@ import welcome, { WelcomeMessage } from './welcome';

@@ -33,4 +33,4 @@ "use strict";

exports.repeater = repeater_1.default;
const requestHandler_1 = __importDefault(require("./requestHandler"));
exports.requestHandler = requestHandler_1.default;
const request_handler_1 = __importDefault(require("./request-handler"));
exports.requestHandler = request_handler_1.default;
const respondent_1 = __importDefault(require("./respondent"));

@@ -52,3 +52,3 @@ exports.respondent = respondent_1.default;

.plugin(repeater_1.default, options.repeater)
.plugin(requestHandler_1.default, options)
.plugin(request_handler_1.default, options)
.plugin(respondent_1.default, options.respondent)

@@ -55,0 +55,0 @@ .plugin(welcome_1.default, options.welcome);

{
"name": "koishi-plugin-common",
"description": "Common plugins for Koishi",
"version": "1.0.4",
"version": "1.0.5",
"main": "dist/index.js",

@@ -31,8 +31,8 @@ "typings": "dist/index.d.ts",

"devDependencies": {
"koishi-test-utils": "^1.1.0"
"koishi-test-utils": "^1.2.1"
},
"dependencies": {
"koishi-core": "^1.3.0",
"koishi-core": "^1.3.1",
"koishi-utils": "^1.0.2"
}
}

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

import { Context, User, userFlags, UserFlag, Meta, UserField, getTargetId, CommandConfig, GroupField, UserData, GroupData } from 'koishi-core'
import { Context, User, userFlags, UserFlag, Meta, UserField, getTargetId, CommandConfig, GroupField, UserData, GroupData, GroupFlag, groupFlags, Group, userFields, groupFields } from 'koishi-core'
import { isInteger, difference, Observed, paramCase } from 'koishi-utils'

@@ -20,7 +20,7 @@

export function registerUserAction <K extends UserField> (name: string, callback: ActionCallback<UserData, K>, fields: K[] = []) {
export function registerUserAction <K extends UserField> (name: string, callback: ActionCallback<UserData, K>, fields?: K[]) {
userActionMap[paramCase(name)] = { callback, fields }
}
export function registerGroupAction <K extends GroupField> (name: string, callback: ActionCallback<GroupData, K>, fields: K[] = []) {
export function registerGroupAction <K extends GroupField> (name: string, callback: ActionCallback<GroupData, K>, fields?: K[]) {
groupActionMap[paramCase(name)] = { callback, fields }

@@ -40,3 +40,3 @@ }

}
})
}, ['authority'])

@@ -52,6 +52,6 @@ registerUserAction('setFlag', async (meta, user, ...flags) => {

return meta.$send('用户信息已修改。')
})
}, ['flag'])
registerUserAction('unsetFlag', async (meta, user, ...flags) => {
if (!flags.length) return meta.$send(`可用的 flag 有:${userFlags.join(', ')}。`)
if (!flags.length) return meta.$send(`可用的标记有 ${userFlags.join(', ')}。`)
const notFound = difference(flags, userFlags)

@@ -64,3 +64,3 @@ if (notFound.length) return meta.$send(`未找到标记 ${notFound.join(', ')}。`)

return meta.$send('用户信息已修改。')
})
}, ['flag'])

@@ -77,3 +77,3 @@ registerUserAction('clearUsage', async (meta, user, ...commands) => {

return meta.$send('用户信息已修改。')
})
}, ['usage'])

@@ -88,4 +88,26 @@ registerUserAction('showUsage', async (meta, user, ...commands) => {

].join('\n'))
})
}, ['usage'])
registerGroupAction('setFlag', async (meta, group, ...flags) => {
if (!flags.length) return meta.$send(`可用的标记有 ${groupFlags.join(', ')}。`)
const notFound = difference(flags, groupFlags)
if (notFound.length) return meta.$send(`未找到标记 ${notFound.join(', ')}。`)
for (const name of flags) {
group.flag |= GroupFlag[name]
}
await group._update()
return meta.$send('群信息已修改。')
}, ['flag'])
registerGroupAction('unsetFlag', async (meta, group, ...flags) => {
if (!flags.length) return meta.$send(`可用的标记有 ${groupFlags.join(', ')}。`)
const notFound = difference(flags, groupFlags)
if (notFound.length) return meta.$send(`未找到标记 ${notFound.join(', ')}。`)
for (const name of flags) {
group.flag &= ~GroupFlag[name]
}
await group._update()
return meta.$send('群信息已修改。')
}, ['flag'])
export default function apply (ctx: Context, options: CommandConfig) {

@@ -101,10 +123,8 @@ const userActions = Object.keys(userActionMap).map(paramCase).join(', ')

const isGroup = 'g' in options || 'G' in options
if ('user' in options && isGroup) {
return meta.$send('不能同时目标为指定用户和群。')
}
if ('user' in options && isGroup) return meta.$send('不能同时目标为指定用户和群。')
const actionList = isGroup ? groupActions : userActions
const actionMap = isGroup ? groupActionMap : userActionMap
if (!name) {
return meta.$send(`当前的可用指令有:${actionList}。`)
}
if (!name) return meta.$send(`当前的可用指令有:${actionList}。`)
const action = actionMap[paramCase(name)]

@@ -114,7 +134,8 @@ if (!action) return meta.$send(`指令未找到。当前的可用指令有:${actionList}。`)

if (isGroup) {
let group: Observed<GroupData>
const fields = action.fields ? action.fields.slice() as GroupField[] : groupFields
let group: Group
if (options.thisGroup) {
group = await ctx.database.observeGroup(meta.$group)
} else if (typeof options.group === 'number') {
group = await ctx.database.observeGroup(options.group)
group = await ctx.database.observeGroup(meta.$group, fields)
} else if (isInteger(options.group) && options.group > 0) {
group = await ctx.database.observeGroup(options.group, fields)
}

@@ -124,3 +145,3 @@ if (!group) return meta.$send('未找到指定的群。')

} else {
const fields = action.fields.slice() as UserField[]
const fields = action.fields ? action.fields.slice() as UserField[] : userFields
if (!fields.includes('authority')) fields.push('authority')

@@ -132,3 +153,3 @@ let user: User

user = await ctx.database.observeUser(qq, -1, fields)
if (!user) return meta.$send('未找到用户。')
if (!user) return meta.$send('未找到指定的用户。')
if (qq !== meta.$user.id && meta.$user.authority <= user.authority) return meta.$send('权限不足。')

@@ -135,0 +156,0 @@ } else {

@@ -69,3 +69,2 @@ import { UserData, Database, Context, GroupRole } from 'koishi-core'

app.receiver.once('ready', async () => {
logger.info('foo bar')
await Promise.all([

@@ -72,0 +71,0 @@ ...Object.keys(authorizeUserInverseMap).map(key => updateAuthorizeInfo(+key, authorizeUserInverseMap[+key])),

@@ -5,2 +5,3 @@ import { Context, Command, UserData, CommandConfig, MessageMeta } from 'koishi-core'

ctx.command('help [command]', '显示帮助信息', { authority: 0, ...options })
.userFields(['authority', 'usage'])
.shortcut('帮助', { fuzzy: true })

@@ -7,0 +8,0 @@ .shortcut('全局指令', { options: { shortcut: true } })

@@ -14,3 +14,3 @@ import { Context, CommandConfig } from 'koishi-core'

import repeater, { RepeaterOptions } from './repeater'
import requestHandler, { HandlerConfig } from './requestHandler'
import requestHandler, { HandlerConfig } from './request-handler'
import respondent, { Respondent } from './respondent'

@@ -17,0 +17,0 @@ import welcome, { WelcomeMessage } from './welcome'

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

import { MockedApp, createMeta } from 'koishi-test-utils'
import { MockedApp } from 'koishi-test-utils'
import echo from '../src/echo'

@@ -10,14 +10,14 @@

test('basic support', async () => {
await app.receive(createMeta('message', 'private', 'friend', { message: 'echo foo', userId: 123 }))
await app.receiveMessage('user', 'echo foo', 123)
app.shouldHaveLastRequest('send_private_msg', { message: 'foo', userId: 123 })
await app.receive(createMeta('message', 'group', 'normal', { message: 'echo foo', groupId: 123 }))
app.shouldHaveLastRequest('send_group_msg', { message: 'foo', groupId: 123 })
await app.receive(createMeta('message', 'discuss', null, { message: 'echo foo', discussId: 123 }))
app.shouldHaveLastRequest('send_discuss_msg', { message: 'foo', discussId: 123 })
await app.receiveMessage('group', 'echo foo', 123, 456)
app.shouldHaveLastRequest('send_group_msg', { message: 'foo', groupId: 456 })
await app.receiveMessage('discuss', 'echo foo', 123, 789)
app.shouldHaveLastRequest('send_discuss_msg', { message: 'foo', discussId: 789 })
})
test('send to other contexts', async () => {
await app.receive(createMeta('message', 'private', 'friend', { message: 'echo -u 456 foo', userId: 123 }))
await app.receiveMessage('user', 'echo -u 456 foo', 123)
app.shouldHaveLastRequest('send_private_msg', { message: 'foo', userId: 456 })
await app.receive(createMeta('message', 'private', 'friend', { message: 'echo -g 456 -d 789 foo', userId: 123 }))
await app.receiveMessage('user', 'echo -g 456 -d 789 foo', 123)
app.shouldHaveLastRequests([

@@ -24,0 +24,0 @@ ['send_group_msg', { message: 'foo', groupId: 456 }],

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