@entity-access/server-pages 1.0.29 → 1.0.30

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.
Files changed (63) hide show
  1. package/.vscode/settings.json +1 -0
  2. package/dist/Content.d.ts +6 -6
  3. package/dist/Content.d.ts.map +1 -1
  4. package/dist/Content.js +21 -37
  5. package/dist/Content.js.map +1 -1
  6. package/dist/Page.d.ts +11 -40
  7. package/dist/Page.d.ts.map +1 -1
  8. package/dist/Page.js +5 -3
  9. package/dist/Page.js.map +1 -1
  10. package/dist/ServerPages.d.ts +11 -5
  11. package/dist/ServerPages.d.ts.map +1 -1
  12. package/dist/ServerPages.js +102 -81
  13. package/dist/ServerPages.js.map +1 -1
  14. package/dist/core/LocalFile.d.ts +2 -1
  15. package/dist/core/LocalFile.d.ts.map +1 -1
  16. package/dist/core/LocalFile.js +8 -0
  17. package/dist/core/LocalFile.js.map +1 -1
  18. package/dist/core/RouteTree.js +1 -1
  19. package/dist/core/RouteTree.js.map +1 -1
  20. package/dist/core/SessionUser.d.ts +2 -2
  21. package/dist/core/SessionUser.d.ts.map +1 -1
  22. package/dist/core/SessionUser.js.map +1 -1
  23. package/dist/core/Wrapped.d.ts +70 -0
  24. package/dist/core/Wrapped.d.ts.map +1 -0
  25. package/dist/core/Wrapped.js +253 -0
  26. package/dist/core/Wrapped.js.map +1 -0
  27. package/dist/core/cached.d.ts +2 -0
  28. package/dist/core/cached.d.ts.map +1 -0
  29. package/dist/core/cached.js +3 -0
  30. package/dist/core/cached.js.map +1 -0
  31. package/dist/decorators/Authorize.d.ts +2 -0
  32. package/dist/decorators/Authorize.d.ts.map +1 -0
  33. package/dist/decorators/Authorize.js +3 -0
  34. package/dist/decorators/Authorize.js.map +1 -0
  35. package/dist/parsers/json/jsonParser.d.ts +2 -0
  36. package/dist/parsers/json/jsonParser.d.ts.map +1 -0
  37. package/dist/parsers/json/jsonParser.js +3 -0
  38. package/dist/parsers/json/jsonParser.js.map +1 -0
  39. package/dist/services/CookieService.d.ts +3 -3
  40. package/dist/services/CookieService.d.ts.map +1 -1
  41. package/dist/services/CookieService.js +2 -4
  42. package/dist/services/CookieService.js.map +1 -1
  43. package/dist/ssl/SelfSigned.d.ts +7 -0
  44. package/dist/ssl/SelfSigned.d.ts.map +1 -0
  45. package/dist/ssl/SelfSigned.js +62 -0
  46. package/dist/ssl/SelfSigned.js.map +1 -0
  47. package/dist/tsconfig.tsbuildinfo +1 -1
  48. package/package.json +3 -6
  49. package/self-signed/cert.crt +22 -0
  50. package/self-signed/key.pem +27 -0
  51. package/src/Content.tsx +28 -43
  52. package/src/Page.tsx +18 -62
  53. package/src/ServerPages.ts +114 -76
  54. package/src/core/LocalFile.ts +11 -2
  55. package/src/core/RouteTree.ts +1 -1
  56. package/src/core/SessionUser.ts +2 -2
  57. package/src/core/Wrapped.ts +359 -0
  58. package/src/core/cached.ts +3 -0
  59. package/src/decorators/Authorize.ts +3 -0
  60. package/src/parsers/json/jsonParser.ts +3 -0
  61. package/src/services/CookieService.ts +4 -6
  62. package/src/ssl/SelfSigned.ts +78 -0
  63. package/test.js +1 -3
@@ -42,6 +42,7 @@
42
42
  "mailparser",
43
43
  "Millis",
44
44
  "mutler",
45
+ "Navi",
45
46
  "neurospeech",
46
47
  "nvarchar",
47
48
  "PGDATABASE",
package/dist/Content.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import { Response } from "express";
3
2
  import XNode from "./html/XNode.js";
4
3
  import { LocalFile } from "./core/LocalFile.js";
5
4
  import SessionUser from "./core/SessionUser.js";
5
+ import { WrappedResponse } from "./core/Wrapped.js";
6
6
  export interface IPageResult {
7
- send(res: Response): Promise<any>;
7
+ send(res: WrappedResponse): Promise<any>;
8
8
  }
9
9
  export declare class TempFileResult implements IPageResult {
10
10
  private file;
@@ -14,7 +14,7 @@ export declare class TempFileResult implements IPageResult {
14
14
  etag: boolean;
15
15
  immutable: boolean;
16
16
  constructor(file: LocalFile, { contentDisposition, cacheControl, maxAge, etag, immutable }?: Partial<TempFileResult>);
17
- send(res: Response<any, Record<string, any>>): Promise<void>;
17
+ send(res: WrappedResponse): Promise<void>;
18
18
  }
19
19
  export declare class FileResult implements IPageResult {
20
20
  private filePath;
@@ -25,13 +25,13 @@ export declare class FileResult implements IPageResult {
25
25
  immutable: boolean;
26
26
  private fileName;
27
27
  constructor(filePath: string, { contentDisposition, cacheControl, maxAge, etag, immutable }?: Partial<FileResult>);
28
- send(res: Response<any, Record<string, any>>): Promise<void>;
28
+ send(res: WrappedResponse): Promise<void>;
29
29
  }
30
30
  export declare class Redirect implements IPageResult {
31
31
  location: string;
32
32
  status: number;
33
33
  constructor(location: string, status?: number);
34
- send(res: Response): Promise<void>;
34
+ send(res: WrappedResponse): Promise<void>;
35
35
  }
36
36
  export default class Content implements IPageResult {
37
37
  static json(json: any, status?: number): Content;
@@ -41,6 +41,6 @@ export default class Content implements IPageResult {
41
41
  contentType: string;
42
42
  body: string | Buffer | Blob | XNode;
43
43
  private constructor();
44
- send(res: Response, user?: SessionUser): Promise<void>;
44
+ send(res: WrappedResponse, user?: SessionUser): Promise<void>;
45
45
  }
46
46
  //# sourceMappingURL=Content.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Content.d.ts","sourceRoot":"","sources":["../src/Content.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,MAAM,iBAAiB,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAEhD,MAAM,WAAW,WAAW;IACxB,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACrC;AAED,qBAAa,cAAe,YAAW,WAAW;IAQ1C,OAAO,CAAC,IAAI;IANT,kBAAkB,EAAE,QAAQ,GAAG,YAAY,CAAY;IACvD,YAAY,UAAQ;IACpB,MAAM,SAAW;IACjB,IAAI,UAAS;IACb,SAAS,UAAS;gBAEb,IAAI,EAAE,SAAS,EACvB,EACI,kBAA6B,EAC7B,YAAmB,EACnB,MAAgB,EAChB,IAAY,EACZ,SAAiB,EACpB,GAAE,OAAO,CAAC,cAAc,CAAM;IASnC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAuB/C;AAED,qBAAa,UAAW,YAAW,WAAW;IAStC,OAAO,CAAC,QAAQ;IAPb,kBAAkB,EAAE,QAAQ,GAAG,YAAY,CAAY;IACvD,YAAY,UAAQ;IACpB,MAAM,SAAW;IACjB,IAAI,UAAS;IACb,SAAS,UAAS;IACzB,OAAO,CAAC,QAAQ,CAAC;gBAEL,QAAQ,EAAE,MAAM,EACxB,EACI,kBAA6B,EAC7B,YAAmB,EACnB,MAAgB,EAChB,IAAY,EACZ,SAAiB,EACpB,GAAE,OAAO,CAAC,UAAU,CAAM;IAW/B,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAmB/C;AAED,qBAAa,QAAS,YAAW,WAAW;IAErB,QAAQ,EAAE,MAAM;IAAS,MAAM;gBAA/B,QAAQ,EAAE,MAAM,EAAS,MAAM,SAAM;IAIlD,IAAI,CAAC,GAAG,EAAE,QAAQ;CAI3B;AAED,MAAM,CAAC,OAAO,OAAO,OAAQ,YAAW,WAAW;WAEjC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,SAAM;WAQ5B,IAAI,CAAC,IAAI,KAAA,EAAE,MAAM,SAAM;WAQvB,MAAM,CAChB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;IAMnB,MAAM,EAAE,MAAM,CAAC;IAEf,WAAW,EAAE,MAAM,CAAC;IAEpB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAE5C,OAAO;IAOM,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,WAAW;CA2BtD"}
1
+ {"version":3,"file":"Content.d.ts","sourceRoot":"","sources":["../src/Content.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,iBAAiB,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,WAAW;IACxB,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC5C;AAED,qBAAa,cAAe,YAAW,WAAW;IAQ1C,OAAO,CAAC,IAAI;IANT,kBAAkB,EAAE,QAAQ,GAAG,YAAY,CAAY;IACvD,YAAY,UAAQ;IACpB,MAAM,SAAW;IACjB,IAAI,UAAS;IACb,SAAS,UAAS;gBAEb,IAAI,EAAE,SAAS,EACvB,EACI,kBAA6B,EAC7B,YAAmB,EACnB,MAAgB,EAChB,IAAY,EACZ,SAAiB,EACpB,GAAE,OAAO,CAAC,cAAc,CAAM;IASnC,IAAI,CAAC,GAAG,EAAE,eAAe;CAe5B;AAED,qBAAa,UAAW,YAAW,WAAW;IAStC,OAAO,CAAC,QAAQ;IAPb,kBAAkB,EAAE,QAAQ,GAAG,YAAY,CAAY;IACvD,YAAY,UAAQ;IACpB,MAAM,SAAW;IACjB,IAAI,UAAS;IACb,SAAS,UAAS;IACzB,OAAO,CAAC,QAAQ,CAAC;gBAEL,QAAQ,EAAE,MAAM,EACxB,EACI,kBAA6B,EAC7B,YAAmB,EACnB,MAAgB,EAChB,IAAY,EACZ,SAAiB,EACpB,GAAE,OAAO,CAAC,UAAU,CAAM;IAW/B,IAAI,CAAC,GAAG,EAAE,eAAe;CAY5B;AAED,qBAAa,QAAS,YAAW,WAAW;IAErB,QAAQ,EAAE,MAAM;IAAS,MAAM;gBAA/B,QAAQ,EAAE,MAAM,EAAS,MAAM,SAAM;IAIlD,IAAI,CAAC,GAAG,EAAE,eAAe;CAIlC;AAED,MAAM,CAAC,OAAO,OAAO,OAAQ,YAAW,WAAW;WAEjC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,SAAM;WAQ5B,IAAI,CAAC,IAAI,KAAA,EAAE,MAAM,SAAM;WAQvB,MAAM,CAChB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;IAMnB,MAAM,EAAE,MAAM,CAAC;IAEf,WAAW,EAAE,MAAM,CAAC;IAEpB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAE5C,OAAO;IAOM,IAAI,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,WAAW;CA2B7D"}
package/dist/Content.js CHANGED
@@ -15,25 +15,17 @@ export class TempFileResult {
15
15
  this.immutable = immutable;
16
16
  }
17
17
  send(res) {
18
- return new Promise((resolve, reject) => {
19
- res = res.header("content-disposition", `${this.contentDisposition};filename=${encodeURIComponent(this.file.fileName)}`);
20
- res.sendFile(this.file.path, {
21
- headers: {
22
- "content-type": this.file.contentType
23
- },
24
- acceptRanges: true,
25
- cacheControl: this.cacheControl,
26
- maxAge: this.maxAge,
27
- etag: this.etag,
28
- immutable: this.immutable,
29
- lastModified: false
30
- }, (error) => {
31
- if (error) {
32
- reject(error);
33
- return;
34
- }
35
- resolve();
36
- });
18
+ res.setHeader("content-disposition", `${this.contentDisposition};filename=${encodeURIComponent(this.file.fileName)}`);
19
+ return res.sendFile(this.file.path, {
20
+ headers: {
21
+ "content-type": this.file.contentType
22
+ },
23
+ acceptRanges: true,
24
+ cacheControl: this.cacheControl,
25
+ maxAge: this.maxAge,
26
+ etag: this.etag,
27
+ immutable: this.immutable,
28
+ lastModified: false
37
29
  });
38
30
  }
39
31
  }
@@ -54,21 +46,13 @@ export class FileResult {
54
46
  this.fileName = parsed.base;
55
47
  }
56
48
  send(res) {
57
- return new Promise((resolve, reject) => {
58
- res = res.header("content-disposition", `${this.contentDisposition};filename=${encodeURIComponent(this.fileName)}`);
59
- res.sendFile(this.filePath, {
60
- acceptRanges: true,
61
- cacheControl: this.cacheControl,
62
- maxAge: this.maxAge,
63
- etag: this.etag,
64
- immutable: this.immutable
65
- }, (error) => {
66
- if (error) {
67
- reject(error);
68
- return;
69
- }
70
- resolve();
71
- });
49
+ res.setHeader("content-disposition", `${this.contentDisposition};filename=${encodeURIComponent(this.fileName)}`);
50
+ return res.sendFile(this.filePath, {
51
+ acceptRanges: true,
52
+ cacheControl: this.cacheControl,
53
+ maxAge: this.maxAge,
54
+ etag: this.etag,
55
+ immutable: this.immutable
72
56
  });
73
57
  }
74
58
  }
@@ -78,7 +62,7 @@ export class Redirect {
78
62
  this.status = status;
79
63
  }
80
64
  async send(res) {
81
- res.redirect(this.status, this.location);
65
+ return res.sendRedirect(this.location);
82
66
  }
83
67
  }
84
68
  export default class Content {
@@ -107,8 +91,8 @@ export default class Content {
107
91
  }
108
92
  async send(res, user) {
109
93
  const { status, body, contentType } = this;
110
- const r = res.setHeader("content-type", contentType)
111
- .status(status);
94
+ res.setHeader("content-type", contentType);
95
+ res.statusCode = status;
112
96
  if (typeof body === "string") {
113
97
  if (status >= 300) {
114
98
  const u = user ? `User: ${user.userID},${user.userName}` : "User: Anonymous";
@@ -1 +1 @@
1
- {"version":3,"file":"Content.js","sourceRoot":"","sources":["../src/Content.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Content.js","sourceRoot":"","sources":["../src/Content.tsx"],"names":[],"mappings":"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"}
package/dist/Page.d.ts CHANGED
@@ -2,49 +2,15 @@
2
2
  import Content, { IPageResult, Redirect } from "./Content.js";
3
3
  import { LocalFile } from "./core/LocalFile.js";
4
4
  import SessionUser from "./core/SessionUser.js";
5
+ import { WrappedRequest, WrappedResponse } from "./core/Wrapped.js";
6
+ import { ServiceProvider } from "@entity-access/entity-access/dist/di/di.js";
5
7
  export declare const isPage: unique symbol;
6
8
  export interface IRouteCheck {
9
+ scope: ServiceProvider;
7
10
  method: string;
8
11
  current: string;
9
12
  path: string[];
10
- sessionUser: SessionUser;
11
- params: any;
12
- }
13
- export interface IPageContext {
14
- /**
15
- * path till the current folder where this page is located, including the name of current folder itself.
16
- */
17
- currentPath: string[];
18
- /**
19
- * Path to the next children to be precessed.
20
- */
21
- childPath: string[];
22
- /**
23
- * Query string if associated, empty object is always present.
24
- */
25
- query: any;
26
- body: any;
27
- url: string;
28
- signal: AbortSignal;
29
- /**
30
- * Request
31
- */
32
- /**
33
- * Response
34
- */
35
- /**
36
- * Request method
37
- */
38
- method: string;
39
- /**
40
- * Currently logged in user
41
- */
42
- sessionUser: SessionUser;
43
- /**
44
- * Actual file path of the page
45
- */
46
- filePath: string;
47
- disposables: Disposable[];
13
+ request: WrappedRequest;
48
14
  }
49
15
  export interface IFormData {
50
16
  fields: {
@@ -55,14 +21,19 @@ export interface IFormData {
55
21
  /**
56
22
  * Page should not contain any reference to underlying request/response objects.
57
23
  */
58
- export default class Page implements IPageContext {
24
+ export default class Page {
59
25
  static [isPage]: boolean;
60
26
  /**
61
27
  * This static method determines if the path can be handled by this page or not.
62
28
  * @param pageContext page related items
63
29
  * @returns true if it can handle the path, default is true
64
30
  */
65
- static canHandle(pageContext: IRouteCheck): boolean;
31
+ static canHandle(pageContext: IRouteCheck): boolean | Promise<boolean>;
32
+ request: WrappedRequest;
33
+ response: WrappedResponse;
34
+ get params(): {
35
+ [key: string]: string;
36
+ };
66
37
  signal: AbortSignal;
67
38
  currentPath: string[];
68
39
  childPath: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../src/Page.tsx"],"names":[],"mappings":";AAGA,OAAO,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG9D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAEhD,eAAO,MAAM,MAAM,eAAmB,CAAC;AAGvC,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IAOpB;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC;IAEX,IAAI,EAAE,GAAG,CAAC;IAEV,GAAG,EAAE,MAAM,CAAC;IAEZ,MAAM,EAAC,WAAW,CAAC;IACnB;;OAEG;IAEH;;OAEG;IAGH;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;IACjC,KAAK,EAAE,SAAS,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,IAAK,YAAW,YAAY;IAE7C,MAAM,CAAC,CAAC,MAAM,CAAC,UAAQ;IAGvB;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,WAAW;IAIzC,MAAM,EAAE,WAAW,CAAC;IAEpB,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,KAAK,EAAE,GAAG,CAAC;IAEX,IAAI,EAAE,GAAG,CAAC;IAEV,GAAG,EAAE,MAAM,CAAC;IAMZ,MAAM,EAAE,MAAM,CAAC;IAEf,WAAW,EAAE,WAAW,CAAC;IAEzB,QAAQ,EAAE,MAAM,CAAC;IAEjB,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,UAAU,EAAE,CAAM;IAE/B,OAAO,CAAC,eAAe,CAAC;;IAMxB,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpD,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAqClC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAM,EAAE,WAAW,SAAc;IAIvE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,SAAI;IAOjC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAInC,SAAS,CAAC,QAAQ,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAchD,SAAS,CAAC,WAAW,CAAC,KAAK,KAAA,EAAE,MAAM,SAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAczE"}
1
+ {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../src/Page.tsx"],"names":[],"mappings":";AAGA,OAAO,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAE7E,eAAO,MAAM,MAAM,eAAmB,CAAC;AAGvC,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;IACjC,KAAK,EAAE,SAAS,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,IAAI;IAErB,MAAM,CAAC,CAAC,MAAM,CAAC,UAAQ;IAGvB;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,WAAW,GAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE,OAAO,EAAE,cAAc,CAAC;IAExB,QAAQ,EAAE,eAAe,CAAC;IAE1B,IAAI,MAAM;;MAET;IAED,MAAM,EAAE,WAAW,CAAC;IAEpB,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,KAAK,EAAE,GAAG,CAAC;IAEX,IAAI,EAAE,GAAG,CAAC;IAEV,GAAG,EAAE,MAAM,CAAC;IAMZ,MAAM,EAAE,MAAM,CAAC;IAEf,WAAW,EAAE,WAAW,CAAC;IAEzB,QAAQ,EAAE,MAAM,CAAC;IAEjB,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,UAAU,EAAE,CAAM;IAE/B,OAAO,CAAC,eAAe,CAAqB;;IAM5C,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpD,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAqClC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAM,EAAE,WAAW,SAAc;IAIvE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,SAAI;IAOjC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAInC,SAAS,CAAC,QAAQ,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAchD,SAAS,CAAC,WAAW,CAAC,KAAK,KAAA,EAAE,MAAM,SAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAczE"}
package/dist/Page.js CHANGED
@@ -17,6 +17,9 @@ class Page {
17
17
  static canHandle(pageContext) {
18
18
  return true;
19
19
  }
20
+ get params() {
21
+ return this.request?.query;
22
+ }
20
23
  constructor() {
21
24
  this.disposables = [];
22
25
  this.cacheControl = "no-cache, no-store, max-age=0";
@@ -25,13 +28,13 @@ class Page {
25
28
  return this.notFound();
26
29
  }
27
30
  readFormData() {
28
- this.formDataPromise ??= (async () => {
31
+ return this.formDataPromise ??= (async () => {
29
32
  let tempFolder;
30
33
  const result = {
31
34
  fields: {},
32
35
  files: []
33
36
  };
34
- const req = this.req;
37
+ const req = this.request;
35
38
  const bb = busboy({ headers: req.headers, defParamCharset: "utf8" });
36
39
  const tasks = [];
37
40
  await new Promise((resolve, reject) => {
@@ -55,7 +58,6 @@ class Page {
55
58
  await Promise.all(tasks);
56
59
  return result;
57
60
  })();
58
- return this.formDataPromise;
59
61
  }
60
62
  content(body, status = 200, contentType = "text/html") {
61
63
  return Content.create({ body, status, contentType });
package/dist/Page.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sourceRoot":"","sources":["../src/Page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Page.js","sourceRoot":"","sources":["../src/Page.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ /// <reference types="node" resolution-mode="require"/>
2
4
  import { ServiceProvider } from "@entity-access/entity-access/dist/di/di.js";
3
- import { Request, Response } from "express";
4
5
  import * as http from "http";
6
+ import * as http2 from "http2";
7
+ import { SecureContext } from "node:tls";
5
8
  export default class ServerPages {
6
9
  static create(globalServiceProvider?: ServiceProvider): ServerPages;
7
10
  private root;
@@ -16,10 +19,13 @@ export default class ServerPages {
16
19
  * All services should be registered before calling build
17
20
  * @param app Express App
18
21
  */
19
- build(app?: import("express-serve-static-core").Express, { createSocketService, port }?: {
22
+ build({ createSocketService, port, protocol, disableHttp2Warning, SNICallback }: {
20
23
  createSocketService?: boolean;
21
- port?: number;
22
- }): Promise<http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>>;
23
- protected process(req: Request, resp: Response): Promise<void>;
24
+ port: number;
25
+ disableHttp2Warning?: boolean;
26
+ protocol: "http" | "http2" | "https2";
27
+ SNICallback: (servername: string, cb: (err: Error | null, ctx?: SecureContext) => void) => void;
28
+ }): Promise<http2.Http2Server | http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>>;
29
+ protected process(req: any, resp: any): Promise<void>;
24
30
  }
25
31
  //# sourceMappingURL=ServerPages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServerPages.d.ts","sourceRoot":"","sources":["../src/ServerPages.ts"],"names":[],"mappings":";AACA,OAAO,EAAqB,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAWrD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,MAAM,CAAC,OAAO,OAAO,WAAW;WAEd,MAAM,CAAC,qBAAqB,GAAE,eAAuC;IAKnF,OAAO,CAAC,IAAI,CAA8B;IAE1C;;;;OAIG;IACI,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY;IASlD,oBAAoB;IAI3B;;;OAGG;IACU,KAAK,CAAC,GAAG,8CAAY,EAAE,EAAE,mBAA0B,EAAE,IAAS,EAAE;;;KAAK;cA4BlE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ;CA+EvD"}
1
+ {"version":3,"file":"ServerPages.d.ts","sourceRoot":"","sources":["../src/ServerPages.ts"],"names":[],"mappings":";;;AACA,OAAO,EAAqB,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAOhG,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAuB,MAAM,UAAU,CAAC;AAI9D,MAAM,CAAC,OAAO,OAAO,WAAW;WAEd,MAAM,CAAC,qBAAqB,GAAE,eAAuC;IAKnF,OAAO,CAAC,IAAI,CAA8B;IAE1C;;;;OAIG;IACI,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY;IASlD,oBAAoB;IAI3B;;;OAGG;IACU,KAAK,CAAC,EACf,mBAA0B,EAC1B,IAAW,EACX,QAAiB,EACjB,mBAA2B,EAC3B,WAAW,EACd,EAAC;QACE,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC;QACb,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;QACtC,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,aAAa,KAAK,IAAI,KAAK,IAAI,CAAA;KAClG;cAsDe,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;CAgF9C"}
@@ -45,18 +45,18 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
45
45
  });
46
46
  /* eslint-disable no-console */
47
47
  import { RegisterSingleton, ServiceProvider } from "@entity-access/entity-access/dist/di/di.js";
48
- import express from "express";
49
48
  import Page from "./Page.js";
50
49
  import Content from "./Content.js";
51
- import SessionUser from "./core/SessionUser.js";
52
50
  import RouteTree from "./core/RouteTree.js";
53
- import CookieService from "./services/CookieService.js";
54
- import cookieParser from "cookie-parser";
55
- import bodyParser from "body-parser";
56
51
  import { fileURLToPath } from "node:url";
57
52
  import { dirname, join } from "node:path";
58
53
  import { Server } from "socket.io";
54
+ import * as http from "http";
55
+ import * as http2 from "http2";
59
56
  import SocketService from "./socket/SocketService.js";
57
+ import { Wrapped } from "./core/Wrapped.js";
58
+ import { createSecureContext } from "node:tls";
59
+ import { SelfSigned } from "./ssl/SelfSigned.js";
60
60
  RegisterSingleton;
61
61
  export default class ServerPages {
62
62
  constructor() {
@@ -86,12 +86,9 @@ export default class ServerPages {
86
86
  * All services should be registered before calling build
87
87
  * @param app Express App
88
88
  */
89
- async build(app = express(), { createSocketService = true, port = 80 } = {}) {
89
+ async build({ createSocketService = true, port = 8080, protocol = "http", disableHttp2Warning = false, SNICallback }) {
90
90
  try {
91
- // etag must be set by individual request processors if needed.
92
- app.set("etag", false);
93
- app.use(cookieParser());
94
- app.use(bodyParser.json());
91
+ let httpServer = null;
95
92
  let socketServer = null;
96
93
  if (createSocketService) {
97
94
  socketServer = new Server();
@@ -99,13 +96,38 @@ export default class ServerPages {
99
96
  ss.attach(socketServer);
100
97
  await ss.init();
101
98
  }
102
- app.all(/./, (req, res, next) => this.process(req, res).then(next, next));
103
- return new Promise((resolve, reject) => {
104
- const server = app.listen(port, () => {
105
- resolve(server);
99
+ switch (protocol) {
100
+ case "http":
101
+ httpServer = http.createServer((req, res) => this.process(req, res));
102
+ break;
103
+ case "https2":
104
+ let sc = null;
105
+ SNICallback ??= (name, cb) => {
106
+ if (sc) {
107
+ return cb(null, sc);
108
+ }
109
+ const { key, cert } = SelfSigned.setupSelfSigned();
110
+ sc = createSecureContext({ key, cert });
111
+ cb(null, sc);
112
+ };
113
+ httpServer = http2.createSecureServer({
114
+ SNICallback
115
+ }, (req, res) => this.process(req, res));
116
+ break;
117
+ case "http2":
118
+ httpServer = http2.createSecureServer({}, (req, res) => this.process(req, res));
119
+ if (!disableHttp2Warning) {
120
+ console.warn("Http2 without SSL should not be used in production");
121
+ }
122
+ break;
123
+ }
124
+ await new Promise((resolve, reject) => {
125
+ const server = httpServer.listen(port, () => {
126
+ resolve();
106
127
  });
107
128
  socketServer?.attach(server);
108
129
  });
130
+ return httpServer;
109
131
  }
110
132
  catch (error) {
111
133
  console.error(error);
@@ -113,84 +135,83 @@ export default class ServerPages {
113
135
  return null;
114
136
  }
115
137
  async process(req, resp) {
116
- const env_1 = { stack: [], error: void 0, hasError: false };
138
+ req = Wrapped.request(req);
139
+ resp = Wrapped.response(req, resp);
140
+ req.response = resp;
141
+ if (req.processed) {
142
+ return;
143
+ }
144
+ req.processed = true;
117
145
  try {
118
- if (req.processed) {
119
- return;
120
- }
121
- req.processed = true;
122
- // defaulting to no cache
123
- // static content delivery should override this
124
- resp.setHeader("cache-control", "no-cache");
125
- const scope = __addDisposableResource(env_1, ServiceProvider.createScope(this), false);
126
- let sent = false;
127
- const acceptJson = req.accepts().some((s) => /\/json$/i.test(s));
146
+ const env_1 = { stack: [], error: void 0, hasError: false };
128
147
  try {
129
- const cookieService = scope.resolve(CookieService);
148
+ // defaulting to no cache
149
+ // static content delivery should override this
150
+ resp.setHeader("cache-control", "no-cache");
151
+ const scope = __addDisposableResource(env_1, ServiceProvider.createScope(this), false);
152
+ let sent = false;
153
+ const acceptJson = req.accepts().some((s) => /\/json$/i.test(s));
130
154
  try {
131
- await cookieService.createSessionUser(req, resp);
155
+ const path = req.path.split("/").filter((x) => x);
156
+ const method = req.method;
157
+ const { pageClass, childPath } = (await this.root.getRoute({
158
+ scope,
159
+ method,
160
+ current: "",
161
+ path,
162
+ request: req
163
+ })) ?? {
164
+ pageClass: Page,
165
+ childPath: path
166
+ };
167
+ const page = scope.create(pageClass);
168
+ page.method = method;
169
+ page.childPath = childPath;
170
+ page.request = req;
171
+ page.response = resp;
172
+ const content = await page.all(page.params);
173
+ resp.setHeader("cache-control", page.cacheControl);
174
+ resp.removeHeader("etag");
175
+ sent = true;
176
+ await content.send(resp);
132
177
  }
133
178
  catch (error) {
134
- console.error(error);
135
- }
136
- const sessionUser = req.user;
137
- scope.add(SessionUser, sessionUser);
138
- const path = req.path.split("/").filter((x) => x);
139
- const method = req.method;
140
- const params = { ...req.params, ...req.query, ...req.body ?? {} };
141
- const { pageClass, childPath } = (await this.root.getRoute({
142
- method,
143
- current: "",
144
- path,
145
- params,
146
- sessionUser
147
- })) ?? {
148
- pageClass: Page,
149
- childPath: path
150
- };
151
- const page = scope.create(pageClass);
152
- page.method = method;
153
- page.childPath = childPath;
154
- page.body = req.body;
155
- page.query = req.query;
156
- page.sessionUser = sessionUser;
157
- page.req = req;
158
- page.res = resp;
159
- const content = await page.all(params);
160
- resp.setHeader("cache-control", page.cacheControl);
161
- resp.removeHeader("etag");
162
- sent = true;
163
- await content.send(resp);
164
- }
165
- catch (error) {
166
- if (!sent) {
167
- try {
168
- if (acceptJson || error.errorModel) {
169
- await Content.json({
170
- ...error.errorModel ?? {},
171
- message: error.message ?? error,
172
- detail: error.stack ?? error,
173
- }, 500).send(resp);
174
- return;
179
+ if (!sent) {
180
+ try {
181
+ if (acceptJson || error.errorModel) {
182
+ await Content.json({
183
+ ...error.errorModel ?? {},
184
+ message: error.message ?? error,
185
+ detail: error.stack ?? error,
186
+ }, 500).send(resp);
187
+ return;
188
+ }
189
+ const content = Content.html(`<!DOCTYPE html>\n<html><body><pre>Server Error for ${req.url}\r\n${error?.stack ?? error}</pre></body></html>`, 500);
190
+ await content.send(resp);
175
191
  }
176
- const content = Content.html(`<!DOCTYPE html>\n<html><body><pre>Server Error for ${req.url}\r\n${error?.stack ?? error}</pre></body></html>`, 500);
177
- await content.send(resp);
178
- }
179
- catch (e1) {
180
- resp.send(e1.stack ?? e1);
181
- console.error(e1);
192
+ catch (e1) {
193
+ resp.send(e1.stack ?? e1, 500);
194
+ console.error(e1);
195
+ }
196
+ return;
182
197
  }
183
- return;
198
+ console.error(error);
184
199
  }
185
- console.error(error);
186
200
  }
187
- }
188
- catch (e_1) {
189
- env_1.error = e_1;
190
- env_1.hasError = true;
201
+ catch (e_1) {
202
+ env_1.error = e_1;
203
+ env_1.hasError = true;
204
+ }
205
+ finally {
206
+ __disposeResources(env_1);
207
+ }
191
208
  }
192
209
  finally {
193
- __disposeResources(env_1);
210
+ if (Array.isArray(req.disposables)) {
211
+ for (const iterator of req.disposables) {
212
+ iterator[Symbol.dispose]?.();
213
+ }
214
+ }
194
215
  }
195
216
  }
196
217
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServerPages.js","sourceRoot":"","sources":["../src/ServerPages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServerPages.js","sourceRoot":"","sources":["../src/ServerPages.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
- import internal, { Stream } from "stream";
3
+ import internal, { Stream, Writable } from "stream";
4
4
  export declare class LocalFile {
5
5
  readonly path: string;
6
6
  private onDispose?;
@@ -15,6 +15,7 @@ export declare class LocalFile {
15
15
  appendLine(line: string): Promise<this>;
16
16
  readAsText(): Promise<string>;
17
17
  readAsBuffer(): Promise<Buffer>;
18
+ writeTo(writable: Writable, start?: number, end?: number): Promise<unknown>;
18
19
  delete(): Promise<void>;
19
20
  writeAllText(text: string): Promise<void>;
20
21
  writeAll(buffer: string | Buffer | internal.Readable | Stream): Promise<void>;