@stackone/redaction 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/edge/index.d.mts +1 -1
- package/dist/edge/index.mjs +1 -1
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.d.cts +1 -1
- package/dist/node/index.d.mts +1 -1
- package/dist/node/index.mjs +1 -1
- package/package.json +1 -1
package/dist/edge/index.d.mts
CHANGED
|
@@ -75,4 +75,4 @@ declare const safeClone: <T>(value: T) => T;
|
|
|
75
75
|
declare const redactObject: <T>(obj: T, censorType?: CensorType) => T;
|
|
76
76
|
declare const I_AM_EDGE = true;
|
|
77
77
|
//#endregion
|
|
78
|
-
export { I_AM_EDGE, redactFields, redactObject, redactPath, redactUrl, safeClone };
|
|
78
|
+
export { CensorType, I_AM_EDGE, redactFields, redactObject, redactPath, redactUrl, safeClone };
|
package/dist/edge/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isMissing as e}from"@stackone/utils";const t=[`client_secret`,`access_token`,`refresh_token`,`api_key`,`password`,`job_board_token`,`private_key`,`certificate`,`service_user_token`,`key_id`,`secret_key`,`provhash`,`admin_key`,`session_key`,`id_token`,`authorization`,`bh_rest_token`,`external_trigger_token`,`tempauth`],n=[`req.headers.authorization`,`req.headers.cookie`,`req.headers.cookies`,`req.headers["set-cookie"]`,`req.headers["set-cookies"]`,`req.headers.httpsAgent.options.cert`,`req.headers.httpsAgent.options.key`,`req.headers["x-stackone-external-trigger-token"]`,`error.config.headers.authorization`,`error.config.data`,`error.config.headers.cookie`,`error.config.headers.cookies`,`error.config.headers["set-cookie"]`,`error.config.headers["set-cookies"]`,`error.config.httpsAgent.options.cert`,`error.config.httpsAgent.options.key`,`err.config.headers.authorization`,`err.config.data`,`err.config.headers.cookie`,`err.config.headers.cookies`,`err.config.headers["set-cookie"]`,`err.config.headers["set-cookies"]`,`err.config.httpsAgent.options.cert`,`err.config.httpsAgent.options.key`,`res.headers.authorization`,`res.headers.cookie`,`res.headers.cookies`,`res.headers["set-cookie"]`,`res.headers["set-cookies"]`,`res.headers.httpsAgent.options.cert`,`res.headers.httpsAgent.options.key`,`context.credentials`,...t],r=`**redacted**`;let i=function(e){return e.FULL=`FULL`,e.PARTIAL=`PARTIAL`,e}({});const a=e=>r,o=e=>typeof e==`string`?e.startsWith(r)?e:e.length<=10?r:`${r}${e.slice(-5)}`:r,s=e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`,c=e=>{let t=e.split(`.`);if(t.length<2)return s(e);let n=s(t.pop()??``);return[...t,n].join(`.`)},l=e=>{let t=e.lastIndexOf(`[`),n=e.indexOf(`]`,t);if(t===-1||n===-1)return;let r=e.slice(t,n+1).replace(/(["'])([^"']*)(["'])/g,(e,t,n)=>n?t+s(n)+t:t+t);return`${e.slice(0,t)}${r}${e.slice(n+1)}`},u=e=>l(e)||c(e),d=(e=[],t=!0)=>{if(!t)return[];let n=e.map(e=>u(e));return[...e,...n]},f=(e=[],t=!0)=>{if(!t)return[];let n=new Set;return e.forEach(e=>{if(n.add(e),e.includes(`_`)){let t=e.replace(/_([a-z])/g,(e,t)=>t.toUpperCase());n.add(t)}else{let t=e.replace(/([A-Z])/g,`_$1`).toLowerCase();n.add(t)}}),Array.from(n)},p={[i.FULL]:a,[i.PARTIAL]:o},m=f(t),h=d(n),g=(t,n=i.FULL,r)=>{if(!e(t))try{let e=new URL(t),r=[...e.searchParams].reduce((e,[t,r])=>{let i=t.toLowerCase();return e.set(t,m.some(e=>e.toLowerCase()===i)?p[n](r):r),e},new URLSearchParams);return`${e.origin}${e.pathname}${r.toString()?`?`+r:``}${e.hash}`}catch(e){return r?.warning({message:`Invalid URL provided, unable to redact`,context:{value:t,error:e},category:`redactUrl`}),t}},_=(t,n=i.FULL,r)=>{if(!e(t))try{let[e,r]=t.split(`?`);return r?`${e}?${[...new URLSearchParams(r)].reduce((e,[t,r])=>{let i=t.toLowerCase();return e.set(t,m.some(e=>e.toLowerCase()===i)?p[n](r):r),e},new URLSearchParams)}`:t}catch(e){return r?.warning({message:`Invalid path provided, unable to redact`,context:{value:t,error:e},category:`redactPath`}),t}},v=(t,n=i.FULL)=>{if(!e(t))return typeof t==`string`?p[n](t):Object.entries(t).reduce((e,[t,r])=>(e[t]=m.some(e=>e.toLowerCase()===t.toLowerCase())?p[n](r):r,e),{})};let y;const b=()=>(e(y)&&(y={[i.FULL]:C({paths:h,serialize:!1,censor:p[i.FULL]}),[i.PARTIAL]:C({paths:h,serialize:!1,censor:p[i.PARTIAL]})}),y),x=e=>e.replace(/\[(\d+)\]/g,`.$1`).split(`.`).filter(Boolean),S=()=>`***`,C=e=>{let t=(e.paths??[]).map(x),n=typeof e.censor==`function`?e.censor:S,r=!!e.serialize,i=e=>{if(typeof e!=`object`||!e)return r?String(e):e;for(let r of t){let t=e;for(let e=0;e<r.length-1&&t&&typeof t==`object`;e++)t=t[r[e]];let i=r[r.length-1];t&&Object.prototype.hasOwnProperty.call(t,i)&&(t[i]=n(t[i]))}return r?JSON.stringify(e):e};return i.restore=()=>{},i},w=e=>{let t=globalThis.structuredClone;return typeof t==`function`?t(e):JSON.parse(JSON.stringify(e))},T=(e,t=i.FULL)=>{if(typeof e!=`object`||!e)return e;let n=w(e);return b()[t](n)},E=!0;export{E as I_AM_EDGE,v as redactFields,T as redactObject,_ as redactPath,g as redactUrl,w as safeClone};
|
|
1
|
+
import{isMissing as e}from"@stackone/utils";const t=[`client_secret`,`access_token`,`refresh_token`,`api_key`,`password`,`job_board_token`,`private_key`,`certificate`,`service_user_token`,`key_id`,`secret_key`,`provhash`,`admin_key`,`session_key`,`id_token`,`authorization`,`bh_rest_token`,`external_trigger_token`,`tempauth`],n=[`req.headers.authorization`,`req.headers.cookie`,`req.headers.cookies`,`req.headers["set-cookie"]`,`req.headers["set-cookies"]`,`req.headers.httpsAgent.options.cert`,`req.headers.httpsAgent.options.key`,`req.headers["x-stackone-external-trigger-token"]`,`error.config.headers.authorization`,`error.config.data`,`error.config.headers.cookie`,`error.config.headers.cookies`,`error.config.headers["set-cookie"]`,`error.config.headers["set-cookies"]`,`error.config.httpsAgent.options.cert`,`error.config.httpsAgent.options.key`,`err.config.headers.authorization`,`err.config.data`,`err.config.headers.cookie`,`err.config.headers.cookies`,`err.config.headers["set-cookie"]`,`err.config.headers["set-cookies"]`,`err.config.httpsAgent.options.cert`,`err.config.httpsAgent.options.key`,`res.headers.authorization`,`res.headers.cookie`,`res.headers.cookies`,`res.headers["set-cookie"]`,`res.headers["set-cookies"]`,`res.headers.httpsAgent.options.cert`,`res.headers.httpsAgent.options.key`,`context.credentials`,...t],r=`**redacted**`;let i=function(e){return e.FULL=`FULL`,e.PARTIAL=`PARTIAL`,e}({});const a=e=>r,o=e=>typeof e==`string`?e.startsWith(r)?e:e.length<=10?r:`${r}${e.slice(-5)}`:r,s=e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`,c=e=>{let t=e.split(`.`);if(t.length<2)return s(e);let n=s(t.pop()??``);return[...t,n].join(`.`)},l=e=>{let t=e.lastIndexOf(`[`),n=e.indexOf(`]`,t);if(t===-1||n===-1)return;let r=e.slice(t,n+1).replace(/(["'])([^"']*)(["'])/g,(e,t,n)=>n?t+s(n)+t:t+t);return`${e.slice(0,t)}${r}${e.slice(n+1)}`},u=e=>l(e)||c(e),d=(e=[],t=!0)=>{if(!t)return[];let n=e.map(e=>u(e));return[...e,...n]},f=(e=[],t=!0)=>{if(!t)return[];let n=new Set;return e.forEach(e=>{if(n.add(e),e.includes(`_`)){let t=e.replace(/_([a-z])/g,(e,t)=>t.toUpperCase());n.add(t)}else{let t=e.replace(/([A-Z])/g,`_$1`).toLowerCase();n.add(t)}}),Array.from(n)},p={[i.FULL]:a,[i.PARTIAL]:o},m=f(t),h=d(n),g=(t,n=i.FULL,r)=>{if(!e(t))try{let e=new URL(t),r=[...e.searchParams].reduce((e,[t,r])=>{let i=t.toLowerCase();return e.set(t,m.some(e=>e.toLowerCase()===i)?p[n](r):r),e},new URLSearchParams);return`${e.origin}${e.pathname}${r.toString()?`?`+r:``}${e.hash}`}catch(e){return r?.warning({message:`Invalid URL provided, unable to redact`,context:{value:t,error:e},category:`redactUrl`}),t}},_=(t,n=i.FULL,r)=>{if(!e(t))try{let[e,r]=t.split(`?`);return r?`${e}?${[...new URLSearchParams(r)].reduce((e,[t,r])=>{let i=t.toLowerCase();return e.set(t,m.some(e=>e.toLowerCase()===i)?p[n](r):r),e},new URLSearchParams)}`:t}catch(e){return r?.warning({message:`Invalid path provided, unable to redact`,context:{value:t,error:e},category:`redactPath`}),t}},v=(t,n=i.FULL)=>{if(!e(t))return typeof t==`string`?p[n](t):Object.entries(t).reduce((e,[t,r])=>(e[t]=m.some(e=>e.toLowerCase()===t.toLowerCase())?p[n](r):r,e),{})};let y;const b=()=>(e(y)&&(y={[i.FULL]:C({paths:h,serialize:!1,censor:p[i.FULL]}),[i.PARTIAL]:C({paths:h,serialize:!1,censor:p[i.PARTIAL]})}),y),x=e=>e.replace(/\[(\d+)\]/g,`.$1`).split(`.`).filter(Boolean),S=()=>`***`,C=e=>{let t=(e.paths??[]).map(x),n=typeof e.censor==`function`?e.censor:S,r=!!e.serialize,i=e=>{if(typeof e!=`object`||!e)return r?String(e):e;for(let r of t){let t=e;for(let e=0;e<r.length-1&&t&&typeof t==`object`;e++)t=t[r[e]];let i=r[r.length-1];t&&Object.prototype.hasOwnProperty.call(t,i)&&(t[i]=n(t[i]))}return r?JSON.stringify(e):e};return i.restore=()=>{},i},w=e=>{let t=globalThis.structuredClone;return typeof t==`function`?t(e):JSON.parse(JSON.stringify(e))},T=(e,t=i.FULL)=>{if(typeof e!=`object`||!e)return e;let n=w(e);return b()[t](n)},E=!0;export{i as CensorType,E as I_AM_EDGE,v as redactFields,T as redactObject,_ as redactPath,g as redactUrl,w as safeClone};
|
package/dist/node/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`@stackone/utils`),l=require(`fast-redact`);l=s(l);const u=[`client_secret`,`access_token`,`refresh_token`,`api_key`,`password`,`job_board_token`,`private_key`,`certificate`,`service_user_token`,`key_id`,`secret_key`,`provhash`,`admin_key`,`session_key`,`id_token`,`authorization`,`bh_rest_token`,`external_trigger_token`,`tempauth`],d=[`req.headers.authorization`,`req.headers.cookie`,`req.headers.cookies`,`req.headers["set-cookie"]`,`req.headers["set-cookies"]`,`req.headers.httpsAgent.options.cert`,`req.headers.httpsAgent.options.key`,`req.headers["x-stackone-external-trigger-token"]`,`error.config.headers.authorization`,`error.config.data`,`error.config.headers.cookie`,`error.config.headers.cookies`,`error.config.headers["set-cookie"]`,`error.config.headers["set-cookies"]`,`error.config.httpsAgent.options.cert`,`error.config.httpsAgent.options.key`,`err.config.headers.authorization`,`err.config.data`,`err.config.headers.cookie`,`err.config.headers.cookies`,`err.config.headers["set-cookie"]`,`err.config.headers["set-cookies"]`,`err.config.httpsAgent.options.cert`,`err.config.httpsAgent.options.key`,`res.headers.authorization`,`res.headers.cookie`,`res.headers.cookies`,`res.headers["set-cookie"]`,`res.headers["set-cookies"]`,`res.headers.httpsAgent.options.cert`,`res.headers.httpsAgent.options.key`,`context.credentials`,...u],f=`**redacted**`;let p=function(e){return e.FULL=`FULL`,e.PARTIAL=`PARTIAL`,e}({});const m=e=>f,h=e=>typeof e==`string`?e.startsWith(f)?e:e.length<=10?f:`${f}${e.slice(-5)}`:f,g=e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`,_=e=>{let t=e.split(`.`);if(t.length<2)return g(e);let n=g(t.pop()??``);return[...t,n].join(`.`)},v=e=>{let t=e.lastIndexOf(`[`),n=e.indexOf(`]`,t);if(t===-1||n===-1)return;let r=e.slice(t,n+1).replace(/(["'])([^"']*)(["'])/g,(e,t,n)=>n?t+g(n)+t:t+t);return`${e.slice(0,t)}${r}${e.slice(n+1)}`},y=e=>v(e)||_(e),b=(e=[],t=!0)=>{if(!t)return[];let n=e.map(e=>y(e));return[...e,...n]},x=(e=[],t=!0)=>{if(!t)return[];let n=new Set;return e.forEach(e=>{if(n.add(e),e.includes(`_`)){let t=e.replace(/_([a-z])/g,(e,t)=>t.toUpperCase());n.add(t)}else{let t=e.replace(/([A-Z])/g,`_$1`).toLowerCase();n.add(t)}}),Array.from(n)},S={[p.FULL]:m,[p.PARTIAL]:h},C=x(u),w=b(d),T=(e,t=p.FULL,n)=>{if(!(0,c.isMissing)(e))try{let n=new URL(e),r=[...n.searchParams].reduce((e,[n,r])=>{let i=n.toLowerCase();return e.set(n,C.some(e=>e.toLowerCase()===i)?S[t](r):r),e},new URLSearchParams);return`${n.origin}${n.pathname}${r.toString()?`?`+r:``}${n.hash}`}catch(t){return n?.warning({message:`Invalid URL provided, unable to redact`,context:{value:e,error:t},category:`redactUrl`}),e}},E=(e,t=p.FULL,n)=>{if(!(0,c.isMissing)(e))try{let[n,r]=e.split(`?`);return r?`${n}?${[...new URLSearchParams(r)].reduce((e,[n,r])=>{let i=n.toLowerCase();return e.set(n,C.some(e=>e.toLowerCase()===i)?S[t](r):r),e},new URLSearchParams)}`:e}catch(t){return n?.warning({message:`Invalid path provided, unable to redact`,context:{value:e,error:t},category:`redactPath`}),e}},D=(e,t=p.FULL)=>{if(!(0,c.isMissing)(e))return typeof e==`string`?S[t](e):Object.entries(e).reduce((e,[n,r])=>(e[n]=C.some(e=>e.toLowerCase()===n.toLowerCase())?S[t](r):r,e),{})};let O;const k=()=>((0,c.isMissing)(O)&&(O={[p.FULL]:(0,l.default)({paths:w,serialize:!1,censor:S[p.FULL]}),[p.PARTIAL]:(0,l.default)({paths:w,serialize:!1,censor:S[p.PARTIAL]})}),O),A=(e,t=p.FULL)=>(0,c.isMissing)(e)||typeof e!=`object`||!e?e:k()[t]((0,c.deepCopy)(e)),j=!1;exports.I_AM_EDGE=!1,exports.redactFields=D,exports.redactObject=A,exports.redactPath=E,exports.redactUrl=T;
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`@stackone/utils`),l=require(`fast-redact`);l=s(l);const u=[`client_secret`,`access_token`,`refresh_token`,`api_key`,`password`,`job_board_token`,`private_key`,`certificate`,`service_user_token`,`key_id`,`secret_key`,`provhash`,`admin_key`,`session_key`,`id_token`,`authorization`,`bh_rest_token`,`external_trigger_token`,`tempauth`],d=[`req.headers.authorization`,`req.headers.cookie`,`req.headers.cookies`,`req.headers["set-cookie"]`,`req.headers["set-cookies"]`,`req.headers.httpsAgent.options.cert`,`req.headers.httpsAgent.options.key`,`req.headers["x-stackone-external-trigger-token"]`,`error.config.headers.authorization`,`error.config.data`,`error.config.headers.cookie`,`error.config.headers.cookies`,`error.config.headers["set-cookie"]`,`error.config.headers["set-cookies"]`,`error.config.httpsAgent.options.cert`,`error.config.httpsAgent.options.key`,`err.config.headers.authorization`,`err.config.data`,`err.config.headers.cookie`,`err.config.headers.cookies`,`err.config.headers["set-cookie"]`,`err.config.headers["set-cookies"]`,`err.config.httpsAgent.options.cert`,`err.config.httpsAgent.options.key`,`res.headers.authorization`,`res.headers.cookie`,`res.headers.cookies`,`res.headers["set-cookie"]`,`res.headers["set-cookies"]`,`res.headers.httpsAgent.options.cert`,`res.headers.httpsAgent.options.key`,`context.credentials`,...u],f=`**redacted**`;let p=function(e){return e.FULL=`FULL`,e.PARTIAL=`PARTIAL`,e}({});const m=e=>f,h=e=>typeof e==`string`?e.startsWith(f)?e:e.length<=10?f:`${f}${e.slice(-5)}`:f,g=e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`,_=e=>{let t=e.split(`.`);if(t.length<2)return g(e);let n=g(t.pop()??``);return[...t,n].join(`.`)},v=e=>{let t=e.lastIndexOf(`[`),n=e.indexOf(`]`,t);if(t===-1||n===-1)return;let r=e.slice(t,n+1).replace(/(["'])([^"']*)(["'])/g,(e,t,n)=>n?t+g(n)+t:t+t);return`${e.slice(0,t)}${r}${e.slice(n+1)}`},y=e=>v(e)||_(e),b=(e=[],t=!0)=>{if(!t)return[];let n=e.map(e=>y(e));return[...e,...n]},x=(e=[],t=!0)=>{if(!t)return[];let n=new Set;return e.forEach(e=>{if(n.add(e),e.includes(`_`)){let t=e.replace(/_([a-z])/g,(e,t)=>t.toUpperCase());n.add(t)}else{let t=e.replace(/([A-Z])/g,`_$1`).toLowerCase();n.add(t)}}),Array.from(n)},S={[p.FULL]:m,[p.PARTIAL]:h},C=x(u),w=b(d),T=(e,t=p.FULL,n)=>{if(!(0,c.isMissing)(e))try{let n=new URL(e),r=[...n.searchParams].reduce((e,[n,r])=>{let i=n.toLowerCase();return e.set(n,C.some(e=>e.toLowerCase()===i)?S[t](r):r),e},new URLSearchParams);return`${n.origin}${n.pathname}${r.toString()?`?`+r:``}${n.hash}`}catch(t){return n?.warning({message:`Invalid URL provided, unable to redact`,context:{value:e,error:t},category:`redactUrl`}),e}},E=(e,t=p.FULL,n)=>{if(!(0,c.isMissing)(e))try{let[n,r]=e.split(`?`);return r?`${n}?${[...new URLSearchParams(r)].reduce((e,[n,r])=>{let i=n.toLowerCase();return e.set(n,C.some(e=>e.toLowerCase()===i)?S[t](r):r),e},new URLSearchParams)}`:e}catch(t){return n?.warning({message:`Invalid path provided, unable to redact`,context:{value:e,error:t},category:`redactPath`}),e}},D=(e,t=p.FULL)=>{if(!(0,c.isMissing)(e))return typeof e==`string`?S[t](e):Object.entries(e).reduce((e,[n,r])=>(e[n]=C.some(e=>e.toLowerCase()===n.toLowerCase())?S[t](r):r,e),{})};let O;const k=()=>((0,c.isMissing)(O)&&(O={[p.FULL]:(0,l.default)({paths:w,serialize:!1,censor:S[p.FULL]}),[p.PARTIAL]:(0,l.default)({paths:w,serialize:!1,censor:S[p.PARTIAL]})}),O),A=(e,t=p.FULL)=>(0,c.isMissing)(e)||typeof e!=`object`||!e?e:k()[t]((0,c.deepCopy)(e)),j=!1;exports.CensorType=p,exports.I_AM_EDGE=!1,exports.redactFields=D,exports.redactObject=A,exports.redactPath=E,exports.redactUrl=T;
|
package/dist/node/index.d.cts
CHANGED
|
@@ -74,4 +74,4 @@ declare const redactFields: <T extends Record<string, unknown> | string>(value:
|
|
|
74
74
|
declare const redactObject: <T>(obj: T, censorType?: CensorType) => T;
|
|
75
75
|
declare const I_AM_EDGE = false;
|
|
76
76
|
//#endregion
|
|
77
|
-
export { I_AM_EDGE, redactFields, redactObject, redactPath, redactUrl };
|
|
77
|
+
export { CensorType, I_AM_EDGE, redactFields, redactObject, redactPath, redactUrl };
|
package/dist/node/index.d.mts
CHANGED
|
@@ -74,4 +74,4 @@ declare const redactFields: <T extends Record<string, unknown> | string>(value:
|
|
|
74
74
|
declare const redactObject: <T>(obj: T, censorType?: CensorType) => T;
|
|
75
75
|
declare const I_AM_EDGE = false;
|
|
76
76
|
//#endregion
|
|
77
|
-
export { I_AM_EDGE, redactFields, redactObject, redactPath, redactUrl };
|
|
77
|
+
export { CensorType, I_AM_EDGE, redactFields, redactObject, redactPath, redactUrl };
|
package/dist/node/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{deepCopy as e,isMissing as t}from"@stackone/utils";import n from"fast-redact";const r=[`client_secret`,`access_token`,`refresh_token`,`api_key`,`password`,`job_board_token`,`private_key`,`certificate`,`service_user_token`,`key_id`,`secret_key`,`provhash`,`admin_key`,`session_key`,`id_token`,`authorization`,`bh_rest_token`,`external_trigger_token`,`tempauth`],i=[`req.headers.authorization`,`req.headers.cookie`,`req.headers.cookies`,`req.headers["set-cookie"]`,`req.headers["set-cookies"]`,`req.headers.httpsAgent.options.cert`,`req.headers.httpsAgent.options.key`,`req.headers["x-stackone-external-trigger-token"]`,`error.config.headers.authorization`,`error.config.data`,`error.config.headers.cookie`,`error.config.headers.cookies`,`error.config.headers["set-cookie"]`,`error.config.headers["set-cookies"]`,`error.config.httpsAgent.options.cert`,`error.config.httpsAgent.options.key`,`err.config.headers.authorization`,`err.config.data`,`err.config.headers.cookie`,`err.config.headers.cookies`,`err.config.headers["set-cookie"]`,`err.config.headers["set-cookies"]`,`err.config.httpsAgent.options.cert`,`err.config.httpsAgent.options.key`,`res.headers.authorization`,`res.headers.cookie`,`res.headers.cookies`,`res.headers["set-cookie"]`,`res.headers["set-cookies"]`,`res.headers.httpsAgent.options.cert`,`res.headers.httpsAgent.options.key`,`context.credentials`,...r],a=`**redacted**`;let o=function(e){return e.FULL=`FULL`,e.PARTIAL=`PARTIAL`,e}({});const s=e=>a,c=e=>typeof e==`string`?e.startsWith(a)?e:e.length<=10?a:`${a}${e.slice(-5)}`:a,l=e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`,u=e=>{let t=e.split(`.`);if(t.length<2)return l(e);let n=l(t.pop()??``);return[...t,n].join(`.`)},d=e=>{let t=e.lastIndexOf(`[`),n=e.indexOf(`]`,t);if(t===-1||n===-1)return;let r=e.slice(t,n+1).replace(/(["'])([^"']*)(["'])/g,(e,t,n)=>n?t+l(n)+t:t+t);return`${e.slice(0,t)}${r}${e.slice(n+1)}`},f=e=>d(e)||u(e),p=(e=[],t=!0)=>{if(!t)return[];let n=e.map(e=>f(e));return[...e,...n]},m=(e=[],t=!0)=>{if(!t)return[];let n=new Set;return e.forEach(e=>{if(n.add(e),e.includes(`_`)){let t=e.replace(/_([a-z])/g,(e,t)=>t.toUpperCase());n.add(t)}else{let t=e.replace(/([A-Z])/g,`_$1`).toLowerCase();n.add(t)}}),Array.from(n)},h={[o.FULL]:s,[o.PARTIAL]:c},g=m(r),_=p(i),v=(e,n=o.FULL,r)=>{if(!t(e))try{let t=new URL(e),r=[...t.searchParams].reduce((e,[t,r])=>{let i=t.toLowerCase();return e.set(t,g.some(e=>e.toLowerCase()===i)?h[n](r):r),e},new URLSearchParams);return`${t.origin}${t.pathname}${r.toString()?`?`+r:``}${t.hash}`}catch(t){return r?.warning({message:`Invalid URL provided, unable to redact`,context:{value:e,error:t},category:`redactUrl`}),e}},y=(e,n=o.FULL,r)=>{if(!t(e))try{let[t,r]=e.split(`?`);return r?`${t}?${[...new URLSearchParams(r)].reduce((e,[t,r])=>{let i=t.toLowerCase();return e.set(t,g.some(e=>e.toLowerCase()===i)?h[n](r):r),e},new URLSearchParams)}`:e}catch(t){return r?.warning({message:`Invalid path provided, unable to redact`,context:{value:e,error:t},category:`redactPath`}),e}},b=(e,n=o.FULL)=>{if(!t(e))return typeof e==`string`?h[n](e):Object.entries(e).reduce((e,[t,r])=>(e[t]=g.some(e=>e.toLowerCase()===t.toLowerCase())?h[n](r):r,e),{})};let x;const S=()=>(t(x)&&(x={[o.FULL]:n({paths:_,serialize:!1,censor:h[o.FULL]}),[o.PARTIAL]:n({paths:_,serialize:!1,censor:h[o.PARTIAL]})}),x),C=(n,r=o.FULL)=>t(n)||typeof n!=`object`||!n?n:S()[r](e(n)),w=!1;export{w as I_AM_EDGE,b as redactFields,C as redactObject,y as redactPath,v as redactUrl};
|
|
1
|
+
import{deepCopy as e,isMissing as t}from"@stackone/utils";import n from"fast-redact";const r=[`client_secret`,`access_token`,`refresh_token`,`api_key`,`password`,`job_board_token`,`private_key`,`certificate`,`service_user_token`,`key_id`,`secret_key`,`provhash`,`admin_key`,`session_key`,`id_token`,`authorization`,`bh_rest_token`,`external_trigger_token`,`tempauth`],i=[`req.headers.authorization`,`req.headers.cookie`,`req.headers.cookies`,`req.headers["set-cookie"]`,`req.headers["set-cookies"]`,`req.headers.httpsAgent.options.cert`,`req.headers.httpsAgent.options.key`,`req.headers["x-stackone-external-trigger-token"]`,`error.config.headers.authorization`,`error.config.data`,`error.config.headers.cookie`,`error.config.headers.cookies`,`error.config.headers["set-cookie"]`,`error.config.headers["set-cookies"]`,`error.config.httpsAgent.options.cert`,`error.config.httpsAgent.options.key`,`err.config.headers.authorization`,`err.config.data`,`err.config.headers.cookie`,`err.config.headers.cookies`,`err.config.headers["set-cookie"]`,`err.config.headers["set-cookies"]`,`err.config.httpsAgent.options.cert`,`err.config.httpsAgent.options.key`,`res.headers.authorization`,`res.headers.cookie`,`res.headers.cookies`,`res.headers["set-cookie"]`,`res.headers["set-cookies"]`,`res.headers.httpsAgent.options.cert`,`res.headers.httpsAgent.options.key`,`context.credentials`,...r],a=`**redacted**`;let o=function(e){return e.FULL=`FULL`,e.PARTIAL=`PARTIAL`,e}({});const s=e=>a,c=e=>typeof e==`string`?e.startsWith(a)?e:e.length<=10?a:`${a}${e.slice(-5)}`:a,l=e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`,u=e=>{let t=e.split(`.`);if(t.length<2)return l(e);let n=l(t.pop()??``);return[...t,n].join(`.`)},d=e=>{let t=e.lastIndexOf(`[`),n=e.indexOf(`]`,t);if(t===-1||n===-1)return;let r=e.slice(t,n+1).replace(/(["'])([^"']*)(["'])/g,(e,t,n)=>n?t+l(n)+t:t+t);return`${e.slice(0,t)}${r}${e.slice(n+1)}`},f=e=>d(e)||u(e),p=(e=[],t=!0)=>{if(!t)return[];let n=e.map(e=>f(e));return[...e,...n]},m=(e=[],t=!0)=>{if(!t)return[];let n=new Set;return e.forEach(e=>{if(n.add(e),e.includes(`_`)){let t=e.replace(/_([a-z])/g,(e,t)=>t.toUpperCase());n.add(t)}else{let t=e.replace(/([A-Z])/g,`_$1`).toLowerCase();n.add(t)}}),Array.from(n)},h={[o.FULL]:s,[o.PARTIAL]:c},g=m(r),_=p(i),v=(e,n=o.FULL,r)=>{if(!t(e))try{let t=new URL(e),r=[...t.searchParams].reduce((e,[t,r])=>{let i=t.toLowerCase();return e.set(t,g.some(e=>e.toLowerCase()===i)?h[n](r):r),e},new URLSearchParams);return`${t.origin}${t.pathname}${r.toString()?`?`+r:``}${t.hash}`}catch(t){return r?.warning({message:`Invalid URL provided, unable to redact`,context:{value:e,error:t},category:`redactUrl`}),e}},y=(e,n=o.FULL,r)=>{if(!t(e))try{let[t,r]=e.split(`?`);return r?`${t}?${[...new URLSearchParams(r)].reduce((e,[t,r])=>{let i=t.toLowerCase();return e.set(t,g.some(e=>e.toLowerCase()===i)?h[n](r):r),e},new URLSearchParams)}`:e}catch(t){return r?.warning({message:`Invalid path provided, unable to redact`,context:{value:e,error:t},category:`redactPath`}),e}},b=(e,n=o.FULL)=>{if(!t(e))return typeof e==`string`?h[n](e):Object.entries(e).reduce((e,[t,r])=>(e[t]=g.some(e=>e.toLowerCase()===t.toLowerCase())?h[n](r):r,e),{})};let x;const S=()=>(t(x)&&(x={[o.FULL]:n({paths:_,serialize:!1,censor:h[o.FULL]}),[o.PARTIAL]:n({paths:_,serialize:!1,censor:h[o.PARTIAL]})}),x),C=(n,r=o.FULL)=>t(n)||typeof n!=`object`||!n?n:S()[r](e(n)),w=!1;export{o as CensorType,w as I_AM_EDGE,b as redactFields,C as redactObject,y as redactPath,v as redactUrl};
|