New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

hookpoint

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hookpoint - npm Package Compare versions

Comparing version
3.2.1
to
4.0.0
+8
-0
CHANGELOG.md

@@ -0,1 +1,9 @@

## 4.0.0 (2023-10-29)
#### Feature
- add onError Hook
- afterTrigger is also called, if result is bailed
- HookCancel is created with `Symbol.for('HookCancel')`
## 3.2.1 (2023-07-14)

@@ -2,0 +10,0 @@

+1
-1

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

"use strict";var T=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var x=(s,e)=>{for(var t in e)T(s,t,{get:e[t],enumerable:!0})},R=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of h(e))!A.call(s,n)&&n!==t&&T(s,n,{get:()=>e[n],enumerable:!(r=l(e,n))||r.enumerable});return s};var I=s=>R(T({},"__esModule",{value:!0}),s);var b={};x(b,{Hook:()=>i,HookCancel:()=>d,LastOutHook:()=>f,SeriesHook:()=>c,WaterfallHook:()=>p});module.exports=I(b);var d=Symbol("cancel hook run");var u=class{constructor(){this.items=new Set}hasItem(e){return Array.from(this.items).some(t=>t.id===e)}add(...e){for(let t of e)this.ensureUniqueId(t),this.items.add(t);this.sortedItems=void 0}ensureUniqueId(e){e.id||(e.id="unknown");let t=e.id,r=1;for(;Array.from(this.items).some(n=>n.id===e.id&&n!==e);)e.id=`${t}#${r++}`}addSortSet(e){for(let t of e.items)this.items.add(t);this.sortedItems=void 0}remove(e){let t=Array.from(this.items).find(r=>r.id===e);return t?(this.items.delete(t),this.sortedItems=void 0,!0):!1}get sorted(){if(!this.sortedItems){let e=this.calculateIndex(this.prepareSortItems());this.sortedItems=e.sort((t,r)=>t.index<r.index?-1:t.index>r.index?1:0).map(t=>t.item)}return this.sortedItems}prepareSortItems(){let e=[],t=new Map(Array.from(this.items).map(n=>[n.id,{id:n.id,after:[],item:n}])),r=[];for(let n of this.items){let o=t.get(n.id);if(o){if(n.after)for(let g of n.after){let a=t.get(g);a&&o.after.push(a)}n.before?r.push(o):e.push(o)}}for(let n of r){let o=[];if(n.item.before)for(let g of n.item.before){let a=t.get(g);a&&(a.after.splice(0,0,n),o.push(e.findIndex(m=>m.id===g)))}e.splice(Math.min(...o),0,n)}return e}calculateIndex(e){let t=[];for(let r of e)t.push({...r,index:this.getIndex(r,e)});return t}getIndex(e,t){if(typeof e.index>"u")if(e.after.length===0)e.index=t.indexOf(e)*2;else{e.index=-1;let r=e.after.map(n=>this.getIndex(n,t)).filter(n=>n>=0);r.length>0&&(e.index=Math.max(...r)+1)}return e.index}};var i=class{constructor(e){this.bailOut=e;this.id=this.constructor.name,this.#e=new u,this.#t=new u}#e;#t;get interceptors(){return[...this.#t.sorted]}get items(){return[...this.#e.sorted]}hasHook(e){return this.#e.hasItem(e)}addHook(e,t,r){let n={...r,id:e,action:t};this.#e.add(n)}addObjHook(e,...t){this.#e.add(...t.map(r=>({...r,id:r.id,action:(...n)=>e(r).call(r,...n)})))}removeHook(e){return this.#e.remove(e)}addInterceptor(e){this.#t.add(e)}removeInterceptor(e){return this.#t.remove(e)}async trigger(...e){let t=[],r={index:0,length:this.#e.sorted.length,args:e,results:t,hook:this};if(await this.intercept(n=>n.beforeLoop,r)===!1)return d;if(r.bail)return this.getMergedResults(t,r.args);for(;r.index<r.length;){if(r.hookItem=this.#e.sorted[r.index],await this.intercept(o=>o.beforeTrigger,r)===!1)return d;if(r.bail)return this.getMergedResults(t,r.args);let n=await r.hookItem.action(...r.args);if(n===d)return d;if(t.push(n),r.args=this.getNextArgs(n,r.args),await this.intercept(o=>o.afterTrigger,r)===!1)return d;if(r.bail||this.bailOut&&this.bailOut(n))return this.getMergedResults(t,r.args);r.index++}return await this.intercept(n=>n.afterLoop,r)===!1?d:this.getMergedResults(t,r.args)}async intercept(e,t){for(let r of this.#t.sorted){let n=e(r);if(n&&!await n.apply(r,[t]))return!1}return!0}add(...e){for(let t of e)this.#e.addSortSet(t.#e),this.#t.addSortSet(t.#t)}merge(...e){let t=this.initNew();return t.#e.addSortSet(this.#e),t.#t.addSortSet(this.#t),t.add(...e),t}};var f=class s extends i{constructor(e){super(e)}getNextArgs(e,t){return t}getMergedResults(e){return e.pop()}initNew(){return new s(this.bailOut)}};var c=class s extends i{constructor(e){super(e)}getNextArgs(e,t){return t}getMergedResults(e){return e}initNew(){return new s(this.bailOut)}};var p=class s extends i{constructor(e){super(e)}getNextArgs(e,t){return t[0]=e,t}getMergedResults(e,t){return e.length>0?e.pop():t[0]}initNew(){return new s(this.bailOut)}};0&&(module.exports={Hook,HookCancel,LastOutHook,SeriesHook,WaterfallHook});
"use strict";var g=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var x=(n,e)=>{for(var t in e)g(n,t,{get:e[t],enumerable:!0})},R=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of h(e))!A.call(n,o)&&o!==t&&g(n,o,{get:()=>e[o],enumerable:!(r=l(e,o))||r.enumerable});return n};var I=n=>R(g({},"__esModule",{value:!0}),n);var b={};x(b,{Hook:()=>i,HookCancel:()=>d,LastOutHook:()=>T,SeriesHook:()=>c,WaterfallHook:()=>p});module.exports=I(b);var d=Symbol.for("HookCancel");var u=class{constructor(){this.items=new Set}hasItem(e){return Array.from(this.items).some(t=>t.id===e)}add(...e){for(let t of e)this.ensureUniqueId(t),this.items.add(t);this.sortedItems=void 0}ensureUniqueId(e){e.id||(e.id="unknown");let t=e.id,r=1;for(;Array.from(this.items).some(o=>o.id===e.id&&o!==e);)e.id=`${t}#${r++}`}addSortSet(e){for(let t of e.items)this.items.add(t);this.sortedItems=void 0}remove(e){let t=Array.from(this.items).find(r=>r.id===e);return t?(this.items.delete(t),this.sortedItems=void 0,!0):!1}get sorted(){if(!this.sortedItems){let e=this.calculateIndex(this.prepareSortItems());this.sortedItems=e.sort((t,r)=>t.index<r.index?-1:t.index>r.index?1:0).map(t=>t.item)}return this.sortedItems}prepareSortItems(){let e=[],t=new Map(Array.from(this.items).map(o=>[o.id,{id:o.id,after:[],item:o}])),r=[];for(let o of this.items){let s=t.get(o.id);if(s){if(o.after)for(let f of o.after){let a=t.get(f);a&&s.after.push(a)}o.before?r.push(s):e.push(s)}}for(let o of r){let s=[];if(o.item.before)for(let f of o.item.before){let a=t.get(f);a&&(a.after.splice(0,0,o),s.push(e.findIndex(m=>m.id===f)))}e.splice(Math.min(...s),0,o)}return e}calculateIndex(e){let t=[];for(let r of e)t.push({...r,index:this.getIndex(r,e)});return t}getIndex(e,t){if(typeof e.index>"u")if(e.after.length===0)e.index=t.indexOf(e)*2;else{e.index=-1;let r=e.after.map(o=>this.getIndex(o,t)).filter(o=>o>=0);r.length>0&&(e.index=Math.max(...r)+1)}return e.index}};var i=class{constructor(e){this.bailOut=e;this.id=this.constructor.name,this.#e=new u,this.#t=new u}#e;#t;get interceptors(){return[...this.#t.sorted]}get items(){return[...this.#e.sorted]}hasHook(e){return this.#e.hasItem(e)}addHook(e,t,r){let o={...r,id:e,action:t};this.#e.add(o)}addObjHook(e,...t){this.#e.add(...t.map(r=>({...r,id:r.id,action:(...o)=>e(r).call(r,...o)})))}removeHook(e){return this.#e.remove(e)}addInterceptor(e){this.#t.add(e)}removeInterceptor(e){return this.#t.remove(e)}async trigger(...e){let t=[],r={index:0,length:this.#e.sorted.length,args:e,results:t,hook:this};try{if(await this.intercept(o=>o.beforeLoop,r)===!1)return d;if(!r.bail)for(;r.index<r.length;){if(r.hookItem=this.#e.sorted[r.index],await this.intercept(s=>s.beforeTrigger,r)===!1)return d;if(r.bail){r.bail=!0;break}let o=await r.hookItem.action(...r.args);if(o===d)return d;if(t.push(o),r.args=this.getNextArgs(o,r.args),await this.intercept(s=>s.afterTrigger,r)===!1)return d;if(r.bail||this.bailOut&&this.bailOut(o)){r.bail=!0;break}r.index++}return await this.intercept(o=>o.afterLoop,r)===!1?d:this.getMergedResults(t,r.args)}catch(o){throw await this.intercept(s=>s.onError,r),o}}async intercept(e,t){for(let r of this.#t.sorted){let o=e(r);if(o&&!await o.apply(r,[t]))return!1}return!0}add(...e){for(let t of e)this.#e.addSortSet(t.#e),this.#t.addSortSet(t.#t)}merge(...e){let t=this.initNew();return t.#e.addSortSet(this.#e),t.#t.addSortSet(this.#t),t.add(...e),t}};var T=class n extends i{constructor(e){super(e)}getNextArgs(e,t){return t}getMergedResults(e){return e.pop()}initNew(){return new n(this.bailOut)}};var c=class n extends i{constructor(e){super(e)}getNextArgs(e,t){return t}getMergedResults(e){return e}initNew(){return new n(this.bailOut)}};var p=class n extends i{constructor(e){super(e)}getNextArgs(e,t){return t[0]=e,t}getMergedResults(e,t){return e.length>0?e.pop():t[0]}initNew(){return new n(this.bailOut)}};0&&(module.exports={Hook,HookCancel,LastOutHook,SeriesHook,WaterfallHook});
//# sourceMappingURL=index.js.map

@@ -13,2 +13,3 @@ import { HookItem } from './hookItem';

afterLoop?(context: HookTriggerContext<TArgs, TReturn>): Promise<boolean | undefined>;
onError?(context: HookTriggerContext<TArgs, TReturn>): Promise<boolean | undefined>;
}
{
"name": "hookpoint",
"version": "3.2.1",
"version": "4.0.0",
"description": "hooks system for custom plugins",

@@ -48,18 +48,17 @@ "main": "./dist/index.js",

"devDependencies": {
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
"@types/jest": "^29.5.3",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"concurrently": "^8.2.0",
"esbuild": "^0.18.12",
"eslint-config-prettier": "^8.8.0",
"@types/jest": "^29.5.6",
"@typescript-eslint/eslint-plugin": "^6.9.0",
"@typescript-eslint/parser": "^6.9.0",
"concurrently": "^8.2.2",
"esbuild": "^0.19.5",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.45.0",
"eslint": "^8.52.0",
"husky": "^8.0.3",
"jest": "^29.6.1",
"lint-staged": "^13.2.3",
"lockfile-lint": "^4.10.6",
"prettier": "^2.8.8",
"typescript": "^5.1.6"
"jest": "^29.7.0",
"lint-staged": "^15.0.2",
"lockfile-lint": "^4.12.1",
"prettier": "^3.0.3",
"typescript": "^5.2.2"
}
}

Sorry, the diff of this file is not supported yet