insite-http 2.0.2 → 2.0.4
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/Server.d.ts +3 -3
- package/dist/Server.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +2 -2
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/bun.lockb
CHANGED
|
Binary file
|
package/dist/Server.d.ts
CHANGED
|
@@ -5,9 +5,9 @@ import { ErrorParams, Handler, Method, Middleware, Options, RegExpOrString } fro
|
|
|
5
5
|
export declare class InSiteHTTPServer {
|
|
6
6
|
#private;
|
|
7
7
|
constructor({ port, ssl, https: isHTTPS, listeners, errors, server, onListen }: Options, middlewares?: Middleware[]);
|
|
8
|
-
isHTTPS: boolean;
|
|
9
|
-
port: number;
|
|
10
|
-
server:
|
|
8
|
+
readonly isHTTPS: boolean;
|
|
9
|
+
readonly port: number;
|
|
10
|
+
readonly server: https.Server<typeof http.IncomingMessage, typeof InSiteServerResponse> | http.Server<typeof http.IncomingMessage, typeof InSiteServerResponse>;
|
|
11
11
|
_throw(response: InSiteServerResponse, statusCode: number, params?: ErrorParams | string): InSiteServerResponse<http.IncomingMessage>;
|
|
12
12
|
addRequestListener(method: "ALL" | Method, regExp: RegExpOrString, handler: Handler): this;
|
|
13
13
|
addMiddleware(middleware: Middleware): this;
|
package/dist/Server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../src/Server.ts"],"names":[],"mappings":"AACA,OAAO,IAA8B,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EACN,WAAW,EACX,OAAO,EAKP,MAAM,EACN,UAAU,EACV,OAAO,EACP,cAAc,EACd,MAAM,SAAS,CAAC;AASjB,qBAAa,gBAAgB;;gBAChB,EACX,IAAI,EACJ,GAAG,EACH,KAAK,EAAE,OAAe,EACtB,SAAS,EACT,MAAM,EACN,MAAW,EACX,QAAQ,EACR,EAAE,OAAO,EAAE,WAAW,GAAE,UAAU,EAAO;IA2D1C,OAAO,
|
|
1
|
+
{"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../src/Server.ts"],"names":[],"mappings":"AACA,OAAO,IAA8B,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EACN,WAAW,EACX,OAAO,EAKP,MAAM,EACN,UAAU,EACV,OAAO,EACP,cAAc,EACd,MAAM,SAAS,CAAC;AASjB,qBAAa,gBAAgB;;gBAChB,EACX,IAAI,EACJ,GAAG,EACH,KAAK,EAAE,OAAe,EACtB,SAAS,EACT,MAAM,EACN,MAAW,EACX,QAAQ,EACR,EAAE,OAAO,EAAE,WAAW,GAAE,UAAU,EAAO;IA2D1C,QAAQ,CAAC,OAAO,UAAC;IACjB,QAAQ,CAAC,IAAI,SAAC;IACd,QAAQ,CAAC,MAAM,iJAAC;IA+DhB,MAAM,CAAC,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM;IAmBxF,kBAAkB,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO;IAanF,aAAa,CAAC,UAAU,EAAE,UAAU;IAsBpC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO;IAM7C,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO;IAM5C,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO;IAM5C,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO;IAM9C,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO;CAM/C"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var h=class{listeners};var X=void 0;import S from"node:fs";import l from"node:path";import p from"node:zlib";var z={params:{[p.constants.BROTLI_PARAM_MODE]:p.constants.BROTLI_MODE_TEXT,[p.constants.BROTLI_PARAM_QUALITY]:11}},
|
|
2
|
-
`,t)}}#m=(e,t)=>{let r=decodeURI(e.url).replace(this.#r,"").replaceAll("../","");if(r=this.#n.get(r)??l.join(this.#e,r),this.#s.has(r))return!1;if(!S.existsSync(r))return t.notFound();let{mimeType:i,isText:s}=this.#a(r),a=s?/\bbr\b/.test(e.headers["accept-encoding"])?"br":"gzip":null;t.writeHead(200,{"Content-Type":i+(s?"; charset=utf-8":""),...a&&{"Content-Encoding":a}});let d=this.#o.get(r);return d?t.end(s&&a?d[a]:d):new Promise(o=>{let c=S.createReadStream(r).on("error",()=>o(!1));a&&(c=c.pipe(O(a))),c.on("end",o),c.pipe(t)})}};import{isEmpty as
|
|
1
|
+
var h=class{listeners};var X=void 0;import S from"node:fs";import l from"node:path";import p from"node:zlib";var z={params:{[p.constants.BROTLI_PARAM_MODE]:p.constants.BROTLI_MODE_TEXT,[p.constants.BROTLI_PARAM_QUALITY]:11}},E={params:{[p.constants.BROTLI_PARAM_MODE]:p.constants.BROTLI_MODE_TEXT,[p.constants.BROTLI_PARAM_QUALITY]:4}},D={level:9},M={level:3};function x(n){return p.brotliCompressSync(n,z)}function R(n){return p.gzipSync(n,D)}function O(n){return n==="br"?p.createBrotliCompress(E):p.createGzip(M)}function v(n,e,t,r){let i=/\bbr\b/.test(n.headers["accept-encoding"]);t["Content-Encoding"]=i?"br":"gzip",e.writeHead(200,t).end(i?p.brotliCompressSync(r,E):p.gzipSync(r,M))}var I=[["js",{isText:!0,mimeType:"text/javascript"}],["css",{isText:!0,mimeType:"text/css"}],["ico",{mimeType:"image/x-icon"}],process.env.NODE_ENV==="development"?["css.map",{isText:!0,mimeType:"application/json"}]:null,process.env.NODE_ENV==="development"?["js.map",{isText:!0,mimeType:"application/json"}]:null,["jpg",{mimeType:"image/jpeg"}],["jpeg",{mimeType:"image/jpeg"}]].filter(Boolean);var P=[...process.env.NODE_ENV==="production"?["/index.js","/favicon.ico"]:[]];var N={mimeType:"application/octet-stream"},T=class extends h{constructor({src:e="public",urlPrefix:t="",requestRegExp:r,extensions:i=I,resolved:s,restricted:a,preloaded:d="default"}={}){if(super(),!l.isAbsolute(e)){let[,o]=process.argv;e=l.resolve(S.statSync(o).isDirectory()?o:l.dirname(o),e)}if(this.#e=e,this.#i=t,this.#r=new RegExp(`^${l.join("/",t,"/")}`),i)for(let o of i)o&&this.#p(...o);if(s)for(let o of s)o&&this.#d(...o);if(a)for(let o of a)o&&this.#c(o);if(d){d==="default"&&(d=P);for(let o of d)o&&this.#l(o)}this.listeners={GET:[[r??new RegExp(`^${l.join("/",this.#i,"/")}(\\w[^\\/]*/)*[^\\/]+\\.[^\\/]`),this.#m]]}}#e;#i;#r;#t=new Map;#n=new Map;#s=new Set;#o=new Map;#a(e){return this.#t.get(e.slice(Math.max(0,e.lastIndexOf(".")+1)))??N}#p(e,t){this.#t.set(e,{...t,name:e})}#d(e,t){this.#n.set(e,l.isAbsolute(t)?t:l.join(this.#e,t))}#c(e){this.#s.add(l.join(this.#e,e))}#l(e){e=this.#n.get(e)??l.join(this.#e,e);try{let{isText:t}=this.#a(e),r=S.readFileSync(e,t?"utf8":null);this.#o.set(e,t?{br:x(r),gzip:R(r)}:r)}catch(t){console.warn(`\u26A0\uFE0F inSite Static Server: Unable to preload ${e}`,`
|
|
2
|
+
`,t)}}#m=(e,t)=>{let r=decodeURI(e.url).replace(this.#r,"").replaceAll("../","");if(r=this.#n.get(r)??l.join(this.#e,r),this.#s.has(r))return!1;if(!S.existsSync(r))return t.notFound();let{mimeType:i,isText:s}=this.#a(r),a=s?/\bbr\b/.test(e.headers["accept-encoding"])?"br":"gzip":null;t.writeHead(200,{"Content-Type":i+(s?"; charset=utf-8":""),...a&&{"Content-Encoding":a}});let d=this.#o.get(r);return d?t.end(s&&a?d[a]:d):new Promise(o=>{let c=S.createReadStream(r).on("error",()=>o(!1));a&&(c=c.pipe(O(a))),c.on("end",o),c.pipe(t)})}};import{isEmpty as G}from"@nesvet/n";var{INSITE_TITLE:$}=process.env,w={};for(let n in process.env)n.startsWith("INSITE_CLIENT_")&&(w[n.replace(/INSITE_CLIENT_/,"").toLowerCase()]=process.env[n]);var U={"Content-Type":"text/html; charset=utf-8"},b=class extends h{constructor({requestRegExp:e=/.*/,globals:t={},title:r=$??"inSite",css:i=[],rootId:s="root"}={}){super(),this.listeners={GET:[[e,this.#n]]},this.#e=r,this.#i=Array.isArray(i)?i:[i],this.#r=s,Object.assign(t,w),this.#t=`<!DOCTYPE html><html lang="ru"><head><meta charset="utf-8" /><meta name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width" /><title>${this.#e}</title>${this.#i.map(a=>`<link rel="stylesheet" href="${a}" />`).join("")}${G(t)?"":`<script>globalThis.__insite=${JSON.stringify(t)};</script>`}<script type="text/javascript" src="/index.js" defer></script></head><body><div id="${this.#r}"></div></body></html>`}#e;#i;#r;#t;#n=(e,t)=>v(e,t,U,this.#t)};import _ from"node:fs";import Y from"node:http";import V from"node:https";import{ServerResponse as F}from"node:http";var f=Symbol("inSiteServer"),g=Symbol("inSiteRequest");var u=class extends F{[f];[g];error(e,t){return this[f]._throw(this,e,t)}badRequest(e){return this.error(400,e)}unauthorized(e){return this.error(401,e)}forbidden(e){return this.error(403,e)}notFound(e){return this.error(404,e)}requestTimeout(e){return this.error(408,e)}gone(e){return this.error(410,e)}internalServerError(e){return this.error(500,e)}serviceUnavailable(e){return this.error(503,e)}};function H(n){return typeof Object.values(n)[0]=="object"}function L(n){return typeof Object.values(n)[0]=="function"}function j(n){return Array.isArray(n)}function A(n){return!Array.isArray(n)}var{INSITE_HTTP_SSL_CERT:q,INSITE_HTTP_SSL_KEY:C}=process.env,y=class{constructor({port:e,ssl:t,https:r=!!t,listeners:i,errors:s,server:a={},onListen:d},o=[]){if(this.isHTTPS=!!r,this.isHTTPS&&!t&&q&&C&&(t={cert:q,key:C}),t){if(typeof t.cert=="string"&&!/^-{3,}BEGIN/.test(t.cert))try{t.cert=_.readFileSync(t.cert)}catch{}if(typeof t.key=="string"&&!/^-{3,}BEGIN/.test(t.key))try{t.key=_.readFileSync(t.key)}catch{}}else this.isHTTPS&&console.warn("\u26A0\uFE0F HTTPS server requires ssl.cert & ssl.key options");if(this.port=typeof e=="string"?Number.parseInt(e):e??(this.isHTTPS?443:80),i)for(let c of Object.keys(i))for(let[m,k]of i[c])this.addRequestListener(c,m,k);if(s)for(let c of Object.keys(s)){let m=Number.parseInt(c);m&&(this.#t[m]?Object.assign(this.#t[m],s[m]):this.#t[m]=s[m])}if(o)for(let c of o)this.addMiddleware(c);this.server=this.isHTTPS?V.createServer({...a,...t,ServerResponse:u},this.#r):Y.createServer({...a,ServerResponse:u},this.#r),this.server.listen(this.port,()=>d?d():this.#i())}isHTTPS;port;server;#e={POST:[],GET:[],PUT:[],PATCH:[],DELETE:[]};#i(){console.info(`\u{1F310} inSite HTTP${this.isHTTPS?"S":""} Server is listening on`,this.port)}#r=async(e,t)=>{if(t[f]=this,t[g]=e,!("status"in e)){for(let[r,i]of this.#e[e.method])if(r.test(e.url)&&await i(e,t)!==!1)return}t.notFound()};#t={400:{content:"Bad Request"},401:{content:"Unauthorized"},403:{content:"Forbidden"},404:{content:"Not Found"},408:{content:"Request Timeout"},410:{content:"Gone"},500:{content:"Internal Server Error"},503:{content:"Service Unavailable"},default:{headers:{"Content-Type":"text/plain; charset=utf-8"},content:"",handler(e,t,{statusCode:r,headers:i,content:s}){return t.writeHead(r,i).end(s)}}};_throw(e,t,r){typeof r=="string"&&(r={content:r});let{handler:i,...s}={...this.#t.default,...this.#t[t],...r};return i?i(e[g],e,{...s,statusCode:t}):e}addRequestListener(e,t,r){if(typeof t=="string"&&(t=new RegExp(t)),e&&e!=="ALL")this.#e[e]?.push([t,r]);else for(let i of Object.keys(this.#e))this.addRequestListener(i,t,r);return this}addMiddleware(e){if(e instanceof h){for(let[t,r]of Object.entries(e.listeners))for(let[i,s]of r)this.addRequestListener(t,i,s);e.bindTo?.(this)}else if(j(e)){A(e)&&(e=[e]);for(let t of e)this.addRequestListener(...t.length===2?["GET",...t]:t)}else if(L(e))for(let[t,r]of Object.entries(e))this.addRequestListener("GET",t,r);else if(H(e))for(let[t,r]of Object.entries(e))for(let[i,s]of Object.entries(r))this.addRequestListener(t,i,s);return this}post(e,t){return this.addRequestListener("POST",e,t),this}get(e,t){return this.addRequestListener("GET",e,t),this}put(e,t){return this.addRequestListener("PUT",e,t),this}patch(e,t){return this.addRequestListener("PATCH",e,t),this}delete(e,t){return this.addRequestListener("DELETE",e,t),this}};var B=class extends y{constructor(e,t,r=[]){super(t,[new T(e),...r])}handleListen(){console.info(`\u{1F6D2} inSite Static HTTP${this.isHTTPS?"S":""} Server is listening on`,this.port)}};export{y as InSiteHTTPServer,X as InSiteInitialsMiddleware,h as InSiteServerMiddleware,T as InSiteStaticMiddleware,B as InSiteStaticServer,b as InSiteTemplateMiddleware};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/Middleware.ts", "../src/middlewares/Initials.ts", "../src/middlewares/Static/Static.ts", "../src/compression.ts", "../src/middlewares/Static/extensions.ts", "../src/middlewares/Static/preloaded.ts", "../src/middlewares/Template.ts", "../src/Server.ts", "../src/Response.ts", "../src/symbols.ts", "../src/types.ts", "../src/StaticServer.ts"],
|
|
4
|
-
"sourcesContent": ["import { InSiteHTTPServer } from \"./Server\";\nimport { Handler, Method, RegExpOrString } from \"./types\";\n\n\nexport class InSiteServerMiddleware {\n\tlisteners!: Partial<Record<Method, [ RegExpOrString, Handler ][]>>;\n\tbindTo?(server: InSiteHTTPServer): void;\n}\n", "//#if _SERVER && _SSR\n// import { initialsMap } from \"@insite/subscriptions\";\n// import { handleRequestCompressed } from \"../compression\";\n// import { InSiteServerMiddleware } from \"../Middleware\";\n\n\n// const headers = { \"Content-Type\": \"text/javascript; charset=utf-8\" };\n\n\n// export class InSiteInitialsMiddleware extends InSiteServerMiddleware {\n// \tconstructor(options = {}) {\n// \t\tsuper();\n// \t\tconst {\n// \t\t\trequestRegExp = /^\\/initials\\/?\\?/\n// \t\t} = options;\n\n// \t\tthis.listeners = { GET: [\n// \t\t\t[ requestRegExp, this.handler ]\n// \t\t] };\n\n// \t}\n\n// \thandler = (request, response) => {\n// \t\tconst initials = initialsMap.getWithTimeout(request.url.split(\"?\")[1]);\n\n// \t\tif (initials)\n// \t\t\thandleRequestCompressed(request, response, headers, `window.__initials = [${initials.join()}];\\ndocument.currentScript.remove();`);\n// \t\telse\n// \t\t\treturn false;\n// \t};\n\n// }\n\n\n//#else\nexport const InSiteInitialsMiddleware = undefined;\n\n\n//#endif\n", "import fs from \"node:fs\";\nimport { IncomingMessage } from \"node:http\";\nimport path from \"node:path\";\nimport { Readable } from \"node:stream\";\nimport { brotliPreloadSync, getCompressionStreamByEncoding, gzipPreloadSync } from \"../../compression\";\nimport { InSiteServerMiddleware } from \"../../Middleware\";\nimport { InSiteServerResponse } from \"../../Response\";\nimport { defaultExtensions } from \"./extensions\";\nimport { defaultPreloaded } from \"./preloaded\";\nimport { Extension, Options } from \"./types\";\n\n\nconst nullExtension = {\n\tmimeType: \"application/octet-stream\"\n};\n\n\nexport class InSiteStaticMiddleware extends InSiteServerMiddleware {\n\tconstructor({\n\t\tsrc = \"public\",\n\t\turlPrefix = \"\",\n\t\trequestRegExp,\n\t\textensions = defaultExtensions,\n\t\tresolved,\n\t\trestricted,\n\t\tpreloaded = \"default\"\n\t}: Options = {}) {\n\t\tsuper();\n\t\t\n\t\tif (!path.isAbsolute(src)) {\n\t\t\tconst [ , entryPoint ] = process.argv;\n\t\t\tsrc = path.resolve(fs.statSync(entryPoint).isDirectory() ? entryPoint : path.dirname(entryPoint), src);\n\t\t}\n\t\t\n\t\tthis.#src = src;\n\t\tthis.#urlPrefix = urlPrefix;\n\t\tthis.#urlPrefixRegExp = new RegExp(`^${path.join(\"/\", urlPrefix, \"/\")}`);\n\t\t\n\t\tif (extensions)\n\t\t\tfor (const extension of extensions)\n\t\t\t\tif (extension)\n\t\t\t\t\tthis.#addExtension(...extension);\n\t\t\n\t\tif (resolved)\n\t\t\tfor (const resolvee of resolved)\n\t\t\t\tif (resolvee)\n\t\t\t\t\tthis.#resolve(...resolvee);\n\t\t\n\t\tif (restricted)\n\t\t\tfor (const fileName of restricted)\n\t\t\t\tif (fileName)\n\t\t\t\t\tthis.#restrict(fileName);\n\t\t\n\t\tif (preloaded) {\n\t\t\tif (preloaded === \"default\")\n\t\t\t\tpreloaded = defaultPreloaded;\n\t\t\t\n\t\t\tfor (const fileName of preloaded)\n\t\t\t\tif (fileName)\n\t\t\t\t\tthis.#preload(fileName);\n\t\t}\n\t\t\n\t\tthis.listeners = { GET: [\n\t\t\t[ requestRegExp ?? new RegExp(`^${path.join(\"/\", this.#urlPrefix, \"/\")}(\\\\w[^\\\\/]*/)*[^\\\\/]+\\\\.[^\\\\/]`), this.#handler ]\n\t\t] };\n\t\t\n\t}\n\t\n\t#src;\n\t#urlPrefix;\n\t#urlPrefixRegExp;\n\t\n\t#extensions = new Map();\n\t\n\t#resolved = new Map();\n\t\n\t#restricted = new Set();\n\t\n\t#preloaded = new Map();\n\t\n\t#getExtensionBy(fileName: string) {\n\t\treturn this.#extensions.get(fileName.slice(Math.max(0, fileName.lastIndexOf(\".\") + 1))) ?? nullExtension;\n\t}\n\t\n\t#addExtension(name: string, extension: Extension[1]) {\n\t\tthis.#extensions.set(name, { ...extension, name });\n\t\t\n\t}\n\t\n\t#resolve(url: string, fileName: string) {\n\t\tthis.#resolved.set(url, path.isAbsolute(fileName) ? fileName : path.join(this.#src, fileName));\n\t\t\n\t}\n\t\n\t#restrict(fileName: string) {\n\t\tthis.#restricted.add(path.join(this.#src, fileName));\n\t\t\n\t}\n\t\n\t#preload(fileName: string) {\n\t\tfileName = this.#resolved.get(fileName) ?? path.join(this.#src, fileName);\n\t\t\n\t\ttry {\n\t\t\tconst { isText } = this.#getExtensionBy(fileName);\n\t\t\tconst fileData = fs.readFileSync(fileName, isText ? \"utf8\" : null);\n\t\t\tthis.#preloaded.set(fileName, isText ? {\n\t\t\t\tbr: brotliPreloadSync(fileData),\n\t\t\t\tgzip: gzipPreloadSync(fileData)\n\t\t\t} : fileData);\n\t\t} catch (error) {\n\t\t\tconsole.warn(`\u26A0\uFE0F inSite Static Server: Unable to preload ${fileName}`, \"\\n\", error);\n\t\t}\n\t\t\n\t}\n\t\n\t#handler = (request: IncomingMessage, response: InSiteServerResponse) => {\n\t\tlet fileName = decodeURI(request.url!).replace(this.#urlPrefixRegExp, \"\").replaceAll(\"../\", \"\");\n\t\tfileName = this.#resolved.get(fileName) ?? path.join(this.#src, fileName);\n\t\t\n\t\tif (this.#restricted.has(fileName))\n\t\t\treturn false;\n\t\t\n\t\tif (!fs.existsSync(fileName))\n\t\t\treturn response.notFound();\n\t\t\n\t\tconst { mimeType, isText } = this.#getExtensionBy(fileName);\n\t\tconst contentEncoding = isText ? /\\bbr\\b/.test(request.headers[\"accept-encoding\"] as string) ? \"br\" : \"gzip\" : null;\n\t\t\n\t\tresponse.writeHead(200, {\n\t\t\t\"Content-Type\": mimeType + (isText ? \"; charset=utf-8\" : \"\"),\n\t\t\t...contentEncoding && { \"Content-Encoding\": contentEncoding }\n\t\t});\n\t\t\n\t\tconst preloaded = this.#preloaded.get(fileName);\n\t\t\n\t\tif (preloaded)\n\t\t\treturn response.end(isText && contentEncoding ? preloaded[contentEncoding] : preloaded);\n\t\t\n\t\treturn new Promise(resolve => {\n\t\t\tlet stream: Readable = fs.createReadStream(fileName).on(\"error\", () => resolve(false));\n\t\t\t\n\t\t\tif (contentEncoding)\n\t\t\t\tstream = stream.pipe(getCompressionStreamByEncoding(contentEncoding));\n\t\t\t\n\t\t\tstream.on(\"end\", resolve);\n\t\t\t\n\t\t\tstream.pipe(response);\n\t\t\t\n\t\t});\n\t};\n\t\n}\n", "import { IncomingMessage, OutgoingHttpHeaders } from \"node:http\";\nimport zlib, { InputType } from \"node:zlib\";\nimport { InSiteServerResponse } from \"./Response\";\n\n\nconst brotliPreloadOptions = {\n\tparams: {\n\t\t[zlib.constants.BROTLI_PARAM_MODE]: zlib.constants.BROTLI_MODE_TEXT,\n\t\t[zlib.constants.BROTLI_PARAM_QUALITY]: 11\n\t}\n};\n\nconst brotliRuntimeOptions = {\n\tparams: {\n\t\t[zlib.constants.BROTLI_PARAM_MODE]: zlib.constants.BROTLI_MODE_TEXT,\n\t\t[zlib.constants.BROTLI_PARAM_QUALITY]: 4\n\t}\n};\n\nconst gzipPreloadOptions = {\n\tlevel: 9\n};\n\nconst gzipRuntimeOptions = {\n\tlevel: 3\n};\n\n\nexport function brotliPreloadSync(data: InputType) {\n\treturn zlib.brotliCompressSync(data, brotliPreloadOptions);\n}\n\nexport function gzipPreloadSync(data: InputType) {\n\treturn zlib.gzipSync(data, gzipPreloadOptions);\n}\n\nexport function getCompressionStreamByEncoding(contentEncoding: \"br\" | \"gzip\") {\n\treturn contentEncoding === \"br\" ? zlib.createBrotliCompress(brotliRuntimeOptions) : zlib.createGzip(gzipRuntimeOptions);\n}\n\nexport function handleRequestCompressed(request: IncomingMessage, response: InSiteServerResponse, headers: OutgoingHttpHeaders, data: InputType) {\n\tconst isBrotliAccepted = /\\bbr\\b/.test(request.headers[\"accept-encoding\"] as string);\n\theaders[\"Content-Encoding\"] = isBrotliAccepted ? \"br\" : \"gzip\";\n\tresponse.writeHead(200, headers).end(isBrotliAccepted ? zlib.brotliCompressSync(data, brotliRuntimeOptions) : zlib.gzipSync(data, gzipRuntimeOptions));\n\t\n}\n", "import { Extension } from \"./types\";\n\n\nexport const defaultExtensions = [\n\t\n\t[ \"js\", {\n\t\tisText: true,\n\t\tmimeType: \"text/javascript\"\n\t} ],\n\t\n\t[ \"css\", {\n\t\tisText: true,\n\t\tmimeType: \"text/css\"\n\t} ],\n\t\n\t[ \"ico\", {\n\t\tmimeType: \"image/x-icon\"\n\t} ],\n\t\n\tprocess.env.NODE_ENV === \"development\" ? [ \"css.map\", {\n\t\tisText: true,\n\t\tmimeType: \"application/json\"\n\t} ] : null,\n\t\n\tprocess.env.NODE_ENV === \"development\" ? [ \"js.map\", {\n\t\tisText: true,\n\t\tmimeType: \"application/json\"\n\t} ] : null,\n\t\n\t[ \"jpg\", {\n\t\tmimeType: \"image/jpeg\"\n\t} ],\n\t\n\t[ \"jpeg\", {\n\t\tmimeType: \"image/jpeg\"\n\t} ]\n\t\n].filter(Boolean) as Extension[];\n", "export const defaultPreloaded = [\n\t...process.env.NODE_ENV === \"production\" ? [\n\t\t//#if _SSR\n\t\t// \"/index.css\",\n\t\t//#endif\n\t\t\"/index.js\",\n\t\t\"/favicon.ico\"\n\t] : []\n];\n", "import { IncomingMessage } from \"node:http\";\nimport { isEmpty } from \"@nesvet/n\";\nimport { handleRequestCompressed } from \"../compression\";\nimport { InSiteServerMiddleware } from \"../Middleware\";\nimport { InSiteServerResponse } from \"../Response\";\n\n\nconst { INSITE_TITLE } = process.env;\n\nconst envGlobals: Record<string, unknown> = {};\nfor (const key in process.env)\n\tif (key.startsWith(\"INSITE_CLIENT_\"))\n\t\tenvGlobals[key.replace(/INSITE_CLIENT_/, \"\").toLowerCase()] = process.env[key];\n\nconst headers = { \"Content-Type\": \"text/html; charset=utf-8\" };\n\n\ntype Options = {\n\trequestRegExp?: RegExp;\n\tglobals?: Record<string, unknown>;\n\ttitle?: string;\n\tcss?: string | string[];\n\trootId?: string;\n};\n\nexport type { Options as TemplateMiddlewareOptions };\n\n\nexport class InSiteTemplateMiddleware extends InSiteServerMiddleware {\n\tconstructor({\n\t\trequestRegExp = /.*/,\n\t\tglobals = {},\n\t\ttitle = INSITE_TITLE ?? \"inSite\",\n\t\tcss = [],\n\t\trootId = \"root\"\n\t}: Options = {}) {\n\t\tsuper();\n\t\t\n\t\tthis.listeners = { GET: [\n\t\t\t[ requestRegExp, this.#handler ]\n\t\t] };\n\t\t\n\t\tthis.#title = title;\n\t\tthis.#css = Array.isArray(css) ? css : [ css ];\n\t\tthis.#rootId = rootId;\n\t\t\n\t\tObject.assign(globals, envGlobals);\n\t\t\n\t\tthis.#html =\n\t\t\t\"<!DOCTYPE html>\" +\n\t\t\t\"<html lang=\\\"ru\\\">\" +\n\t\t\t\"<head>\" +\n\t\t\t\"<meta charset=\\\"utf-8\\\" />\" +\n\t\t\t\"<meta name=\\\"viewport\\\" content=\\\"minimum-scale=1, initial-scale=1, width=device-width\\\" />\" +\n\t\t\t`<title>${this.#title}</title>` +\n\t\t\t`${this.#css.map(fileName => `<link rel=\"stylesheet\" href=\"${fileName}\" />`).join(\"\")}` +\n\t\t\t`${isEmpty(globals) ? \"\" : `<script>globalThis.__insite=${JSON.stringify(globals)};</script>`}` +\n\t\t\t\"<script type=\\\"text/javascript\\\" src=\\\"/index.js\\\" defer></script>\" +\n\t\t\t\"</head>\" +\n\t\t\t\"<body>\" +\n\t\t\t`<div id=\"${this.#rootId}\">` +\n\t\t\t\"</div>\" +\n\t\t\t\"</body>\" +\n\t\t\t\"</html>\";\n\t\t\n\t}\n\t\n\t#title;\n\t#css;\n\t#rootId;\n\t#html;\n\t\n\t#handler = (request: IncomingMessage, response: InSiteServerResponse) =>\n\t\thandleRequestCompressed(request, response, headers, this.#html);\n\t\n}\n", "import fs from \"node:fs\";\nimport http, { type IncomingMessage } from \"node:http\";\nimport https from \"node:https\";\nimport { InSiteServerMiddleware } from \"./Middleware\";\nimport { InSiteServerResponse } from \"./Response\";\nimport { inSiteRequestSymbol, inSiteServerSymbol } from \"./symbols\";\nimport {\n\tErrorParams,\n\tHandler,\n\tisMiddlewareMethodMap,\n\tisMiddlewareRegExpStringMap,\n\tisMiddlewareTuple,\n\tisMiddlewareTupleOrArray,\n\tMethod,\n\tMiddleware,\n\tOptions,\n\tRegExpOrString\n} from \"./types\";\n\n\nconst {\n\tINSITE_HTTP_SSL_CERT,\n\tINSITE_HTTP_SSL_KEY\n} = process.env;\n\n\nexport class InSiteHTTPServer {\n\tconstructor({\n\t\tport,\n\t\tssl,\n\t\thttps: isHTTPS = !!ssl,\n\t\tlisteners,\n\t\terrors,\n\t\tserver = {},\n\t\tonListen\n\t}: Options, middlewares: Middleware[] = []) {\n\t\t\n\t\tthis.isHTTPS = isHTTPS;\n\t\t\n\t\tif (this.isHTTPS && !ssl && INSITE_HTTP_SSL_CERT && INSITE_HTTP_SSL_KEY)\n\t\t\tssl = {\n\t\t\t\tcert: INSITE_HTTP_SSL_CERT,\n\t\t\t\tkey: INSITE_HTTP_SSL_KEY\n\t\t\t};\n\t\t\n\t\tif (ssl) {\n\t\t\tif (!/^-{3,}BEGIN/.test(ssl.cert))\n\t\t\t\ttry {\n\t\t\t\t\tssl.cert = fs.readFileSync(ssl.cert, \"utf8\");\n\t\t\t\t} catch {}\n\t\t\tif (!/^-{3,}BEGIN/.test(ssl.key))\n\t\t\t\ttry {\n\t\t\t\t\tssl.key = fs.readFileSync(ssl.key, \"utf8\");\n\t\t\t\t} catch {}\n\t\t} else if (this.isHTTPS)\n\t\t\tconsole.warn(\"\u26A0\uFE0F HTTPS server requires ssl.cert & ssl.key options\");\n\t\t\n\t\tthis.port = port ?? (this.isHTTPS ? 443 : 80);\n\t\t\n\t\tif (listeners)\n\t\t\tfor (const method of Object.keys(listeners) as (\"ALL\" | Method)[])\n\t\t\t\tfor (const [ regExp, handler ] of listeners[method])\n\t\t\t\t\tthis.addRequestListener(method, regExp, handler);\n\t\t\n\t\tif (errors)\n\t\t\tfor (const statusCodeString of Object.keys(errors)) {\n\t\t\t\tconst statusCode = Number.parseInt(statusCodeString);\n\t\t\t\tif (statusCode)\n\t\t\t\t\tif (this.#errors[statusCode])\n\t\t\t\t\t\tObject.assign(this.#errors[statusCode], errors[statusCode]);\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.#errors[statusCode] = errors[statusCode];\n\t\t\t}\n\t\t\n\t\tif (middlewares)\n\t\t\tfor (const middleware of middlewares)\n\t\t\t\tthis.addMiddleware(middleware);\n\t\t\n\t\tthis.server =\n\t\t\tthis.isHTTPS ?\n\t\t\t\thttps.createServer({\n\t\t\t\t\t...server,\n\t\t\t\t\t...ssl,\n\t\t\t\t\tServerResponse: InSiteServerResponse\n\t\t\t\t}, this.#requestListener) :\n\t\t\t\thttp.createServer({\n\t\t\t\t\t...server,\n\t\t\t\t\tServerResponse: InSiteServerResponse\n\t\t\t\t}, this.#requestListener);\n\t\t\n\t\tthis.server.listen(port, () => onListen ? onListen() : this.#handleListen());\n\t\t\n\t}\n\t\n\tisHTTPS = false;\n\tport: number;\n\tserver: http.Server | https.Server;\n\t\n\t#listeners: Record<Method, [ RegExp, Handler ][]> = {\n\t\tPOST: [],\n\t\tGET: [],\n\t\tPUT: [],\n\t\tPATCH: [],\n\t\tDELETE: []\n\t};\n\t\n\t#handleListen() {\n\t\t\n\t\tconsole.info(`\uD83C\uDF10 inSite HTTP${this.isHTTPS ? \"S\" : \"\"} Server is listening on`, this.port);\n\t\t\n\t}\n\t\n\t#requestListener = async (request: IncomingMessage, response: InSiteServerResponse) => {\n\t\tresponse[inSiteServerSymbol] = this;\n\t\tresponse[inSiteRequestSymbol] = request;\n\t\t\n\t\tif (!(\"status\" in request))\n\t\t\tfor (const [ regExp, handler ] of this.#listeners[request.method as Method])\n\t\t\t\tif (regExp.test(request.url!) && await handler(request, response) !== false)\n\t\t\t\t\treturn;\n\t\t\n\t\tresponse.notFound();\n\t\t\n\t};\n\t\n\t#errors: Record<\"default\" | number, ErrorParams> = {\n\t\t400: {\n\t\t\tcontent: \"Bad Request\"\n\t\t},\n\t\t401: {\n\t\t\tcontent: \"Unauthorized\"\n\t\t},\n\t\t403: {\n\t\t\tcontent: \"Forbidden\"\n\t\t},\n\t\t404: {\n\t\t\tcontent: \"Not Found\"\n\t\t},\n\t\t408: {\n\t\t\tcontent: \"Request Timeout\"\n\t\t},\n\t\t410: {\n\t\t\tcontent: \"Gone\"\n\t\t},\n\t\t500: {\n\t\t\tcontent: \"Internal Server Error\"\n\t\t},\n\t\t503: {\n\t\t\tcontent: \"Service Unavailable\"\n\t\t},\n\t\tdefault: {\n\t\t\theaders: { \"Content-Type\": \"text/plain; charset=utf-8\" },\n\t\t\tcontent: \"\",\n\t\t\thandler(request, response, { statusCode, headers, content }) {\n\t\t\t\treturn response.writeHead(statusCode, headers).end(content);\n\t\t\t}\n\t\t}\n\t};\n\t\n\t_throw(response: InSiteServerResponse, statusCode: number, params?: ErrorParams | string) {\n\t\tif (typeof params == \"string\")\n\t\t\tparams = { content: params };\n\t\t\n\t\tconst {\n\t\t\thandler,\n\t\t\t...restParams\n\t\t} = {\n\t\t\t...this.#errors.default,\n\t\t\t...this.#errors[statusCode],\n\t\t\t...params\n\t\t};\n\t\t\n\t\treturn handler ? handler(response[inSiteRequestSymbol], response, {\n\t\t\t...restParams,\n\t\t\tstatusCode\n\t\t}) : response;\n\t}\n\t\n\taddRequestListener(method: \"ALL\" | Method, regExp: RegExpOrString, handler: Handler) {\n\t\tif (typeof regExp == \"string\")\n\t\t\tregExp = new RegExp(regExp);\n\t\t\n\t\tif (method && method !== \"ALL\")\n\t\t\tthis.#listeners[method]?.push([ regExp, handler ]);\n\t\telse\n\t\t\tfor (const specificMethod of Object.keys(this.#listeners) as Method[])\n\t\t\t\tthis.addRequestListener(specificMethod, regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\taddMiddleware(middleware: Middleware) {\n\t\tif (middleware instanceof InSiteServerMiddleware) {\n\t\t\tfor (const [ method, regExpOrStringArrayMap ] of Object.entries(middleware.listeners))\n\t\t\t\tfor (const [ regExpOrString, handler ] of regExpOrStringArrayMap)\n\t\t\t\t\tthis.addRequestListener(method as Method, regExpOrString, handler);\n\t\t\tmiddleware.bindTo?.(this);\n\t\t} else if (isMiddlewareTupleOrArray(middleware)) {\n\t\t\tif (isMiddlewareTuple(middleware))\n\t\t\t\tmiddleware = [ middleware ];\n\t\t\tfor (const params of middleware)\n\t\t\t\tthis.addRequestListener(...params.length === 2 ? [ \"GET\", ...params ] as const : params);\n\t\t} else if (isMiddlewareRegExpStringMap(middleware))\n\t\t\tfor (const [ key, value ] of Object.entries(middleware))\n\t\t\t\tthis.addRequestListener(\"GET\", key, value);\n\t\telse if (isMiddlewareMethodMap(middleware))\n\t\t\tfor (const [ method, regExpStringMap ] of Object.entries(middleware))\n\t\t\t\tfor (const [ regExpString, handler ] of Object.entries(regExpStringMap))\n\t\t\t\t\tthis.addRequestListener(method as Method, regExpString, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\tpost(regExp: RegExpOrString, handler: Handler) {\n\t\tthis.addRequestListener(\"POST\", regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\tget(regExp: RegExpOrString, handler: Handler) {\n\t\tthis.addRequestListener(\"GET\", regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\tput(regExp: RegExpOrString, handler: Handler) {\n\t\tthis.addRequestListener(\"PUT\", regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\tpatch(regExp: RegExpOrString, handler: Handler) {\n\t\tthis.addRequestListener(\"PATCH\", regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\tdelete(regExp: RegExpOrString, handler: Handler) {\n\t\tthis.addRequestListener(\"DELETE\", regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n}\n", "import { type IncomingMessage, ServerResponse } from \"node:http\";\nimport { inSiteRequestSymbol, inSiteServerSymbol } from \"./symbols\";\nimport type { InSiteHTTPServer } from \"./Server\";\nimport type { ErrorParams } from \"./types\";\n\n\nexport class InSiteServerResponse<Request extends IncomingMessage = IncomingMessage> extends ServerResponse<Request> {\n\t\n\t[inSiteServerSymbol]!: InSiteHTTPServer;\n\t[inSiteRequestSymbol]!: IncomingMessage;\n\t\n\terror(statusCode: number, params?: ErrorParams) {\n\t\treturn this[inSiteServerSymbol]._throw(this, statusCode, params);\n\t}\n\t\n\tbadRequest(params?: ErrorParams) {\n\t\treturn this.error(400, params);\n\t}\n\t\n\tunauthorized(params?: ErrorParams) {\n\t\treturn this.error(401, params);\n\t}\n\t\n\tforbidden(params?: ErrorParams) {\n\t\treturn this.error(403, params);\n\t}\n\t\n\tnotFound(params?: ErrorParams) {\n\t\treturn this.error(404, params);\n\t}\n\t\n\trequestTimeout(params?: ErrorParams) {\n\t\treturn this.error(408, params);\n\t}\n\t\n\tgone(params?: ErrorParams) {\n\t\treturn this.error(410, params);\n\t}\n\t\n\tinternalServerError(params?: ErrorParams) {\n\t\treturn this.error(500, params);\n\t}\n\t\n\tserviceUnavailable(params?: ErrorParams) {\n\t\treturn this.error(503, params);\n\t}\n\t\n}\n", "export const inSiteServerSymbol = Symbol(\"inSiteServer\");\nexport const inSiteRequestSymbol = Symbol(\"inSiteRequest\");\n", "import type {\n\tServerOptions as HTTPServerOptions,\n\tIncomingMessage,\n\tOutgoingHttpHeader,\n\tOutgoingHttpHeaders\n} from \"node:http\";\nimport type { ServerOptions as HTTPSServerOptions } from \"node:https\";\nimport { InSiteServerMiddleware } from \"./Middleware\";\nimport type { InSiteServerResponse } from \"./Response\";\n\n\nexport type ErrorParams = {\n\theaders?: OutgoingHttpHeader[] | OutgoingHttpHeaders;\n\tcontent: string;\n\thandler?(request: IncomingMessage, response: InSiteServerResponse, errorParams: { statusCode: number } & Omit<ErrorParams, \"handler\">): InSiteServerResponse;\n};\n\nexport type Method = \"DELETE\" | \"GET\" | \"PATCH\" | \"POST\" | \"PUT\";\n\nexport type Handler = (request: IncomingMessage, response: InSiteServerResponse) => unknown;\n\nexport type Options = {\n\tport?: number;\n\tssl?: {\n\t\tcert: string;\n\t\tkey: string;\n\t};\n\thttps?: boolean;\n\tlisteners?: Record<\"ALL\" | Method, [ RegExp, Handler ][]>;\n\terrors?: Record<\"default\" | number, ErrorParams>;\n\tserver?: HTTPServerOptions | HTTPSServerOptions;\n\tonListen?: () => void;\n};\n\nexport type RegExpOrString = RegExp | string;\n\ntype MiddlewareTuple = readonly [ Method, RegExpOrString, Handler ] | readonly [ RegExpOrString, Handler ];\n\ntype MiddlewareRegExpStringMap = Record<string, Handler>;\n\ntype MiddlewareMethodMap = Record<Method, Record<string, Handler>>;\n\nexport type Middleware =\n\tInSiteServerMiddleware |\n\tMiddlewareMethodMap |\n\tMiddlewareRegExpStringMap |\n\tMiddlewareTuple |\n\tMiddlewareTuple[];\n\nexport function isMiddlewareMethodMap(middleware: Middleware): middleware is MiddlewareMethodMap {\n\treturn typeof Object.values(middleware)[0] == \"object\";\n}\n\nexport function isMiddlewareRegExpStringMap(middleware: Middleware): middleware is MiddlewareRegExpStringMap {\n\treturn typeof Object.values(middleware)[0] == \"function\";\n}\n\nexport function isMiddlewareTupleOrArray(middleware: Middleware): middleware is MiddlewareTuple | MiddlewareTuple[] {\n\treturn Array.isArray(middleware);\n}\n\nexport function isMiddlewareTuple(middleware: MiddlewareTuple | MiddlewareTuple[]): middleware is MiddlewareTuple {\n\treturn !Array.isArray(middleware);\n}\n", "import { InSiteStaticMiddleware, StaticMiddlewareOptions } from \"./middlewares/Static\";\nimport { InSiteHTTPServer } from \"./Server\";\nimport { Middleware, Options } from \"./types\";\n\n\nexport class InSiteStaticServer extends InSiteHTTPServer {\n\tconstructor(options: StaticMiddlewareOptions, serverOptions: Options, middlewares: Middleware[] = []) {\n\t\tsuper(serverOptions, [\n\t\t\tnew InSiteStaticMiddleware(options),\n\t\t\t...middlewares\n\t\t]);\n\t\t\n\t}\n\t\n\thandleListen() {\n\t\t\n\t\tconsole.info(`\uD83D\uDED2 inSite Static HTTP${this.isHTTPS ? \"S\" : \"\"} Server is listening on`, this.port);\n\t\t\n\t}\n\t\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import { InSiteHTTPServer } from \"./Server\";\nimport { Handler, Method, RegExpOrString } from \"./types\";\n\n\nexport class InSiteServerMiddleware {\n\tlisteners!: Partial<Record<Method, [ RegExpOrString, Handler ][]>>;\n\tbindTo?(server: InSiteHTTPServer): void;\n}\n", "//#if _SERVER && _SSR\n// import { initialsMap } from \"@insite/subscriptions\";\n// import { handleRequestCompressed } from \"../compression\";\n// import { InSiteServerMiddleware } from \"../Middleware\";\n\n\n// const headers = { \"Content-Type\": \"text/javascript; charset=utf-8\" };\n\n\n// export class InSiteInitialsMiddleware extends InSiteServerMiddleware {\n// \tconstructor(options = {}) {\n// \t\tsuper();\n// \t\tconst {\n// \t\t\trequestRegExp = /^\\/initials\\/?\\?/\n// \t\t} = options;\n\n// \t\tthis.listeners = { GET: [\n// \t\t\t[ requestRegExp, this.handler ]\n// \t\t] };\n\n// \t}\n\n// \thandler = (request, response) => {\n// \t\tconst initials = initialsMap.getWithTimeout(request.url.split(\"?\")[1]);\n\n// \t\tif (initials)\n// \t\t\thandleRequestCompressed(request, response, headers, `window.__initials = [${initials.join()}];\\ndocument.currentScript.remove();`);\n// \t\telse\n// \t\t\treturn false;\n// \t};\n\n// }\n\n\n//#else\nexport const InSiteInitialsMiddleware = undefined;\n\n\n//#endif\n", "import fs from \"node:fs\";\nimport { IncomingMessage } from \"node:http\";\nimport path from \"node:path\";\nimport { Readable } from \"node:stream\";\nimport { brotliPreloadSync, getCompressionStreamByEncoding, gzipPreloadSync } from \"../../compression\";\nimport { InSiteServerMiddleware } from \"../../Middleware\";\nimport { InSiteServerResponse } from \"../../Response\";\nimport { defaultExtensions } from \"./extensions\";\nimport { defaultPreloaded } from \"./preloaded\";\nimport { Extension, Options } from \"./types\";\n\n\nconst nullExtension = {\n\tmimeType: \"application/octet-stream\"\n};\n\n\nexport class InSiteStaticMiddleware extends InSiteServerMiddleware {\n\tconstructor({\n\t\tsrc = \"public\",\n\t\turlPrefix = \"\",\n\t\trequestRegExp,\n\t\textensions = defaultExtensions,\n\t\tresolved,\n\t\trestricted,\n\t\tpreloaded = \"default\"\n\t}: Options = {}) {\n\t\tsuper();\n\t\t\n\t\tif (!path.isAbsolute(src)) {\n\t\t\tconst [ , entryPoint ] = process.argv;\n\t\t\tsrc = path.resolve(fs.statSync(entryPoint).isDirectory() ? entryPoint : path.dirname(entryPoint), src);\n\t\t}\n\t\t\n\t\tthis.#src = src;\n\t\tthis.#urlPrefix = urlPrefix;\n\t\tthis.#urlPrefixRegExp = new RegExp(`^${path.join(\"/\", urlPrefix, \"/\")}`);\n\t\t\n\t\tif (extensions)\n\t\t\tfor (const extension of extensions)\n\t\t\t\tif (extension)\n\t\t\t\t\tthis.#addExtension(...extension);\n\t\t\n\t\tif (resolved)\n\t\t\tfor (const resolvee of resolved)\n\t\t\t\tif (resolvee)\n\t\t\t\t\tthis.#resolve(...resolvee);\n\t\t\n\t\tif (restricted)\n\t\t\tfor (const fileName of restricted)\n\t\t\t\tif (fileName)\n\t\t\t\t\tthis.#restrict(fileName);\n\t\t\n\t\tif (preloaded) {\n\t\t\tif (preloaded === \"default\")\n\t\t\t\tpreloaded = defaultPreloaded;\n\t\t\t\n\t\t\tfor (const fileName of preloaded)\n\t\t\t\tif (fileName)\n\t\t\t\t\tthis.#preload(fileName);\n\t\t}\n\t\t\n\t\tthis.listeners = { GET: [\n\t\t\t[ requestRegExp ?? new RegExp(`^${path.join(\"/\", this.#urlPrefix, \"/\")}(\\\\w[^\\\\/]*/)*[^\\\\/]+\\\\.[^\\\\/]`), this.#handler ]\n\t\t] };\n\t\t\n\t}\n\t\n\t#src;\n\t#urlPrefix;\n\t#urlPrefixRegExp;\n\t\n\t#extensions = new Map();\n\t\n\t#resolved = new Map();\n\t\n\t#restricted = new Set();\n\t\n\t#preloaded = new Map();\n\t\n\t#getExtensionBy(fileName: string) {\n\t\treturn this.#extensions.get(fileName.slice(Math.max(0, fileName.lastIndexOf(\".\") + 1))) ?? nullExtension;\n\t}\n\t\n\t#addExtension(name: string, extension: Extension[1]) {\n\t\tthis.#extensions.set(name, { ...extension, name });\n\t\t\n\t}\n\t\n\t#resolve(url: string, fileName: string) {\n\t\tthis.#resolved.set(url, path.isAbsolute(fileName) ? fileName : path.join(this.#src, fileName));\n\t\t\n\t}\n\t\n\t#restrict(fileName: string) {\n\t\tthis.#restricted.add(path.join(this.#src, fileName));\n\t\t\n\t}\n\t\n\t#preload(fileName: string) {\n\t\tfileName = this.#resolved.get(fileName) ?? path.join(this.#src, fileName);\n\t\t\n\t\ttry {\n\t\t\tconst { isText } = this.#getExtensionBy(fileName);\n\t\t\tconst fileData = fs.readFileSync(fileName, isText ? \"utf8\" : null);\n\t\t\tthis.#preloaded.set(fileName, isText ? {\n\t\t\t\tbr: brotliPreloadSync(fileData),\n\t\t\t\tgzip: gzipPreloadSync(fileData)\n\t\t\t} : fileData);\n\t\t} catch (error) {\n\t\t\tconsole.warn(`\u26A0\uFE0F inSite Static Server: Unable to preload ${fileName}`, \"\\n\", error);\n\t\t}\n\t\t\n\t}\n\t\n\t#handler = (request: IncomingMessage, response: InSiteServerResponse) => {\n\t\tlet fileName = decodeURI(request.url!).replace(this.#urlPrefixRegExp, \"\").replaceAll(\"../\", \"\");\n\t\tfileName = this.#resolved.get(fileName) ?? path.join(this.#src, fileName);\n\t\t\n\t\tif (this.#restricted.has(fileName))\n\t\t\treturn false;\n\t\t\n\t\tif (!fs.existsSync(fileName))\n\t\t\treturn response.notFound();\n\t\t\n\t\tconst { mimeType, isText } = this.#getExtensionBy(fileName);\n\t\tconst contentEncoding = isText ? /\\bbr\\b/.test(request.headers[\"accept-encoding\"] as string) ? \"br\" : \"gzip\" : null;\n\t\t\n\t\tresponse.writeHead(200, {\n\t\t\t\"Content-Type\": mimeType + (isText ? \"; charset=utf-8\" : \"\"),\n\t\t\t...contentEncoding && { \"Content-Encoding\": contentEncoding }\n\t\t});\n\t\t\n\t\tconst preloaded = this.#preloaded.get(fileName);\n\t\t\n\t\tif (preloaded)\n\t\t\treturn response.end(isText && contentEncoding ? preloaded[contentEncoding] : preloaded);\n\t\t\n\t\treturn new Promise(resolve => {\n\t\t\tlet stream: Readable = fs.createReadStream(fileName).on(\"error\", () => resolve(false));\n\t\t\t\n\t\t\tif (contentEncoding)\n\t\t\t\tstream = stream.pipe(getCompressionStreamByEncoding(contentEncoding));\n\t\t\t\n\t\t\tstream.on(\"end\", resolve);\n\t\t\t\n\t\t\tstream.pipe(response);\n\t\t\t\n\t\t});\n\t};\n\t\n}\n", "import { IncomingMessage, OutgoingHttpHeaders } from \"node:http\";\nimport zlib, { InputType } from \"node:zlib\";\nimport { InSiteServerResponse } from \"./Response\";\n\n\nconst brotliPreloadOptions = {\n\tparams: {\n\t\t[zlib.constants.BROTLI_PARAM_MODE]: zlib.constants.BROTLI_MODE_TEXT,\n\t\t[zlib.constants.BROTLI_PARAM_QUALITY]: 11\n\t}\n};\n\nconst brotliRuntimeOptions = {\n\tparams: {\n\t\t[zlib.constants.BROTLI_PARAM_MODE]: zlib.constants.BROTLI_MODE_TEXT,\n\t\t[zlib.constants.BROTLI_PARAM_QUALITY]: 4\n\t}\n};\n\nconst gzipPreloadOptions = {\n\tlevel: 9\n};\n\nconst gzipRuntimeOptions = {\n\tlevel: 3\n};\n\n\nexport function brotliPreloadSync(data: InputType) {\n\treturn zlib.brotliCompressSync(data, brotliPreloadOptions);\n}\n\nexport function gzipPreloadSync(data: InputType) {\n\treturn zlib.gzipSync(data, gzipPreloadOptions);\n}\n\nexport function getCompressionStreamByEncoding(contentEncoding: \"br\" | \"gzip\") {\n\treturn contentEncoding === \"br\" ? zlib.createBrotliCompress(brotliRuntimeOptions) : zlib.createGzip(gzipRuntimeOptions);\n}\n\nexport function handleRequestCompressed(request: IncomingMessage, response: InSiteServerResponse, headers: OutgoingHttpHeaders, data: InputType) {\n\tconst isBrotliAccepted = /\\bbr\\b/.test(request.headers[\"accept-encoding\"] as string);\n\theaders[\"Content-Encoding\"] = isBrotliAccepted ? \"br\" : \"gzip\";\n\tresponse.writeHead(200, headers).end(isBrotliAccepted ? zlib.brotliCompressSync(data, brotliRuntimeOptions) : zlib.gzipSync(data, gzipRuntimeOptions));\n\t\n}\n", "import { Extension } from \"./types\";\n\n\nexport const defaultExtensions = [\n\t\n\t[ \"js\", {\n\t\tisText: true,\n\t\tmimeType: \"text/javascript\"\n\t} ],\n\t\n\t[ \"css\", {\n\t\tisText: true,\n\t\tmimeType: \"text/css\"\n\t} ],\n\t\n\t[ \"ico\", {\n\t\tmimeType: \"image/x-icon\"\n\t} ],\n\t\n\tprocess.env.NODE_ENV === \"development\" ? [ \"css.map\", {\n\t\tisText: true,\n\t\tmimeType: \"application/json\"\n\t} ] : null,\n\t\n\tprocess.env.NODE_ENV === \"development\" ? [ \"js.map\", {\n\t\tisText: true,\n\t\tmimeType: \"application/json\"\n\t} ] : null,\n\t\n\t[ \"jpg\", {\n\t\tmimeType: \"image/jpeg\"\n\t} ],\n\t\n\t[ \"jpeg\", {\n\t\tmimeType: \"image/jpeg\"\n\t} ]\n\t\n].filter(Boolean) as Extension[];\n", "export const defaultPreloaded = [\n\t...process.env.NODE_ENV === \"production\" ? [\n\t\t//#if _SSR\n\t\t// \"/index.css\",\n\t\t//#endif\n\t\t\"/index.js\",\n\t\t\"/favicon.ico\"\n\t] : []\n];\n", "import { IncomingMessage } from \"node:http\";\nimport { isEmpty } from \"@nesvet/n\";\nimport { handleRequestCompressed } from \"../compression\";\nimport { InSiteServerMiddleware } from \"../Middleware\";\nimport { InSiteServerResponse } from \"../Response\";\n\n\nconst { INSITE_TITLE } = process.env;\n\nconst envGlobals: Record<string, unknown> = {};\nfor (const key in process.env)\n\tif (key.startsWith(\"INSITE_CLIENT_\"))\n\t\tenvGlobals[key.replace(/INSITE_CLIENT_/, \"\").toLowerCase()] = process.env[key];\n\nconst headers = { \"Content-Type\": \"text/html; charset=utf-8\" };\n\n\ntype Options = {\n\trequestRegExp?: RegExp;\n\tglobals?: Record<string, unknown>;\n\ttitle?: string;\n\tcss?: string | string[];\n\trootId?: string;\n};\n\nexport type { Options as TemplateMiddlewareOptions };\n\n\nexport class InSiteTemplateMiddleware extends InSiteServerMiddleware {\n\tconstructor({\n\t\trequestRegExp = /.*/,\n\t\tglobals = {},\n\t\ttitle = INSITE_TITLE ?? \"inSite\",\n\t\tcss = [],\n\t\trootId = \"root\"\n\t}: Options = {}) {\n\t\tsuper();\n\t\t\n\t\tthis.listeners = { GET: [\n\t\t\t[ requestRegExp, this.#handler ]\n\t\t] };\n\t\t\n\t\tthis.#title = title;\n\t\tthis.#css = Array.isArray(css) ? css : [ css ];\n\t\tthis.#rootId = rootId;\n\t\t\n\t\tObject.assign(globals, envGlobals);\n\t\t\n\t\tthis.#html =\n\t\t\t\"<!DOCTYPE html>\" +\n\t\t\t\"<html lang=\\\"ru\\\">\" +\n\t\t\t\"<head>\" +\n\t\t\t\"<meta charset=\\\"utf-8\\\" />\" +\n\t\t\t\"<meta name=\\\"viewport\\\" content=\\\"minimum-scale=1, initial-scale=1, width=device-width\\\" />\" +\n\t\t\t`<title>${this.#title}</title>` +\n\t\t\t`${this.#css.map(fileName => `<link rel=\"stylesheet\" href=\"${fileName}\" />`).join(\"\")}` +\n\t\t\t`${isEmpty(globals) ? \"\" : `<script>globalThis.__insite=${JSON.stringify(globals)};</script>`}` +\n\t\t\t\"<script type=\\\"text/javascript\\\" src=\\\"/index.js\\\" defer></script>\" +\n\t\t\t\"</head>\" +\n\t\t\t\"<body>\" +\n\t\t\t`<div id=\"${this.#rootId}\">` +\n\t\t\t\"</div>\" +\n\t\t\t\"</body>\" +\n\t\t\t\"</html>\";\n\t\t\n\t}\n\t\n\t#title;\n\t#css;\n\t#rootId;\n\t#html;\n\t\n\t#handler = (request: IncomingMessage, response: InSiteServerResponse) =>\n\t\thandleRequestCompressed(request, response, headers, this.#html);\n\t\n}\n", "import fs from \"node:fs\";\nimport http, { type IncomingMessage } from \"node:http\";\nimport https from \"node:https\";\nimport { InSiteServerMiddleware } from \"./Middleware\";\nimport { InSiteServerResponse } from \"./Response\";\nimport { inSiteRequestSymbol, inSiteServerSymbol } from \"./symbols\";\nimport {\n\tErrorParams,\n\tHandler,\n\tisMiddlewareMethodMap,\n\tisMiddlewareRegExpStringMap,\n\tisMiddlewareTuple,\n\tisMiddlewareTupleOrArray,\n\tMethod,\n\tMiddleware,\n\tOptions,\n\tRegExpOrString\n} from \"./types\";\n\n\nconst {\n\tINSITE_HTTP_SSL_CERT,\n\tINSITE_HTTP_SSL_KEY\n} = process.env;\n\n\nexport class InSiteHTTPServer {\n\tconstructor({\n\t\tport,\n\t\tssl,\n\t\thttps: isHTTPS = !!ssl,\n\t\tlisteners,\n\t\terrors,\n\t\tserver = {},\n\t\tonListen\n\t}: Options, middlewares: Middleware[] = []) {\n\t\t\n\t\tthis.isHTTPS = !!isHTTPS;\n\t\t\n\t\tif (this.isHTTPS && !ssl && INSITE_HTTP_SSL_CERT && INSITE_HTTP_SSL_KEY)\n\t\t\tssl = {\n\t\t\t\tcert: INSITE_HTTP_SSL_CERT,\n\t\t\t\tkey: INSITE_HTTP_SSL_KEY\n\t\t\t};\n\t\t\n\t\tif (ssl) {\n\t\t\tif (typeof ssl.cert == \"string\" && !/^-{3,}BEGIN/.test(ssl.cert))\n\t\t\t\ttry {\n\t\t\t\t\tssl.cert = fs.readFileSync(ssl.cert);\n\t\t\t\t} catch {}\n\t\t\tif (typeof ssl.key == \"string\" && !/^-{3,}BEGIN/.test(ssl.key))\n\t\t\t\ttry {\n\t\t\t\t\tssl.key = fs.readFileSync(ssl.key);\n\t\t\t\t} catch {}\n\t\t} else if (this.isHTTPS)\n\t\t\tconsole.warn(\"\u26A0\uFE0F HTTPS server requires ssl.cert & ssl.key options\");\n\t\t\n\t\tthis.port = typeof port == \"string\" ? Number.parseInt(port) : port ?? (this.isHTTPS ? 443 : 80);\n\t\t\n\t\tif (listeners)\n\t\t\tfor (const method of Object.keys(listeners) as (\"ALL\" | Method)[])\n\t\t\t\tfor (const [ regExp, handler ] of listeners[method])\n\t\t\t\t\tthis.addRequestListener(method, regExp, handler);\n\t\t\n\t\tif (errors)\n\t\t\tfor (const statusCodeString of Object.keys(errors)) {\n\t\t\t\tconst statusCode = Number.parseInt(statusCodeString);\n\t\t\t\tif (statusCode)\n\t\t\t\t\tif (this.#errors[statusCode])\n\t\t\t\t\t\tObject.assign(this.#errors[statusCode], errors[statusCode]);\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.#errors[statusCode] = errors[statusCode];\n\t\t\t}\n\t\t\n\t\tif (middlewares)\n\t\t\tfor (const middleware of middlewares)\n\t\t\t\tthis.addMiddleware(middleware);\n\t\t\n\t\tthis.server =\n\t\t\tthis.isHTTPS ?\n\t\t\t\thttps.createServer({\n\t\t\t\t\t...server,\n\t\t\t\t\t...ssl,\n\t\t\t\t\tServerResponse: InSiteServerResponse\n\t\t\t\t}, this.#requestListener) :\n\t\t\t\thttp.createServer({\n\t\t\t\t\t...server,\n\t\t\t\t\tServerResponse: InSiteServerResponse\n\t\t\t\t}, this.#requestListener);\n\t\t\n\t\tthis.server.listen(this.port, () => onListen ? onListen() : this.#handleListen());\n\t\t\n\t}\n\t\n\treadonly isHTTPS;\n\treadonly port;\n\treadonly server;\n\t\n\t#listeners: Record<Method, [ RegExp, Handler ][]> = {\n\t\tPOST: [],\n\t\tGET: [],\n\t\tPUT: [],\n\t\tPATCH: [],\n\t\tDELETE: []\n\t};\n\t\n\t#handleListen() {\n\t\t\n\t\tconsole.info(`\uD83C\uDF10 inSite HTTP${this.isHTTPS ? \"S\" : \"\"} Server is listening on`, this.port);\n\t\t\n\t}\n\t\n\t#requestListener = async (request: IncomingMessage, response: InSiteServerResponse) => {\n\t\tresponse[inSiteServerSymbol] = this;\n\t\tresponse[inSiteRequestSymbol] = request;\n\t\t\n\t\tif (!(\"status\" in request))\n\t\t\tfor (const [ regExp, handler ] of this.#listeners[request.method as Method])\n\t\t\t\tif (regExp.test(request.url!) && await handler(request, response) !== false)\n\t\t\t\t\treturn;\n\t\t\n\t\tresponse.notFound();\n\t\t\n\t};\n\t\n\t#errors: Record<\"default\" | number, ErrorParams> = {\n\t\t400: {\n\t\t\tcontent: \"Bad Request\"\n\t\t},\n\t\t401: {\n\t\t\tcontent: \"Unauthorized\"\n\t\t},\n\t\t403: {\n\t\t\tcontent: \"Forbidden\"\n\t\t},\n\t\t404: {\n\t\t\tcontent: \"Not Found\"\n\t\t},\n\t\t408: {\n\t\t\tcontent: \"Request Timeout\"\n\t\t},\n\t\t410: {\n\t\t\tcontent: \"Gone\"\n\t\t},\n\t\t500: {\n\t\t\tcontent: \"Internal Server Error\"\n\t\t},\n\t\t503: {\n\t\t\tcontent: \"Service Unavailable\"\n\t\t},\n\t\tdefault: {\n\t\t\theaders: { \"Content-Type\": \"text/plain; charset=utf-8\" },\n\t\t\tcontent: \"\",\n\t\t\thandler(request, response, { statusCode, headers, content }) {\n\t\t\t\treturn response.writeHead(statusCode, headers).end(content);\n\t\t\t}\n\t\t}\n\t};\n\t\n\t_throw(response: InSiteServerResponse, statusCode: number, params?: ErrorParams | string) {\n\t\tif (typeof params == \"string\")\n\t\t\tparams = { content: params };\n\t\t\n\t\tconst {\n\t\t\thandler,\n\t\t\t...restParams\n\t\t} = {\n\t\t\t...this.#errors.default,\n\t\t\t...this.#errors[statusCode],\n\t\t\t...params\n\t\t};\n\t\t\n\t\treturn handler ? handler(response[inSiteRequestSymbol], response, {\n\t\t\t...restParams,\n\t\t\tstatusCode\n\t\t}) : response;\n\t}\n\t\n\taddRequestListener(method: \"ALL\" | Method, regExp: RegExpOrString, handler: Handler) {\n\t\tif (typeof regExp == \"string\")\n\t\t\tregExp = new RegExp(regExp);\n\t\t\n\t\tif (method && method !== \"ALL\")\n\t\t\tthis.#listeners[method]?.push([ regExp, handler ]);\n\t\telse\n\t\t\tfor (const specificMethod of Object.keys(this.#listeners) as Method[])\n\t\t\t\tthis.addRequestListener(specificMethod, regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\taddMiddleware(middleware: Middleware) {\n\t\tif (middleware instanceof InSiteServerMiddleware) {\n\t\t\tfor (const [ method, regExpOrStringArrayMap ] of Object.entries(middleware.listeners))\n\t\t\t\tfor (const [ regExpOrString, handler ] of regExpOrStringArrayMap)\n\t\t\t\t\tthis.addRequestListener(method as Method, regExpOrString, handler);\n\t\t\tmiddleware.bindTo?.(this);\n\t\t} else if (isMiddlewareTupleOrArray(middleware)) {\n\t\t\tif (isMiddlewareTuple(middleware))\n\t\t\t\tmiddleware = [ middleware ];\n\t\t\tfor (const params of middleware)\n\t\t\t\tthis.addRequestListener(...params.length === 2 ? [ \"GET\", ...params ] as const : params);\n\t\t} else if (isMiddlewareRegExpStringMap(middleware))\n\t\t\tfor (const [ key, value ] of Object.entries(middleware))\n\t\t\t\tthis.addRequestListener(\"GET\", key, value);\n\t\telse if (isMiddlewareMethodMap(middleware))\n\t\t\tfor (const [ method, regExpStringMap ] of Object.entries(middleware))\n\t\t\t\tfor (const [ regExpString, handler ] of Object.entries(regExpStringMap))\n\t\t\t\t\tthis.addRequestListener(method as Method, regExpString, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\tpost(regExp: RegExpOrString, handler: Handler) {\n\t\tthis.addRequestListener(\"POST\", regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\tget(regExp: RegExpOrString, handler: Handler) {\n\t\tthis.addRequestListener(\"GET\", regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\tput(regExp: RegExpOrString, handler: Handler) {\n\t\tthis.addRequestListener(\"PUT\", regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\tpatch(regExp: RegExpOrString, handler: Handler) {\n\t\tthis.addRequestListener(\"PATCH\", regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n\tdelete(regExp: RegExpOrString, handler: Handler) {\n\t\tthis.addRequestListener(\"DELETE\", regExp, handler);\n\t\t\n\t\treturn this;\n\t}\n\t\n}\n", "import { type IncomingMessage, ServerResponse } from \"node:http\";\nimport { inSiteRequestSymbol, inSiteServerSymbol } from \"./symbols\";\nimport type { InSiteHTTPServer } from \"./Server\";\nimport type { ErrorParams } from \"./types\";\n\n\nexport class InSiteServerResponse<Request extends IncomingMessage = IncomingMessage> extends ServerResponse<Request> {\n\t\n\t[inSiteServerSymbol]!: InSiteHTTPServer;\n\t[inSiteRequestSymbol]!: IncomingMessage;\n\t\n\terror(statusCode: number, params?: ErrorParams) {\n\t\treturn this[inSiteServerSymbol]._throw(this, statusCode, params);\n\t}\n\t\n\tbadRequest(params?: ErrorParams) {\n\t\treturn this.error(400, params);\n\t}\n\t\n\tunauthorized(params?: ErrorParams) {\n\t\treturn this.error(401, params);\n\t}\n\t\n\tforbidden(params?: ErrorParams) {\n\t\treturn this.error(403, params);\n\t}\n\t\n\tnotFound(params?: ErrorParams) {\n\t\treturn this.error(404, params);\n\t}\n\t\n\trequestTimeout(params?: ErrorParams) {\n\t\treturn this.error(408, params);\n\t}\n\t\n\tgone(params?: ErrorParams) {\n\t\treturn this.error(410, params);\n\t}\n\t\n\tinternalServerError(params?: ErrorParams) {\n\t\treturn this.error(500, params);\n\t}\n\t\n\tserviceUnavailable(params?: ErrorParams) {\n\t\treturn this.error(503, params);\n\t}\n\t\n}\n", "export const inSiteServerSymbol = Symbol(\"inSiteServer\");\nexport const inSiteRequestSymbol = Symbol(\"inSiteRequest\");\n", "import type {\n\tServerOptions as HTTPServerOptions,\n\tIncomingMessage,\n\tOutgoingHttpHeader,\n\tOutgoingHttpHeaders\n} from \"node:http\";\nimport type { ServerOptions as HTTPSServerOptions } from \"node:https\";\nimport { InSiteServerMiddleware } from \"./Middleware\";\nimport type { InSiteServerResponse } from \"./Response\";\n\n\nexport type ErrorParams = {\n\theaders?: OutgoingHttpHeader[] | OutgoingHttpHeaders;\n\tcontent: string;\n\thandler?(request: IncomingMessage, response: InSiteServerResponse, errorParams: { statusCode: number } & Omit<ErrorParams, \"handler\">): InSiteServerResponse;\n};\n\nexport type Method = \"DELETE\" | \"GET\" | \"PATCH\" | \"POST\" | \"PUT\";\n\nexport type Handler = (request: IncomingMessage, response: InSiteServerResponse) => unknown;\n\nexport type Options = {\n\tport?: number | string;\n\tssl?: {\n\t\tcert: Buffer | string;\n\t\tkey: Buffer | string;\n\t};\n\thttps?: boolean;\n\tlisteners?: Record<\"ALL\" | Method, [ RegExp, Handler ][]>;\n\terrors?: Record<\"default\" | number, ErrorParams>;\n\tserver?: HTTPServerOptions | HTTPSServerOptions;\n\tonListen?: () => void;\n};\n\nexport type RegExpOrString = RegExp | string;\n\ntype MiddlewareTuple = readonly [ Method, RegExpOrString, Handler ] | readonly [ RegExpOrString, Handler ];\n\ntype MiddlewareRegExpStringMap = Record<string, Handler>;\n\ntype MiddlewareMethodMap = Record<Method, Record<string, Handler>>;\n\nexport type Middleware =\n\tInSiteServerMiddleware |\n\tMiddlewareMethodMap |\n\tMiddlewareRegExpStringMap |\n\tMiddlewareTuple |\n\tMiddlewareTuple[];\n\nexport function isMiddlewareMethodMap(middleware: Middleware): middleware is MiddlewareMethodMap {\n\treturn typeof Object.values(middleware)[0] == \"object\";\n}\n\nexport function isMiddlewareRegExpStringMap(middleware: Middleware): middleware is MiddlewareRegExpStringMap {\n\treturn typeof Object.values(middleware)[0] == \"function\";\n}\n\nexport function isMiddlewareTupleOrArray(middleware: Middleware): middleware is MiddlewareTuple | MiddlewareTuple[] {\n\treturn Array.isArray(middleware);\n}\n\nexport function isMiddlewareTuple(middleware: MiddlewareTuple | MiddlewareTuple[]): middleware is MiddlewareTuple {\n\treturn !Array.isArray(middleware);\n}\n", "import { InSiteStaticMiddleware, StaticMiddlewareOptions } from \"./middlewares/Static\";\nimport { InSiteHTTPServer } from \"./Server\";\nimport { Middleware, Options } from \"./types\";\n\n\nexport class InSiteStaticServer extends InSiteHTTPServer {\n\tconstructor(options: StaticMiddlewareOptions, serverOptions: Options, middlewares: Middleware[] = []) {\n\t\tsuper(serverOptions, [\n\t\t\tnew InSiteStaticMiddleware(options),\n\t\t\t...middlewares\n\t\t]);\n\t\t\n\t}\n\t\n\thandleListen() {\n\t\t\n\t\tconsole.info(`\uD83D\uDED2 inSite Static HTTP${this.isHTTPS ? \"S\" : \"\"} Server is listening on`, this.port);\n\t\t\n\t}\n\t\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["InSiteServerMiddleware", "InSiteInitialsMiddleware", "fs", "path", "zlib", "brotliPreloadOptions", "brotliRuntimeOptions", "gzipPreloadOptions", "gzipRuntimeOptions", "brotliPreloadSync", "data", "gzipPreloadSync", "getCompressionStreamByEncoding", "contentEncoding", "handleRequestCompressed", "request", "response", "headers", "isBrotliAccepted", "defaultExtensions", "defaultPreloaded", "nullExtension", "InSiteStaticMiddleware", "InSiteServerMiddleware", "src", "urlPrefix", "requestRegExp", "extensions", "defaultExtensions", "resolved", "restricted", "preloaded", "path", "entryPoint", "fs", "#src", "#urlPrefix", "#urlPrefixRegExp", "extension", "#addExtension", "resolvee", "#resolve", "fileName", "#restrict", "defaultPreloaded", "#preload", "#handler", "#extensions", "#resolved", "#restricted", "#preloaded", "#getExtensionBy", "name", "url", "isText", "fileData", "brotliPreloadSync", "gzipPreloadSync", "error", "request", "response", "mimeType", "contentEncoding", "resolve", "stream", "getCompressionStreamByEncoding", "isEmpty", "INSITE_TITLE", "envGlobals", "key", "headers", "InSiteTemplateMiddleware", "InSiteServerMiddleware", "requestRegExp", "globals", "title", "css", "rootId", "#handler", "#title", "#css", "#rootId", "#html", "fileName", "isEmpty", "request", "response", "handleRequestCompressed", "fs", "http", "https", "ServerResponse", "inSiteServerSymbol", "inSiteRequestSymbol", "InSiteServerResponse", "ServerResponse", "inSiteServerSymbol", "inSiteRequestSymbol", "statusCode", "params", "isMiddlewareMethodMap", "middleware", "isMiddlewareRegExpStringMap", "isMiddlewareTupleOrArray", "isMiddlewareTuple", "INSITE_HTTP_SSL_CERT", "INSITE_HTTP_SSL_KEY", "InSiteHTTPServer", "port", "ssl", "isHTTPS", "listeners", "errors", "server", "onListen", "middlewares", "fs", "method", "regExp", "handler", "statusCodeString", "statusCode", "#errors", "middleware", "https", "InSiteServerResponse", "#requestListener", "http", "#handleListen", "#listeners", "request", "response", "inSiteServerSymbol", "inSiteRequestSymbol", "headers", "content", "params", "restParams", "specificMethod", "InSiteServerMiddleware", "regExpOrStringArrayMap", "regExpOrString", "isMiddlewareTupleOrArray", "isMiddlewareTuple", "isMiddlewareRegExpStringMap", "key", "value", "isMiddlewareMethodMap", "regExpStringMap", "regExpString", "InSiteStaticServer", "InSiteHTTPServer", "options", "serverOptions", "middlewares", "InSiteStaticMiddleware"]
|
|
7
7
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -12,10 +12,10 @@ export type ErrorParams = {
|
|
|
12
12
|
export type Method = "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
|
|
13
13
|
export type Handler = (request: IncomingMessage, response: InSiteServerResponse) => unknown;
|
|
14
14
|
export type Options = {
|
|
15
|
-
port?: number;
|
|
15
|
+
port?: number | string;
|
|
16
16
|
ssl?: {
|
|
17
|
-
cert: string;
|
|
18
|
-
key: string;
|
|
17
|
+
cert: Buffer | string;
|
|
18
|
+
key: Buffer | string;
|
|
19
19
|
};
|
|
20
20
|
https?: boolean;
|
|
21
21
|
listeners?: Record<"ALL" | Method, [RegExp, Handler][]>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,IAAI,iBAAiB,EAClC,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,CAAC,EAAE,kBAAkB,EAAE,GAAG,mBAAmB,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,EAAE,WAAW,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,oBAAoB,CAAC;CAC7J,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEjE,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,KAAK,OAAO,CAAC;AAE5F,MAAM,MAAM,OAAO,GAAG;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,IAAI,iBAAiB,EAClC,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,CAAC,EAAE,kBAAkB,EAAE,GAAG,mBAAmB,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,EAAE,WAAW,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,oBAAoB,CAAC;CAC7J,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEjE,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,KAAK,OAAO,CAAC;AAE5F,MAAM,MAAM,OAAO,GAAG;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,EAAE,CAAE,MAAM,EAAE,OAAO,CAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,WAAW,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C,KAAK,eAAe,GAAG,SAAS,CAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAE,GAAG,SAAS,CAAE,cAAc,EAAE,OAAO,CAAE,CAAC;AAE3G,KAAK,yBAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEzD,KAAK,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnE,MAAM,MAAM,UAAU,GACrB,sBAAsB,GACtB,mBAAmB,GACnB,yBAAyB,GACzB,eAAe,GACf,eAAe,EAAE,CAAC;AAEnB,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,IAAI,mBAAmB,CAE/F;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,IAAI,yBAAyB,CAE3G;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,IAAI,eAAe,GAAG,eAAe,EAAE,CAElH;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,eAAe,GAAG,eAAe,EAAE,GAAG,UAAU,IAAI,eAAe,CAEhH"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "insite-http",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"description": "inSite HTTPS server",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
"author": "Eugene Nesvetaev <dev@nesvet.dev> (https://nesvet.dev/)",
|
|
25
25
|
"license": "MIT",
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@nesvet/n": "^1.1.
|
|
27
|
+
"@nesvet/n": "^1.1.3"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@nesvet/conveyer": "^2.2.1",
|
|
31
31
|
"@nesvet/eslint-config": "^2.0.24",
|
|
32
|
-
"@types/node": "^22.0
|
|
32
|
+
"@types/node": "^22.1.0",
|
|
33
33
|
"typescript": "^5.5.4"
|
|
34
34
|
}
|
|
35
35
|
}
|