cnpmcore
Version:
Private NPM Registry for Enterprise
35 lines • 2.79 kB
JavaScript
import crypto from 'node:crypto';
import { EntityUtil } from "../util/EntityUtil.js";
import { Entity } from "./Entity.js";
export class Hook extends Entity {
constructor(data) {
super(data);
this.hookId = data.hookId;
this.type = data.type;
this.ownerId = data.ownerId;
this.name = data.name;
this.endpoint = data.endpoint;
this.secret = data.secret;
this.latestTaskId = data.latestTaskId;
this.enable = data.enable;
}
static create(data) {
const hookData = {
...data,
enable: true,
latestTaskId: undefined,
};
const newData = EntityUtil.defaultData(hookData, 'hookId');
return new Hook(newData);
}
// payload 可能会特别大,如果做多次 stringify 浪费太多 cpu
signPayload(payload) {
const payloadStr = JSON.stringify(payload);
const digest = crypto.createHmac('sha256', this.secret).update(JSON.stringify(payload)).digest('hex');
return {
digest,
payloadStr,
};
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL2VudGl0eS9Ib29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUdqQyxPQUFPLEVBQUUsVUFBVSxFQUFpQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQW1CLE1BQU0sYUFBYSxDQUFDO0FBZXRELE1BQU0sT0FBTyxJQUFLLFNBQVEsTUFBTTtJQVU5QixZQUFZLElBQWM7UUFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFvQjtRQUNoQyxNQUFNLFFBQVEsR0FBaUM7WUFDN0MsR0FBRyxJQUFJO1lBQ1AsTUFBTSxFQUFFLElBQUk7WUFDWixZQUFZLEVBQUUsU0FBUztTQUN4QixDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsMENBQTBDO0lBQzFDLFdBQVcsQ0FBQyxPQUFlO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RHLE9BQU87WUFDTCxNQUFNO1lBQ04sVUFBVTtTQUNYLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==