@flancer32/teq-web 0.8.0 → 0.10.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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.10.0] - 2026-03-31 - Validator conformance and release preparation
4
+
5
+ ### Changed
6
+ - Updated handler interfaces and runtime DTOs to conform to validator requirements.
7
+ - Removed the ESLint development dependency after aligning the codebase with the current validation approach.
8
+ - Updated package version metadata to `0.10.0`.
9
+
10
+ ## [0.9.0] - 2026-03-25 - Release preparation for minor version bump
11
+
12
+ ### Changed
13
+ - Updated package version metadata to `0.9.0`.
14
+
3
15
  ## [0.8.0] - 2026-03-17 - Flat runtime configuration and server startup alignment
4
16
 
5
17
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flancer32/teq-web",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "description": "Server-side web request coordination infrastructure for TeqFW modular monolith applications.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -41,11 +41,10 @@
41
41
  ]
42
42
  },
43
43
  "dependencies": {
44
- "@teqfw/di": "^2.1.0"
44
+ "@teqfw/di": "^2.4.0"
45
45
  },
46
46
  "devDependencies": {
47
- "@types/node": "^25.4.0",
48
- "eslint": "^10.0.3"
47
+ "@types/node": "^25.4.0"
49
48
  },
50
49
  "scripts": {
51
50
  "test:unit": "find test/unit -name '*.test.mjs' -print0 | xargs -0 node --test",
@@ -1,26 +1,26 @@
1
- // @ts-check
2
-
3
1
  /**
4
2
  * Interface for web request handlers used by the Pipeline Engine.
5
3
  *
6
4
  * @interface
7
5
  */
6
+ // @ts-check
8
7
  export default class Fl32_Web_Back_Api_Handler {
9
- /* eslint-disable no-unused-vars */
10
- /**
11
- * Handles one request context in a pipeline stage.
12
- * @param {Fl32_Web_Back_Dto_RequestContext} context
13
- * @returns {Promise<void>}
14
- */
15
- async handle(context) {
16
- throw new Error('Method not implemented');
17
- }
8
+ constructor() {
9
+ /**
10
+ * Handles one request context in a pipeline stage.
11
+ * @param {Fl32_Web_Back_Dto_RequestContext} context
12
+ * @returns {Promise<void>}
13
+ */
14
+ this.handle = async function (_context) {
15
+ throw new Error('Method not implemented');
16
+ };
18
17
 
19
- /**
20
- * Provides metadata for pipeline registration.
21
- * @returns {Fl32_Web_Back_Dto_Info}
22
- */
23
- getRegistrationInfo() {
24
- throw new Error('Method not implemented');
18
+ /**
19
+ * Provides metadata for pipeline registration.
20
+ * @returns {Fl32_Web_Back_Dto_Info}
21
+ */
22
+ this.getRegistrationInfo = function () {
23
+ throw new Error('Method not implemented');
24
+ };
25
25
  }
26
26
  }
@@ -1,12 +1,8 @@
1
- // @ts-check
2
-
3
- export const __deps__ = Object.freeze({
4
- cast: 'Fl32_Web_Back_Helper_Cast$',
5
- });
6
-
7
1
  /**
8
- * TLS runtime configuration.
2
+ * TLS runtime configuration wrapper and factory wiring.
9
3
  */
4
+ // @ts-check
5
+
10
6
  export class Data {
11
7
  /** @type {string|undefined} */
12
8
  ca;
@@ -51,8 +47,8 @@ export default class Wrapper {
51
47
 
52
48
  export class Factory {
53
49
  /**
54
- * @param {object} params
55
- * @param {Fl32_Web_Back_Helper_Cast} params.cast
50
+ * @param {object} deps
51
+ * @param {Fl32_Web_Back_Helper_Cast} deps.cast
56
52
  */
57
53
  constructor({cast}) {
58
54
  /**
@@ -82,3 +78,16 @@ export class Factory {
82
78
  };
83
79
  }
84
80
  }
81
+
82
+ /**
83
+ * TLS runtime configuration container.
84
+ *
85
+ * `default export` is the runtime wrapper.
86
+ * `Factory` is the DI-managed component described by `__deps__`.
87
+ */
88
+ export const __deps__ = Object.freeze({
89
+ default: {},
90
+ Factory: {
91
+ cast: 'Fl32_Web_Back_Helper_Cast$',
92
+ },
93
+ });
@@ -1,14 +1,8 @@
1
- // @ts-check
2
-
3
- export const __deps__ = Object.freeze({
4
- cast: 'Fl32_Web_Back_Helper_Cast$',
5
- SERVER_TYPE: 'Fl32_Web_Back_Enum_Server_Type$',
6
- tlsFactory: 'Fl32_Web_Back_Config_Runtime_Tls__Factory$',
7
- });
8
-
9
1
  /**
10
- * Backend runtime configuration.
2
+ * Runtime configuration wrapper and factory wiring.
11
3
  */
4
+ // @ts-check
5
+
12
6
  export class Data {
13
7
  /** @type {number|undefined} */
14
8
  port;
@@ -53,12 +47,12 @@ export default class Wrapper {
53
47
 
54
48
  export class Factory {
55
49
  /**
56
- * @param {object} params
57
- * @param {Fl32_Web_Back_Helper_Cast} params.cast
58
- * @param {Fl32_Web_Back_Enum_Server_Type} params.SERVER_TYPE
59
- * @param {Fl32_Web_Back_Config_Runtime_Tls$Factory} params.tlsFactory
50
+ * @param {object} deps
51
+ * @param {Fl32_Web_Back_Helper_Cast} deps.cast
52
+ * @param {Fl32_Web_Back_Enum_Server_Type} deps.SERVER_TYPE
53
+ * @param {Fl32_Web_Back_Config_Runtime_Tls$Factory} deps.tlsFactory
60
54
  */
61
- constructor({ cast, SERVER_TYPE, tlsFactory }) {
55
+ constructor({cast, SERVER_TYPE, tlsFactory}) {
62
56
  /**
63
57
  * @param {Fl32_Web_Back_Config_Runtime} [params]
64
58
  */
@@ -95,3 +89,18 @@ export class Factory {
95
89
  };
96
90
  }
97
91
  }
92
+
93
+ /**
94
+ * Backend runtime configuration container.
95
+ *
96
+ * `default export` is the runtime wrapper.
97
+ * `Factory` is the DI-managed component described by `__deps__`.
98
+ */
99
+ export const __deps__ = Object.freeze({
100
+ default: {},
101
+ Factory: {
102
+ cast: 'Fl32_Web_Back_Helper_Cast$',
103
+ SERVER_TYPE: 'Fl32_Web_Back_Enum_Server_Type$',
104
+ tlsFactory: 'Fl32_Web_Back_Config_Runtime_Tls__Factory$',
105
+ },
106
+ });
@@ -1,10 +1,7 @@
1
+ /**
2
+ * DTO describing handler registration and ordering metadata.
3
+ */
1
4
  // @ts-check
2
-
3
- export const __deps__ = Object.freeze({
4
- cast: 'Fl32_Web_Back_Helper_Cast$',
5
- STAGE: 'Fl32_Web_Back_Enum_Stage$',
6
- });
7
-
8
5
  export default class Fl32_Web_Back_Dto_Info {
9
6
  /**
10
7
  * Handlers to run before this one.
@@ -33,19 +30,13 @@ export default class Fl32_Web_Back_Dto_Info {
33
30
  }
34
31
 
35
32
  export class Factory {
36
- /* eslint-disable jsdoc/require-param-description,jsdoc/check-param-names */
37
33
  /**
38
- * @param {object} params
39
- * @param {Fl32_Web_Back_Helper_Cast} params.cast
40
- * @param {Fl32_Web_Back_Enum_Stage} params.STAGE
34
+ * @param {object} deps
35
+ * @param {Fl32_Web_Back_Helper_Cast} deps.cast
36
+ * @param {Fl32_Web_Back_Enum_Stage} deps.STAGE
41
37
  */
42
- constructor(
43
- {
44
- cast,
45
- STAGE,
46
- }
47
- ) {
48
- /* eslint-enable jsdoc/check-param-names */
38
+ constructor({cast, STAGE}) {
39
+
49
40
  /**
50
41
  * @param {*} [data]
51
42
  * @returns {Fl32_Web_Back_Dto_Info}
@@ -60,3 +51,14 @@ export class Factory {
60
51
  };
61
52
  }
62
53
  }
54
+
55
+ /**
56
+ * DTO dependencies.
57
+ */
58
+ export const __deps__ = Object.freeze({
59
+ default: {},
60
+ Factory: {
61
+ cast: 'Fl32_Web_Back_Helper_Cast$',
62
+ STAGE: 'Fl32_Web_Back_Enum_Stage$',
63
+ },
64
+ });
@@ -1,33 +1,30 @@
1
- // @ts-check
2
-
3
1
  /**
4
2
  * Request context passed through the pipeline lifecycle.
5
3
  */
4
+ // @ts-check
6
5
  export default class Fl32_Web_Back_Dto_RequestContext {
7
- /** @type {Fl32_Web_Node_Http_IncomingMessage|Fl32_Web_Node_Http2_ServerRequest} */
8
- request;
6
+ constructor() {
7
+ /** @type {Fl32_Web_Node_Http_IncomingMessage|Fl32_Web_Node_Http2_ServerRequest} */
8
+ this.request;
9
9
 
10
- /** @type {Fl32_Web_Back_Response_Target} */
11
- response;
10
+ /** @type {Fl32_Web_Back_Response_Target} */
11
+ this.response;
12
12
 
13
- /** @type {Record<string, unknown>} */
14
- data = {};
13
+ /** @type {Record<string, unknown>} */
14
+ this.data = {};
15
15
 
16
- /** @type {boolean} */
17
- completed = false;
18
-
19
- /** @type {() => void} */
20
- complete;
21
-
22
- /** @type {() => boolean} */
23
- isCompleted;
16
+ /** @type {boolean} */
17
+ this.completed = false;
18
+ }
24
19
  }
25
20
 
26
21
  export class Factory {
27
- /**
28
- * @returns {Fl32_Web_Back_Dto_RequestContext}
29
- */
30
- create() {
31
- return new Fl32_Web_Back_Dto_RequestContext();
22
+ constructor() {
23
+ /**
24
+ * @returns {Fl32_Web_Back_Dto_RequestContext}
25
+ */
26
+ this.create = function () {
27
+ return new Fl32_Web_Back_Dto_RequestContext();
28
+ };
32
29
  }
33
30
  }
@@ -1,9 +1,7 @@
1
+ /**
2
+ * Source DTO for static handler configuration.
3
+ */
1
4
  // @ts-check
2
-
3
- export const __deps__ = Object.freeze({
4
- cast: 'Fl32_Web_Back_Helper_Cast$',
5
- });
6
-
7
5
  export default class Fl32_Web_Back_Dto_Source {
8
6
  /** @type {string} */
9
7
  root;
@@ -43,3 +41,10 @@ export class Factory {
43
41
  };
44
42
  }
45
43
  }
44
+
45
+ export const __deps__ = Object.freeze({
46
+ default: {},
47
+ Factory: {
48
+ cast: 'Fl32_Web_Back_Helper_Cast$',
49
+ },
50
+ });
@@ -1,8 +1,7 @@
1
- // @ts-check
2
-
3
1
  /**
4
2
  * Enum-like DTO for built-in server transport modes.
5
3
  */
4
+ // @ts-check
6
5
  export default class Fl32_Web_Back_Enum_Server_Type {
7
6
  constructor() {
8
7
  this.HTTP2 = 'http2';
@@ -1,8 +1,7 @@
1
- // @ts-check
2
-
3
1
  /**
4
2
  * Enum-like DTO for web request processing stages.
5
3
  */
4
+ // @ts-check
6
5
  export default class Fl32_Web_Back_Enum_Stage {
7
6
  constructor() {
8
7
  this.INIT = 'INIT';
@@ -1,32 +1,17 @@
1
- // @ts-check
2
-
3
1
  /**
4
2
  * Logs basic request information at the beginning of the request lifecycle.
5
3
  *
6
4
  * @implements Fl32_Web_Back_Api_Handler
7
5
  */
8
- export const __deps__ = Object.freeze({
9
- logger: 'Fl32_Web_Back_Logger$',
10
- dtoInfoFactory: 'Fl32_Web_Back_Dto_Info__Factory$',
11
- STAGE: 'Fl32_Web_Back_Enum_Stage$',
12
- });
13
-
6
+ // @ts-check
14
7
  export default class Fl32_Web_Back_Handler_Pre_Log {
15
- /* eslint-disable jsdoc/require-param-description,jsdoc/check-param-names */
16
8
  /**
17
- * @param {object} params
18
- * @param {Fl32_Web_Back_Logger} params.logger
19
- * @param {Fl32_Web_Back_Dto_Info$Factory} params.dtoInfoFactory
20
- * @param {Fl32_Web_Back_Enum_Stage} params.STAGE
9
+ * @param {object} deps
10
+ * @param {Fl32_Web_Back_Logger} deps.logger
11
+ * @param {Fl32_Web_Back_Dto_Info$Factory} deps.dtoInfoFactory
12
+ * @param {Fl32_Web_Back_Enum_Stage} deps.STAGE
21
13
  */
22
- constructor(
23
- {
24
- logger,
25
- dtoInfoFactory,
26
- STAGE,
27
- }
28
- ) {
29
- /* eslint-enable jsdoc/check-param-names */
14
+ constructor({logger, dtoInfoFactory, STAGE}) {
30
15
  // VARS
31
16
  const _info = dtoInfoFactory.create({
32
17
  name: this.constructor.name,
@@ -53,3 +38,14 @@ export default class Fl32_Web_Back_Handler_Pre_Log {
53
38
  this.getRegistrationInfo = () => _info;
54
39
  }
55
40
  }
41
+
42
+ /**
43
+ * Dependencies for the log handler.
44
+ */
45
+ export const __deps__ = Object.freeze({
46
+ default: {
47
+ logger: 'Fl32_Web_Back_Logger$',
48
+ dtoInfoFactory: 'Fl32_Web_Back_Dto_Info__Factory$',
49
+ STAGE: 'Fl32_Web_Back_Enum_Stage$',
50
+ },
51
+ });
@@ -1,22 +1,14 @@
1
+ /**
2
+ * Static asset config factory.
3
+ */
1
4
  // @ts-check
2
-
3
- export const __deps__ = Object.freeze({
4
- path: 'node_path',
5
- });
6
-
7
5
  export default class Fl32_Web_Back_Handler_Static_A_Config {
8
6
  static DEFAULT_FILES = ['index.html', 'index.htm', 'index.txt'];
9
- /* eslint-disable jsdoc/require-param-description,jsdoc/check-param-names */
10
7
  /**
11
- * @param {object} params
12
- * @param {Fl32_Web_Node_Path} params.path
8
+ * @param {object} deps
9
+ * @param {Fl32_Web_Node_Path} deps.path
13
10
  */
14
- constructor(
15
- {
16
- path,
17
- }
18
- ) {
19
- /* eslint-enable jsdoc/check-param-names */
11
+ constructor({path}) {
20
12
 
21
13
  /**
22
14
  * Normalize DTO fields into configuration object.
@@ -63,3 +55,12 @@ export default class Fl32_Web_Back_Handler_Static_A_Config {
63
55
  };
64
56
  }
65
57
  }
58
+
59
+ /**
60
+ * Dependencies for the static config factory.
61
+ */
62
+ export const __deps__ = Object.freeze({
63
+ default: {
64
+ path: 'node:path',
65
+ },
66
+ });
@@ -1,24 +1,14 @@
1
+ /**
2
+ * Static asset fallback helper.
3
+ */
1
4
  // @ts-check
2
-
3
- export const __deps__ = Object.freeze({
4
- fs: 'node_fs',
5
- path: 'node_path',
6
- });
7
-
8
5
  export default class Fl32_Web_Back_Handler_Static_A_Fallback {
9
- /* eslint-disable jsdoc/require-param-description,jsdoc/check-param-names */
10
6
  /**
11
- * @param {object} params
12
- * @param {Fl32_Web_Node_Fs} params.fs
13
- * @param {Fl32_Web_Node_Path} params.path
7
+ * @param {object} deps
8
+ * @param {Fl32_Web_Node_Fs} deps.fs
9
+ * @param {Fl32_Web_Node_Path} deps.path
14
10
  */
15
- constructor(
16
- {
17
- fs,
18
- path,
19
- }
20
- ) {
21
- /* eslint-enable jsdoc/check-param-names */
11
+ constructor({fs, path}) {
22
12
 
23
13
  /**
24
14
  * Apply default index fallback for directories.
@@ -45,3 +35,13 @@ export default class Fl32_Web_Back_Handler_Static_A_Fallback {
45
35
  };
46
36
  }
47
37
  }
38
+
39
+ /**
40
+ * Dependencies for the static fallback helper.
41
+ */
42
+ export const __deps__ = Object.freeze({
43
+ default: {
44
+ fs: 'node:fs',
45
+ path: 'node:path',
46
+ },
47
+ });
@@ -1,39 +1,19 @@
1
+ /**
2
+ * Static file service.
3
+ */
1
4
  // @ts-check
2
-
3
- export const __deps__ = Object.freeze({
4
- fs: 'node_fs',
5
- http2: 'node_http2',
6
- path: 'node_path',
7
- logger: 'Fl32_Web_Back_Logger$',
8
- helpMime: 'Fl32_Web_Back_Helper_Mime$',
9
- resolver: 'Fl32_Web_Back_Handler_Static_A_Resolver$',
10
- fallback: 'Fl32_Web_Back_Handler_Static_A_Fallback$',
11
- });
12
-
13
5
  export default class Fl32_Web_Back_Handler_Static_A_FileService {
14
- /* eslint-disable jsdoc/require-param-description,jsdoc/check-param-names */
15
6
  /**
16
- * @param {object} params
17
- * @param {Fl32_Web_Node_Fs} params.fs
18
- * @param {Fl32_Web_Node_Http2} params.http2
19
- * @param {Fl32_Web_Node_Path} params.path
20
- * @param {Fl32_Web_Back_Logger} params.logger
21
- * @param {Fl32_Web_Back_Helper_Mime} params.helpMime
22
- * @param {Fl32_Web_Back_Handler_Static_A_Resolver} params.resolver
23
- * @param {Fl32_Web_Back_Handler_Static_A_Fallback} params.fallback
7
+ * @param {object} deps
8
+ * @param {Fl32_Web_Node_Fs} deps.fs
9
+ * @param {Fl32_Web_Node_Http2} deps.http2
10
+ * @param {Fl32_Web_Node_Path} deps.path
11
+ * @param {Fl32_Web_Back_Logger} deps.logger
12
+ * @param {Fl32_Web_Back_Helper_Mime} deps.helpMime
13
+ * @param {Fl32_Web_Back_Handler_Static_A_Resolver} deps.resolver
14
+ * @param {Fl32_Web_Back_Handler_Static_A_Fallback} deps.fallback
24
15
  */
25
- constructor(
26
- {
27
- fs,
28
- http2,
29
- path,
30
- logger,
31
- helpMime,
32
- resolver,
33
- fallback,
34
- }
35
- ) {
36
- /* eslint-enable jsdoc/check-param-names */
16
+ constructor({fs, http2, path, logger, helpMime, resolver, fallback}) {
37
17
  const {constants: H2} = http2;
38
18
 
39
19
  /**
@@ -80,3 +60,18 @@ export default class Fl32_Web_Back_Handler_Static_A_FileService {
80
60
  };
81
61
  }
82
62
  }
63
+
64
+ /**
65
+ * Dependencies for the static file service.
66
+ */
67
+ export const __deps__ = Object.freeze({
68
+ default: {
69
+ fs: 'node:fs',
70
+ http2: 'node:http2',
71
+ path: 'node:path',
72
+ logger: 'Fl32_Web_Back_Logger$',
73
+ helpMime: 'Fl32_Web_Back_Helper_Mime$',
74
+ resolver: 'Fl32_Web_Back_Handler_Static_A_Resolver$',
75
+ fallback: 'Fl32_Web_Back_Handler_Static_A_Fallback$',
76
+ },
77
+ });
@@ -1,24 +1,14 @@
1
+ /**
2
+ * Static configuration registry.
3
+ */
1
4
  // @ts-check
2
-
3
- export const __deps__ = Object.freeze({
4
- configFactory: 'Fl32_Web_Back_Handler_Static_A_Config$',
5
- logger: 'Fl32_Web_Back_Logger$',
6
- });
7
-
8
5
  export default class Fl32_Web_Back_Handler_Static_A_Registry {
9
- /* eslint-disable jsdoc/require-param-description,jsdoc/check-param-names */
10
6
  /**
11
- * @param {object} params
12
- * @param {Fl32_Web_Back_Handler_Static_A_Config} params.configFactory
13
- * @param {Fl32_Web_Back_Logger} params.logger
7
+ * @param {object} deps
8
+ * @param {Fl32_Web_Back_Handler_Static_A_Config} deps.configFactory
9
+ * @param {Fl32_Web_Back_Logger} deps.logger
14
10
  */
15
- constructor(
16
- {
17
- configFactory,
18
- logger,
19
- }
20
- ) {
21
- /* eslint-enable jsdoc/check-param-names */
11
+ constructor({configFactory, logger}) {
22
12
  /** @type {Fl32_Web_Back_Dto_Source[]} */
23
13
  let _configs = [];
24
14
 
@@ -40,7 +30,6 @@ export default class Fl32_Web_Back_Handler_Static_A_Registry {
40
30
  _configs.sort((a, b) => b.prefix.length - a.prefix.length);
41
31
  };
42
32
 
43
-
44
33
  /**
45
34
  * Find configuration by matching URL prefix.
46
35
  *
@@ -58,3 +47,13 @@ export default class Fl32_Web_Back_Handler_Static_A_Registry {
58
47
  };
59
48
  }
60
49
  }
50
+
51
+ /**
52
+ * Dependencies for the static registry helper.
53
+ */
54
+ export const __deps__ = Object.freeze({
55
+ default: {
56
+ configFactory: 'Fl32_Web_Back_Handler_Static_A_Config$',
57
+ logger: 'Fl32_Web_Back_Logger$',
58
+ },
59
+ });
@@ -1,17 +1,11 @@
1
- // @ts-check
2
-
3
1
  /**
4
- * Enforces allow‐list rules and security checks when resolving
5
- * a relative URL to an absolute filesystem path under a given root.
2
+ * Static path resolver.
6
3
  */
7
- export const __deps__ = Object.freeze({
8
- path: 'node_path',
9
- });
10
-
4
+ // @ts-check
11
5
  export default class Fl32_Web_Back_Handler_Static_A_Resolver {
12
6
  /**
13
- * @param {object} params
14
- * @param {Fl32_Web_Node_Path} params.path
7
+ * @param {object} deps
8
+ * @param {Fl32_Web_Node_Path} deps.path
15
9
  */
16
10
  constructor({path}) {
17
11
  /**
@@ -88,3 +82,12 @@ export default class Fl32_Web_Back_Handler_Static_A_Resolver {
88
82
  };
89
83
  }
90
84
  }
85
+
86
+ /**
87
+ * Dependencies for the static resolver helper.
88
+ */
89
+ export const __deps__ = Object.freeze({
90
+ default: {
91
+ path: 'node:path',
92
+ },
93
+ });
@@ -1,41 +1,20 @@
1
- // @ts-check
2
-
3
1
  /**
4
2
  * Universal static-file PROCESS handler.
5
3
  *
6
4
  * @implements Fl32_Web_Back_Api_Handler
7
5
  */
8
- export const __deps__ = Object.freeze({
9
- registry: 'Fl32_Web_Back_Handler_Static_A_Registry$',
10
- fileService: 'Fl32_Web_Back_Handler_Static_A_FileService$',
11
- respond: 'Fl32_Web_Back_Helper_Respond$',
12
- logger: 'Fl32_Web_Back_Logger$',
13
- dtoInfoFactory: 'Fl32_Web_Back_Dto_Info__Factory$',
14
- STAGE: 'Fl32_Web_Back_Enum_Stage$',
15
- });
16
-
6
+ // @ts-check
17
7
  export default class Fl32_Web_Back_Handler_Static {
18
- /* eslint-disable jsdoc/require-param-description,jsdoc/check-param-names */
19
8
  /**
20
- * @param {object} params
21
- * @param {Fl32_Web_Back_Handler_Static_A_Registry} params.registry
22
- * @param {Fl32_Web_Back_Handler_Static_A_FileService} params.fileService
23
- * @param {Fl32_Web_Back_Helper_Respond} params.respond
24
- * @param {Fl32_Web_Back_Logger} params.logger
25
- * @param {Fl32_Web_Back_Dto_Info$Factory} params.dtoInfoFactory
26
- * @param {Fl32_Web_Back_Enum_Stage} params.STAGE
9
+ * @param {object} deps
10
+ * @param {Fl32_Web_Back_Handler_Static_A_Registry} deps.registry
11
+ * @param {Fl32_Web_Back_Handler_Static_A_FileService} deps.fileService
12
+ * @param {Fl32_Web_Back_Helper_Respond} deps.respond
13
+ * @param {Fl32_Web_Back_Logger} deps.logger
14
+ * @param {Fl32_Web_Back_Dto_Info$Factory} deps.dtoInfoFactory
15
+ * @param {Fl32_Web_Back_Enum_Stage} deps.STAGE
27
16
  */
28
- constructor(
29
- {
30
- registry,
31
- fileService,
32
- respond,
33
- logger,
34
- dtoInfoFactory,
35
- STAGE,
36
- }
37
- ) {
38
- /* eslint-enable jsdoc/check-param-names */
17
+ constructor({registry, fileService, respond, logger, dtoInfoFactory, STAGE}) {
39
18
 
40
19
  const _info = dtoInfoFactory.create({
41
20
  name: this.constructor.name,
@@ -77,3 +56,17 @@ export default class Fl32_Web_Back_Handler_Static {
77
56
  this.getRegistrationInfo = () => _info;
78
57
  }
79
58
  }
59
+
60
+ /**
61
+ * Dependencies for the static handler.
62
+ */
63
+ export const __deps__ = Object.freeze({
64
+ default: {
65
+ registry: 'Fl32_Web_Back_Handler_Static_A_Registry$',
66
+ fileService: 'Fl32_Web_Back_Handler_Static_A_FileService$',
67
+ respond: 'Fl32_Web_Back_Helper_Respond$',
68
+ logger: 'Fl32_Web_Back_Logger$',
69
+ dtoInfoFactory: 'Fl32_Web_Back_Dto_Info__Factory$',
70
+ STAGE: 'Fl32_Web_Back_Enum_Stage$',
71
+ },
72
+ });
@@ -1,5 +1,7 @@
1
+ /**
2
+ * Cast helper used by runtime configuration and DTO factories.
3
+ */
1
4
  // @ts-check
2
-
3
5
  export default class Fl32_Web_Back_Helper_Cast {
4
6
  constructor() {
5
7
  /**
@@ -1,9 +1,8 @@
1
- // @ts-check
2
-
3
1
  /**
4
2
  * MIME type helper with built-in mapping for common file extensions.
5
3
  * Can be replaced or extended by the application via the DI container.
6
4
  */
5
+ // @ts-check
7
6
  export default class Fl32_Web_Back_Helper_Mime {
8
7
  constructor() {
9
8
  /**
@@ -1,8 +1,7 @@
1
- // @ts-check
2
-
3
1
  /**
4
2
  * Sorts named handlers by relative `before` / `after` constraints using Kahn's algorithm.
5
3
  */
4
+ // @ts-check
6
5
  export default class Fl32_Web_Back_Helper_Order_Kahn {
7
6
  constructor() {
8
7
  /**
@@ -1,20 +1,13 @@
1
+ /**
2
+ * HTTP response helper.
3
+ */
1
4
  // @ts-check
2
-
3
- /* eslint-disable jsdoc/require-param-description,jsdoc/check-param-names */
4
- export const __deps__ = Object.freeze({
5
- http2: 'node_http2',
6
- });
7
-
8
5
  export default class Fl32_Web_Back_Helper_Respond {
9
6
  /**
10
- * @param {object} params
11
- * @param {Fl32_Web_Node_Http2} params.http2
7
+ * @param {object} deps
8
+ * @param {Fl32_Web_Node_Http2} deps.http2
12
9
  */
13
- constructor(
14
- {
15
- http2,
16
- }
17
- ) {
10
+ constructor({http2}) {
18
11
  // VARS
19
12
  const {constants: H2} = http2;
20
13
  const {
@@ -160,3 +153,12 @@ export default class Fl32_Web_Back_Helper_Respond {
160
153
  };
161
154
  }
162
155
  }
156
+
157
+ /**
158
+ * Dependencies for the response helper.
159
+ */
160
+ export const __deps__ = Object.freeze({
161
+ default: {
162
+ http2: 'node:http2',
163
+ },
164
+ });
@@ -1,8 +1,7 @@
1
- // @ts-check
2
-
3
1
  /**
4
2
  * Simple logger implementation that delegates to the native console.
5
3
  */
4
+ // @ts-check
6
5
  export default class Fl32_Web_Back_Logger {
7
6
  constructor() {
8
7
  /**
@@ -1,17 +1,9 @@
1
- // @ts-check
2
-
3
1
  /**
4
2
  * Pipeline Engine is the single request-lifecycle coordination component.
5
3
  * It executes handlers in three deterministic stages:
6
4
  * `INIT -> PROCESS -> FINALIZE`.
7
5
  */
8
- export const __deps__ = Object.freeze({
9
- dtoRequestContextFactory: 'Fl32_Web_Back_Dto_RequestContext__Factory$',
10
- logger: 'Fl32_Web_Back_Logger$',
11
- respond: 'Fl32_Web_Back_Helper_Respond$',
12
- helpOrder: 'Fl32_Web_Back_Helper_Order_Kahn$',
13
- STAGE: 'Fl32_Web_Back_Enum_Stage$',
14
- });
6
+ // @ts-check
15
7
 
16
8
  const KEY_STAGE = Symbol('stage');
17
9
 
@@ -25,15 +17,7 @@ export default class Fl32_Web_Back_PipelineEngine {
25
17
  * @param {Fl32_Web_Back_Helper_Order_Kahn} params.helpOrder
26
18
  * @param {Fl32_Web_Back_Enum_Stage} params.STAGE
27
19
  */
28
- constructor(
29
- {
30
- dtoRequestContextFactory,
31
- logger,
32
- respond,
33
- helpOrder,
34
- STAGE,
35
- }
36
- ) {
20
+ constructor({dtoRequestContextFactory, logger, respond, helpOrder, STAGE}) {
37
21
  /* eslint-enable jsdoc/require-param-description,jsdoc/check-param-names */
38
22
  /** @type {Map<string, Fl32_Web_Back_Api_Handler>} */
39
23
  const handlers = new Map();
@@ -214,3 +198,13 @@ export default class Fl32_Web_Back_PipelineEngine {
214
198
  this.handleRequest = async (req, res) => this.onEventRequest(req, res);
215
199
  }
216
200
  }
201
+
202
+ export const __deps__ = Object.freeze({
203
+ default: {
204
+ dtoRequestContextFactory: 'Fl32_Web_Back_Dto_RequestContext__Factory$',
205
+ logger: 'Fl32_Web_Back_Logger$',
206
+ respond: 'Fl32_Web_Back_Helper_Respond$',
207
+ helpOrder: 'Fl32_Web_Back_Helper_Order_Kahn$',
208
+ STAGE: 'Fl32_Web_Back_Enum_Stage$',
209
+ },
210
+ });
@@ -1,20 +1,9 @@
1
- // @ts-check
2
-
3
1
  /**
4
2
  * Web server implementation supporting HTTP/1 and HTTP/2 protocols.
5
3
  * Handles incoming requests and delegates them to the Pipeline Engine.
6
4
  */
7
- export const __deps__ = Object.freeze({
8
- http: 'node_http',
9
- http2: 'node_http2',
10
- config: 'Fl32_Web_Back_Config_Runtime$',
11
- logger: 'Fl32_Web_Back_Logger$',
12
- pipelineEngine: 'Fl32_Web_Back_PipelineEngine$',
13
- SERVER_TYPE: 'Fl32_Web_Back_Enum_Server_Type$',
14
- });
15
-
5
+ // @ts-check
16
6
  export default class Fl32_Web_Back_Server {
17
- /* eslint-disable jsdoc/require-param-description,jsdoc/check-param-names */
18
7
  /**
19
8
  * @param {object} deps
20
9
  * @param {Fl32_Web_Node_Http} deps.http
@@ -24,17 +13,7 @@ export default class Fl32_Web_Back_Server {
24
13
  * @param {Fl32_Web_Back_PipelineEngine} deps.pipelineEngine
25
14
  * @param {Fl32_Web_Back_Enum_Server_Type} deps.SERVER_TYPE
26
15
  */
27
- constructor(
28
- {
29
- http,
30
- http2,
31
- config,
32
- logger,
33
- pipelineEngine,
34
- SERVER_TYPE,
35
- }
36
- ) {
37
- /* eslint-enable jsdoc/require-param-description,jsdoc/check-param-names */
16
+ constructor({http, http2, config, logger, pipelineEngine, SERVER_TYPE}) {
38
17
  // VARS
39
18
  const { createServer } = http;
40
19
  const { createServer: createServerH2, createSecureServer } = http2;
@@ -98,3 +77,17 @@ export default class Fl32_Web_Back_Server {
98
77
  };
99
78
  }
100
79
  }
80
+
81
+ /**
82
+ * Dependencies for the web server.
83
+ */
84
+ export const __deps__ = Object.freeze({
85
+ default: {
86
+ http: 'node:http',
87
+ http2: 'node:http2',
88
+ config: 'Fl32_Web_Back_Config_Runtime$',
89
+ logger: 'Fl32_Web_Back_Logger$',
90
+ pipelineEngine: 'Fl32_Web_Back_PipelineEngine$',
91
+ SERVER_TYPE: 'Fl32_Web_Back_Enum_Server_Type$',
92
+ },
93
+ });