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 1.2.0 to 1.3.0

9

dist/app.js

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

Object.defineProperty(exports, "__esModule", { value: true });
const debug_1 = __importDefault(require("debug"));
const escape_string_regexp_1 = __importDefault(require("escape-string-regexp"));

@@ -17,4 +16,2 @@ const sender_1 = require("./sender");

const messages_1 = require("./messages");
const showLog = debug_1.default('koishi');
const showReceiverLog = debug_1.default('koishi:receiver');
const selfIds = new Set();

@@ -320,3 +317,3 @@ exports.appMap = {};

await Promise.all(tasks);
showLog('started');
this.logger('app').debug('started');
this.receiver.emit('connect');

@@ -341,3 +338,3 @@ if (this.selfId && !this._isReady) {

}
showLog('stopped');
this.logger('app').debug('stopped');
this.receiver.emit('disconnect');

@@ -350,3 +347,3 @@ }

continue;
showReceiverLog(path, 'emits', event);
this.logger('receiver').debug(path, 'emits', event);
context.receiver.emit(event, ...payload);

@@ -353,0 +350,0 @@ }

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -9,5 +6,3 @@ const messages_1 = require("./messages");

const util_1 = require("util");
const debug_1 = __importDefault(require("debug"));
const parser_1 = require("./parser");
const showCommandLog = debug_1.default('koishi:command');
const defaultConfig = {

@@ -211,3 +206,3 @@ authority: 1,

// execute command
showCommandLog('execute %s', this.name);
this.context.logger('command').debug('execute %s', this.name);
this.app.emitEvent(meta, 'command', argv);

@@ -214,0 +209,0 @@ let skipped = false;

@@ -22,2 +22,11 @@ /// <reference types="node" />

}
export interface Logger {
warn(format: any, ...param: any): void;
info(format: any, ...param: any): void;
debug(format: any, ...param: any): void;
success(format: any, ...param: any): void;
error(format: any, ...param: any): void;
}
export declare const logTypes: (keyof Logger)[];
export declare type LogEvents = 'logger/warn' | 'logger/info' | 'logger/debug' | 'logger/success' | 'logger/error';
export declare class Context {

@@ -29,2 +38,3 @@ readonly identifier: string;

database: Database;
logger: (scope?: string) => Logger;
receiver: Receiver;

@@ -92,2 +102,8 @@ constructor(identifier: string, _scope: ContextScope);

'error/middleware'(error: Error): any;
'logger'(scope: string, message: string, type: keyof Logger): any;
'logger/debug'(scope: string, message: string): any;
'logger/info'(scope: string, message: string): any;
'logger/error'(scope: string, message: string): any;
'logger/warn'(scope: string, message: string): any;
'logger/success'(scope: string, message: string): any;
'ready'(): any;

@@ -94,0 +110,0 @@ 'before-connect'(): any;

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

const noopIdentifier = ContextScope.stringify(noopScope);
exports.logTypes = ['warn', 'info', 'debug', 'success', 'error'];
class Context {

@@ -42,5 +43,15 @@ constructor(identifier, _scope) {

this.receiver = new events_1.EventEmitter();
// prevent event emitter from crashing
// https://nodejs.org/api/events.html#events_error_events
this.receiver.on('error', koishi_utils_1.noop);
this.receiver.on('error', (error) => {
this.logger().warn(error);
});
this.logger = (scope = '') => {
const logger = {};
for (const type of exports.logTypes) {
logger[type] = (...args) => {
this.app.receiver.emit('logger', scope, util_1.format(...args), type);
this.app.receiver.emit(`logger/${type}`, scope, util_1.format(...args));
};
}
return logger;
};
}

@@ -47,0 +58,0 @@ inverse() {

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

Object.defineProperty(exports, "__esModule", { value: true });
const debug_1 = __importDefault(require("debug"));
const axios_1 = __importDefault(require("axios"));
const koishi_utils_1 = require("koishi-utils");
const showSenderLog = debug_1.default('koishi:sender');
class SenderError extends Error {

@@ -44,5 +42,5 @@ constructor(args, url, retcode) {

async get(action, params = {}, silent = false) {
showSenderLog('request %s %o', action, params);
this.app.logger('sender').debug('request %s %o', action, params);
const response = await this._get(action, koishi_utils_1.snakeCase(params));
showSenderLog('response %o', response);
this.app.logger('sender').debug('response %o', response);
const { data, retcode } = response;

@@ -49,0 +47,0 @@ if (retcode === 0 && !silent) {

@@ -15,2 +15,7 @@ /// <reference types="node" />

constructor(app: App);
/**
* representative app
*/
get app(): App;
protected debug(format: any, ...params: any[]): void;
protected prepareMeta(data: any): Meta<import("./meta").PostType>;

@@ -17,0 +22,0 @@ parseMeta(meta: Meta): string[];

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

const ws_1 = __importDefault(require("ws"));
const debug_1 = __importDefault(require("debug"));
const http = __importStar(require("http"));

@@ -21,5 +20,2 @@ const messages_1 = require("./messages");

const util_1 = require("util");
const showServerLog = debug_1.default('koishi:server');
// @ts-ignore: @types/debug does not include the property
showServerLog.inspectOpts.depth = 0;
class Server {

@@ -32,2 +28,12 @@ constructor(app) {

}
/**
* representative app
*/
get app() {
return this.appList[0];
}
debug(format, ...params) {
var _a;
(_a = this.app) === null || _a === void 0 ? void 0 : _a.logger('sender').debug(format, ...params);
}
prepareMeta(data) {

@@ -37,3 +43,3 @@ const meta = koishi_utils_1.camelCase(data);

// below version 3.4
meta.selfId = this.appList[0].selfId;
meta.selfId = this.app.selfId;
}

@@ -230,3 +236,3 @@ else if (!this.appMap[meta.selfId]) {

const data = JSON.parse(body);
showServerLog('receive %o', data);
this.debug('receive %o', data);
const meta = this.prepareMeta(data);

@@ -261,7 +267,7 @@ if (!meta) {

async _listen() {
showServerLog('http server opening');
const { port } = this.appList[0].options;
this.debug('http server opening');
const { port } = this.app.options;
this.server.listen(port);
try {
this.version = await this.appList[0].sender.getVersionInfo();
this.version = await this.app.sender.getVersionInfo();
}

@@ -271,7 +277,7 @@ catch (error) {

}
showServerLog('http server listen to', port);
this.debug('http server listen to', port);
}
_close() {
this.server.close();
showServerLog('http server closed');
this.debug('http server closed');
}

@@ -298,5 +304,5 @@ }

return new Promise((resolve, reject) => {
showServerLog('websocket client opening');
this.debug('websocket client opening');
const headers = {};
const { token, server } = this.appList[0].options;
const { token, server } = this.app.options;
if (token)

@@ -318,3 +324,3 @@ headers.Authorization = `Bearer ${token}`;

data = data.toString();
showServerLog('receive', data);
this.debug('receive', data);
let parsed;

@@ -329,4 +335,3 @@ try {

resolved = true;
const { server } = this.appList[0].options;
showServerLog('connect to ws server:', server);
this.debug('connect to ws server:', this.app.options.server);
resolve();

@@ -351,3 +356,3 @@ }

this.socket.close();
showServerLog('websocket client closed');
this.debug('websocket client closed');
}

@@ -354,0 +359,0 @@ }

{
"name": "koishi-core",
"description": "Core features for Koishi",
"version": "1.2.0",
"version": "1.3.0",
"main": "dist/index.js",

@@ -42,3 +42,2 @@ "typings": "dist/index.d.ts",

"axios": "^0.19.1",
"debug": "^4.1.1",
"escape-string-regexp": "^2.0.0",

@@ -45,0 +44,0 @@ "koishi-utils": "^1.0.2",

# shiki-core
[![Status](https://img.shields.io/github/workflow/status/koishijs/koishi/CI/master?style=flat-square)](https://github.com/koishijs/koishi/actions?query=workflow:CI)
[![npm](https://img.shields.io/npm/v/koishi-core?style=flat-square)](https://www.npmjs.com/package/koishi-core)
A bot based on CoolQ HTTP API.
Core features of Koishi.
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