@openpanel/express
Advanced tools
@@ -1,1 +0,1 @@ | ||
| "use strict";(()=>{var f=["openpanel-client-ip","cf-connecting-ip","true-client-ip","x-client-ip","x-forwarded-for","x-real-ip","fastly-client-ip","x-cluster-client-ip","x-appengine-user-ip","do-connecting-ip","x-nf-client-connection-ip","x-forwarded","forwarded"];function l(e){if(e.startsWith("::ffff:")){let t=e.substring(7);return l(t)}if(e==="::1"||e.startsWith("fc00:")||e.startsWith("fd00:")||e.startsWith("fe80:")||e.startsWith("127.")||e.startsWith("10."))return!1;if(e.startsWith("172.")){let t=e.split(".");if(t.length>=2){let r=Number.parseInt(t[1]||"0",10);if(r>=16&&r<=31)return!1}}return!(e.startsWith("192.168.")||e.startsWith("169.254."))}function u(){return typeof process<"u"&&process.env?.IP_HEADER_ORDER?process.env.IP_HEADER_ORDER.split(",").map(e=>e.trim()):f}function o(e){let t=/^(\d{1,3}\.){3}\d{1,3}$/,r=/^([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}$/;return l(e)&&(t.test(e)||r.test(e))}function d(e,t){let r=u();t&&(r=[t]);for(let n of r){let s=null;if(e instanceof Headers)s=e.get(n);else{let i=e[n];Array.isArray(i)?s=i[0]||null:s=i||null}if(s){if(n==="x-forwarded-for"){let i=s.split(",")[0]?.trim();if(i&&o(i))return{ip:i,header:n}}else if(n==="forwarded"){let a=s.match(/for=(?:"?\[?([^\]"]+)\]?"?)/i)?.[1];if(a&&o(a))return{ip:a,header:n}}else if(o(s))return{ip:s,header:n}}}return{ip:"",header:""}}var h=class{constructor(e){this.baseUrl=e.baseUrl,this.headers={"Content-Type":"application/json",...e.defaultHeaders},this.maxRetries=e.maxRetries??3,this.initialRetryDelay=e.initialRetryDelay??500}async resolveHeaders(){let e={};for(let[t,r]of Object.entries(this.headers)){let n=await r;n!==null&&(e[t]=n)}return e}addHeader(e,t){this.headers[e]=t}async post(e,t,r,n){try{let s=await fetch(e,{method:"POST",headers:await this.resolveHeaders(),body:t?JSON.stringify(t??{}):void 0,keepalive:!0,...r});if(s.status===401)return null;if(s.status!==200&&s.status!==202)throw new Error(`HTTP error! status: ${s.status}`);let i=await s.text();return i?JSON.parse(i):null}catch(s){if(n<this.maxRetries){let i=this.initialRetryDelay*2**n;return await new Promise(a=>setTimeout(a,i)),this.post(e,t,r,n+1)}return console.error("Max retries reached:",s),null}}async fetch(e,t,r={}){let n=`${this.baseUrl}${e}`;return this.post(n,t,r,0)}},p=class{constructor(e){this.options=e,this.queue=[];let t={"openpanel-client-id":e.clientId};e.clientSecret&&(t["openpanel-client-secret"]=e.clientSecret),t["openpanel-sdk-name"]=e.sdk||"node",t["openpanel-sdk-version"]=e.sdkVersion||"1.0.2",this.api=new h({baseUrl:e.apiUrl||"https://api.openpanel.dev",defaultHeaders:t})}init(){}ready(){this.options.waitForProfile=!1,this.flush()}async send(e){return this.options.disabled||this.options.filter&&!this.options.filter(e)?Promise.resolve():this.options.waitForProfile&&!this.profileId?(this.queue.push(e),Promise.resolve()):this.api.fetch("/track",e)}setGlobalProperties(e){this.global={...this.global,...e}}async track(e,t){return this.send({type:"track",payload:{name:e,profileId:t?.profileId??this.profileId,properties:{...this.global??{},...t??{}}}})}async identify(e){if(e.profileId&&(this.profileId=e.profileId,this.flush()),Object.keys(e).length>1)return this.send({type:"identify",payload:{...e,properties:{...this.global,...e.properties}}})}async alias(e){return this.send({type:"alias",payload:e})}async increment(e){return this.send({type:"increment",payload:e})}async decrement(e){return this.send({type:"decrement",payload:e})}async revenue(e,t){let r=t?.deviceId;return delete t?.deviceId,this.track("revenue",{...t??{},...r?{__deviceId:r}:{},__revenue:e})}async fetchDeviceId(){return(await this.api.fetch("/track/device-id",void 0,{method:"GET",keepalive:!1}))?.deviceId??""}clear(){this.profileId=void 0}flush(){this.queue.forEach(e=>{this.send({...e,payload:{...e.payload,profileId:e.payload.profileId??this.profileId}})}),this.queue=[]}};function y(e){return function(r,n,s){let i=new p(e),{ip:a}=d(r.headers);if(a&&i.api.addHeader("openpanel-client-ip",a),r.headers["user-agent"]&&i.api.addHeader("user-agent",r.headers["user-agent"]),e.trackRequest?.(r.url)){let c=e.getProfileId?e.getProfileId(r):void 0;i.track("request",{url:r.url,method:r.method,query:r.query,profileId:c})}return r.op=i,s()}}})(); | ||
| "use strict";(()=>{var f=["openpanel-client-ip","cf-connecting-ip","true-client-ip","x-client-ip","x-forwarded-for","x-real-ip","fastly-client-ip","x-cluster-client-ip","x-appengine-user-ip","do-connecting-ip","x-nf-client-connection-ip","x-forwarded","forwarded"];function l(e){if(e.startsWith("::ffff:")){let t=e.substring(7);return l(t)}if(e==="::1"||e.startsWith("fc00:")||e.startsWith("fd00:")||e.startsWith("fe80:")||e.startsWith("127.")||e.startsWith("10."))return!1;if(e.startsWith("172.")){let t=e.split(".");if(t.length>=2){let r=Number.parseInt(t[1]||"0",10);if(r>=16&&r<=31)return!1}}return!(e.startsWith("192.168.")||e.startsWith("169.254."))}function u(){return typeof process<"u"&&process.env?.IP_HEADER_ORDER?process.env.IP_HEADER_ORDER.split(",").map(e=>e.trim()):f}function o(e){let t=/^(\d{1,3}\.){3}\d{1,3}$/,r=/^([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}$/;return l(e)&&(t.test(e)||r.test(e))}function d(e,t){let r=u();t&&(r=[t]);for(let n of r){let s=null;if(e instanceof Headers)s=e.get(n);else{let i=e[n];Array.isArray(i)?s=i[0]||null:s=i||null}if(s){if(n==="x-forwarded-for"){let i=s.split(",")[0]?.trim();if(i&&o(i))return{ip:i,header:n}}else if(n==="forwarded"){let a=s.match(/for=(?:"?\[?([^\]"]+)\]?"?)/i)?.[1];if(a&&o(a))return{ip:a,header:n}}else if(o(s))return{ip:s,header:n}}}return{ip:"",header:""}}var h=class{constructor(e){this.baseUrl=e.baseUrl,this.headers={"Content-Type":"application/json",...e.defaultHeaders},this.maxRetries=e.maxRetries??3,this.initialRetryDelay=e.initialRetryDelay??500}async resolveHeaders(){let e={};for(let[t,r]of Object.entries(this.headers)){let n=await r;n!==null&&(e[t]=n)}return e}addHeader(e,t){this.headers[e]=t}async post(e,t,r,n){try{let s=await fetch(e,{method:"POST",headers:await this.resolveHeaders(),body:t?JSON.stringify(t??{}):void 0,keepalive:!0,...r});if(s.status===401)return null;if(s.status!==200&&s.status!==202)throw new Error(`HTTP error! status: ${s.status}`);let i=await s.text();return i?JSON.parse(i):null}catch(s){if(n<this.maxRetries){let i=this.initialRetryDelay*2**n;return await new Promise(a=>setTimeout(a,i)),this.post(e,t,r,n+1)}return console.error("Max retries reached:",s),null}}async fetch(e,t,r={}){let n=`${this.baseUrl}${e}`;return this.post(n,t,r,0)}},p=class{constructor(e){this.options=e,this.queue=[];let t={"openpanel-client-id":e.clientId};e.clientSecret&&(t["openpanel-client-secret"]=e.clientSecret),t["openpanel-sdk-name"]=e.sdk||"node",t["openpanel-sdk-version"]=e.sdkVersion||"1.0.3",this.api=new h({baseUrl:e.apiUrl||"https://api.openpanel.dev",defaultHeaders:t})}init(){}ready(){this.options.waitForProfile=!1,this.flush()}async send(e){return this.options.disabled||this.options.filter&&!this.options.filter(e)?Promise.resolve():this.options.waitForProfile&&!this.profileId?(this.queue.push(e),Promise.resolve()):this.api.fetch("/track",e)}setGlobalProperties(e){this.global={...this.global,...e}}async track(e,t){return this.log("track event",e,t),this.send({type:"track",payload:{name:e,profileId:t?.profileId??this.profileId,properties:{...this.global??{},...t??{}}}})}async identify(e){if(this.log("identify user",e),e.profileId&&(this.profileId=e.profileId,this.flush()),Object.keys(e).length>1)return this.send({type:"identify",payload:{...e,properties:{...this.global,...e.properties}}})}async alias(e){}async increment(e){return this.send({type:"increment",payload:e})}async decrement(e){return this.send({type:"decrement",payload:e})}async revenue(e,t){let r=t?.deviceId;return delete t?.deviceId,this.track("revenue",{...t??{},...r?{__deviceId:r}:{},__revenue:e})}async fetchDeviceId(){return(await this.api.fetch("/track/device-id",void 0,{method:"GET",keepalive:!1}))?.deviceId??""}clear(){this.profileId=void 0}flush(){this.queue.forEach(e=>{this.send({...e,payload:{...e.payload,profileId:e.payload.profileId??this.profileId}})}),this.queue=[]}log(...e){this.options.debug&&console.log("[OpenPanel.dev]",...e)}};function y(e){return function(r,n,s){let i=new p(e),{ip:a}=d(r.headers);if(a&&i.api.addHeader("openpanel-client-ip",a),r.headers["user-agent"]&&i.api.addHeader("user-agent",r.headers["user-agent"]),e.trackRequest?.(r.url)){let c=e.getProfileId?e.getProfileId(r):void 0;i.track("request",{url:r.url,method:r.method,query:r.query,profileId:c})}return r.op=i,s()}}})(); |
+2
-2
| { | ||
| "name": "@openpanel/express", | ||
| "version": "1.0.3", | ||
| "version": "1.0.4", | ||
| "module": "./dist/index.js", | ||
@@ -10,3 +10,3 @@ "scripts": { | ||
| "dependencies": { | ||
| "@openpanel/sdk": "1.0.2", | ||
| "@openpanel/sdk": "1.0.3", | ||
| "@openpanel/common": "*" | ||
@@ -13,0 +13,0 @@ }, |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
10379
0.78%+ Added
- Removed
Updated