@mojojs/core 0.19.1 → 0.21.0

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/lib/router.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
package/lib/session.d.ts CHANGED
@@ -1,17 +1,52 @@
1
1
  import type { App } from './app.js';
2
2
  import type { Context } from './context.js';
3
3
  import type { SessionData } from './types.js';
4
+ /**
5
+ * Session manager class.
6
+ */
4
7
  export declare class Session {
8
+ /**
9
+ * Name for session cookies, defaults to `mojo`.
10
+ */
5
11
  cookieName: string;
12
+ /**
13
+ * Path for session cookies, defaults to `/`.
14
+ */
6
15
  cookiePath: string;
16
+ /**
17
+ * Default time for sessions to expire in seconds from now, defaults to `3600`. The expiration timeout gets refreshed
18
+ * for every request. Setting the value to `0` will allow sessions to persist until the browser window is closed,
19
+ * this can have security implications though.
20
+ */
7
21
  expiration: number;
22
+ /**
23
+ * Set the `HttpOnly` value on all session cookies.
24
+ */
8
25
  httpOnly: boolean;
26
+ /**
27
+ * Set the `SameSite` value on all session cookies, defaults to `lax`.
28
+ */
9
29
  sameSite: 'lax' | 'strict' | 'none';
30
+ /**
31
+ * Set the secure flag on all session cookies, so that browsers send them only over HTTPS connections.
32
+ */
10
33
  secure: boolean;
11
34
  _app: WeakRef<App>;
12
35
  constructor(app: App);
36
+ /**
37
+ * Decrypt cookie.
38
+ */
13
39
  static decrypt(secrets: string[], encrypted: string): Promise<string | null>;
40
+ /**
41
+ * Encrypt cookie.
42
+ */
14
43
  static encrypt(secret: string, value: string): Promise<string>;
44
+ /**
45
+ * Load session data from encrypted cookie.
46
+ */
15
47
  load(ctx: Context): Promise<SessionData | null>;
48
+ /**
49
+ * Store session data in encrypted cookie.
50
+ */
16
51
  store(ctx: Context, data: SessionData): Promise<void>;
17
52
  }
package/lib/session.js CHANGED
@@ -2,16 +2,42 @@ import crypto from 'crypto';
2
2
  import { promisify } from 'util';
3
3
  const scrypt = promisify(crypto.scrypt);
4
4
  const randomBytes = promisify(crypto.randomBytes);
5
+ /**
6
+ * Session manager class.
7
+ */
5
8
  export class Session {
6
9
  constructor(app) {
10
+ /**
11
+ * Name for session cookies, defaults to `mojo`.
12
+ */
7
13
  this.cookieName = 'mojo';
14
+ /**
15
+ * Path for session cookies, defaults to `/`.
16
+ */
8
17
  this.cookiePath = '/';
18
+ /**
19
+ * Default time for sessions to expire in seconds from now, defaults to `3600`. The expiration timeout gets refreshed
20
+ * for every request. Setting the value to `0` will allow sessions to persist until the browser window is closed,
21
+ * this can have security implications though.
22
+ */
9
23
  this.expiration = 3600;
24
+ /**
25
+ * Set the `HttpOnly` value on all session cookies.
26
+ */
10
27
  this.httpOnly = true;
28
+ /**
29
+ * Set the `SameSite` value on all session cookies, defaults to `lax`.
30
+ */
11
31
  this.sameSite = 'lax';
32
+ /**
33
+ * Set the secure flag on all session cookies, so that browsers send them only over HTTPS connections.
34
+ */
12
35
  this.secure = false;
13
36
  this._app = new WeakRef(app);
14
37
  }
38
+ /**
39
+ * Decrypt cookie.
40
+ */
15
41
  static async decrypt(secrets, encrypted) {
16
42
  const match = encrypted.match(/^([^-]+)--([^-]+)--([^-]+)$/);
17
43
  if (match === null)
@@ -33,6 +59,9 @@ export class Session {
33
59
  }
34
60
  return null;
35
61
  }
62
+ /**
63
+ * Encrypt cookie.
64
+ */
36
65
  static async encrypt(secret, value) {
37
66
  const key = await scrypt(secret, 'salt', 32);
38
67
  const iv = await randomBytes(12);
@@ -40,6 +69,9 @@ export class Session {
40
69
  const encrypted = cipher.update(value, 'utf8', 'base64') + cipher.final('base64');
41
70
  return encrypted + '--' + iv.toString('base64') + '--' + cipher.getAuthTag().toString('base64');
42
71
  }
72
+ /**
73
+ * Load session data from encrypted cookie.
74
+ */
43
75
  async load(ctx) {
44
76
  const cookie = ctx.req.getCookie(this.cookieName);
45
77
  if (cookie === null)
@@ -61,6 +93,9 @@ export class Session {
61
93
  }
62
94
  return data;
63
95
  }
96
+ /**
97
+ * Store session data in encrypted cookie.
98
+ */
64
99
  async store(ctx, data) {
65
100
  if (typeof data.expires !== 'number') {
66
101
  const expiration = data.expiration ?? this.expiration;
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/lib/static.d.ts CHANGED
@@ -1,14 +1,36 @@
1
1
  import type { MojoContext } from './types.js';
2
2
  import Path from '@mojojs/path';
3
+ /**
4
+ * Static file server class.
5
+ */
3
6
  export declare class Static {
7
+ /**
8
+ * Prefix to use for all static files.
9
+ */
4
10
  prefix: string;
11
+ /**
12
+ * Directories to serve static files from, first one has the highest precedence.
13
+ */
5
14
  publicPaths: string[];
15
+ /**
16
+ * Serve static files.
17
+ */
6
18
  dispatch(ctx: MojoContext): Promise<boolean>;
19
+ /**
20
+ * Get static file path with prefix.
21
+ */
7
22
  filePath(path: string): string;
23
+ /**
24
+ * Check freshness of request by comparing the `If-None-Match` and `If-Modified-Since` request headers to the `ETag`
25
+ * and `Last-Modified` response headers.
26
+ */
8
27
  isFresh(ctx: MojoContext, options?: {
9
28
  etag?: string;
10
29
  lastModified?: Date;
11
30
  }): boolean;
31
+ /**
32
+ * Serve a specific file.
33
+ */
12
34
  serveFile(ctx: MojoContext, file: Path): Promise<void>;
13
35
  _rangeNotSatisfiable(ctx: MojoContext): Promise<void>;
14
36
  }
package/lib/static.js CHANGED
@@ -1,11 +1,23 @@
1
1
  import crypto from 'crypto';
2
2
  import path from 'path';
3
3
  import Path from '@mojojs/path';
4
+ /**
5
+ * Static file server class.
6
+ */
4
7
  export class Static {
5
8
  constructor() {
9
+ /**
10
+ * Prefix to use for all static files.
11
+ */
6
12
  this.prefix = '/public';
13
+ /**
14
+ * Directories to serve static files from, first one has the highest precedence.
15
+ */
7
16
  this.publicPaths = [Path.currentFile().sibling('..', 'vendor', 'public').toString()];
8
17
  }
18
+ /**
19
+ * Serve static files.
20
+ */
9
21
  async dispatch(ctx) {
10
22
  const req = ctx.req;
11
23
  const unsafePath = req.path;
@@ -26,11 +38,18 @@ export class Static {
26
38
  }
27
39
  return false;
28
40
  }
41
+ /**
42
+ * Get static file path with prefix.
43
+ */
29
44
  filePath(path) {
30
45
  if (path.startsWith('/') === false)
31
46
  path = '/' + path;
32
47
  return this.prefix + path;
33
48
  }
49
+ /**
50
+ * Check freshness of request by comparing the `If-None-Match` and `If-Modified-Since` request headers to the `ETag`
51
+ * and `Last-Modified` response headers.
52
+ */
34
53
  isFresh(ctx, options = {}) {
35
54
  const etag = options.etag;
36
55
  const lastModified = options.lastModified;
@@ -60,6 +79,9 @@ export class Static {
60
79
  }
61
80
  return false;
62
81
  }
82
+ /**
83
+ * Serve a specific file.
84
+ */
63
85
  async serveFile(ctx, file) {
64
86
  const app = ctx.app;
65
87
  if ((await app.hooks.runHook('static:before', ctx, file)) === true)
package/lib/static.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"static.js","sourceRoot":"","sources":["../src/static.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"static.js","sourceRoot":"","sources":["../src/static.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,13 @@ import { MockUserAgent } from './mock.js';
10
10
  import DOM from '@mojojs/dom';
11
11
  import StackUtils from 'stack-utils';
12
12
  declare type SkipFunction = (...args: any[]) => any;
13
+ /**
14
+ * Test user agent class.
15
+ */
13
16
  export declare class TestUserAgent extends MockUserAgent {
17
+ /**
18
+ * Current HTTP response content.
19
+ */
14
20
  body: Buffer;
15
21
  _assert: typeof assert | Tap.Tap | undefined;
16
22
  _dom: DOM | undefined;
@@ -20,41 +26,148 @@ export declare class TestUserAgent extends MockUserAgent {
20
26
  _stack: StackUtils;
21
27
  _ws: WebSocket | undefined;
22
28
  constructor(options?: TestUserAgentOptions);
29
+ /**
30
+ * Delegate assertion to test framework currently in use.
31
+ */
23
32
  assert(name: string, args: any[], msg: string, skip: SkipFunction): void;
33
+ /**
34
+ * Check response content for exact match.
35
+ */
24
36
  bodyIs(body: string): this;
37
+ /**
38
+ * Opposite of `bodyIs`.
39
+ */
25
40
  bodyIsnt(body: string): this;
41
+ /**
42
+ * Check response content for similar match.
43
+ */
26
44
  bodyLike(regex: RegExp): this;
45
+ /**
46
+ * Opposite of `bodyLike`.
47
+ */
27
48
  bodyUnlike(regex: RegExp): this;
49
+ /**
50
+ * Close WebSocket connection gracefully.
51
+ */
28
52
  closeOk(code: number, reason: string): Promise<void>;
53
+ /**
54
+ * Wait for WebSocket connection to be closed gracefully and check status.
55
+ */
29
56
  closedOk(code: number): Promise<void>;
57
+ /**
58
+ * Perform a `DELETE` request and check for transport errors.
59
+ */
30
60
  deleteOk(url: string | URL, options?: UserAgentRequestOptions): Promise<this>;
61
+ /**
62
+ * Checks for existence of the CSS selectors first matching HTML/XML element.
63
+ */
31
64
  elementExists(selector: string): this;
65
+ /**
66
+ * Opposite of `elementExists`.
67
+ */
32
68
  elementExistsNot(selector: string): this;
69
+ /**
70
+ * Perform a `GET` request and check for transport errors.
71
+ */
33
72
  getOk(url: string | URL, options?: UserAgentRequestOptions): Promise<this>;
73
+ /**
74
+ * Perform a `HEAD` request and check for transport errors.
75
+ */
34
76
  headOk(url: string | URL, options?: UserAgentRequestOptions): Promise<this>;
77
+ /**
78
+ * Check if response header exists.
79
+ */
35
80
  headerExists(name: string): this;
81
+ /**
82
+ * Opposite of `headerExists`.
83
+ */
36
84
  headerExistsNot(name: string): this;
85
+ /**
86
+ * Check response header for exact match.
87
+ */
37
88
  headerIs(name: string, value: string): this;
89
+ /**
90
+ * Opposite of `headerIs`.
91
+ */
38
92
  headerIsnt(name: string, value: string): this;
93
+ /**
94
+ * Check response header for similar match.
95
+ */
39
96
  headerLike(name: string, regex: RegExp): this;
40
- jsonIs(value: JSONValue, pointer?: string): this;
97
+ /**
98
+ * Check if JSON response contains a value that can be identified using the given JSON Pointer.
99
+ */
41
100
  jsonHas(pointer: string): this;
101
+ /**
102
+ * Check the value extracted from JSON response using the given JSON Pointerr, which defaults to the root value if it
103
+ * is omitted.
104
+ */
105
+ jsonIs(value: JSONValue, pointer?: string): this;
106
+ /**
107
+ * Wait for next WebSocket message to arrive.
108
+ */
42
109
  messageOk(): Promise<JSONValue>;
110
+ /**
111
+ * Create a new test user agent.
112
+ */
43
113
  static newTestUserAgent(app: App, options?: TestUserAgentOptions): Promise<TestUserAgent>;
114
+ /**
115
+ * Perform a `OPTIONS` request and check for transport errors.
116
+ */
44
117
  optionsOk(url: string | URL, options?: UserAgentRequestOptions): Promise<this>;
118
+ /**
119
+ * Perform a `PATCH` request and check for transport errors.
120
+ */
45
121
  patchOk(url: string | URL, options?: UserAgentRequestOptions): Promise<this>;
122
+ /**
123
+ * Perform a `POST` request and check for transport errors.
124
+ */
46
125
  postOk(url: string | URL, options?: UserAgentRequestOptions): Promise<this>;
126
+ /**
127
+ * Perform a `PUT` request and check for transport errors.
128
+ */
47
129
  putOk(url: string | URL, options?: UserAgentRequestOptions): Promise<this>;
130
+ /**
131
+ * Current HTTP response.
132
+ */
48
133
  get res(): UserAgentResponse;
134
+ /**
135
+ * Send message or frame via WebSocket.
136
+ */
49
137
  sendOk(message: JSONValue | Buffer): Promise<void>;
138
+ /**
139
+ * Check response status for exact match.
140
+ */
50
141
  statusIs(status: number): this;
142
+ /**
143
+ * Checks text content of the CSS selectors first matching HTML/XML element for similar match.
144
+ */
51
145
  textLike(selector: string, regex: RegExp): this;
146
+ /**
147
+ * Check response `Content-Type` header for exact match.
148
+ */
52
149
  typeIs(value: string): this;
150
+ /**
151
+ * Check response `Content-Type` header for similar match.
152
+ */
53
153
  typeLike(regex: RegExp): this;
154
+ /**
155
+ * Open a WebSocket connection with transparent handshake.
156
+ */
54
157
  websocketOk(url: string | URL, options?: UserAgentWebSocketOptions): Promise<void>;
158
+ /**
159
+ * Active WebSocket connection.
160
+ */
55
161
  get ws(): WebSocket;
56
- yamlIs(value: JSONValue, pointer?: string): this;
162
+ /**
163
+ * Check if YAML response contains a value that can be identified using the given JSON Pointer.
164
+ */
57
165
  yamlHas(pointer: string): this;
166
+ /**
167
+ * Check the value extracted from YAML response using the given JSON Pointerr, which defaults to the root value if it
168
+ * is omitted.
169
+ */
170
+ yamlIs(value: JSONValue, pointer?: string): this;
58
171
  get _html(): DOM;
59
172
  _prepareTap(tap: Tap.Tap): void;
60
173
  _requestOk(skip: SkipFunction, method: string, url: string | URL, options?: UserAgentRequestOptions): Promise<this>;