insite-server 2.1.2 → 2.1.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/dist/InSite.d.ts CHANGED
@@ -8,7 +8,7 @@ import { Users } from "insite-users-server";
8
8
  import { UsersServer, type WSSCWithUser } from "insite-users-server-ws";
9
9
  import { IncomingTransport, OutgoingTransport } from "insite-ws-transfers/node";
10
10
  import type { OmitRedundant, Options, ServerConfig, WSServerWithActualProps } from "./types";
11
- export declare class InSite<AS extends AbilitiesSchema, O extends Options<AS>> {
11
+ export declare class InSite<O extends Options<any>, AS extends AbilitiesSchema = O extends Options<infer A> ? A : never> {
12
12
  #private;
13
13
  constructor(options?: O);
14
14
  mongoClient: MongoClient;
@@ -25,7 +25,7 @@ export declare class InSite<AS extends AbilitiesSchema, O extends Options<AS>> {
25
25
  http: HTTPServer;
26
26
  protected init(options: O): Promise<void>;
27
27
  whenReady(): StatefulPromise<this>;
28
- static init<IAS extends AbilitiesSchema, IO extends Options<IAS>, IS extends InSite<IAS, IO>>(options: IO, asPromise?: true): Promise<OmitRedundant<IS, IO>>;
29
- static init<IAS extends AbilitiesSchema, IO extends Options<IAS>, IS extends InSite<IAS, IO>>(options: IO, asPromise: false): OmitRedundant<IS, IO>;
28
+ static init<IO extends Options<any>, IS extends InSite<IO>>(options: IO, asPromise?: true): Promise<OmitRedundant<IS, IO>>;
29
+ static init<IO extends Options<any>, IS extends InSite<IO>>(options: IO, asPromise: false): OmitRedundant<IS, IO>;
30
30
  }
31
31
  //# sourceMappingURL=InSite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InSite.d.ts","sourceRoot":"","sources":["../src/InSite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAoB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAEN,KAAK,WAAW,EAChB,KAAK,EAAE,EACP,KAAK,WAAW,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAEN,UAAU,EAGV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,KAAK,EACX,aAAa,EACb,OAAO,EACP,YAAY,EACZ,uBAAuB,EACvB,MAAM,SAAS,CAAC;AAGjB,qBAAa,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC,SAAS,OAAO,CAAC,EAAE,CAAC;;gBACxD,OAAO,CAAC,EAAE,CAAC;IAMvB,WAAW,EAAG,WAAW,CAAC;IAC1B,EAAE,EAAG,EAAE,CAAC;IACR,MAAM,EAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,WAAW,EAAG,WAAW,CAAC;IAC1B,GAAG,EAAG,uBAAuB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrC,iBAAiB,EAAG,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,iBAAiB,EAAG,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,mBAAmB,EAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC9C,WAAW,EAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,KAAK,EAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,EAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,EAAG,UAAU,CAAC;cAIF,IAAI,CAAC,OAAO,EAAE,CAAC;IAsH/B,SAAS;IAKT,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,eAAe,EAAE,EAAE,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5J,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,eAAe,EAAE,EAAE,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,GAAG,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;CASnJ"}
1
+ {"version":3,"file":"InSite.d.ts","sourceRoot":"","sources":["../src/InSite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAoB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAEN,KAAK,WAAW,EAChB,KAAK,EAAE,EACP,KAAK,WAAW,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAEN,UAAU,EAGV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,KAAK,EACX,aAAa,EACb,OAAO,EACP,YAAY,EACZ,uBAAuB,EACvB,MAAM,SAAS,CAAC;AAMjB,qBAAa,MAAM,CAClB,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACtB,EAAE,SAAS,eAAe,GAAG,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;;gBAEvD,OAAO,CAAC,EAAE,CAAC;IAMvB,WAAW,EAAG,WAAW,CAAC;IAC1B,EAAE,EAAG,EAAE,CAAC;IACR,MAAM,EAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,WAAW,EAAG,WAAW,CAAC;IAC1B,GAAG,EAAG,uBAAuB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrC,iBAAiB,EAAG,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,iBAAiB,EAAG,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,mBAAmB,EAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC9C,WAAW,EAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,KAAK,EAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,EAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,EAAG,UAAU,CAAC;cAIF,IAAI,CAAC,OAAO,EAAE,CAAC;IAsH/B,SAAS;IAIT,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1H,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,GAAG,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;CASjH"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- function O(){}function P(i,t=0,e={}){let{leading:o=!1,trailing:n=!0}=e,{maxWait:c=1/0}=e,s,a,u,l,g,f,r,m,h=async()=>{let S=Date.now();S>=u?(s=void 0,u=void 0,clearTimeout(a),typeof r=="function"&&await r(),p.resolve(m),p.promise.isResolved=!0,f=o):(clearTimeout(s),s=setTimeout(h,u-S))},x=Number.isFinite(c)?()=>{r===d&&(r=!1),d(),a=setTimeout(x,c)}:null;async function d(){return m=await i.apply(l,g)}o&&typeof o=="boolean"&&(o=d),f=o,n&&typeof n=="boolean"&&(n=d),r=n;let p=Object.assign(function(...S){return g=S,l=this,u=Date.now()+t,r=n,p.promise.isResolved&&(p.promise=Object.assign(new Promise(I=>{p.resolve=I,typeof f=="function"&&(f(),f=!1,r===d&&(r=!1)),s||(s=setTimeout(h,t),x&&(a=setTimeout(x,c)))}),{isResolved:!1})),p.promise},{callback:i,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:O,run:d,clear:async S=>{clearTimeout(s),s=void 0,clearTimeout(a),p.promise.isResolved=!0,p.resolve(S?await d():m)}});return p}P.noop=Object.assign(()=>{},{callback:O,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:O,run:O,clear:O});function y(i,t,e,o,n=!0){return Array.isArray(i)&&(i=i.length),typeof o!="string"&&(n=o??!0,o=e),(n?`${i}\xA0`:"")+y.raw(i,t,e,o)}y.raw=(i,t,e,o=e)=>{i=Math.abs(i);let n=i%10,c=i%100;return n===1&&c!==11?t:n>=2&&n<=4&&!(c>=12&&c<=15)?e:o};var w=new WeakMap,v=class extends Promise{constructor(t){let e,o;super((n,c)=>{e=n,o=c}),w.set(this,{resolve:e,reject:o}),t?.(this.resolve,this.reject)}isPending=!0;isFulfilled=!1;isRejected=!1;state="pending";result;resolve=t=>{if(this.isPending){this.isPending=!1,this.isFulfilled=!0,this.state="fulfilled",this.result=t;let e=w.get(this);e&&(e.resolve.call(this,t),w.delete(this))}};reject=t=>{if(this.isPending){this.isPending=!1,this.isRejected=!0,this.state="rejected",this.result=t;let e=w.get(this);e&&(e.reject.call(this,t),w.delete(this))}}};import{createServer as W}from"insite-common/backend";import{init as M}from"insite-config";import{CookieMiddleware as $,CookieSetter as j}from"insite-cookie/server";import{connect as k}from"insite-db";import{HTTPServer as b,StaticMiddleware as C,TemplateMiddleware as R}from"insite-http";import{SubscriptionHandler as B}from"insite-subscriptions-server/ws";import{Users as E}from"insite-users-server";import{UsersServer as U}from"insite-users-server-ws";import{IncomingTransport as D,OutgoingTransport as H}from"insite-ws-transfers/node";import{WSServer as A}from"insite-ws/server";var T=class i{constructor(t){t&&this.init(t)}mongoClient;db;config;collections;wss;incomingTransport;outgoingTransport;subscriptionHandler;usersServer;users;cookie;http;#e=!1;async init(t){if(!this.#e){this.#e=!0;let{db:e,config:o,ssl:n,port:c,wss:s,users:a,cookie:u,http:l}=t;e&&({client:this.mongoClient,db:this.db,collections:this.collections}=await k(e)),this.collections&&o&&(this.config=await M(this.collections,o));let g=c&&(s||l)?await W({...s&&A.makeProps({...s,ssl:n}),...l&&b.makeProps({...typeof l=="object"?l:{},ssl:n})},c):void 0;if(s){let{subscriptions:f,incomingTransport:r,outgoingTransport:m,...h}=s;this.wss=new A({server:g,...h}),f!==null&&(this.subscriptionHandler=new B(this.wss,!!this.collections)),r!==null&&(r||this.collections&&a)&&(this.incomingTransport=new D(this.wss,!r||r===!0?{}:r)),m&&(this.outgoingTransport=new H(this.wss)),process.env.NODE_ENV==="development"&&this.wss.on("client-connect",x=>console.info(`\u{1F50C} WebSocket connected with ${x.session?.user.email}`)),this.wss.on("error",x=>console.error("\u{1F50C}\u2757\uFE0F WebSocket Server:",x)),this.wss.on("close",()=>console.error("\u{1F50C}\u2757\uFE0F WebSocket Server closed"))}if(a&&this.collections){let{server:f,...r}=a;this.wss&&this.subscriptionHandler?(this.usersServer=await U.init({...f,users:r,wss:this.wss,collections:this.collections,incomingTransport:this.incomingTransport}),this.users=this.usersServer.users):this.users=await E.init(this.collections,r)}if(l){let{static:f=void 0,middlewares:r=void 0,template:m=void 0,...h}=typeof l=="object"?l:{};this.http=new b({server:g,...h},[...r??[],u!==null&&new $(u?.middleware??{}),f!==null&&new C(f??{}),m!==null&&new R(m??{})].filter(Boolean))}if(u!==null&&this.usersServer&&this.http){let{middleware:f,...r}=u??{};this.cookie=new j({...r,usersServer:this.usersServer})}this.#t.resolve(this)}}#t=new v;whenReady(){return this.#t}static init(t,e=!0){let o=new i(t);return e?o.whenReady():o}};export*from"insite-common/backend";export*from"insite-cookie/server";export*from"insite-db";import{connect as jo}from"insite-db";export*from"insite-http";export*from"insite-subscriptions-server";export*from"insite-users-server";export*from"insite-users-server-ws";export*from"insite-ws-transfers";export*from"insite-ws/server";export{T as InSite,jo as connectToDB};
1
+ import{StatefulPromise as v}from"@nesvet/n";import{createServer as g}from"insite-common/backend";import{init as x}from"insite-config";import{CookieMiddleware as y,CookieSetter as W}from"insite-cookie/server";import{connect as I}from"insite-db";import{HTTPServer as f,StaticMiddleware as T,TemplateMiddleware as C}from"insite-http";import{SubscriptionHandler as b}from"insite-subscriptions-server/ws";import{Users as A}from"insite-users-server";import{UsersServer as k}from"insite-users-server-ws";import{IncomingTransport as P,OutgoingTransport as M}from"insite-ws-transfers/node";import{WSServer as O}from"insite-ws/server";var u=class w{constructor(i){i&&this.init(i)}mongoClient;db;config;collections;wss;incomingTransport;outgoingTransport;subscriptionHandler;usersServer;users;cookie;http;#e=!1;async init(i){if(!this.#e){this.#e=!0;let{db:n,config:o,ssl:S,port:d,wss:r,users:a,cookie:p,http:t}=i;n&&({client:this.mongoClient,db:this.db,collections:this.collections}=await I(n)),this.collections&&o&&(this.config=await x(this.collections,o));let h=d&&(r||t)?await g({...r&&O.makeProps({...r,ssl:S}),...t&&f.makeProps({...typeof t=="object"?t:{},ssl:S})},d):void 0;if(r){let{subscriptions:s,incomingTransport:e,outgoingTransport:c,...l}=r;this.wss=new O({server:h,...l}),s!==null&&(this.subscriptionHandler=new b(this.wss,!!this.collections)),e!==null&&(e||this.collections&&a)&&(this.incomingTransport=new P(this.wss,!e||e===!0?{}:e)),c&&(this.outgoingTransport=new M(this.wss)),process.env.NODE_ENV==="development"&&this.wss.on("client-connect",m=>console.info(`\u{1F50C} WebSocket connected with ${m.session?.user.email}`)),this.wss.on("error",m=>console.error("\u{1F50C}\u2757\uFE0F WebSocket Server:",m)),this.wss.on("close",()=>console.error("\u{1F50C}\u2757\uFE0F WebSocket Server closed"))}if(a&&this.collections){let{server:s,...e}=a;this.wss&&this.subscriptionHandler?(this.usersServer=await k.init({...s,users:e,wss:this.wss,collections:this.collections,incomingTransport:this.incomingTransport}),this.users=this.usersServer.users):this.users=await A.init(this.collections,e)}if(t){let{static:s=void 0,middlewares:e=void 0,template:c=void 0,...l}=typeof t=="object"?t:{};this.http=new f({server:h,...l},[...e??[],p!==null&&new y(p?.middleware??{}),s!==null&&new T(s??{}),c!==null&&new C(c??{})].filter(Boolean))}if(p!==null&&this.usersServer&&this.http){let{middleware:s,...e}=p??{};this.cookie=new W({...e,usersServer:this.usersServer})}this.#t.resolve(this)}}#t=new v;whenReady(){return this.#t}static init(i,n=!0){let o=new w(i);return n?o.whenReady():o}};export*from"insite-common/backend";export*from"insite-cookie/server";export*from"insite-db";import{connect as X}from"insite-db";export*from"insite-http";export*from"insite-subscriptions-server";export*from"insite-users-server";export*from"insite-users-server-ws";export*from"insite-ws-transfers";export*from"insite-ws/server";export{u as InSite,X as connectToDB};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../@nesvet/npm/n/src/noop.ts", "../../../../@nesvet/npm/n/src/debounce.ts", "../../../../@nesvet/npm/n/src/howmuch.ts", "../../../../@nesvet/npm/n/src/StatefulPromise.ts", "../src/InSite.ts", "../src/index.ts"],
4
- "sourcesContent": ["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 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", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\ntype Value<T> = PromiseLike<T> | T;\ntype Resolve<T> = (value: Value<T>) => void;\ntype Reject = (reason?: any) => void;\n\nconst nativesMap = new WeakMap<StatefulPromise<any>, { resolve: Resolve<any>; reject: Reject }>();\n\n\nexport class StatefulPromise<T> extends Promise<T> {\n\tconstructor(executor?: (resolve: Resolve<T>, reject: Reject) => void) {\n\t\t\n\t\tlet nativeResolve: Resolve<T>;\n\t\tlet nativeReject: Reject;\n\t\t\n\t\tsuper((resolve, reject) => {\n\t\t\tnativeResolve = resolve;\n\t\t\tnativeReject = reject;\n\t\t\t\n\t\t});\n\t\t\n\t\tnativesMap.set(this, { resolve: nativeResolve!, reject: nativeReject! });\n\t\t\n\t\texecutor?.(this.resolve, this.reject);\n\t\t\n\t}\n\t\n\tisPending = true;\n\tisFulfilled = false;\n\tisRejected = false;\n\t\n\tstate: \"fulfilled\" | \"pending\" | \"rejected\" = \"pending\";\n\t\n\tresult?: any;\n\t\n\tresolve = (value: Value<T>) => {\n\t\t\n\t\tif (this.isPending) {\n\t\t\tthis.isPending = false;\n\t\t\tthis.isFulfilled = true;\n\t\t\tthis.state = \"fulfilled\";\n\t\t\tthis.result = value;\n\t\t\t\n\t\t\tconst native = nativesMap.get(this);\n\t\t\t\n\t\t\tif (native) {\n\t\t\t\tnative.resolve.call(this, value);\n\t\t\t\tnativesMap.delete(this);\n\t\t\t}\n\t\t}\n\t\t\n\t};\n\t\n\treject = (reason?: any) => {\n\t\t\n\t\tif (this.isPending) {\n\t\t\tthis.isPending = false;\n\t\t\tthis.isRejected = true;\n\t\t\tthis.state = \"rejected\";\n\t\t\tthis.result = reason;\n\t\t\t\n\t\t\tconst native = nativesMap.get(this);\n\t\t\t\n\t\t\tif (native) {\n\t\t\t\tnative.reject.call(this, reason);\n\t\t\t\tnativesMap.delete(this);\n\t\t\t}\n\t\t}\n\t\t\n\t};\n\t\n}\n", "import { StatefulPromise } from \"@nesvet/n\";\nimport { createServer, type AbilitiesSchema } from \"insite-common/backend\";\nimport { init as initConfig } from \"insite-config\";\nimport { CookieMiddleware, CookieSetter } from \"insite-cookie/server\";\nimport {\n\tconnect,\n\ttype Collections,\n\ttype DB,\n\ttype MongoClient\n} from \"insite-db\";\nimport {\n\tClassMiddleware,\n\tHTTPServer,\n\tStaticMiddleware,\n\tTemplateMiddleware\n} from \"insite-http\";\nimport { SubscriptionHandler } from \"insite-subscriptions-server/ws\";\nimport { Users } from \"insite-users-server\";\nimport { UsersServer, type WSSCWithUser } from \"insite-users-server-ws\";\nimport { IncomingTransport, OutgoingTransport } from \"insite-ws-transfers/node\";\nimport { WSServer } from \"insite-ws/server\";\nimport type {\n\tOmitRedundant,\n\tOptions,\n\tServerConfig,\n\tWSServerWithActualProps\n} from \"./types\";\n\n\nexport class InSite<AS extends AbilitiesSchema, O extends Options<AS>> {\n\tconstructor(options?: O) {\n\t\tif (options)\n\t\t\tthis.init(options);\n\t\t\n\t}\n\t\n\tmongoClient!: MongoClient;\n\tdb!: DB;\n\tconfig!: ServerConfig<O>;\n\tcollections!: Collections;\n\twss!: WSServerWithActualProps<AS, O>;\n\tincomingTransport!: IncomingTransport<WSSCWithUser<AS>>;\n\toutgoingTransport!: OutgoingTransport<WSSCWithUser<AS>>;\n\tsubscriptionHandler!: SubscriptionHandler<AS>;\n\tusersServer!: UsersServer<AS>;\n\tusers!: Users<AS>;\n\tcookie!: CookieSetter<AS>;\n\thttp!: HTTPServer;\n\t\n\t#isInited = false;\n\t\n\tprotected async init(options: O) {\n\t\t\n\t\tif (!this.#isInited) {\n\t\t\tthis.#isInited = true;\n\t\t\t\n\t\t\tconst {\n\t\t\t\tdb: dbOptions,\n\t\t\t\tconfig: configSchema,\n\t\t\t\tssl,\n\t\t\t\tport,\n\t\t\t\twss: wssWithOtherOptions,\n\t\t\t\tusers: usersWithServerOptions,\n\t\t\t\tcookie: cookieWithMiddlewareOptions,\n\t\t\t\thttp: httpWithMiddlewareOptions\n\t\t\t} = options;\n\t\t\t\n\t\t\tif (dbOptions)\n\t\t\t\t({\n\t\t\t\t\tclient: this.mongoClient,\n\t\t\t\t\tdb: this.db,\n\t\t\t\t\tcollections: this.collections\n\t\t\t\t} = await connect(dbOptions));\n\t\t\t\n\t\t\tif (this.collections && configSchema)\n\t\t\t\tthis.config = await initConfig(this.collections, configSchema) as ServerConfig<O>;\n\t\t\t\n\t\t\tconst server =\n\t\t\t\tport && (wssWithOtherOptions || httpWithMiddlewareOptions) ?\n\t\t\t\t\tawait createServer({\n\t\t\t\t\t\t...wssWithOtherOptions && WSServer.makeProps({ ...wssWithOtherOptions, ssl }),\n\t\t\t\t\t\t...httpWithMiddlewareOptions && HTTPServer.makeProps({ ...typeof httpWithMiddlewareOptions == \"object\" ? httpWithMiddlewareOptions : {}, ssl })\n\t\t\t\t\t}, port) :\n\t\t\t\t\tundefined;\n\t\t\t\n\t\t\tif (wssWithOtherOptions) {\n\t\t\t\tconst {\n\t\t\t\t\tsubscriptions,\n\t\t\t\t\tincomingTransport: incomingTransportOptions,\n\t\t\t\t\toutgoingTransport,\n\t\t\t\t\t...wssOptions\n\t\t\t\t} = wssWithOtherOptions;\n\t\t\t\t\n\t\t\t\tthis.wss = new WSServer<WSSCWithUser<AS>>({\n\t\t\t\t\tserver,\n\t\t\t\t\t...wssOptions\n\t\t\t\t}) as WSServerWithActualProps<AS, O>;\n\t\t\t\t\n\t\t\t\tif (subscriptions !== null)\n\t\t\t\t\tthis.subscriptionHandler = new SubscriptionHandler(this.wss, !!this.collections);\n\t\t\t\t\n\t\t\t\tif (incomingTransportOptions !== null && (incomingTransportOptions || (this.collections && usersWithServerOptions)))\n\t\t\t\t\tthis.incomingTransport = new IncomingTransport(this.wss, !incomingTransportOptions || incomingTransportOptions === true ? {} : incomingTransportOptions);\n\t\t\t\t\n\t\t\t\tif (outgoingTransport)\n\t\t\t\t\tthis.outgoingTransport = new OutgoingTransport(this.wss);\n\t\t\t\t\n\t\t\t\tif (process.env.NODE_ENV === \"development\")\n\t\t\t\t\tthis.wss.on(\"client-connect\", wssc => console.info(`\uD83D\uDD0C WebSocket connected with ${wssc.session?.user.email}`));\n\t\t\t\t\n\t\t\t\tthis.wss.on(\"error\", (error: Error) => console.error(\"\uD83D\uDD0C\u2757\uFE0F WebSocket Server:\", error));\n\t\t\t\tthis.wss.on(\"close\", () => console.error(\"\uD83D\uDD0C\u2757\uFE0F WebSocket Server closed\"));\n\t\t\t}\n\t\t\t\n\t\t\tif (usersWithServerOptions && this.collections) {\n\t\t\t\tconst { server: usersServerOptions, ...usersOptions } = usersWithServerOptions;\n\t\t\t\t\n\t\t\t\tif (this.wss && this.subscriptionHandler) {\n\t\t\t\t\tthis.usersServer = await UsersServer.init({\n\t\t\t\t\t\t...usersServerOptions,\n\t\t\t\t\t\tusers: usersOptions,\n\t\t\t\t\t\twss: this.wss,\n\t\t\t\t\t\tcollections: this.collections,\n\t\t\t\t\t\tincomingTransport: this.incomingTransport\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tthis.users = this.usersServer.users;\n\t\t\t\t} else\n\t\t\t\t\tthis.users = await Users.init(this.collections, usersOptions);\n\t\t\t}\n\t\t\t\n\t\t\tif (httpWithMiddlewareOptions) {\n\t\t\t\tconst {\n\t\t\t\t\tstatic: staticMiddlewareOptions = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\t\tmiddlewares = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\t\ttemplate: templateMiddlewareOptions = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\t\t...httpOptions\n\t\t\t\t} = typeof httpWithMiddlewareOptions == \"object\" ? httpWithMiddlewareOptions : {};\n\t\t\t\t\n\t\t\t\tthis.http = new HTTPServer({\n\t\t\t\t\tserver,\n\t\t\t\t\t...httpOptions\n\t\t\t\t}, [\n\t\t\t\t\t...middlewares ?? [],\n\t\t\t\t\tcookieWithMiddlewareOptions !== null && new CookieMiddleware(cookieWithMiddlewareOptions?.middleware ?? {}),\n\t\t\t\t\tstaticMiddlewareOptions !== null && new StaticMiddleware(staticMiddlewareOptions ?? {}),\n\t\t\t\t\ttemplateMiddlewareOptions !== null && new TemplateMiddleware(templateMiddlewareOptions ?? {})\n\t\t\t\t].filter(Boolean) as ClassMiddleware[]);\n\t\t\t}\n\t\t\t\n\t\t\tif (cookieWithMiddlewareOptions !== null && this.usersServer && this.http) {\n\t\t\t\tconst {\n\t\t\t\t\tmiddleware: _,\n\t\t\t\t\t...cookieOptions\n\t\t\t\t} = cookieWithMiddlewareOptions ?? {};\n\t\t\t\t\n\t\t\t\tthis.cookie = new CookieSetter<AS>({\n\t\t\t\t\t...cookieOptions,\n\t\t\t\t\tusersServer: this.usersServer\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\tthis.#initPromise.resolve(this);\n\t\t}\n\t\t\n\t}\n\t\n\t#initPromise = new StatefulPromise<this>();\n\t\n\twhenReady() {\n\t\treturn this.#initPromise;\n\t}\n\t\n\t\n\tstatic init<IAS extends AbilitiesSchema, IO extends Options<IAS>, IS extends InSite<IAS, IO>>(options: IO, asPromise?: true): Promise<OmitRedundant<IS, IO>>;\n\tstatic init<IAS extends AbilitiesSchema, IO extends Options<IAS>, IS extends InSite<IAS, IO>>(options: IO, asPromise: false): OmitRedundant<IS, IO>;\n\tstatic init<IAS extends AbilitiesSchema, IO extends Options<IAS>, IS extends InSite<IAS, IO>>(options: IO, asPromise = true) {\n\t\tconst inSite = new InSite(options) as IS;\n\t\t\n\t\treturn asPromise ?\n\t\t\tinSite.whenReady() :\n\t\t\tinSite;\n\t}\n\t\n}\n", "export * from \"./InSite\";\nexport type { OmitRedundant, Options } from \"./types\";\nexport * from \"insite-common/backend\";\nexport * from \"insite-cookie/server\";\nexport type { Options as CookieSetterOptions } from \"insite-cookie/server\";\nexport * from \"insite-db\";\nexport { connect as connectToDB, type Options as DBOptions } from \"insite-db\";\nexport * from \"insite-http\";\nexport type { Options as HTTPServerOptions } from \"insite-http\";\nexport * from \"insite-subscriptions-server\";\nexport * from \"insite-users-server\";\nexport type { Options as UsersOptions } from \"insite-users-server\";\nexport * from \"insite-users-server-ws\";\nexport type { Options as UsersServerOptions } from \"insite-users-server-ws\";\nexport * from \"insite-ws-transfers\";\nexport * from \"insite-ws/server\";\nexport type { Options as WSServerOptions } from \"insite-ws/server\";\n"],
5
- "mappings": "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",
6
- "names": ["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", "howmuch", "number", "one", "two", "five", "shouldPrintNumber", "u", "d", "nativesMap", "StatefulPromise", "executor", "nativeResolve", "nativeReject", "resolve", "reject", "value", "native", "reason", "createServer", "initConfig", "CookieMiddleware", "CookieSetter", "connect", "HTTPServer", "StaticMiddleware", "TemplateMiddleware", "SubscriptionHandler", "Users", "UsersServer", "IncomingTransport", "OutgoingTransport", "WSServer", "InSite", "_InSite", "options", "#isInited", "dbOptions", "configSchema", "ssl", "port", "wssWithOtherOptions", "usersWithServerOptions", "cookieWithMiddlewareOptions", "httpWithMiddlewareOptions", "server", "subscriptions", "incomingTransportOptions", "outgoingTransport", "wssOptions", "wssc", "error", "usersServerOptions", "usersOptions", "staticMiddlewareOptions", "middlewares", "templateMiddlewareOptions", "httpOptions", "_", "cookieOptions", "#initPromise", "StatefulPromise", "asPromise", "inSite", "connect"]
3
+ "sources": ["../src/InSite.ts", "../src/index.ts"],
4
+ "sourcesContent": ["import { StatefulPromise } from \"@nesvet/n\";\nimport { createServer, type AbilitiesSchema } from \"insite-common/backend\";\nimport { init as initConfig } from \"insite-config\";\nimport { CookieMiddleware, CookieSetter } from \"insite-cookie/server\";\nimport {\n\tconnect,\n\ttype Collections,\n\ttype DB,\n\ttype MongoClient\n} from \"insite-db\";\nimport {\n\tClassMiddleware,\n\tHTTPServer,\n\tStaticMiddleware,\n\tTemplateMiddleware\n} from \"insite-http\";\nimport { SubscriptionHandler } from \"insite-subscriptions-server/ws\";\nimport { Users } from \"insite-users-server\";\nimport { UsersServer, type WSSCWithUser } from \"insite-users-server-ws\";\nimport { IncomingTransport, OutgoingTransport } from \"insite-ws-transfers/node\";\nimport { WSServer } from \"insite-ws/server\";\nimport type {\n\tOmitRedundant,\n\tOptions,\n\tServerConfig,\n\tWSServerWithActualProps\n} from \"./types\";\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\nexport class InSite<\n\tO extends Options<any>,\n\tAS extends AbilitiesSchema = O extends Options<infer A> ? A : never\n> {\n\tconstructor(options?: O) {\n\t\tif (options)\n\t\t\tthis.init(options);\n\t\t\n\t}\n\t\n\tmongoClient!: MongoClient;\n\tdb!: DB;\n\tconfig!: ServerConfig<O>;\n\tcollections!: Collections;\n\twss!: WSServerWithActualProps<AS, O>;\n\tincomingTransport!: IncomingTransport<WSSCWithUser<AS>>;\n\toutgoingTransport!: OutgoingTransport<WSSCWithUser<AS>>;\n\tsubscriptionHandler!: SubscriptionHandler<AS>;\n\tusersServer!: UsersServer<AS>;\n\tusers!: Users<AS>;\n\tcookie!: CookieSetter<AS>;\n\thttp!: HTTPServer;\n\t\n\t#isInited = false;\n\t\n\tprotected async init(options: O) {\n\t\t\n\t\tif (!this.#isInited) {\n\t\t\tthis.#isInited = true;\n\t\t\t\n\t\t\tconst {\n\t\t\t\tdb: dbOptions,\n\t\t\t\tconfig: configSchema,\n\t\t\t\tssl,\n\t\t\t\tport,\n\t\t\t\twss: wssWithOtherOptions,\n\t\t\t\tusers: usersWithServerOptions,\n\t\t\t\tcookie: cookieWithMiddlewareOptions,\n\t\t\t\thttp: httpWithMiddlewareOptions\n\t\t\t} = options;\n\t\t\t\n\t\t\tif (dbOptions)\n\t\t\t\t({\n\t\t\t\t\tclient: this.mongoClient,\n\t\t\t\t\tdb: this.db,\n\t\t\t\t\tcollections: this.collections\n\t\t\t\t} = await connect(dbOptions));\n\t\t\t\n\t\t\tif (this.collections && configSchema)\n\t\t\t\tthis.config = await initConfig(this.collections, configSchema) as ServerConfig<O>;\n\t\t\t\n\t\t\tconst server =\n\t\t\t\tport && (wssWithOtherOptions || httpWithMiddlewareOptions) ?\n\t\t\t\t\tawait createServer({\n\t\t\t\t\t\t...wssWithOtherOptions && WSServer.makeProps({ ...wssWithOtherOptions, ssl }),\n\t\t\t\t\t\t...httpWithMiddlewareOptions && HTTPServer.makeProps({ ...typeof httpWithMiddlewareOptions == \"object\" ? httpWithMiddlewareOptions : {}, ssl })\n\t\t\t\t\t}, port) :\n\t\t\t\t\tundefined;\n\t\t\t\n\t\t\tif (wssWithOtherOptions) {\n\t\t\t\tconst {\n\t\t\t\t\tsubscriptions,\n\t\t\t\t\tincomingTransport: incomingTransportOptions,\n\t\t\t\t\toutgoingTransport,\n\t\t\t\t\t...wssOptions\n\t\t\t\t} = wssWithOtherOptions;\n\t\t\t\t\n\t\t\t\tthis.wss = new WSServer<WSSCWithUser<AS>>({\n\t\t\t\t\tserver,\n\t\t\t\t\t...wssOptions\n\t\t\t\t}) as WSServerWithActualProps<AS, O>;\n\t\t\t\t\n\t\t\t\tif (subscriptions !== null)\n\t\t\t\t\tthis.subscriptionHandler = new SubscriptionHandler(this.wss, !!this.collections);\n\t\t\t\t\n\t\t\t\tif (incomingTransportOptions !== null && (incomingTransportOptions || (this.collections && usersWithServerOptions)))\n\t\t\t\t\tthis.incomingTransport = new IncomingTransport(this.wss, !incomingTransportOptions || incomingTransportOptions === true ? {} : incomingTransportOptions);\n\t\t\t\t\n\t\t\t\tif (outgoingTransport)\n\t\t\t\t\tthis.outgoingTransport = new OutgoingTransport(this.wss);\n\t\t\t\t\n\t\t\t\tif (process.env.NODE_ENV === \"development\")\n\t\t\t\t\tthis.wss.on(\"client-connect\", wssc => console.info(`\uD83D\uDD0C WebSocket connected with ${wssc.session?.user.email}`));\n\t\t\t\t\n\t\t\t\tthis.wss.on(\"error\", (error: Error) => console.error(\"\uD83D\uDD0C\u2757\uFE0F WebSocket Server:\", error));\n\t\t\t\tthis.wss.on(\"close\", () => console.error(\"\uD83D\uDD0C\u2757\uFE0F WebSocket Server closed\"));\n\t\t\t}\n\t\t\t\n\t\t\tif (usersWithServerOptions && this.collections) {\n\t\t\t\tconst { server: usersServerOptions, ...usersOptions } = usersWithServerOptions;\n\t\t\t\t\n\t\t\t\tif (this.wss && this.subscriptionHandler) {\n\t\t\t\t\tthis.usersServer = await UsersServer.init({\n\t\t\t\t\t\t...usersServerOptions,\n\t\t\t\t\t\tusers: usersOptions,\n\t\t\t\t\t\twss: this.wss,\n\t\t\t\t\t\tcollections: this.collections,\n\t\t\t\t\t\tincomingTransport: this.incomingTransport\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tthis.users = this.usersServer.users;\n\t\t\t\t} else\n\t\t\t\t\tthis.users = await Users.init(this.collections, usersOptions);\n\t\t\t}\n\t\t\t\n\t\t\tif (httpWithMiddlewareOptions) {\n\t\t\t\tconst {\n\t\t\t\t\tstatic: staticMiddlewareOptions = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\t\tmiddlewares = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\t\ttemplate: templateMiddlewareOptions = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\t\t...httpOptions\n\t\t\t\t} = typeof httpWithMiddlewareOptions == \"object\" ? httpWithMiddlewareOptions : {};\n\t\t\t\t\n\t\t\t\tthis.http = new HTTPServer({\n\t\t\t\t\tserver,\n\t\t\t\t\t...httpOptions\n\t\t\t\t}, [\n\t\t\t\t\t...middlewares ?? [],\n\t\t\t\t\tcookieWithMiddlewareOptions !== null && new CookieMiddleware(cookieWithMiddlewareOptions?.middleware ?? {}),\n\t\t\t\t\tstaticMiddlewareOptions !== null && new StaticMiddleware(staticMiddlewareOptions ?? {}),\n\t\t\t\t\ttemplateMiddlewareOptions !== null && new TemplateMiddleware(templateMiddlewareOptions ?? {})\n\t\t\t\t].filter(Boolean) as ClassMiddleware[]);\n\t\t\t}\n\t\t\t\n\t\t\tif (cookieWithMiddlewareOptions !== null && this.usersServer && this.http) {\n\t\t\t\tconst {\n\t\t\t\t\tmiddleware: _,\n\t\t\t\t\t...cookieOptions\n\t\t\t\t} = cookieWithMiddlewareOptions ?? {};\n\t\t\t\t\n\t\t\t\tthis.cookie = new CookieSetter<AS>({\n\t\t\t\t\t...cookieOptions,\n\t\t\t\t\tusersServer: this.usersServer\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\tthis.#initPromise.resolve(this);\n\t\t}\n\t\t\n\t}\n\t\n\t#initPromise = new StatefulPromise<this>();\n\t\n\twhenReady() {\n\t\treturn this.#initPromise;\n\t}\n\t\n\tstatic init<IO extends Options<any>, IS extends InSite<IO>>(options: IO, asPromise?: true): Promise<OmitRedundant<IS, IO>>;\n\tstatic init<IO extends Options<any>, IS extends InSite<IO>>(options: IO, asPromise: false): OmitRedundant<IS, IO>;\n\tstatic init<IO extends Options<any>, IS extends InSite<IO>>(options: IO, asPromise = true) {\n\t\tconst inSite = new InSite(options) as IS;\n\t\t\n\t\treturn asPromise ?\n\t\t\tinSite.whenReady() :\n\t\t\tinSite;\n\t}\n\t\n}\n", "export * from \"./InSite\";\nexport type { OmitRedundant, Options } from \"./types\";\nexport * from \"insite-common/backend\";\nexport * from \"insite-cookie/server\";\nexport type { Options as CookieSetterOptions } from \"insite-cookie/server\";\nexport * from \"insite-db\";\nexport { connect as connectToDB, type Options as DBOptions } from \"insite-db\";\nexport * from \"insite-http\";\nexport type { Options as HTTPServerOptions } from \"insite-http\";\nexport * from \"insite-subscriptions-server\";\nexport * from \"insite-users-server\";\nexport type { Options as UsersOptions } from \"insite-users-server\";\nexport * from \"insite-users-server-ws\";\nexport type { Options as UsersServerOptions } from \"insite-users-server-ws\";\nexport * from \"insite-ws-transfers\";\nexport * from \"insite-ws/server\";\nexport type { Options as WSServerOptions } from \"insite-ws/server\";\n"],
5
+ "mappings": "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",
6
+ "names": ["StatefulPromise", "createServer", "initConfig", "CookieMiddleware", "CookieSetter", "connect", "HTTPServer", "StaticMiddleware", "TemplateMiddleware", "SubscriptionHandler", "Users", "UsersServer", "IncomingTransport", "OutgoingTransport", "WSServer", "InSite", "_InSite", "options", "#isInited", "dbOptions", "configSchema", "ssl", "port", "wssWithOtherOptions", "usersWithServerOptions", "cookieWithMiddlewareOptions", "httpWithMiddlewareOptions", "server", "subscriptions", "incomingTransportOptions", "outgoingTransport", "wssOptions", "wssc", "error", "usersServerOptions", "usersOptions", "staticMiddlewareOptions", "middlewares", "templateMiddlewareOptions", "httpOptions", "_", "cookieOptions", "#initPromise", "asPromise", "inSite", "connect"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "insite-server",
3
- "version": "2.1.2",
3
+ "version": "2.1.4",
4
4
  "description": "inSite server",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,9 +25,9 @@
25
25
  "@nesvet/n": "^1.1.22",
26
26
  "insite-common": "^2.1.2",
27
27
  "insite-config": "^2.1.2",
28
- "insite-cookie": "^2.1.2",
28
+ "insite-cookie": "^2.1.3",
29
29
  "insite-db": "^2.1.2",
30
- "insite-http": "^2.1.2",
30
+ "insite-http": "^2.1.3",
31
31
  "insite-subscriptions-server": "^2.1.2",
32
32
  "insite-users-server": "^2.1.2",
33
33
  "insite-users-server-ws": "^2.1.2",