insite-cookie 1.0.45 → 1.0.46
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/bun.lockb +0 -0
- package/dist/client.js.map +2 -2
- package/dist/server.js +1 -1
- package/dist/server.js.map +2 -2
- package/package.json +5 -5
package/bun.lockb
CHANGED
|
Binary file
|
package/dist/client.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/common.js", "../src/client/Setter.js"],
|
|
4
|
-
"sourcesContent": ["export const headers = {\n\tset: \"~setcookie\"\n};\n", "import { headers } from \"../common\";\n\n\nexport class CookieSetter {\n\tconstructor(ws, options = {}) {\n\t\t\n\t\tconst {\n\t\t\tmethod = \"GET\",\n\t\t\turl = \"/cookie\",\n\t\t\tonload,\n\t\t\tonerror\n\t\t} = options;\n\t\t\n\t\tthis.method = method;\n\t\tthis.url = url;\n\t\t\n\t\tif (onload)\n\t\t\tthis.onload = onload;\n\t\t\n\t\tif (onerror)\n\t\t\tthis.onerror = onerror;\n\t\t\n\t\tws.on(`message:${headers.set}`, this.#handleSet);\n\t\t\n\t}\n\t\n\t#handleSet = token => {\n\t\tconst xhr = new XMLHttpRequest();\n\t\t\n\t\txhr.onload = this.onload;\n\t\txhr.onerror = this.onerror;\n\t\t\n\t\txhr.open(this.method, `${this.url}?${token}`, true);\n\t\t\n\t\txhr.send(null);\n\t\t\n\t};\n\t\n\tonload() {\n\t\t\n\t\tif (this.readyState === 4 && this.status !== 200)\n\t\t\tconsole.error(\"Set cookie:\", this.statusText);\n\t\t\n\t}\n\t\n\tonerror() {\n\t\t\n\t\tconsole.error(\"Set cookie:\", this.statusText);\n\t\t\n\t}\n\t\n}\n"],
|
|
5
|
-
"mappings": "iQAAO,IAAMA,EAAU,CACtB,IAAK,YACN,ECFA,IAAAC,
|
|
4
|
+
"sourcesContent": ["export const headers = {\n\tset: \"~setcookie\"\n};\n", "import { headers } from \"../common\";\n\n\n/* eslint-disable unicorn/prefer-add-event-listener */\n\n\nexport class CookieSetter {\n\tconstructor(ws, options = {}) {\n\t\t\n\t\tconst {\n\t\t\tmethod = \"GET\",\n\t\t\turl = \"/cookie\",\n\t\t\tonload,\n\t\t\tonerror\n\t\t} = options;\n\t\t\n\t\tthis.method = method;\n\t\tthis.url = url;\n\t\t\n\t\tif (onload)\n\t\t\tthis.onload = onload;\n\t\t\n\t\tif (onerror)\n\t\t\tthis.onerror = onerror;\n\t\t\n\t\tws.on(`message:${headers.set}`, this.#handleSet);\n\t\t\n\t}\n\t\n\t#handleSet = token => {\n\t\t\n\t\tconst xhr = new XMLHttpRequest();\n\t\t\n\t\txhr.onload = this.onload;\n\t\txhr.onerror = this.onerror;\n\t\t\n\t\txhr.open(this.method, `${this.url}?${token}`, true);\n\t\t\n\t\txhr.send(null);\n\t\t\n\t};\n\t\n\tonload() {\n\t\t\n\t\tif (this.readyState === 4 && this.status !== 200)\n\t\t\tconsole.error(\"Set cookie:\", this.statusText);\n\t\t\n\t}\n\t\n\tonerror() {\n\t\t\n\t\tconsole.error(\"Set cookie:\", this.statusText);\n\t\t\n\t}\n\t\n}\n"],
|
|
5
|
+
"mappings": "iQAAO,IAAMA,EAAU,CACtB,IAAK,YACN,ECFA,IAAAC,EAMaC,EAAN,KAAmB,CACzB,YAAYC,EAAIC,EAAU,CAAC,EAAG,CAsB9BC,EAAA,KAAAJ,EAAaK,GAAS,CAErB,IAAMC,EAAM,IAAI,eAEhBA,EAAI,OAAS,KAAK,OAClBA,EAAI,QAAU,KAAK,QAEnBA,EAAI,KAAK,KAAK,OAAQ,GAAG,KAAK,GAAG,IAAID,CAAK,GAAI,EAAI,EAElDC,EAAI,KAAK,IAAI,CAEd,GA/BC,GAAM,CACL,OAAAC,EAAS,MACT,IAAAC,EAAM,UACN,OAAAC,EACA,QAAAC,CACD,EAAIP,EAEJ,KAAK,OAASI,EACd,KAAK,IAAMC,EAEPC,IACH,KAAK,OAASA,GAEXC,IACH,KAAK,QAAUA,GAEhBR,EAAG,GAAG,WAAWS,EAAQ,GAAG,GAAIC,EAAA,KAAKZ,EAAU,CAEhD,CAeA,QAAS,CAEJ,KAAK,aAAe,GAAK,KAAK,SAAW,KAC5C,QAAQ,MAAM,cAAe,KAAK,UAAU,CAE9C,CAEA,SAAU,CAET,QAAQ,MAAM,cAAe,KAAK,UAAU,CAE7C,CAED,EA1BCA,EAAA",
|
|
6
6
|
"names": ["headers", "_handleSet", "CookieSetter", "ws", "options", "__privateAdd", "token", "xhr", "method", "url", "onload", "onerror", "headers", "__privateGet"]
|
|
7
7
|
}
|
package/dist/server.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var r=new Map;var l=class s{constructor(e={}){let{requestRegExp:o=/^\/cookie\/?\?/}=e;this.listeners={GET:[[o,this.handler]]}}handler=(e,o)=>{let
|
|
1
|
+
var r=new Map;var l=class s{constructor(e={}){let{requestRegExp:o=/^\/cookie\/?\?/}=e;this.listeners={GET:[[o,this.handler]]}}handler=(e,o)=>{let[,t]=e.url.split("?");return t&&r.has(t)?o.writeHead(200,{"Content-Type":"text/plain; charset=utf-8","Set-Cookie":s.cookify(...r.getWithTimeout(t))}).end():!1};static make({name:e,value:o,maxAge:t,expiresAt:i,domain:p,path:u="/",secure:f=!0,httpOnly:k=!0,sameSite:h="Strict"}){let n=[`${e}=${o}`];return t!==void 0?n.push(`Max-Age=${t}`):i&&n.push(`Max-Age=${Math.round((i.getTime()-Date.now())/1e3)}`),p&&n.push(`Domain=${p}`),u&&n.push(`Path=${u}`),f&&n.push("Secure"),k&&n.push("HttpOnly"),h&&n.push(`SameSite=${h}`),n.join("; ")}static cookify(e,o){return Object.entries(e).map(([t,i])=>this.make({name:t,value:i,...o}))}};function a(s){return s?s.split(/;\s*/).reduce((e,o)=>{let[t,i]=o.split(/=/);try{e[t]=JSON.parse(i)}catch{e[t]=i}return e},{}):{}}import S from"node:crypto";var d={set:"~setcookie"};var x=2e3,c=Symbol("cookieSessionId"),m=class s{constructor(e,{users:o,domain:t,maxAge:i}){e.cookieSetter=this,this.domain=t??process.env.INSITE_HOST,this.maxAge=i??o?.sessions.collection.expireAfterSeconds,o&&(this.users=o,e.on("client-connect",s.handleClientConnect),e.on("client-session",s.handleClientSession))}static set(e,o){let t=`${Math.round(performance.now()*Number.MAX_SAFE_INTEGER).toString(36)}$${S.randomBytes(Math.randomInt(4,8)).toString("hex")}`;r.setWithTimeout(t,[e,o],x),this.sendMessage(d.set,t)}static unset(e){this.setCookie(e.reduce((o,t)=>(o[t]="",o),{}),{maxAge:0})}static parse=a;static handleClientConnect(e,o){if(Object.assign(e,{setCookie:s.set,unsetCookie:s.unset,[c]:null}),o.headers.cookie){let{sessionId:t=null}=a(o.headers.cookie);e[c]=t,t&&e.setSession(t,!0)}}static handleClientSession(e){if(e[c]!==e.session?._id)if(e[c]=e.session?._id,e.isOpen&&e.session){let{domain:o,maxAge:t}=this.cookieSetter;e.setCookie({sessionId:e.session._id},{domain:o,maxAge:t})}else e.unsetCookie(["sessionId"])}};export{l as CookieMiddleware,m as CookieSetter,a as parseCookie};
|
|
2
2
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/server/tokenMap.js", "../src/server/Middleware.js", "../src/server/parse.js", "../src/server/Setter.js", "../src/common.js"],
|
|
4
|
-
"sourcesContent": ["export const tokenMap = new Map();\n", "import { tokenMap } from \"./tokenMap\";\n\n\nclass InSiteCookieMiddleware {\n\tconstructor(options = {}) {\n\t\tconst {\n\t\t\trequestRegExp = /^\\/cookie\\/?\\?/\n\t\t} = options;\n\t\t\n\t\tthis.listeners = { GET: [\n\t\t\t[ requestRegExp, this.handler ]\n\t\t] };\n\t\t\n\t}\n\t\n\thandler = (request, response) => {\n\t\tconst token = request.url.split(\"?\")
|
|
5
|
-
"mappings": "AAAO,IAAMA,EAAW,IAAI,ICG5B,IAAMC,EAAN,MAAMC,CAAuB,CAC5B,YAAYC,EAAU,CAAC,EAAG,CACzB,GAAM,CACL,cAAAC,EAAgB,gBACjB,EAAID,EAEJ,KAAK,UAAY,CAAE,IAAK,CACvB,CAAEC,EAAe,KAAK,OAAQ,CAC/B,CAAE,CAEH,CAEA,QAAU,CAACC,EAASC,IAAa,CAChC,
|
|
4
|
+
"sourcesContent": ["export const tokenMap = new Map();\n", "import { tokenMap } from \"./tokenMap\";\n\n\nclass InSiteCookieMiddleware {\n\tconstructor(options = {}) {\n\t\tconst {\n\t\t\trequestRegExp = /^\\/cookie\\/?\\?/\n\t\t} = options;\n\t\t\n\t\tthis.listeners = { GET: [\n\t\t\t[ requestRegExp, this.handler ]\n\t\t] };\n\t\t\n\t}\n\t\n\thandler = (request, response) => {\n\t\tconst [ , token ] = request.url.split(\"?\");\n\t\t\n\t\tif (token && tokenMap.has(token))\n\t\t\treturn response.writeHead(200, {\n\t\t\t\t\"Content-Type\": \"text/plain; charset=utf-8\",\n\t\t\t\t\"Set-Cookie\": InSiteCookieMiddleware.cookify(...tokenMap.getWithTimeout(token))\n\t\t\t}).end();\n\t\t\n\t\treturn false;\n\t};\n\t\n\t\n\tstatic make({ name, value, maxAge, expiresAt, domain, path = \"/\", secure = true, httpOnly = true, sameSite = \"Strict\" }) {\n\t\tconst cookie = [ `${name}=${value}` ];\n\t\t\n\t\tif (maxAge !== undefined)\n\t\t\tcookie.push(`Max-Age=${maxAge}`);\n\t\telse if (expiresAt)\n\t\t\tcookie.push(`Max-Age=${Math.round((expiresAt.getTime() - Date.now()) / 1000)}`);\n\t\t\n\t\tif (domain)\n\t\t\tcookie.push(`Domain=${domain}`);\n\t\t\n\t\tif (path)\n\t\t\tcookie.push(`Path=${path}`);\n\t\t\n\t\tif (secure)\n\t\t\tcookie.push(\"Secure\");\n\t\t\n\t\tif (httpOnly)\n\t\t\tcookie.push(\"HttpOnly\");\n\t\t\n\t\tif (sameSite)\n\t\t\tcookie.push(`SameSite=${sameSite}`);\n\t\t\n\t\treturn cookie.join(\"; \");\n\t}\n\t\n\tstatic cookify(object, options) {\n\t\treturn Object.entries(object).map(([ name, value ]) => this.make({ name, value, ...options }));\n\t}\n\t\n}\n\nexport { InSiteCookieMiddleware as CookieMiddleware };\n", "export function parseCookie(cookie) {\n\treturn cookie ? cookie.split(/;\\s*/).reduce((object, keyEqValue) => {\n\t\tconst [ key, value ] = keyEqValue.split(/=/);\n\t\t\n\t\ttry {\n\t\t\tobject[key] = JSON.parse(value);\n\t\t} catch {\n\t\t\tobject[key] = value;\n\t\t}\n\t\t\n\t\treturn object;\n\t}, {}) : {};\n}\n", "import crypto from \"node:crypto\";\nimport { headers } from \"../common\";\nimport { parseCookie } from \"./parse\";\nimport { tokenMap } from \"./tokenMap\";\n\n\nconst cookieTokenTimeout = 2000;\nconst cookieSessionIdSymbol = Symbol(\"cookieSessionId\");\n\n\nexport class CookieSetter {\n\tconstructor(wss, { users, domain, maxAge }) {\n\t\twss.cookieSetter = this;\n\t\t\n\t\tthis.domain = domain ?? process.env.INSITE_HOST;\n\t\tthis.maxAge = maxAge ?? users?.sessions.collection.expireAfterSeconds;\n\t\t\n\t\tif (users) {\n\t\t\tthis.users = users;\n\t\t\t\n\t\t\twss.on(\"client-connect\", CookieSetter.handleClientConnect);\n\t\t\twss.on(\"client-session\", CookieSetter.handleClientSession);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\tstatic set(cookie, options) {\n\t\t\n\t\tconst token = `${Math.round(performance.now() * Number.MAX_SAFE_INTEGER).toString(36)}$${crypto.randomBytes(Math.randomInt(4, 8)).toString(\"hex\")}`;\n\t\t\n\t\ttokenMap.setWithTimeout(token, [ cookie, options ], cookieTokenTimeout);\n\t\t\n\t\tthis.sendMessage(headers.set, token);\n\t\t\n\t}\n\t\n\tstatic unset(names) {\n\t\tthis.setCookie(names.reduce((cookie, name) => {\n\t\t\tcookie[name] = \"\";\n\t\t\t\n\t\t\treturn cookie;\n\t\t}, {}), { maxAge: 0 });\n\t\t\n\t}\n\t\n\tstatic parse = parseCookie;\n\t\n\t\n\tstatic handleClientConnect(ws, request) {\n\t\tObject.assign(ws, {\n\t\t\tsetCookie: CookieSetter.set,\n\t\t\tunsetCookie: CookieSetter.unset,\n\t\t\t[cookieSessionIdSymbol]: null\n\t\t});\n\t\t\n\t\tif (request.headers.cookie) {\n\t\t\tconst { sessionId = null } = parseCookie(request.headers.cookie);\n\t\t\t\n\t\t\tws[cookieSessionIdSymbol] = sessionId;\n\t\t\t\n\t\t\tif (sessionId)\n\t\t\t\tws.setSession(sessionId, true);\n\t\t}\n\t\t\n\t}\n\t\n\tstatic handleClientSession(ws) {\n\t\tif (ws[cookieSessionIdSymbol] !== ws.session?._id) {\n\t\t\tws[cookieSessionIdSymbol] = ws.session?._id;\n\t\t\t\n\t\t\tif (ws.isOpen && ws.session) {\n\t\t\t\tconst { domain, maxAge } = this.cookieSetter;\n\t\t\t\tws.setCookie({ sessionId: ws.session._id }, { domain, maxAge });\n\t\t\t} else\n\t\t\t\tws.unsetCookie([ \"sessionId\" ]);\n\t\t}\n\t\t\n\t}\n\t\n}\n", "export const headers = {\n\tset: \"~setcookie\"\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["tokenMap", "InSiteCookieMiddleware", "_InSiteCookieMiddleware", "options", "requestRegExp", "request", "response", "token", "tokenMap", "name", "value", "maxAge", "expiresAt", "domain", "path", "secure", "httpOnly", "sameSite", "cookie", "object", "parseCookie", "cookie", "object", "keyEqValue", "key", "value", "crypto", "headers", "cookieTokenTimeout", "cookieSessionIdSymbol", "CookieSetter", "_CookieSetter", "wss", "users", "domain", "maxAge", "cookie", "options", "token", "crypto", "tokenMap", "headers", "names", "name", "parseCookie", "ws", "request", "sessionId"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "insite-cookie",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.46",
|
|
4
4
|
"description": "Cookie support for inSite",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/server.js",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"./server": "./dist/server.js",
|
|
10
10
|
"./client": "./dist/client.js"
|
|
11
11
|
},
|
|
12
|
-
"packageManager": "bun@1.1.
|
|
12
|
+
"packageManager": "bun@1.1.17",
|
|
13
13
|
"scripts": {
|
|
14
14
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
15
15
|
"build": "bun .conveyer.js"
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
"author": "Eugene Nesvetaev <dev@nesvet.dev> (https://nesvet.dev/)",
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"insite-ws": "^1"
|
|
30
|
+
"insite-ws": "^1.0.406"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@nesvet/conveyer": "^2",
|
|
34
|
-
"@nesvet/eslint-config": "^
|
|
33
|
+
"@nesvet/conveyer": "^2.2.1",
|
|
34
|
+
"@nesvet/eslint-config": "^2.0.21"
|
|
35
35
|
}
|
|
36
36
|
}
|