insite-server 2.0.18 → 2.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bun.lockb ADDED
Binary file
package/dist/InSite.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { CookieSetter } from "insite-cookie/server";
2
2
  import { SubscriptionHandler } from "insite-subscriptions-server/ws";
3
3
  import { IncomingTransport, OutgoingTransport } from "insite-ws-transfers/node";
4
+ import { StatefulPromise } from "@nesvet/n";
4
5
  import type { AbilitiesSchema } from "insite-common";
5
6
  import { type InSiteCollections, type InSiteDB, type MongoClient } from "insite-db";
6
7
  import { InSiteHTTPServer } from "insite-http";
@@ -8,7 +9,8 @@ import { Users } from "insite-users-server";
8
9
  import { UsersServer } from "insite-users-server-ws";
9
10
  import type { InSiteWebSocketServerWithActualProps, InSiteWithActualProps, Options } from "./types";
10
11
  export declare class InSite<AS extends AbilitiesSchema, O extends Options<AS>> {
11
- constructor(options: O);
12
+ #private;
13
+ constructor(options?: O);
12
14
  mongoClient: MongoClient;
13
15
  db: InSiteDB;
14
16
  collections: InSiteCollections;
@@ -21,8 +23,7 @@ export declare class InSite<AS extends AbilitiesSchema, O extends Options<AS>> {
21
23
  cookie: CookieSetter<AS>;
22
24
  http: InSiteHTTPServer;
23
25
  private init?;
24
- private initPromise;
25
- whenReady(): Promise<this>;
26
+ whenReady(): StatefulPromise<this>;
26
27
  static init<IO extends Options<any>, IAS extends AbilitiesSchema = IO extends Options<infer A> ? A : never>(options: IO, asPromise?: true): Promise<InSiteWithActualProps<InSite<IAS, IO>, IO>>;
27
28
  static init<IO extends Options<any>, IAS extends AbilitiesSchema = IO extends Options<infer A> ? A : never>(options: IO, asPromise?: false): InSiteWithActualProps<InSite<IAS, IO>, IO>;
28
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InSite.d.ts","sourceRoot":"","sources":["../src/InSite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0B,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAEN,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,gBAAgB,EAIhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAqB,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,oCAAoC,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMpG,qBAAa,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC,SAAS,OAAO,CAAC,EAAE,CAAC;gBACxD,OAAO,EAAE,CAAC;IAKtB,WAAW,EAAG,WAAW,CAAC;IAC1B,EAAE,EAAG,QAAQ,CAAC;IACd,WAAW,EAAG,iBAAiB,CAAC;IAChC,GAAG,EAAG,oCAAoC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClD,iBAAiB,EAAG,iBAAiB,CAAC;IACtC,iBAAiB,EAAG,iBAAiB,CAAC;IACtC,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,gBAAgB,CAAC;IAExB,OAAO,CAAC,IAAI,CAAC,CA2FX;IAEF,OAAO,CAAC,WAAW,CAAC;IAEpB,SAAS;IAKT,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,eAAe,GAAG,EAAE,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/L,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,eAAe,GAAG,EAAE,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;CASvL"}
1
+ {"version":3,"file":"InSite.d.ts","sourceRoot":"","sources":["../src/InSite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0B,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAEN,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,gBAAgB,EAIhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAqB,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,oCAAoC,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMpG,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,QAAQ,CAAC;IACd,WAAW,EAAG,iBAAiB,CAAC;IAChC,GAAG,EAAG,oCAAoC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClD,iBAAiB,EAAG,iBAAiB,CAAC;IACtC,iBAAiB,EAAG,iBAAiB,CAAC;IACtC,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,gBAAgB,CAAC;IAExB,OAAO,CAAC,IAAI,CAAC,CA4FX;IAIF,SAAS;IAKT,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,eAAe,GAAG,EAAE,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/L,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,eAAe,GAAG,EAAE,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;CASvL"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from "./InSite";
2
+ export { Options } from "./types";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{CookieSetter as d,InSiteCookieMiddleware as m}from"insite-cookie/server";import{SubscriptionHandler as u}from"insite-subscriptions-server/ws";import{InSiteWebSocketServer as I}from"insite-ws/server";import{IncomingTransport as O,OutgoingTransport as w}from"insite-ws-transfers/node";import{connect as A}from"insite-db";import{InSiteHTTPServer as f,InSiteStaticMiddleware as v,InSiteTemplateMiddleware as b}from"insite-http";import{Users as W}from"insite-users-server";import{UsersServer as g}from"insite-users-server-ws";var a=class h{constructor(i){this.initPromise=this.init(i)}mongoClient;db;collections;wss;incomingTransport;outgoingTransport;subscriptionHandler;usersServer;users;cookie;http;init=async i=>{let{db:n,wss:s,users:r,cookie:o,http:c}=i;if(n&&({client:this.mongoClient,db:this.db,collections:this.collections}=await A(n)),s){let{subscriptions:t,incomingTransport:e,outgoingTransport:l,...p}=s;this.wss=new I(p),t!==null&&(this.subscriptionHandler=new u(this.wss,!!this.collections)),e!==null&&(e||this.collections&&r)&&(this.incomingTransport=new O(this.wss,!e||e===!0?{}:e)),l&&(this.outgoingTransport=new w(this.wss)),process.env.NODE_ENV==="development"&&this.wss.on("client-connect",S=>console.info(`\u{1F50C} WebSocket connected with ${S.session?.user.email}`)),this.wss.on("error",S=>console.error("\u{1F50C}\u2757\uFE0F WebSocket Server:",S)),this.wss.on("close",()=>console.error("\u{1F50C}\u2757\uFE0F WebSocket Server closed"))}if(r&&this.collections){let{server:t,...e}=r;this.wss&&this.subscriptionHandler?(this.usersServer=await g.init({...t,users:e,wss:this.wss,collections:this.collections,incomingTransport:this.incomingTransport}),this.users=this.usersServer.users):this.users=await W.init(this.collections,e)}if(c){let{static:t=void 0,template:e=void 0,middlewares:l=void 0,...p}=typeof c=="object"?c:{};this.http=new f(p,[t!==null&&new v(t??{}),o!==null&&new m(o?.middleware??{}),e!==null&&new b(e??{}),...l??[]].filter(Boolean))}if(o!==null&&this.usersServer&&this.http){let{middleware:t,...e}=o??{};this.cookie=new d({...e,usersServer:this.usersServer})}return delete this.init,this};initPromise;whenReady(){return this.initPromise}static init(i,n=!0){let s=new h(i);return n?s.whenReady():s}};export{a as InSite};
1
+ import{CookieSetter as d,InSiteCookieMiddleware as m}from"insite-cookie/server";import{SubscriptionHandler as u}from"insite-subscriptions-server/ws";import{InSiteWebSocketServer as I}from"insite-ws/server";import{IncomingTransport as O,OutgoingTransport as w}from"insite-ws-transfers/node";import{StatefulPromise as A}from"@nesvet/n";import{connect as f}from"insite-db";import{InSiteHTTPServer as v,InSiteStaticMiddleware as b,InSiteTemplateMiddleware as W}from"insite-http";import{Users as g}from"insite-users-server";import{UsersServer as T}from"insite-users-server-ws";var a=class h{constructor(i){i&&this.init(i)}mongoClient;db;collections;wss;incomingTransport;outgoingTransport;subscriptionHandler;usersServer;users;cookie;http;init=async i=>{let{db:n,wss:s,users:r,cookie:o,http:c}=i;if(n&&({client:this.mongoClient,db:this.db,collections:this.collections}=await f(n)),s){let{subscriptions:t,incomingTransport:e,outgoingTransport:l,...p}=s;this.wss=new I(p),t!==null&&(this.subscriptionHandler=new u(this.wss,!!this.collections)),e!==null&&(e||this.collections&&r)&&(this.incomingTransport=new O(this.wss,!e||e===!0?{}:e)),l&&(this.outgoingTransport=new w(this.wss)),process.env.NODE_ENV==="development"&&this.wss.on("client-connect",S=>console.info(`\u{1F50C} WebSocket connected with ${S.session?.user.email}`)),this.wss.on("error",S=>console.error("\u{1F50C}\u2757\uFE0F WebSocket Server:",S)),this.wss.on("close",()=>console.error("\u{1F50C}\u2757\uFE0F WebSocket Server closed"))}if(r&&this.collections){let{server:t,...e}=r;this.wss&&this.subscriptionHandler?(this.usersServer=await T.init({...t,users:e,wss:this.wss,collections:this.collections,incomingTransport:this.incomingTransport}),this.users=this.usersServer.users):this.users=await g.init(this.collections,e)}if(c){let{static:t=void 0,template:e=void 0,middlewares:l=void 0,...p}=typeof c=="object"?c:{};this.http=new v(p,[t!==null&&new b(t??{}),o!==null&&new m(o?.middleware??{}),e!==null&&new W(e??{}),...l??[]].filter(Boolean))}if(o!==null&&this.usersServer&&this.http){let{middleware:t,...e}=o??{};this.cookie=new d({...e,usersServer:this.usersServer})}delete this.init,this.#e.resolve(this)};#e=new A;whenReady(){return this.#e}static init(i,n=!0){let s=new h(i);return n?s.whenReady():s}};export{a as InSite};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/InSite.ts"],
4
- "sourcesContent": ["import { CookieSetter, InSiteCookieMiddleware } from \"insite-cookie/server\";\nimport { SubscriptionHandler } from \"insite-subscriptions-server/ws\";\nimport { InSiteWebSocketServer } from \"insite-ws/server\";\nimport { IncomingTransport, OutgoingTransport } from \"insite-ws-transfers/node\";\nimport type { AbilitiesSchema } from \"insite-common\";\nimport {\n\tconnect,\n\ttype InSiteCollections,\n\ttype InSiteDB,\n\ttype MongoClient\n} from \"insite-db\";\nimport {\n\tInSiteHTTPServer,\n\tInSiteServerMiddleware,\n\tInSiteStaticMiddleware,\n\tInSiteTemplateMiddleware\n} from \"insite-http\";\nimport { Users } from \"insite-users-server\";\nimport { UsersServer, type WSSCWithUser } from \"insite-users-server-ws\";\nimport type { InSiteWebSocketServerWithActualProps, InSiteWithActualProps, Options } from \"./types\";\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\nexport class InSite<AS extends AbilitiesSchema, O extends Options<AS>> {\n\tconstructor(options: O) {\n\t\tthis.initPromise = this.init!(options);\n\t\t\n\t}\n\t\n\tmongoClient!: MongoClient;\n\tdb!: InSiteDB;\n\tcollections!: InSiteCollections;\n\twss!: InSiteWebSocketServerWithActualProps<AS, O>;\n\tincomingTransport!: IncomingTransport;\n\toutgoingTransport!: OutgoingTransport;\n\tsubscriptionHandler!: SubscriptionHandler<AS>;\n\tusersServer!: UsersServer<AS>;\n\tusers!: Users<AS>;\n\tcookie!: CookieSetter<AS>;\n\thttp!: InSiteHTTPServer;\n\t\n\tprivate init? = async (options: O) => {\n\t\t\n\t\tconst {\n\t\t\tdb: dbOptions,\n\t\t\twss: wssWithOtherOptions,\n\t\t\tusers: usersWithServerOptions,\n\t\t\tcookie: cookieWithMiddlewareOptions,\n\t\t\thttp: httpWithMiddlewareOptions\n\t\t} = options;\n\t\t\n\t\tif (dbOptions)\n\t\t\t({\n\t\t\t\tclient: this.mongoClient,\n\t\t\t\tdb: this.db,\n\t\t\t\tcollections: this.collections\n\t\t\t} = await connect(dbOptions));\n\t\t\n\t\tif (wssWithOtherOptions) {\n\t\t\tconst {\n\t\t\t\tsubscriptions,\n\t\t\t\tincomingTransport: incomingTransportOptions,\n\t\t\t\toutgoingTransport,\n\t\t\t\t...wssOptions\n\t\t\t} = wssWithOtherOptions;\n\t\t\t\n\t\t\tthis.wss = new InSiteWebSocketServer<WSSCWithUser<AS>>(wssOptions) as InSiteWebSocketServerWithActualProps<AS, O>;\n\t\t\t\n\t\t\tif (subscriptions !== null)\n\t\t\t\tthis.subscriptionHandler = new SubscriptionHandler(this.wss, !!this.collections);\n\t\t\t\n\t\t\tif (incomingTransportOptions !== null && (incomingTransportOptions || (this.collections && usersWithServerOptions)))\n\t\t\t\tthis.incomingTransport = new IncomingTransport(this.wss, !incomingTransportOptions || incomingTransportOptions === true ? {} : incomingTransportOptions);\n\t\t\t\n\t\t\tif (outgoingTransport)\n\t\t\t\tthis.outgoingTransport = new OutgoingTransport(this.wss);\n\t\t\t\n\t\t\tif (process.env.NODE_ENV === \"development\")\n\t\t\t\tthis.wss.on(\"client-connect\", wssc => console.info(`\uD83D\uDD0C WebSocket connected with ${wssc.session?.user.email}`));\n\t\t\t\n\t\t\tthis.wss.on(\"error\", (error: Error) => console.error(\"\uD83D\uDD0C\u2757\uFE0F WebSocket Server:\", error));\n\t\t\tthis.wss.on(\"close\", () => console.error(\"\uD83D\uDD0C\u2757\uFE0F WebSocket Server closed\"));\n\t\t}\n\t\t\n\t\tif (usersWithServerOptions && this.collections) {\n\t\t\tconst { server: usersServerOptions, ...usersOptions } = usersWithServerOptions;\n\t\t\t\n\t\t\tif (this.wss && this.subscriptionHandler) {\n\t\t\t\tthis.usersServer = await UsersServer.init({\n\t\t\t\t\t...usersServerOptions,\n\t\t\t\t\tusers: usersOptions,\n\t\t\t\t\twss: this.wss,\n\t\t\t\t\tcollections: this.collections,\n\t\t\t\t\tincomingTransport: this.incomingTransport\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tthis.users = this.usersServer.users;\n\t\t\t} else\n\t\t\t\tthis.users = await Users.init(this.collections, usersOptions);\n\t\t}\n\t\t\n\t\tif (httpWithMiddlewareOptions) {\n\t\t\tconst {\n\t\t\t\tstatic: staticMiddlewareOptions = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\ttemplate: templateMiddlewareOptions = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\tmiddlewares = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\t...httpOptions\n\t\t\t} = typeof httpWithMiddlewareOptions == \"object\" ? httpWithMiddlewareOptions : {};\n\t\t\t\n\t\t\tthis.http = new InSiteHTTPServer(httpOptions, [\n\t\t\t\tstaticMiddlewareOptions !== null && new InSiteStaticMiddleware(staticMiddlewareOptions ?? {}),\n\t\t\t\tcookieWithMiddlewareOptions !== null && new InSiteCookieMiddleware(cookieWithMiddlewareOptions?.middleware ?? {}),\n\t\t\t\ttemplateMiddlewareOptions !== null && new InSiteTemplateMiddleware(templateMiddlewareOptions ?? {}),\n\t\t\t\t...middlewares ?? []\n\t\t\t].filter(Boolean) as InSiteServerMiddleware[]);\n\t\t}\n\t\t\n\t\tif (cookieWithMiddlewareOptions !== null && this.usersServer && this.http) {\n\t\t\tconst {\n\t\t\t\tmiddleware: _,\n\t\t\t\t...cookieOptions\n\t\t\t} = cookieWithMiddlewareOptions ?? {};\n\t\t\t\n\t\t\tthis.cookie = new CookieSetter<AS>({\n\t\t\t\t...cookieOptions,\n\t\t\t\tusersServer: this.usersServer\n\t\t\t});\n\t\t}\n\t\t\n\t\tdelete this.init;\n\t\t\n\t\treturn this;\n\t};\n\t\n\tprivate initPromise;\n\t\n\twhenReady() {\n\t\treturn this.initPromise;\n\t}\n\t\n\t\n\tstatic init<IO extends Options<any>, IAS extends AbilitiesSchema = IO extends Options<infer A> ? A : never>(options: IO, asPromise?: true): Promise<InSiteWithActualProps<InSite<IAS, IO>, IO>>;\n\tstatic init<IO extends Options<any>, IAS extends AbilitiesSchema = IO extends Options<infer A> ? A : never>(options: IO, asPromise?: false): InSiteWithActualProps<InSite<IAS, IO>, IO>;\n\tstatic init<IO extends Options<any>, IAS extends AbilitiesSchema = IO extends Options<infer A> ? A : never>(options: IO, asPromise = true) {\n\t\tconst inSite = new InSite(options);\n\t\t\n\t\treturn asPromise ?\n\t\t\tinSite.whenReady() as Promise<InSiteWithActualProps<InSite<IAS, IO>, IO>> :\n\t\t\tinSite as InSiteWithActualProps<InSite<IAS, IO>, IO>;\n\t}\n\t\n}\n"],
5
- "mappings": "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",
6
- "names": ["CookieSetter", "InSiteCookieMiddleware", "SubscriptionHandler", "InSiteWebSocketServer", "IncomingTransport", "OutgoingTransport", "connect", "InSiteHTTPServer", "InSiteStaticMiddleware", "InSiteTemplateMiddleware", "Users", "UsersServer", "InSite", "_InSite", "options", "dbOptions", "wssWithOtherOptions", "usersWithServerOptions", "cookieWithMiddlewareOptions", "httpWithMiddlewareOptions", "subscriptions", "incomingTransportOptions", "outgoingTransport", "wssOptions", "wssc", "error", "usersServerOptions", "usersOptions", "staticMiddlewareOptions", "templateMiddlewareOptions", "middlewares", "httpOptions", "_", "cookieOptions", "asPromise", "inSite"]
4
+ "sourcesContent": ["import { CookieSetter, InSiteCookieMiddleware } from \"insite-cookie/server\";\nimport { SubscriptionHandler } from \"insite-subscriptions-server/ws\";\nimport { InSiteWebSocketServer } from \"insite-ws/server\";\nimport { IncomingTransport, OutgoingTransport } from \"insite-ws-transfers/node\";\nimport { StatefulPromise } from \"@nesvet/n\";\nimport type { AbilitiesSchema } from \"insite-common\";\nimport {\n\tconnect,\n\ttype InSiteCollections,\n\ttype InSiteDB,\n\ttype MongoClient\n} from \"insite-db\";\nimport {\n\tInSiteHTTPServer,\n\tInSiteServerMiddleware,\n\tInSiteStaticMiddleware,\n\tInSiteTemplateMiddleware\n} from \"insite-http\";\nimport { Users } from \"insite-users-server\";\nimport { UsersServer, type WSSCWithUser } from \"insite-users-server-ws\";\nimport type { InSiteWebSocketServerWithActualProps, InSiteWithActualProps, Options } from \"./types\";\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\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!: InSiteDB;\n\tcollections!: InSiteCollections;\n\twss!: InSiteWebSocketServerWithActualProps<AS, O>;\n\tincomingTransport!: IncomingTransport;\n\toutgoingTransport!: OutgoingTransport;\n\tsubscriptionHandler!: SubscriptionHandler<AS>;\n\tusersServer!: UsersServer<AS>;\n\tusers!: Users<AS>;\n\tcookie!: CookieSetter<AS>;\n\thttp!: InSiteHTTPServer;\n\t\n\tprivate init? = async (options: O) => {\n\t\t\n\t\tconst {\n\t\t\tdb: dbOptions,\n\t\t\twss: wssWithOtherOptions,\n\t\t\tusers: usersWithServerOptions,\n\t\t\tcookie: cookieWithMiddlewareOptions,\n\t\t\thttp: httpWithMiddlewareOptions\n\t\t} = options;\n\t\t\n\t\tif (dbOptions)\n\t\t\t({\n\t\t\t\tclient: this.mongoClient,\n\t\t\t\tdb: this.db,\n\t\t\t\tcollections: this.collections\n\t\t\t} = await connect(dbOptions));\n\t\t\n\t\tif (wssWithOtherOptions) {\n\t\t\tconst {\n\t\t\t\tsubscriptions,\n\t\t\t\tincomingTransport: incomingTransportOptions,\n\t\t\t\toutgoingTransport,\n\t\t\t\t...wssOptions\n\t\t\t} = wssWithOtherOptions;\n\t\t\t\n\t\t\tthis.wss = new InSiteWebSocketServer<WSSCWithUser<AS>>(wssOptions) as InSiteWebSocketServerWithActualProps<AS, O>;\n\t\t\t\n\t\t\tif (subscriptions !== null)\n\t\t\t\tthis.subscriptionHandler = new SubscriptionHandler(this.wss, !!this.collections);\n\t\t\t\n\t\t\tif (incomingTransportOptions !== null && (incomingTransportOptions || (this.collections && usersWithServerOptions)))\n\t\t\t\tthis.incomingTransport = new IncomingTransport(this.wss, !incomingTransportOptions || incomingTransportOptions === true ? {} : incomingTransportOptions);\n\t\t\t\n\t\t\tif (outgoingTransport)\n\t\t\t\tthis.outgoingTransport = new OutgoingTransport(this.wss);\n\t\t\t\n\t\t\tif (process.env.NODE_ENV === \"development\")\n\t\t\t\tthis.wss.on(\"client-connect\", wssc => console.info(`\uD83D\uDD0C WebSocket connected with ${wssc.session?.user.email}`));\n\t\t\t\n\t\t\tthis.wss.on(\"error\", (error: Error) => console.error(\"\uD83D\uDD0C\u2757\uFE0F WebSocket Server:\", error));\n\t\t\tthis.wss.on(\"close\", () => console.error(\"\uD83D\uDD0C\u2757\uFE0F WebSocket Server closed\"));\n\t\t}\n\t\t\n\t\tif (usersWithServerOptions && this.collections) {\n\t\t\tconst { server: usersServerOptions, ...usersOptions } = usersWithServerOptions;\n\t\t\t\n\t\t\tif (this.wss && this.subscriptionHandler) {\n\t\t\t\tthis.usersServer = await UsersServer.init({\n\t\t\t\t\t...usersServerOptions,\n\t\t\t\t\tusers: usersOptions,\n\t\t\t\t\twss: this.wss,\n\t\t\t\t\tcollections: this.collections,\n\t\t\t\t\tincomingTransport: this.incomingTransport\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tthis.users = this.usersServer.users;\n\t\t\t} else\n\t\t\t\tthis.users = await Users.init(this.collections, usersOptions);\n\t\t}\n\t\t\n\t\tif (httpWithMiddlewareOptions) {\n\t\t\tconst {\n\t\t\t\tstatic: staticMiddlewareOptions = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\ttemplate: templateMiddlewareOptions = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\tmiddlewares = undefined, // eslint-disable-line unicorn/no-useless-undefined\n\t\t\t\t...httpOptions\n\t\t\t} = typeof httpWithMiddlewareOptions == \"object\" ? httpWithMiddlewareOptions : {};\n\t\t\t\n\t\t\tthis.http = new InSiteHTTPServer(httpOptions, [\n\t\t\t\tstaticMiddlewareOptions !== null && new InSiteStaticMiddleware(staticMiddlewareOptions ?? {}),\n\t\t\t\tcookieWithMiddlewareOptions !== null && new InSiteCookieMiddleware(cookieWithMiddlewareOptions?.middleware ?? {}),\n\t\t\t\ttemplateMiddlewareOptions !== null && new InSiteTemplateMiddleware(templateMiddlewareOptions ?? {}),\n\t\t\t\t...middlewares ?? []\n\t\t\t].filter(Boolean) as InSiteServerMiddleware[]);\n\t\t}\n\t\t\n\t\tif (cookieWithMiddlewareOptions !== null && this.usersServer && this.http) {\n\t\t\tconst {\n\t\t\t\tmiddleware: _,\n\t\t\t\t...cookieOptions\n\t\t\t} = cookieWithMiddlewareOptions ?? {};\n\t\t\t\n\t\t\tthis.cookie = new CookieSetter<AS>({\n\t\t\t\t...cookieOptions,\n\t\t\t\tusersServer: this.usersServer\n\t\t\t});\n\t\t}\n\t\t\n\t\tdelete this.init;\n\t\t\n\t\tthis.#initPromise.resolve(this);\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<IO extends Options<any>, IAS extends AbilitiesSchema = IO extends Options<infer A> ? A : never>(options: IO, asPromise?: true): Promise<InSiteWithActualProps<InSite<IAS, IO>, IO>>;\n\tstatic init<IO extends Options<any>, IAS extends AbilitiesSchema = IO extends Options<infer A> ? A : never>(options: IO, asPromise?: false): InSiteWithActualProps<InSite<IAS, IO>, IO>;\n\tstatic init<IO extends Options<any>, IAS extends AbilitiesSchema = IO extends Options<infer A> ? A : never>(options: IO, asPromise = true) {\n\t\tconst inSite = new InSite(options);\n\t\t\n\t\treturn asPromise ?\n\t\t\tinSite.whenReady() as Promise<InSiteWithActualProps<InSite<IAS, IO>, IO>> :\n\t\t\tinSite as InSiteWithActualProps<InSite<IAS, IO>, IO>;\n\t}\n\t\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["CookieSetter", "InSiteCookieMiddleware", "SubscriptionHandler", "InSiteWebSocketServer", "IncomingTransport", "OutgoingTransport", "StatefulPromise", "connect", "InSiteHTTPServer", "InSiteStaticMiddleware", "InSiteTemplateMiddleware", "Users", "UsersServer", "InSite", "_InSite", "options", "dbOptions", "wssWithOtherOptions", "usersWithServerOptions", "cookieWithMiddlewareOptions", "httpWithMiddlewareOptions", "subscriptions", "incomingTransportOptions", "outgoingTransport", "wssOptions", "wssc", "error", "usersServerOptions", "usersOptions", "staticMiddlewareOptions", "templateMiddlewareOptions", "middlewares", "httpOptions", "_", "cookieOptions", "#initPromise", "asPromise", "inSite"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "insite-server",
3
- "version": "2.0.18",
3
+ "version": "2.0.20",
4
4
  "description": "inSite server",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",