insite-http 2.0.5 → 2.0.7

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.
@@ -5,14 +5,14 @@ import type { ErrorParams } from "./types";
5
5
  export declare class InSiteServerResponse<Request extends IncomingMessage = IncomingMessage> extends ServerResponse<Request> {
6
6
  [inSiteServerSymbol]: InSiteHTTPServer;
7
7
  [inSiteRequestSymbol]: IncomingMessage;
8
- error(statusCode: number, params?: ErrorParams): InSiteServerResponse<IncomingMessage>;
9
- badRequest(params?: ErrorParams): InSiteServerResponse<IncomingMessage>;
10
- unauthorized(params?: ErrorParams): InSiteServerResponse<IncomingMessage>;
11
- forbidden(params?: ErrorParams): InSiteServerResponse<IncomingMessage>;
12
- notFound(params?: ErrorParams): InSiteServerResponse<IncomingMessage>;
13
- requestTimeout(params?: ErrorParams): InSiteServerResponse<IncomingMessage>;
14
- gone(params?: ErrorParams): InSiteServerResponse<IncomingMessage>;
15
- internalServerError(params?: ErrorParams): InSiteServerResponse<IncomingMessage>;
16
- serviceUnavailable(params?: ErrorParams): InSiteServerResponse<IncomingMessage>;
8
+ error(statusCode: number, params?: ErrorParams | string): InSiteServerResponse<IncomingMessage>;
9
+ badRequest(params?: ErrorParams | string): InSiteServerResponse<IncomingMessage>;
10
+ unauthorized(params?: ErrorParams | string): InSiteServerResponse<IncomingMessage>;
11
+ forbidden(params?: ErrorParams | string): InSiteServerResponse<IncomingMessage>;
12
+ notFound(params?: ErrorParams | string): InSiteServerResponse<IncomingMessage>;
13
+ requestTimeout(params?: ErrorParams | string): InSiteServerResponse<IncomingMessage>;
14
+ gone(params?: ErrorParams | string): InSiteServerResponse<IncomingMessage>;
15
+ internalServerError(params?: ErrorParams | string): InSiteServerResponse<IncomingMessage>;
16
+ serviceUnavailable(params?: ErrorParams | string): InSiteServerResponse<IncomingMessage>;
17
17
  }
18
18
  //# sourceMappingURL=Response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Response.d.ts","sourceRoot":"","sources":["../src/Response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,qBAAa,oBAAoB,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAC;IAEnH,CAAC,kBAAkB,CAAC,EAAG,gBAAgB,CAAC;IACxC,CAAC,mBAAmB,CAAC,EAAG,eAAe,CAAC;IAExC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAI9C,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW;IAI/B,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW;IAIjC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW;IAI9B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW;IAI7B,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW;IAInC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW;IAIzB,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW;IAIxC,kBAAkB,CAAC,MAAM,CAAC,EAAE,WAAW;CAIvC"}
1
+ {"version":3,"file":"Response.d.ts","sourceRoot":"","sources":["../src/Response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,qBAAa,oBAAoB,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAC;IAEnH,CAAC,kBAAkB,CAAC,EAAG,gBAAgB,CAAC;IACxC,CAAC,mBAAmB,CAAC,EAAG,eAAe,CAAC;IAExC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM;IAIvD,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM;IAIxC,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM;IAI1C,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM;IAIvC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM;IAItC,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM;IAI5C,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM;IAIlC,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM;IAIjD,kBAAkB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM;CAIhD"}
package/dist/Server.d.ts CHANGED
@@ -1,13 +1,15 @@
1
- import http from "node:http";
2
- import https from "node:https";
1
+ import type http from "node:http";
2
+ import type https from "node:https";
3
3
  import { InSiteServerResponse } from "./Response";
4
- import { ErrorParams, Handler, Method, Middleware, Options, RegExpOrString } from "./types";
4
+ import { type ErrorParams, type Handler, type Method, type Middleware, type Options, type RegExpOrString } from "./types";
5
5
  export declare class InSiteHTTPServer {
6
6
  #private;
7
- constructor({ port, ssl, https: isHTTPS, listeners, errors, server, onListen }: Options, middlewares?: Middleware[]);
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>;
7
+ constructor({ port, ssl, listeners, errors, server }: Options, middlewares?: (false | Middleware | null | undefined)[]);
8
+ icon: string;
9
+ name: string;
10
+ get protocol(): string;
11
+ server: http.Server<typeof http.IncomingMessage, typeof http.ServerResponse> | https.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
12
+ get isS(): boolean;
11
13
  _throw(response: InSiteServerResponse, statusCode: number, params?: ErrorParams | string): InSiteServerResponse<http.IncomingMessage>;
12
14
  addRequestListener(method: "ALL" | Method, regExp: RegExpOrString, handler: Handler): this;
13
15
  addMiddleware(middleware: Middleware): this;
@@ -16,5 +18,6 @@ export declare class InSiteHTTPServer {
16
18
  put(regExp: RegExpOrString, handler: Handler): this;
17
19
  patch(regExp: RegExpOrString, handler: Handler): this;
18
20
  delete(regExp: RegExpOrString, handler: Handler): this;
21
+ static makeProps({ ssl, server }: Options): http.ServerOptions | https.ServerOptions;
19
22
  }
20
23
  //# sourceMappingURL=Server.d.ts.map
@@ -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,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"}
1
+ {"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../src/Server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAGpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,OAAO,EAQZ,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,MAAM,SAAS,CAAC;AAGjB,qBAAa,gBAAgB;;gBAChB,EACX,IAAI,EACJ,GAAG,EACH,SAAS,EACT,MAAM,EACN,MAAM,EACN,EAAE,OAAO,EAAE,WAAW,GAAE,CAAC,KAAK,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,EAAO;IA8CvE,IAAI,SAAU;IACd,IAAI,SAAU;IACd,IAAI,QAAQ,WAEX;IAED,MAAM,+IAAC;IAEP,IAAI,GAAG,YAEN;IAyDD,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;IAO/C,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa;CAQpF"}
@@ -3,6 +3,7 @@ import { InSiteHTTPServer } from "./Server";
3
3
  import { Middleware, Options } from "./types";
4
4
  export declare class InSiteStaticServer extends InSiteHTTPServer {
5
5
  constructor(options: StaticMiddlewareOptions, serverOptions: Options, middlewares?: Middleware[]);
6
- handleListen(): void;
6
+ name: string;
7
+ icon: string;
7
8
  }
8
9
  //# sourceMappingURL=StaticServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticServer.d.ts","sourceRoot":"","sources":["../src/StaticServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAG9C,qBAAa,kBAAmB,SAAQ,gBAAgB;gBAC3C,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAE,UAAU,EAAO;IAQpG,YAAY;CAMZ"}
1
+ {"version":3,"file":"StaticServer.d.ts","sourceRoot":"","sources":["../src/StaticServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAG9C,qBAAa,kBAAmB,SAAQ,gBAAgB;gBAC3C,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAE,UAAU,EAAO;IAQpG,IAAI,SAAY;IAChB,IAAI,SAAQ;CAEZ"}
@@ -1,8 +1,8 @@
1
1
  import { IncomingMessage, OutgoingHttpHeaders } from "node:http";
2
2
  import zlib, { InputType } from "node:zlib";
3
3
  import { InSiteServerResponse } from "./Response";
4
- export declare function brotliPreloadSync(data: InputType): Buffer;
5
- export declare function gzipPreloadSync(data: InputType): Buffer;
4
+ export declare function brotliPreloadSync(data: InputType): Buffer<ArrayBufferLike>;
5
+ export declare function gzipPreloadSync(data: InputType): Buffer<ArrayBufferLike>;
6
6
  export declare function getCompressionStreamByEncoding(contentEncoding: "br" | "gzip"): zlib.BrotliCompress;
7
7
  export declare function handleRequestCompressed(request: IncomingMessage, response: InSiteServerResponse, headers: OutgoingHttpHeaders, data: InputType): void;
8
8
  //# sourceMappingURL=compression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../src/compression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA0BlD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,UAEhD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,UAE9C;AAED,wBAAgB,8BAA8B,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,uBAE5E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,QAK9I"}
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../src/compression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA0BlD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,2BAEhD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,2BAE9C;AAED,wBAAgB,8BAA8B,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,uBAE5E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,QAK9I"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./Middleware";
2
2
  export * from "./middlewares";
3
+ export type { InSiteServerResponse } from "./Response";
3
4
  export * from "./Server";
4
5
  export * from "./StaticServer";
5
- export { Options } from "./types";
6
+ export { Middleware, Options } from "./types";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
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}},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};
1
+ var m=class{listeners};var se=void 0;import T from"node:fs";import f from"node:path";import l from"node:zlib";var Y={params:{[l.constants.BROTLI_PARAM_MODE]:l.constants.BROTLI_MODE_TEXT,[l.constants.BROTLI_PARAM_QUALITY]:11}},j={params:{[l.constants.BROTLI_PARAM_MODE]:l.constants.BROTLI_MODE_TEXT,[l.constants.BROTLI_PARAM_QUALITY]:4}},K={level:9},A={level:3};function L(o){return l.brotliCompressSync(o,Y)}function $(o){return l.gzipSync(o,K)}function H(o){return o==="br"?l.createBrotliCompress(j):l.createGzip(A)}function _(o,e,t,r){let n=/\bbr\b/.test(o.headers["accept-encoding"]);t["Content-Encoding"]=n?"br":"gzip",e.writeHead(200,t).end(n?l.brotliCompressSync(r,j):l.gzipSync(r,A))}var q=[["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 B=[...process.env.NODE_ENV==="production"?["/index.js","/favicon.ico"]:[]];var Q={mimeType:"application/octet-stream"},E=class extends m{constructor({src:e="public",urlPrefix:t="",requestRegExp:r,extensions:n=q,resolved:s,restricted:a,preloaded:p="default"}={}){if(super(),!f.isAbsolute(e)){let[,i]=process.argv;e=f.resolve(T.statSync(i).isDirectory()?i:f.dirname(i),e)}if(this.#e=e,this.#r=t,this.#t=new RegExp(`^${f.join("/",t,"/")}`),n)for(let i of n)i&&this.#a(...i);if(s)for(let i of s)i&&this.#l(...i);if(a)for(let i of a)i&&this.#f(i);if(p){p==="default"&&(p=B);for(let i of p)i&&this.#c(i)}this.listeners={GET:[[r??new RegExp(`^${f.join("/",this.#r,"/")}(\\w[^\\/]*/)*[^\\/]+\\.[^\\/]`),this.#u]]}}#e;#r;#t;#o=new Map;#n=new Map;#i=new Set;#s=new Map;#p(e){return this.#o.get(e.slice(Math.max(0,e.lastIndexOf(".")+1)))??Q}#a(e,t){this.#o.set(e,{...t,name:e})}#l(e,t){this.#n.set(e,f.isAbsolute(t)?t:f.join(this.#e,t))}#f(e){this.#i.add(f.join(this.#e,e))}#c(e){e=this.#n.get(e)??f.join(this.#e,e);try{let{isText:t}=this.#p(e),r=T.readFileSync(e,t?"utf8":null);this.#s.set(e,t?{br:L(r),gzip:$(r)}:r)}catch(t){console.warn(`\u26A0\uFE0F inSite Static Server: Unable to preload ${e}`,`
2
+ `,t)}}#u=(e,t)=>{let r=decodeURI(e.url).replace(this.#t,"").replaceAll("../","");if(r=this.#n.get(r)??f.join(this.#e,r),this.#i.has(r))return!1;if(!T.existsSync(r))return t.notFound();let{mimeType:n,isText:s}=this.#p(r),a=s?/\bbr\b/.test(e.headers["accept-encoding"])?"br":"gzip":null;t.writeHead(200,{"Content-Type":n+(s?"; charset=utf-8":""),...a&&{"Content-Encoding":a}});let p=this.#s.get(r);return p?t.end(s&&a?p[a]:p):new Promise(i=>{let c=T.createReadStream(r).on("error",()=>i(!1));a&&(c=c.pipe(H(a))),c.on("end",i),c.pipe(t)})}};function g(){}function Z(o,e=0,t={}){let{leading:r=!1,trailing:n=!0}=t,{maxWait:s=1/0}=t,a,p,i,c,v,S,d,w,P=async()=>{let x=Date.now();x>=i?(a=void 0,i=void 0,clearTimeout(p),typeof d=="function"&&await d(),u.resolve(w),u.promise.isResolved=!0,S=r):(clearTimeout(a),a=setTimeout(P,i-x))},b=Number.isFinite(s)?()=>{d===h&&(d=!1),h(),p=setTimeout(b,s)}:null;async function h(){return w=await o.apply(c,v)}r&&typeof r=="boolean"&&(r=h),S=r,n&&typeof n=="boolean"&&(n=h),d=n;let u=Object.assign(function(...x){return v=x,c=this,i=Date.now()+e,d=n,u.promise.isResolved&&(u.promise=Object.assign(new Promise(X=>{u.resolve=X,typeof S=="function"&&(S(),S=!1,d===h&&(d=!1)),a||(a=setTimeout(P,e),b&&(p=setTimeout(b,s)))}),{isResolved:!1})),u.promise},{callback:o,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:g,run:h,clear:async x=>{clearTimeout(a),a=void 0,clearTimeout(p),u.promise.isResolved=!0,u.resolve(x?await h():w)}});return u}Z.noop=Object.assign(()=>{},{callback:g,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:g,run:g,clear:g});function I(o){for(let e in o)return!1;return!0}function k(o,e,t,r,n=!0){return Array.isArray(o)&&(o=o.length),typeof r!="string"&&(n=r??!0,r=t),(n?`${o}\xA0`:"")+k.raw(o,e,t,r)}k.raw=(o,e,t,r=t)=>{o=Math.abs(o);let n=o%10,s=o%100;return n===1&&s!==11?e:n>=2&&n<=4&&!(s>=12&&s<=15)?t:r};var{INSITE_TITLE:ee}=process.env,D={};for(let o in process.env)o.startsWith("INSITE_CLIENT_")&&(D[o.replace(/INSITE_CLIENT_/,"").toLowerCase()]=process.env[o]);var te={"Content-Type":"text/html; charset=utf-8"},C=class extends m{constructor({requestRegExp:e=/.*/,globals:t={},title:r=ee??"inSite",css:n=[],rootId:s="root"}={}){super(),this.listeners={GET:[[e,this.#n]]},this.#e=r,this.#r=Array.isArray(n)?n:[n],this.#t=s,Object.assign(t,D),this.#o=`<!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.#r.map(a=>`<link rel="stylesheet" href="${a}" />`).join("")}${I(t)?"":`<script>globalThis.__insite=${JSON.stringify(t)};</script>`}<script type="text/javascript" src="/index.js" defer></script></head><body><div id="${this.#t}"></div></body></html>`}#e;#r;#t;#o;#n=(e,t)=>_(e,t,te,this.#o)};import{createServer as oe,resolveSSL as ne,showServerListeningMessage as V}from"insite-common/backend";import{ServerResponse as re}from"node:http";var y=Symbol("inSiteServer"),M=Symbol("inSiteRequest");var O=class extends re{[y];[M];error(e,t){return this[y]._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 z(o){return typeof Object.values(o)[0]=="object"}function N(o){return typeof Object.values(o)[0]=="function"}function F(o){return Array.isArray(o)}function G(o){return!Array.isArray(o)}function U(o,e){return!!(o&&e[o])}function W(o){return!!o&&"emit"in o}var R=class o{constructor({port:e,ssl:t,listeners:r,errors:n,server:s},a=[]){if(W(s)?(this.server=s,new Promise(p=>void(s.listening?p():s.on("listening",p))).then(()=>V(this))):(this.server=oe(o.makeProps({ssl:t,server:s})),this.server.listen(typeof e=="string"?Number.parseInt(e):e??(this.isS?443:80),()=>V(this))),r)for(let[p,i]of Object.entries(r))for(let[c,v]of i)this.addRequestListener(p,c,v);if(n)for(let p of Object.keys(n)){let i=Number.parseInt(p);i&&(this.#t[i]?Object.assign(this.#t[i],n[i]):this.#t[i]=n[i])}if(a)for(let p of a)p&&this.addMiddleware(p);this.server.on("request",this.#r)}icon="\u{1F578}\uFE0F ";name="HTTP";get protocol(){return`http${this.isS?"s":""}`}server;get isS(){return"setSecureContext"in this.server}#e={POST:[],GET:[],PUT:[],PATCH:[],DELETE:[]};#r=async(e,t)=>{if(t[y]=this,t[M]=e,!("status"in e)&&U(e.method,this.#e)){for(let[r,n]of this.#e[e.method])if(r.test(e.url)&&await n(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:n,content:s}){return t.writeHead(r,n).end(s)}}};_throw(e,t,r){typeof r=="string"&&(r={content:r});let{handler:n,...s}={...this.#t.default,...this.#t[t],...r};return n?n(e[M],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 n of Object.keys(this.#e))this.addRequestListener(n,t,r);return this}addMiddleware(e){if(e instanceof m){for(let[t,r]of Object.entries(e.listeners))for(let[n,s]of r)this.addRequestListener(t,n,s);e.bindTo?.(this)}else if(F(e)){G(e)&&(e=[e]);for(let t of e)this.addRequestListener(...t.length===2?["GET",...t]:t)}else if(N(e))for(let[t,r]of Object.entries(e))this.addRequestListener("GET",t,r);else if(z(e))for(let[t,r]of Object.entries(e))for(let[n,s]of Object.entries(r))this.addRequestListener(t,n,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}static makeProps({ssl:e,server:t}){return{...ne(e),ServerResponse:O,...t}}};var J=class extends R{constructor(e,t,r=[]){super(t,[new E(e),...r])}name="Static";icon="\u{1F6D2}"};export{R as InSiteHTTPServer,se as InSiteInitialsMiddleware,m as InSiteServerMiddleware,E as InSiteStaticMiddleware,J as InSiteStaticServer,C 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
- "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 (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
- "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"]
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", "../../../../@nesvet/npm/n/src/noop.ts", "../../../../@nesvet/npm/n/src/debounce.ts", "../../../../@nesvet/npm/n/src/isEmpty.ts", "../../../../@nesvet/npm/n/src/howmuch.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", "export function noop() { /**/ }\n", "import { noop } from \"./noop.js\";\n\n\ntype Callback<Result> = (...args: unknown[]) => Result;\ntype FunctionOrBoolean = (() => unknown) | boolean;\ntype Options = { leading?: FunctionOrBoolean; maxWait?: number; trailing?: FunctionOrBoolean };\ntype NumberOrUndefined = number | undefined;\n\ntype DebouncedFunction<Result> = {\n\t(this: unknown, ..._args: unknown[]): Promise<Result>;\n};\n\nexport type Debounced<Result> = {\n\tcallback: Callback<Result>;\n\tpromise: {\n\t\tisResolved: boolean;\n\t} & Promise<unknown>;\n\tresolve: (value: Result) => void;\n\trun(): Promise<Result>;\n\tclear(shouldRun?: boolean): Promise<void>;\n} & DebouncedFunction<Result>;\n\n\nexport function debounce<Result>(callback: Callback<Result>, limit = 0, options: Options = {}) {\n\tlet { leading = false, trailing = true } = options;\n\tconst { maxWait = Infinity } = options;\n\t\n\tlet timeout: NumberOrUndefined;\n\tlet maxWaitTimeout: NumberOrUndefined;\n\tlet end: NumberOrUndefined;\n\tlet context: unknown;\n\tlet args: unknown[];\n\tlet initial: FunctionOrBoolean;\n\tlet final: FunctionOrBoolean;\n\tlet result: Result;\n\t\n\tconst expired = async () => {\n\t\t\n\t\tconst n = Date.now();\n\t\t\n\t\tif (n >= end!) {\n\t\t\ttimeout = undefined;\n\t\t\tend = undefined;\n\t\t\tclearTimeout(maxWaitTimeout);\n\t\t\tif (typeof final == \"function\")\n\t\t\t\tawait final();\n\t\t\tdebounced.resolve(result);\n\t\t\tdebounced.promise.isResolved = true;\n\t\t\tinitial = leading;\n\t\t} else {\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = setTimeout(expired, end! - n);\n\t\t}\n\t\t\n\t};\n\t\n\tconst maxWaitExpired = Number.isFinite(maxWait) ? () => {\n\t\t\n\t\tif (final === run)\n\t\t\tfinal = false;\n\t\trun();\n\t\tmaxWaitTimeout = setTimeout(maxWaitExpired as TimerHandler, maxWait);\n\t\t\n\t} : null;\n\t\n\tasync function run() {\n\t\treturn (result = await callback.apply(context, args));\n\t}\n\t\n\tif (leading && typeof leading == \"boolean\")\n\t\tleading = run;\n\tinitial = leading;\n\t\n\tif (trailing && typeof trailing == \"boolean\")\n\t\ttrailing = run;\n\tfinal = trailing;\n\t\n\tconst debounced: Debounced<Result> = Object.assign(function (..._args) {\n\t\targs = _args;\n\t\tcontext = this;// eslint-disable-line no-invalid-this\n\t\t\n\t\tend = Date.now() + limit;\n\t\tfinal = trailing;\n\t\t\n\t\tif (debounced.promise.isResolved)\n\t\t\tdebounced.promise = Object.assign(new Promise(resolve => {\n\t\t\t\tdebounced.resolve = resolve;\n\t\t\t\t\n\t\t\t\tif (typeof initial == \"function\") {\n\t\t\t\t\tinitial();\n\t\t\t\t\tinitial = false;\n\t\t\t\t\tif (final === run)\n\t\t\t\t\t\tfinal = false;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (!timeout) {\n\t\t\t\t\ttimeout = setTimeout(expired, limit);\n\t\t\t\t\tif (maxWaitExpired)\n\t\t\t\t\t\tmaxWaitTimeout = setTimeout(maxWaitExpired, maxWait);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}), {\n\t\t\t\tisResolved: false\n\t\t\t});\n\t\t\n\t\treturn debounced.promise;\n\t} as DebouncedFunction<Result>, {\n\t\tcallback,\n\t\tpromise: Object.assign(Promise.resolve(), {\n\t\t\tisResolved: true\n\t\t}),\n\t\tresolve: noop,\n\t\trun,\n\t\tclear: async (shouldRun?: boolean) => {\n\t\t\t\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = undefined;\n\t\t\t\n\t\t\tclearTimeout(maxWaitTimeout);\n\t\t\t\n\t\t\tdebounced.promise.isResolved = true;\n\t\t\tdebounced.resolve(shouldRun ? await run() : result);\n\t\t\t\n\t\t}\n\t});\n\t\n\treturn debounced;\n}\n\n\ndebounce.noop = Object.assign(() => { /**/ }, {\n\tcallback: noop,\n\tpromise: Object.assign(Promise.resolve(), {\n\t\tisResolved: true\n\t}),\n\tresolve: noop,\n\trun: noop,\n\tclear: noop\n}) as unknown as Debounced<void>;\n\n\nexport function throttle<Result>(callback: Callback<Result>, limit?: number, options?: Options) {\n\treturn debounce(callback, limit, {\n\t\tmaxWait: limit,\n\t\tleading: true,\n\t\ttrailing: true,\n\t\t...options\n\t});\n}\n", "export function isEmpty(object: object) {\n\tfor (const _ in object)// eslint-disable-line guard-for-in, no-unreachable-loop\n\t\treturn false;\n\t\n\treturn true;\n}\n", "export function howmuch(number: [] | number, one: string, two: string, five: boolean | string, shouldPrintNumber = true) {\n\tif (Array.isArray(number))\n\t\tnumber = number.length;\n\t\n\tif (typeof five != \"string\") {\n\t\tshouldPrintNumber = five ?? true;\n\t\tfive = two;\n\t}\n\t\n\t\n\treturn (shouldPrintNumber ? `${number}\u00A0` : \"\") + howmuch.raw(number, one, two, five);\n}\n\nhowmuch.raw = (number: number, one: string, two: string, five = two) => {\n\tnumber = Math.abs(number);\n\tconst u = number % 10;\n\tconst d = number % 100;\n\t\n\treturn (\n\t\t(u === 1 && d !== 11) ?\n\t\t\tone :\n\t\t\t((u >= 2 && u <= 4) && !(d >= 12 && d <= 15)) ?\n\t\t\t\ttwo :\n\t\t\t\tfive\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 type http from \"node:http\";\nimport type https from \"node:https\";\nimport { createServer, resolveSSL, showServerListeningMessage } from \"insite-common/backend\";\nimport { InSiteServerMiddleware } from \"./Middleware\";\nimport { InSiteServerResponse } from \"./Response\";\nimport { inSiteRequestSymbol, inSiteServerSymbol } from \"./symbols\";\nimport {\n\ttype ErrorParams,\n\ttype Handler,\n\tisMiddlewareMethodMap,\n\tisMiddlewareRegExpStringMap,\n\tisMiddlewareTuple,\n\tisMiddlewareTupleOrArray,\n\tisRequestMethodAccepted,\n\tisServerServer,\n\ttype Listener,\n\ttype Method,\n\ttype Middleware,\n\ttype Options,\n\ttype RegExpOrString\n} from \"./types\";\n\n\nexport class InSiteHTTPServer {\n\tconstructor({\n\t\tport,\n\t\tssl,\n\t\tlisteners,\n\t\terrors,\n\t\tserver\n\t}: Options, middlewares: (false | Middleware | null | undefined)[] = []) {\n\t\t\n\t\tif (isServerServer(server)) {\n\t\t\tthis.server = server;\n\t\t\t\n\t\t\tnew Promise<void>(resolve => void (\n\t\t\t\tserver.listening ?\n\t\t\t\t\tresolve() :\n\t\t\t\t\tserver.on(\"listening\", resolve)\n\t\t\t)).then(() => showServerListeningMessage(this));\n\t\t\t\n\t\t} else {\n\t\t\tthis.server = createServer(InSiteHTTPServer.makeProps({ ssl, server }));\n\t\t\t\n\t\t\tthis.server.listen(\n\t\t\t\ttypeof port == \"string\" ?\n\t\t\t\t\tNumber.parseInt(port) :\n\t\t\t\t\tport ?? (this.isS ? 443 : 80),\n\t\t\t\t() => showServerListeningMessage(this)\n\t\t\t);\n\t\t}\n\t\t\n\t\tif (listeners)\n\t\t\tfor (const [ method, methodListeners ] of Object.entries(listeners) as [ \"ALL\" | Method, Listener[] ][])\n\t\t\t\tfor (const [ regExp, handler ] of methodListeners)\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\tif (middleware)\n\t\t\t\t\tthis.addMiddleware(middleware);\n\t\t\n\t\tthis.server.on(\"request\", this.#requestListener);\n\t\t\n\t}\n\t\n\ticon = \"\uD83D\uDD78\uFE0F \";\n\tname = \"HTTP\";\n\tget protocol() {\n\t\treturn `http${this.isS ? \"s\" : \"\"}`;\n\t}\n\t\n\tserver;\n\t\n\tget isS() {\n\t\treturn \"setSecureContext\" in this.server;\n\t}\n\t\n\t#listeners: Record<Method, Listener[]> = {\n\t\tPOST: [],\n\t\tGET: [],\n\t\tPUT: [],\n\t\tPATCH: [],\n\t\tDELETE: []\n\t};\n\t\n\t#requestListener = async (request: http.IncomingMessage, response: InSiteServerResponse) => {\n\t\tresponse[inSiteServerSymbol] = this;\n\t\tresponse[inSiteRequestSymbol] = request;\n\t\t\n\t\tif (!(\"status\" in request) && isRequestMethodAccepted(request.method, this.#listeners))\n\t\t\tfor (const [ regExp, handler ] of this.#listeners[request.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\t\n\tstatic makeProps({ ssl, server }: Options): http.ServerOptions | https.ServerOptions {\n\t\treturn {\n\t\t\t...resolveSSL(ssl),\n\t\t\tServerResponse: InSiteServerResponse,\n\t\t\t...server\n\t\t};\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 | string) {\n\t\treturn this[inSiteServerSymbol]._throw(this, statusCode, params);\n\t}\n\t\n\tbadRequest(params?: ErrorParams | string) {\n\t\treturn this.error(400, params);\n\t}\n\t\n\tunauthorized(params?: ErrorParams | string) {\n\t\treturn this.error(401, params);\n\t}\n\t\n\tforbidden(params?: ErrorParams | string) {\n\t\treturn this.error(403, params);\n\t}\n\t\n\tnotFound(params?: ErrorParams | string) {\n\t\treturn this.error(404, params);\n\t}\n\t\n\trequestTimeout(params?: ErrorParams | string) {\n\t\treturn this.error(408, params);\n\t}\n\t\n\tgone(params?: ErrorParams | string) {\n\t\treturn this.error(410, params);\n\t}\n\t\n\tinternalServerError(params?: ErrorParams | string) {\n\t\treturn this.error(500, params);\n\t}\n\t\n\tserviceUnavailable(params?: ErrorParams | string) {\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 http from \"node:http\";\nimport type https from \"node:https\";\nimport type { InSiteServerMiddleware } from \"./Middleware\";\nimport type { InSiteServerResponse } from \"./Response\";\n\n\nexport type ErrorParams = {\n\theaders?: http.OutgoingHttpHeader[] | http.OutgoingHttpHeaders;\n\tcontent: string;\n\thandler?(request: http.IncomingMessage, response: InSiteServerResponse, errorParams: Omit<ErrorParams, \"handler\"> & { statusCode: number }): InSiteServerResponse;\n};\n\nexport type Method = \"DELETE\" | \"GET\" | \"PATCH\" | \"POST\" | \"PUT\";\n\nexport type Handler = (request: http.IncomingMessage, response: InSiteServerResponse) => unknown;\n\nexport type Listener = [ RegExp, Handler ];\n\nexport type Options = {\n\tssl?: {\n\t\tcert: Buffer | string;\n\t\tkey: Buffer | string;\n\t};\n\tport?: number | string;\n\thttps?: boolean;\n\tlisteners?: Partial<Record<\"ALL\" | Method, Listener[]>>;\n\terrors?: Record<\"default\" | number, ErrorParams>;\n\tserver?: http.Server | http.ServerOptions | https.Server | https.ServerOptions;\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\nexport function isRequestMethodAccepted(requestMethod: string | undefined, listeners: Record<string, unknown>): requestMethod is Method {\n\treturn Boolean(requestMethod && listeners[requestMethod]);\n}\n\nexport function isServerServer(serverOrOptions: Options[\"server\"]): serverOrOptions is http.Server | https.Server {\n\treturn !!serverOrOptions && \"emit\" in serverOrOptions;\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\tname = \"Static\";\n\ticon = \"\uD83D\uDED2\";\n\t\n}\n"],
5
+ "mappings": "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",
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", "noop", "debounce", "callback", "limit", "options", "leading", "trailing", "maxWait", "timeout", "maxWaitTimeout", "end", "context", "args", "initial", "final", "result", "expired", "n", "debounced", "maxWaitExpired", "run", "_args", "resolve", "noop", "shouldRun", "isEmpty", "object", "_", "howmuch", "number", "one", "two", "five", "shouldPrintNumber", "u", "d", "INSITE_TITLE", "envGlobals", "key", "headers", "InSiteTemplateMiddleware", "InSiteServerMiddleware", "requestRegExp", "globals", "title", "css", "rootId", "#handler", "#title", "#css", "#rootId", "#html", "fileName", "isEmpty", "request", "response", "handleRequestCompressed", "createServer", "resolveSSL", "showServerListeningMessage", "ServerResponse", "inSiteServerSymbol", "inSiteRequestSymbol", "InSiteServerResponse", "ServerResponse", "inSiteServerSymbol", "inSiteRequestSymbol", "statusCode", "params", "isMiddlewareMethodMap", "middleware", "isMiddlewareRegExpStringMap", "isMiddlewareTupleOrArray", "isMiddlewareTuple", "isRequestMethodAccepted", "requestMethod", "listeners", "isServerServer", "serverOrOptions", "InSiteHTTPServer", "_InSiteHTTPServer", "port", "ssl", "listeners", "errors", "server", "middlewares", "isServerServer", "resolve", "showServerListeningMessage", "createServer", "method", "methodListeners", "regExp", "handler", "statusCodeString", "statusCode", "#errors", "middleware", "#requestListener", "#listeners", "request", "response", "inSiteServerSymbol", "inSiteRequestSymbol", "isRequestMethodAccepted", "headers", "content", "params", "restParams", "specificMethod", "InSiteServerMiddleware", "regExpOrStringArrayMap", "regExpOrString", "isMiddlewareTupleOrArray", "isMiddlewareTuple", "isMiddlewareRegExpStringMap", "key", "value", "isMiddlewareMethodMap", "regExpStringMap", "regExpString", "resolveSSL", "InSiteServerResponse", "InSiteStaticServer", "InSiteHTTPServer", "options", "serverOptions", "middlewares", "InSiteStaticMiddleware"]
7
7
  }
package/dist/types.d.ts CHANGED
@@ -1,27 +1,27 @@
1
- import type { ServerOptions as HTTPServerOptions, IncomingMessage, OutgoingHttpHeader, OutgoingHttpHeaders } from "node:http";
2
- import type { ServerOptions as HTTPSServerOptions } from "node:https";
3
- import { InSiteServerMiddleware } from "./Middleware";
1
+ import type http from "node:http";
2
+ import type https from "node:https";
3
+ import type { InSiteServerMiddleware } from "./Middleware";
4
4
  import type { InSiteServerResponse } from "./Response";
5
5
  export type ErrorParams = {
6
- headers?: OutgoingHttpHeader[] | OutgoingHttpHeaders;
6
+ headers?: http.OutgoingHttpHeader[] | http.OutgoingHttpHeaders;
7
7
  content: string;
8
- handler?(request: IncomingMessage, response: InSiteServerResponse, errorParams: {
8
+ handler?(request: http.IncomingMessage, response: InSiteServerResponse, errorParams: Omit<ErrorParams, "handler"> & {
9
9
  statusCode: number;
10
- } & Omit<ErrorParams, "handler">): InSiteServerResponse;
10
+ }): InSiteServerResponse;
11
11
  };
12
12
  export type Method = "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
13
- export type Handler = (request: IncomingMessage, response: InSiteServerResponse) => unknown;
13
+ export type Handler = (request: http.IncomingMessage, response: InSiteServerResponse) => unknown;
14
+ export type Listener = [RegExp, Handler];
14
15
  export type Options = {
15
- port?: number | string;
16
16
  ssl?: {
17
17
  cert: Buffer | string;
18
18
  key: Buffer | string;
19
19
  };
20
+ port?: number | string;
20
21
  https?: boolean;
21
- listeners?: Record<"ALL" | Method, [RegExp, Handler][]>;
22
+ listeners?: Partial<Record<"ALL" | Method, Listener[]>>;
22
23
  errors?: Record<"default" | number, ErrorParams>;
23
- server?: HTTPServerOptions | HTTPSServerOptions;
24
- onListen?: () => void;
24
+ server?: http.Server | http.ServerOptions | https.Server | https.ServerOptions;
25
25
  };
26
26
  export type RegExpOrString = RegExp | string;
27
27
  type MiddlewareTuple = readonly [Method, RegExpOrString, Handler] | readonly [RegExpOrString, Handler];
@@ -32,5 +32,7 @@ export declare function isMiddlewareMethodMap(middleware: Middleware): middlewar
32
32
  export declare function isMiddlewareRegExpStringMap(middleware: Middleware): middleware is MiddlewareRegExpStringMap;
33
33
  export declare function isMiddlewareTupleOrArray(middleware: Middleware): middleware is MiddlewareTuple | MiddlewareTuple[];
34
34
  export declare function isMiddlewareTuple(middleware: MiddlewareTuple | MiddlewareTuple[]): middleware is MiddlewareTuple;
35
+ export declare function isRequestMethodAccepted(requestMethod: string | undefined, listeners: Record<string, unknown>): requestMethod is Method;
36
+ export declare function isServerServer(serverOrOptions: Options["server"]): serverOrOptions is http.Server | https.Server;
35
37
  export {};
36
38
  //# sourceMappingURL=types.d.ts.map
@@ -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,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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "insite-http",
3
- "version": "2.0.5",
3
+ "version": "2.0.7",
4
4
  "description": "inSite HTTPS server",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",
8
- "packageManager": "bun@1.1.22",
8
+ "packageManager": "bun@1.2.2",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
11
11
  "build": "bun .conveyer.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.3"
27
+ "@nesvet/n": "^1.1.7"
28
28
  },
29
29
  "devDependencies": {
30
- "@nesvet/conveyer": "^2.2.4",
31
- "@nesvet/eslint-config": "^2.0.24",
32
- "@types/node": "^22.2.0",
33
- "typescript": "^5.5.4"
30
+ "@nesvet/conveyer": "^2.2.5",
31
+ "@nesvet/eslint-config": "^2.0.34",
32
+ "@types/node": "^22.13.1",
33
+ "typescript": "^5.7.3"
34
34
  }
35
35
  }
package/bun.lockb DELETED
Binary file