insite-cookie 2.1.3 → 2.1.5

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.
@@ -1,2 +1,2 @@
1
- function x(){}function I(r,e=0,o={}){let{leading:t=!1,trailing:n=!0}=o,{maxWait:s=1/0}=o,f,c,a,d,i,h,l,y,A=async()=>{let m=Date.now();m>=a?(f=void 0,a=void 0,clearTimeout(c),typeof l=="function"&&await l(),u.resolve(y),u.promise.isResolved=!0,h=t):(clearTimeout(f),f=setTimeout(A,a-m))},k=Number.isFinite(s)?()=>{l===p&&(l=!1),p(),c=setTimeout(k,s)}:null;async function p(){return y=await r.apply(d,i)}t&&typeof t=="boolean"&&(t=p),h=t,n&&typeof n=="boolean"&&(n=p),l=n;let u=Object.assign(function(...m){return i=m,d=this,a=Date.now()+e,l=n,u.promise.isResolved&&(u.promise=Object.assign(new Promise(P=>{u.resolve=P,typeof h=="function"&&(h(),h=!1,l===p&&(l=!1)),f||(f=setTimeout(A,e),k&&(c=setTimeout(k,s)))}),{isResolved:!1})),u.promise},{callback:r,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:x,run:p,clear:async m=>{clearTimeout(f),f=void 0,clearTimeout(c),u.promise.isResolved=!0,u.resolve(m?await p():y)}});return u}I.noop=Object.assign(()=>{},{callback:x,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:x,run:x,clear:x});var S=new Map;function O(r,e){r.delete(e);let o=S.get(r);if(o){let t=o.get(e);t&&(clearTimeout(t),o.delete(e)),o.size||S.delete(r)}}function M(r,e,o){let t=setTimeout(()=>O(r,e),o);S.get(r)?.set(e,t)??S.set(r,new Map([[e,t]]))}function T(r,e){let o=r.get(e);return O(r,e),o}function C(r,e,o,t,n=!0){return Array.isArray(r)&&(r=r.length),typeof t!="string"&&(n=t??!0,t=o),(n?`${r}\xA0`:"")+C.raw(r,e,o,t)}C.raw=(r,e,o,t=o)=>{r=Math.abs(r);let n=r%10,s=r%100;return n===1&&s!==11?e:n>=2&&n<=4&&!(s>=12&&s<=15)?o:t};function v(r,e){return Math.floor(Math.random()*(e-r+1)+r)}function b(r,e,o,t){return M(r,e,t),r.set(e,o)}import{ClassMiddleware as E}from"insite-http";var g=new Map;var j=class r extends E{constructor(e={}){super();let{path:o="/cookie"}=e;this.listeners={GET:[[o,this.#e]]}}#e=(e,o)=>{let t=e.querystring;return t&&g.has(t)?o.writeHead(200,{"Content-Type":"text/plain; charset=utf-8","Set-Cookie":r.cookify(...T(g,t))}).end():!1};static make({name:e,value:o,maxAge:t,expiresAt:n,domain:s,path:f="/",secure:c=!0,httpOnly:a=!0,sameSite:d="Strict"}){let i=[`${e}=${o}`];return t!==void 0?i.push(`Max-Age=${t}`):n&&i.push(`Max-Age=${Math.round((n.getTime()-Date.now())/1e3)}`),s&&i.push(`Domain=${s}`),f&&i.push(`Path=${f}`),c&&i.push("Secure"),a&&i.push("HttpOnly"),d&&i.push(`SameSite=${d}`),i.join("; ")}static cookify(e,o){return Object.entries(e).map(([t,n])=>this.make({name:t,value:n,...o}))}};function $(r){return r?r.split(/;\s*/).reduce((e,o)=>{let[t,n]=o.split(/=/);try{e[t]=JSON.parse(n)}catch{e[t]=n}return e},{}):{}}import R from"node:crypto";var w={set:"~setcookie"};var B=2e3,W=class{constructor({usersServer:e,domain:o,maxAge:t}){this.usersServer=e,this.domain=o??process.env.INSITE_HOST,this.maxAge=t??this.usersServer.users.sessions.collection.expireAfterSeconds,this.usersServer.wss.on("client-connect",this.#t),this.usersServer.wss.on("client-session",this.#o)}#e=new WeakMap;usersServer;domain;maxAge;set(e,o,t){let n=`${Math.round(performance.now()*Number.MAX_SAFE_INTEGER).toString(36)}$${R.randomBytes(v(4,8)).toString("hex")}`;b(g,n,[o,t],B),e.sendMessage(w.set,n)}unset(e,o){this.set(e,o.reduce((t,n)=>(t[n]="",t),{}),{maxAge:0})}#t=(e,o)=>{if(this.#e.set(e,null),o.headers.cookie){let{sessionId:t=null}=$(o.headers.cookie);this.#e.set(e,t),t&&this.usersServer.setSession(e,t,!0)}};#o=e=>{this.#e.get(e)!==e.session?._id&&(this.#e.set(e,e.session?._id??null),e.isOpen&&e.session?this.set(e,{sessionId:e.session._id},{domain:this.domain,maxAge:this.maxAge}):this.unset(e,["sessionId"]))};static parse=$};export{j as CookieMiddleware,W as CookieSetter,$ as parseCookie};
1
+ function x(){}function I(r,e=0,o={}){let{leading:t=!1,trailing:n=!0}=o,{maxWait:s=1/0}=o,f,c,a,d,i,h,p,y,A=async()=>{let m=Date.now();m>=a?(f=void 0,a=void 0,clearTimeout(c),typeof p=="function"&&await p(),u.resolve(y),u.promise.isResolved=!0,h=t):(clearTimeout(f),f=setTimeout(A,a-m))},k=Number.isFinite(s)?()=>{p===l&&(p=!1),l(),c=setTimeout(k,s)}:null;async function l(){return y=await r.apply(d,i)}t&&typeof t=="boolean"&&(t=l),h=t,n&&typeof n=="boolean"&&(n=l),p=n;let u=Object.assign(function(...m){return i=m,d=this,a=Date.now()+e,p=n,u.promise.isResolved&&(u.promise=Object.assign(new Promise(P=>{u.resolve=P,typeof h=="function"&&(h(),h=!1,p===l&&(p=!1)),f||(f=setTimeout(A,e),k&&(c=setTimeout(k,s)))}),{isResolved:!1})),u.promise},{callback:r,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:x,run:l,clear:async m=>{clearTimeout(f),f=void 0,clearTimeout(c),u.promise.isResolved=!0,u.resolve(m?await l():y)}});return u}I.noop=Object.assign(()=>{},{callback:x,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:x,run:x,clear:x});var S=new Map;function O(r,e){r.delete(e);let o=S.get(r);if(o){let t=o.get(e);t&&(clearTimeout(t),o.delete(e)),o.size||S.delete(r)}}function M(r,e,o){let t=setTimeout(()=>O(r,e),o);S.get(r)?.set(e,t)??S.set(r,new Map([[e,t]]))}function T(r,e){let o=r.get(e);return O(r,e),o}function C(r,e,o,t,n=!0){return Array.isArray(r)&&(r=r.length),typeof t!="string"&&(n=t??!0,t=o),(n?`${r}\xA0`:"")+C.raw(r,e,o,t)}C.raw=(r,e,o,t=o)=>{r=Math.abs(r);let n=r%10,s=r%100;return n===1&&s!==11?e:n>=2&&n<=4&&!(s>=12&&s<=15)?o:t};function v(r,e){return Math.floor(Math.random()*(e-r+1)+r)}function w(r,e,o,t){return M(r,e,t),r.set(e,o)}import{ClassMiddleware as E}from"insite-http";var g=new Map;var b=class r extends E{constructor(e={}){super();let{path:o="/cookie"}=e;this.listeners={GET:[[o,this.#e]]}}#e=(e,o)=>{let t=e.querystring;return t&&g.has(t)?o.writeHead(200,{"Content-Type":"text/plain; charset=utf-8","Set-Cookie":r.cookify(...T(g,t))}).end():!1};static make({name:e,value:o,maxAge:t,expiresAt:n,domain:s,path:f="/",secure:c=!0,httpOnly:a=!0,sameSite:d="Strict"}){let i=[`${e}=${o}`];return t!==void 0?i.push(`Max-Age=${t}`):n&&i.push(`Max-Age=${Math.round((n.getTime()-Date.now())/1e3)}`),s&&i.push(`Domain=${s}`),f&&i.push(`Path=${f}`),c&&i.push("Secure"),a&&i.push("HttpOnly"),d&&i.push(`SameSite=${d}`),i.join("; ")}static cookify(e,o){return Object.entries(e).map(([t,n])=>this.make({name:t,value:n,...o}))}};function $(r){return r?r.split(/;\s*/).reduce((e,o)=>{let[t,n]=o.split(/=/);try{e[t]=JSON.parse(n)}catch{e[t]=n}return e},{}):{}}import R from"node:crypto";var j={set:"~setcookie"};var B=2e3,W=class{constructor({usersServer:e,domain:o,maxAge:t}){this.usersServer=e,this.domain=o??process.env.INSITE_HOST,this.maxAge=t??this.usersServer.users.sessions.collection.expireAfterSeconds,this.usersServer.wss.on("client-connect",this.#t),this.usersServer.wss.on("client-session",this.#o)}#e=new WeakMap;usersServer;domain;maxAge;set(e,o,t){let n=`${Math.round(performance.now()*Number.MAX_SAFE_INTEGER).toString(36)}$${R.randomBytes(v(4,8)).toString("hex")}`;w(g,n,[o,t],B),e.sendMessage(j.set,n)}unset(e,o){this.set(e,o.reduce((t,n)=>(t[n]="",t),{}),{maxAge:0})}#t=(e,o)=>{if(this.#e.set(e,null),o.headers.cookie){let{sessionId:t=null}=$(o.headers.cookie);this.#e.set(e,t),t&&this.usersServer.setSession(e,t,!0)}};#o=e=>{this.#e.get(e)!==e.session?._id&&(this.#e.set(e,e.session?._id??null),e.isOpen&&e.session?this.set(e,{sessionId:e.session._id},{domain:this.domain,maxAge:this.maxAge}):this.unset(e,["sessionId"]))};static parse=$};export{b as CookieMiddleware,W as CookieSetter,$ as parseCookie};
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "insite-cookie",
3
- "version": "2.1.3",
3
+ "version": "2.1.5",
4
4
  "description": "Cookie support for inSite",
5
5
  "type": "module",
6
6
  "main": "./dist/server.js",
@@ -28,16 +28,16 @@
28
28
  "author": "Eugene Nesvetaev <dev@nesvet.dev> (https://nesvet.dev/)",
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
- "@nesvet/n": "^1.1.22",
32
- "insite-common": "^2.1.2",
33
- "insite-http": "^2.1.3",
34
- "insite-users-server-ws": "^2.1.2",
35
- "insite-ws": "^2.1.2"
31
+ "@nesvet/n": "^1.1.23",
32
+ "insite-common": "^2.1.3",
33
+ "insite-http": "^2.1.5",
34
+ "insite-users-server-ws": "^2.1.4",
35
+ "insite-ws": "^2.1.4"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@nesvet/conveyer": "^2.4.3",
39
- "@nesvet/eslint-config": "^2.0.47",
40
- "@types/node": "^22.13.1",
39
+ "@nesvet/eslint-config": "^2.0.48",
40
+ "@types/node": "^22.13.4",
41
41
  "@types/ws": "^8.5.14",
42
42
  "typescript": "^5.7.3"
43
43
  }