jimpex 8.0.0 → 10.0.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 +33 -0
- package/README.md +2 -2
- package/dist/app/index.d.mts +14 -0
- package/dist/app/index.d.ts +5 -4
- package/dist/app/index.js +4 -0
- package/dist/app/jimpex.d.mts +14 -0
- package/dist/app/jimpex.d.ts +3 -2
- package/dist/app/jimpex.js +238 -2
- package/dist/app/jimpex.js.map +1 -1
- package/dist/controllers/common/config.d.mts +79 -0
- package/dist/controllers/common/config.d.ts +4 -3
- package/dist/controllers/common/config.js +18 -0
- package/dist/controllers/common/config.js.map +1 -1
- package/dist/controllers/common/health.d.mts +83 -0
- package/dist/controllers/common/health.d.ts +5 -4
- package/dist/controllers/common/health.js +18 -0
- package/dist/controllers/common/health.js.map +1 -1
- package/dist/controllers/common/index.d.mts +22 -0
- package/dist/controllers/common/index.d.ts +5 -4
- package/dist/controllers/common/index.js +6 -0
- package/dist/controllers/common/statics.d.mts +223 -0
- package/dist/controllers/common/statics.d.ts +13 -5
- package/dist/controllers/common/statics.js +60 -3
- package/dist/controllers/common/statics.js.map +1 -1
- package/dist/controllers/index.d.mts +25 -0
- package/dist/controllers/index.d.ts +5 -4
- package/dist/controllers/index.js +5 -0
- package/dist/controllers/utils/gateway.d.mts +725 -0
- package/dist/controllers/utils/gateway.d.ts +5 -4
- package/dist/controllers/utils/gateway.js +155 -0
- package/dist/controllers/utils/gateway.js.map +1 -1
- package/dist/controllers/utils/index.d.mts +17 -0
- package/dist/controllers/utils/index.d.ts +4 -3
- package/dist/controllers/utils/index.js +4 -0
- package/dist/esm/app/jimpex.js +235 -3
- package/dist/esm/app/jimpex.js.map +1 -1
- package/dist/esm/{chunk-T2T6Q22Z.js → chunk-F3FYYIAV.js} +1 -1
- package/dist/esm/controllers/common/config.js +19 -1
- package/dist/esm/controllers/common/config.js.map +1 -1
- package/dist/esm/controllers/common/health.js +19 -1
- package/dist/esm/controllers/common/health.js.map +1 -1
- package/dist/esm/controllers/common/statics.js +57 -4
- package/dist/esm/controllers/common/statics.js.map +1 -1
- package/dist/esm/controllers/utils/gateway.js +156 -1
- package/dist/esm/controllers/utils/gateway.js.map +1 -1
- package/dist/esm/middlewares/common/errorHandler.js +25 -1
- package/dist/esm/middlewares/common/errorHandler.js.map +1 -1
- package/dist/esm/middlewares/common/forceHTTPS.js +13 -1
- package/dist/esm/middlewares/common/forceHTTPS.js.map +1 -1
- package/dist/esm/middlewares/common/hsts.js +22 -1
- package/dist/esm/middlewares/common/hsts.js.map +1 -1
- package/dist/esm/middlewares/html/fastHTML.js +55 -1
- package/dist/esm/middlewares/html/fastHTML.js.map +1 -1
- package/dist/esm/middlewares/html/showHTML.js +33 -1
- package/dist/esm/middlewares/html/showHTML.js.map +1 -1
- package/dist/esm/middlewares/utils/versionValidator.js +35 -1
- package/dist/esm/middlewares/utils/versionValidator.js.map +1 -1
- package/dist/esm/services/common/appError.js +48 -2
- package/dist/esm/services/common/appError.js.map +1 -1
- package/dist/esm/services/common/httpError.js +10 -1
- package/dist/esm/services/common/httpError.js.map +1 -1
- package/dist/esm/services/common/index.js +1 -1
- package/dist/esm/services/common/sendFile.js +1 -1
- package/dist/esm/services/frontend/frontendFs.js +29 -1
- package/dist/esm/services/frontend/frontendFs.js.map +1 -1
- package/dist/esm/services/frontend/index.js +1 -1
- package/dist/esm/services/html/htmlGenerator.js +51 -1
- package/dist/esm/services/html/htmlGenerator.js.map +1 -1
- package/dist/esm/services/html/index.js +1 -1
- package/dist/esm/services/http/apiClient.js +27 -1
- package/dist/esm/services/http/apiClient.js.map +1 -1
- package/dist/esm/services/http/http.js +60 -5
- package/dist/esm/services/http/http.js.map +1 -1
- package/dist/esm/services/http/index.js +1 -1
- package/dist/esm/services/http/responsesBuilder.js +49 -2
- package/dist/esm/services/http/responsesBuilder.js.map +1 -1
- package/dist/esm/services/utils/ensureBearerToken.js +17 -1
- package/dist/esm/services/utils/ensureBearerToken.js.map +1 -1
- package/dist/esm/services/utils/index.js +1 -1
- package/dist/esm/utils/fns/others.js +1 -1
- package/dist/esm/utils/fns/routes.js +1 -1
- package/dist/esm/utils/fns/routes.js.map +1 -1
- package/dist/esm/utils/fns/statuses.js +1 -1
- package/dist/esm/utils/fns/text.js +1 -1
- package/dist/esm/utils/wrappers.js +1 -1
- package/dist/index-Bwf7JHu9.d.mts +1287 -0
- package/dist/{jimpex-7eaee271.d.ts → index-C6I3NCC-.d.ts} +15 -6
- package/dist/index.d.mts +47 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +9 -0
- package/dist/middlewares/common/errorHandler.d.mts +132 -0
- package/dist/middlewares/common/errorHandler.d.ts +5 -4
- package/dist/middlewares/common/errorHandler.js +24 -0
- package/dist/middlewares/common/errorHandler.js.map +1 -1
- package/dist/middlewares/common/forceHTTPS.d.mts +69 -0
- package/dist/middlewares/common/forceHTTPS.d.ts +6 -5
- package/dist/middlewares/common/forceHTTPS.js +12 -0
- package/dist/middlewares/common/forceHTTPS.js.map +1 -1
- package/dist/middlewares/common/hsts.d.mts +110 -0
- package/dist/middlewares/common/hsts.d.ts +6 -5
- package/dist/middlewares/common/hsts.js +21 -0
- package/dist/middlewares/common/hsts.js.map +1 -1
- package/dist/middlewares/common/index.d.mts +22 -0
- package/dist/middlewares/common/index.d.ts +4 -3
- package/dist/middlewares/common/index.js +6 -0
- package/dist/middlewares/html/fastHTML.d.mts +180 -0
- package/dist/middlewares/html/fastHTML.d.ts +5 -5
- package/dist/middlewares/html/fastHTML.js +54 -0
- package/dist/middlewares/html/fastHTML.js.map +1 -1
- package/dist/middlewares/html/index.d.mts +21 -0
- package/dist/middlewares/html/index.d.ts +4 -4
- package/dist/middlewares/html/index.js +5 -0
- package/dist/middlewares/html/showHTML.d.mts +127 -0
- package/dist/middlewares/html/showHTML.d.ts +5 -5
- package/dist/middlewares/html/showHTML.js +32 -0
- package/dist/middlewares/html/showHTML.js.map +1 -1
- package/dist/middlewares/index.d.mts +30 -0
- package/dist/middlewares/index.d.ts +4 -4
- package/dist/middlewares/index.js +6 -0
- package/dist/middlewares/utils/index.d.mts +20 -0
- package/dist/middlewares/utils/index.d.ts +4 -3
- package/dist/middlewares/utils/index.js +4 -0
- package/dist/middlewares/utils/versionValidator.d.mts +215 -0
- package/dist/middlewares/utils/versionValidator.d.ts +5 -4
- package/dist/middlewares/utils/versionValidator.js +34 -0
- package/dist/middlewares/utils/versionValidator.js.map +1 -1
- package/dist/services/common/appError.d.mts +139 -0
- package/dist/services/common/appError.d.ts +5 -4
- package/dist/services/common/appError.js +47 -1
- package/dist/services/common/appError.js.map +1 -1
- package/dist/services/common/httpError.d.mts +80 -0
- package/dist/services/common/httpError.d.ts +5 -4
- package/dist/services/common/httpError.js +9 -0
- package/dist/services/common/httpError.js.map +1 -1
- package/dist/services/common/index.d.mts +47 -0
- package/dist/services/common/index.d.ts +4 -4
- package/dist/services/common/index.js +4 -1
- package/dist/services/common/sendFile.d.mts +102 -0
- package/dist/services/common/sendFile.d.ts +4 -4
- package/dist/services/frontend/frontendFs.d.mts +96 -0
- package/dist/services/frontend/frontendFs.d.ts +4 -4
- package/dist/services/frontend/frontendFs.js +32 -0
- package/dist/services/frontend/frontendFs.js.map +1 -1
- package/dist/services/frontend/index.d.mts +40 -0
- package/dist/services/frontend/index.d.ts +4 -4
- package/dist/services/frontend/index.js +2 -1
- package/dist/services/html/htmlGenerator.d.mts +237 -0
- package/dist/services/html/htmlGenerator.d.ts +3 -3
- package/dist/services/html/htmlGenerator.js +50 -0
- package/dist/services/html/htmlGenerator.js.map +1 -1
- package/dist/services/html/index.d.mts +43 -0
- package/dist/services/html/index.d.ts +4 -4
- package/dist/services/html/index.js +2 -1
- package/dist/services/http/apiClient.d.mts +170 -0
- package/dist/services/http/apiClient.d.ts +5 -4
- package/dist/services/http/apiClient.js +26 -0
- package/dist/services/http/apiClient.js.map +1 -1
- package/dist/services/http/http.d.mts +182 -0
- package/dist/services/http/http.d.ts +15 -8
- package/dist/services/http/http.js +63 -4
- package/dist/services/http/http.js.map +1 -1
- package/dist/services/http/index.d.mts +51 -0
- package/dist/services/http/index.d.ts +4 -3
- package/dist/services/http/index.js +4 -1
- package/dist/services/http/responsesBuilder.d.mts +179 -0
- package/dist/services/http/responsesBuilder.d.ts +4 -3
- package/dist/services/http/responsesBuilder.js +48 -1
- package/dist/services/http/responsesBuilder.js.map +1 -1
- package/dist/services/index.d.mts +33 -0
- package/dist/services/index.d.ts +4 -4
- package/dist/services/index.js +8 -0
- package/dist/services/utils/ensureBearerToken.d.mts +158 -0
- package/dist/services/utils/ensureBearerToken.d.ts +6 -5
- package/dist/services/utils/ensureBearerToken.js +16 -0
- package/dist/services/utils/ensureBearerToken.js.map +1 -1
- package/dist/services/utils/index.d.mts +44 -0
- package/dist/services/utils/index.d.ts +4 -3
- package/dist/services/utils/index.js +2 -1
- package/dist/types/events.d.mts +14 -0
- package/dist/types/events.d.ts +5 -4
- package/dist/types/express.d.mts +10 -0
- package/dist/types/express.d.ts +1 -1
- package/dist/types/http.d.mts +82 -0
- package/dist/types/http.d.ts +5 -2
- package/dist/types/http.js.map +1 -1
- package/dist/types/index.d.mts +14 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +9 -0
- package/dist/types/options.d.mts +14 -0
- package/dist/types/options.d.ts +4 -3
- package/dist/types/utils.d.mts +48 -0
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/wootils.d.mts +4 -0
- package/dist/utils/fns/index.d.mts +5 -0
- package/dist/utils/fns/index.js +7 -0
- package/dist/utils/fns/others.d.mts +17 -0
- package/dist/utils/fns/routes.d.mts +39 -0
- package/dist/utils/fns/routes.js.map +1 -1
- package/dist/utils/fns/statuses.d.mts +45 -0
- package/dist/utils/fns/statuses.d.ts +1 -1
- package/dist/utils/fns/statuses.js +4 -0
- package/dist/utils/fns/statuses.js.map +1 -1
- package/dist/utils/fns/text.d.mts +9 -0
- package/dist/utils/index.d.mts +19 -0
- package/dist/utils/index.d.ts +5 -4
- package/dist/utils/index.js +5 -0
- package/dist/utils/wrappers.d.mts +14 -0
- package/dist/utils/wrappers.d.ts +4 -3
- package/package.json +50 -49
- package/src/app/jimpex.ts +15 -2
- package/src/controllers/common/statics.ts +13 -2
- package/src/controllers/utils/gateway.ts +4 -0
- package/src/services/http/http.ts +13 -4
- package/src/types/http.ts +3 -0
- /package/dist/esm/{chunk-T2T6Q22Z.js.map → chunk-F3FYYIAV.js.map} +0 -0
package/dist/utils/index.d.ts
CHANGED
|
@@ -2,10 +2,8 @@ export { notUndefined } from './fns/others.js';
|
|
|
2
2
|
export { createRouteExpression, removeLeadingSlash, removeSlashes, removeTrailingSlash } from './fns/routes.js';
|
|
3
3
|
export { Statuses } from './fns/statuses.js';
|
|
4
4
|
export { escapeForRegExp } from './fns/text.js';
|
|
5
|
-
export { H as Controller, C as ControllerConnectFn, I as ControllerCreator, F as ControllerCreatorFn, a2 as ControllerLike, O as ControllerProvider, Q as ControllerProviderCreator, M as ControllerProviderCreatorFn, K as ControllerProviderRegisterFn, V as Middleware, R as MiddlewareConnectFn, W as MiddlewareCreator, T as MiddlewareCreatorFn, a1 as MiddlewareLike, $ as MiddlewareProvider, a0 as MiddlewareProviderCreator, Z as MiddlewareProviderCreatorFn, X as MiddlewareProviderRegisterFn, y as Provider, z as ProviderCreator, B as ProviderLike, P as ProviderRegisterFn, A as Providers, D as controller, G as controllerCreator, L as controllerProvider, N as controllerProviderCreator, S as middleware, U as middlewareCreator, Y as middlewareProvider, _ as middlewareProviderCreator, v as provider, w as providerCreator, x as providers } from '../
|
|
5
|
+
export { H as Controller, C as ControllerConnectFn, I as ControllerCreator, F as ControllerCreatorFn, a2 as ControllerLike, O as ControllerProvider, Q as ControllerProviderCreator, M as ControllerProviderCreatorFn, K as ControllerProviderRegisterFn, V as Middleware, R as MiddlewareConnectFn, W as MiddlewareCreator, T as MiddlewareCreatorFn, a1 as MiddlewareLike, $ as MiddlewareProvider, a0 as MiddlewareProviderCreator, Z as MiddlewareProviderCreatorFn, X as MiddlewareProviderRegisterFn, y as Provider, z as ProviderCreator, B as ProviderLike, P as ProviderRegisterFn, A as Providers, D as controller, G as controllerCreator, L as controllerProvider, N as controllerProviderCreator, S as middleware, U as middlewareCreator, Y as middlewareProvider, _ as middlewareProviderCreator, v as provider, w as providerCreator, x as providers } from '../index-C6I3NCC-.js';
|
|
6
6
|
export { default as statuses } from 'statuses';
|
|
7
|
-
import '@homer0/jimple';
|
|
8
|
-
import '@homer0/events-hub';
|
|
9
7
|
import '../types/express.js';
|
|
10
8
|
import 'express';
|
|
11
9
|
import '../types/http.js';
|
|
@@ -13,6 +11,9 @@ import 'https';
|
|
|
13
11
|
import 'http';
|
|
14
12
|
import 'spdy';
|
|
15
13
|
import 'node-fetch';
|
|
16
|
-
import '@homer0/simple-config';
|
|
17
14
|
import '../types/utils.js';
|
|
15
|
+
import '@homer0/path-utils';
|
|
18
16
|
import '@homer0/simple-logger';
|
|
17
|
+
import '@homer0/simple-config';
|
|
18
|
+
import '@homer0/events-hub';
|
|
19
|
+
import '@homer0/jimple';
|
package/dist/utils/index.js
CHANGED
|
@@ -17,4 +17,9 @@ var utils_exports = {};
|
|
|
17
17
|
module.exports = __toCommonJS(utils_exports);
|
|
18
18
|
__reExport(utils_exports, require("./fns"), module.exports);
|
|
19
19
|
__reExport(utils_exports, require("./wrappers"), module.exports);
|
|
20
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
21
|
+
0 && (module.exports = {
|
|
22
|
+
...require("./fns"),
|
|
23
|
+
...require("./wrappers")
|
|
24
|
+
});
|
|
20
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import '@homer0/jimple';
|
|
2
|
+
export { H as Controller, C as ControllerConnectFn, I as ControllerCreator, F as ControllerCreatorFn, a2 as ControllerLike, O as ControllerProvider, Q as ControllerProviderCreator, M as ControllerProviderCreatorFn, K as ControllerProviderRegisterFn, V as Middleware, R as MiddlewareConnectFn, W as MiddlewareCreator, T as MiddlewareCreatorFn, a1 as MiddlewareLike, $ as MiddlewareProvider, a0 as MiddlewareProviderCreator, Z as MiddlewareProviderCreatorFn, X as MiddlewareProviderRegisterFn, y as Provider, z as ProviderCreator, B as ProviderLike, P as ProviderRegisterFn, A as Providers, D as controller, G as controllerCreator, L as controllerProvider, N as controllerProviderCreator, S as middleware, U as middlewareCreator, Y as middlewareProvider, _ as middlewareProviderCreator, v as provider, w as providerCreator, x as providers } from '../index-Bwf7JHu9.mjs';
|
|
3
|
+
import '../types/express.mjs';
|
|
4
|
+
import '../types/utils.mjs';
|
|
5
|
+
import 'express';
|
|
6
|
+
import '../types/http.mjs';
|
|
7
|
+
import 'https';
|
|
8
|
+
import 'http';
|
|
9
|
+
import 'spdy';
|
|
10
|
+
import 'node-fetch';
|
|
11
|
+
import '@homer0/path-utils';
|
|
12
|
+
import '@homer0/simple-logger';
|
|
13
|
+
import '@homer0/simple-config';
|
|
14
|
+
import '@homer0/events-hub';
|
package/dist/utils/wrappers.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import '@homer0/jimple';
|
|
2
|
-
export { H as Controller, C as ControllerConnectFn, I as ControllerCreator, F as ControllerCreatorFn, a2 as ControllerLike, O as ControllerProvider, Q as ControllerProviderCreator, M as ControllerProviderCreatorFn, K as ControllerProviderRegisterFn, V as Middleware, R as MiddlewareConnectFn, W as MiddlewareCreator, T as MiddlewareCreatorFn, a1 as MiddlewareLike, $ as MiddlewareProvider, a0 as MiddlewareProviderCreator, Z as MiddlewareProviderCreatorFn, X as MiddlewareProviderRegisterFn, y as Provider, z as ProviderCreator, B as ProviderLike, P as ProviderRegisterFn, A as Providers, D as controller, G as controllerCreator, L as controllerProvider, N as controllerProviderCreator, S as middleware, U as middlewareCreator, Y as middlewareProvider, _ as middlewareProviderCreator, v as provider, w as providerCreator, x as providers } from '../
|
|
2
|
+
export { H as Controller, C as ControllerConnectFn, I as ControllerCreator, F as ControllerCreatorFn, a2 as ControllerLike, O as ControllerProvider, Q as ControllerProviderCreator, M as ControllerProviderCreatorFn, K as ControllerProviderRegisterFn, V as Middleware, R as MiddlewareConnectFn, W as MiddlewareCreator, T as MiddlewareCreatorFn, a1 as MiddlewareLike, $ as MiddlewareProvider, a0 as MiddlewareProviderCreator, Z as MiddlewareProviderCreatorFn, X as MiddlewareProviderRegisterFn, y as Provider, z as ProviderCreator, B as ProviderLike, P as ProviderRegisterFn, A as Providers, D as controller, G as controllerCreator, L as controllerProvider, N as controllerProviderCreator, S as middleware, U as middlewareCreator, Y as middlewareProvider, _ as middlewareProviderCreator, v as provider, w as providerCreator, x as providers } from '../index-C6I3NCC-.js';
|
|
3
3
|
import '../types/express.js';
|
|
4
4
|
import '../types/utils.js';
|
|
5
5
|
import 'express';
|
|
6
|
-
import '@homer0/events-hub';
|
|
7
6
|
import '../types/http.js';
|
|
8
7
|
import 'https';
|
|
9
8
|
import 'http';
|
|
10
9
|
import 'spdy';
|
|
11
10
|
import 'node-fetch';
|
|
12
|
-
import '@homer0/
|
|
11
|
+
import '@homer0/path-utils';
|
|
13
12
|
import '@homer0/simple-logger';
|
|
13
|
+
import '@homer0/simple-config';
|
|
14
|
+
import '@homer0/events-hub';
|
package/package.json
CHANGED
|
@@ -2,67 +2,68 @@
|
|
|
2
2
|
"name": "jimpex",
|
|
3
3
|
"description": "Express as dependency injection container.",
|
|
4
4
|
"homepage": "https://homer0.github.io/jimpex/",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "10.0.0",
|
|
6
6
|
"repository": "homer0/jimpex",
|
|
7
7
|
"author": "Leonardo Apiwan (@homer0) <me@homer0.com>",
|
|
8
8
|
"license": "MIT",
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@homer0/api-utils": "^
|
|
11
|
-
"@homer0/deep-assign": "^
|
|
12
|
-
"@homer0/deferred": "^
|
|
13
|
-
"@homer0/env-utils": "^
|
|
14
|
-
"@homer0/events-hub": "^
|
|
15
|
-
"@homer0/jimple": "^
|
|
16
|
-
"@homer0/object-utils": "^
|
|
17
|
-
"@homer0/package-info": "^
|
|
18
|
-
"@homer0/path-utils": "^
|
|
19
|
-
"@homer0/root-file": "^
|
|
20
|
-
"@homer0/simple-
|
|
21
|
-
"@homer0/simple-
|
|
22
|
-
"
|
|
23
|
-
"
|
|
10
|
+
"@homer0/api-utils": "^3.0.4",
|
|
11
|
+
"@homer0/deep-assign": "^3.0.4",
|
|
12
|
+
"@homer0/deferred": "^3.0.4",
|
|
13
|
+
"@homer0/env-utils": "^3.0.4",
|
|
14
|
+
"@homer0/events-hub": "^3.0.4",
|
|
15
|
+
"@homer0/jimple": "^3.0.4",
|
|
16
|
+
"@homer0/object-utils": "^3.0.4",
|
|
17
|
+
"@homer0/package-info": "^3.0.4",
|
|
18
|
+
"@homer0/path-utils": "^3.0.4",
|
|
19
|
+
"@homer0/root-file": "^3.0.4",
|
|
20
|
+
"@homer0/simple-config": "^3.0.4",
|
|
21
|
+
"@homer0/simple-logger": "^3.0.4",
|
|
22
|
+
"@homer0/ts-async-import": "^1.1.3",
|
|
23
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
24
|
+
"@semantic-release/git": "^10.0.1",
|
|
25
|
+
"body-parser": "^1.20.2",
|
|
24
26
|
"compression": "^1.7.4",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
+
"express": "^4.19.2",
|
|
28
|
+
"mime": "^4.0.1",
|
|
29
|
+
"multer": "1.4.5-lts.1",
|
|
30
|
+
"node-fetch": "^3.3.2",
|
|
31
|
+
"semantic-release": "^23.0.7",
|
|
32
|
+
"spdy": "^4.0.2",
|
|
27
33
|
"statuses": "^2.0.1",
|
|
28
|
-
"
|
|
29
|
-
"mime": "^3.0.0",
|
|
30
|
-
"spdy": "^4.0.2"
|
|
34
|
+
"urijs": "^1.19.11"
|
|
31
35
|
},
|
|
32
36
|
"devDependencies": {
|
|
33
|
-
"@commitlint/cli": "^
|
|
34
|
-
"@commitlint/config-conventional": "^
|
|
35
|
-
"@homer0/eslint-plugin": "^
|
|
36
|
-
"@homer0/prettier-config": "^1.1.
|
|
37
|
-
"@homer0/prettier-plugin-jsdoc": "^
|
|
38
|
-
"@homer0/tsconfig": "^1.0.
|
|
39
|
-
"@
|
|
40
|
-
"@
|
|
41
|
-
"@types/
|
|
42
|
-
"@types/
|
|
43
|
-
"@types/
|
|
44
|
-
"@types/
|
|
45
|
-
"@types/
|
|
46
|
-
"@types/
|
|
47
|
-
"@types/
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"eslint": "^8.30.0",
|
|
37
|
+
"@commitlint/cli": "^19.2.1",
|
|
38
|
+
"@commitlint/config-conventional": "^19.1.0",
|
|
39
|
+
"@homer0/eslint-plugin": "^12.0.4",
|
|
40
|
+
"@homer0/prettier-config": "^1.1.3",
|
|
41
|
+
"@homer0/prettier-plugin-jsdoc": "^8.0.0",
|
|
42
|
+
"@homer0/tsconfig": "^1.0.15",
|
|
43
|
+
"@types/body-parser": "^1.19.5",
|
|
44
|
+
"@types/compression": "^1.7.5",
|
|
45
|
+
"@types/express": "^4.17.21",
|
|
46
|
+
"@types/jest": "^29.5.12",
|
|
47
|
+
"@types/multer": "^1.4.11",
|
|
48
|
+
"@types/node": "^20.12.5",
|
|
49
|
+
"@types/spdy": "^3.4.9",
|
|
50
|
+
"@types/statuses": "^2.0.5",
|
|
51
|
+
"@types/urijs": "^1.19.25",
|
|
52
|
+
"eslint": "^8.57.0",
|
|
53
|
+
"husky": "^9.0.11",
|
|
51
54
|
"is-ci": "^3.0.1",
|
|
52
|
-
"jest": "^29.
|
|
53
|
-
"leasot": "^13.
|
|
54
|
-
"lint-staged": "^
|
|
55
|
-
"
|
|
56
|
-
"semantic-release": "^19.0.5",
|
|
57
|
-
"ts-jest": "^29.0.3",
|
|
55
|
+
"jest": "^29.7.0",
|
|
56
|
+
"leasot": "^13.3.0",
|
|
57
|
+
"lint-staged": "^15.2.2",
|
|
58
|
+
"ts-jest": "^29.1.2",
|
|
58
59
|
"ts-node-dev": "^2.0.0",
|
|
59
|
-
"tsup": "^
|
|
60
|
-
"typedoc": "0.
|
|
61
|
-
"typescript": "^4.
|
|
60
|
+
"tsup": "^8.0.2",
|
|
61
|
+
"typedoc": "0.25.12",
|
|
62
|
+
"typescript": "^5.4.4"
|
|
62
63
|
},
|
|
63
64
|
"engine-strict": true,
|
|
64
65
|
"engines": {
|
|
65
|
-
"node": ">=
|
|
66
|
+
"node": ">=18.17 <21"
|
|
66
67
|
},
|
|
67
68
|
"main": "./dist/index.js",
|
|
68
69
|
"module": "./dist/esm/index.js",
|
|
@@ -89,7 +90,7 @@
|
|
|
89
90
|
"docs": "./utils/scripts/docs",
|
|
90
91
|
"todo": "./utils/scripts/todo",
|
|
91
92
|
"example": "./utils/scripts/example",
|
|
92
|
-
"prepublishOnly": "
|
|
93
|
+
"prepublishOnly": "pnpm run build",
|
|
93
94
|
"prepare": "./utils/scripts/prepare"
|
|
94
95
|
}
|
|
95
96
|
}
|
package/src/app/jimpex.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { envUtilsProvider } from '@homer0/env-utils';
|
|
|
8
8
|
import { packageInfoProvider } from '@homer0/package-info';
|
|
9
9
|
import { pathUtilsProvider } from '@homer0/path-utils';
|
|
10
10
|
import { rootFileProvider } from '@homer0/root-file';
|
|
11
|
+
import { tsAsyncImport } from '@homer0/ts-async-import';
|
|
11
12
|
import { EventsHub } from '@homer0/events-hub';
|
|
12
13
|
import { simpleConfigProvider } from '@homer0/simple-config';
|
|
13
14
|
import compression from 'compression';
|
|
@@ -181,7 +182,7 @@ export class Jimpex extends Jimple {
|
|
|
181
182
|
* @returns The server instance.
|
|
182
183
|
*/
|
|
183
184
|
async start(onStart?: JimpexStartCallback): Promise<JimpexServerInstance> {
|
|
184
|
-
await this._setupConfig();
|
|
185
|
+
await Promise.all([this._setupConfig(), this._loadESMModules()]);
|
|
185
186
|
const config = this.getConfig();
|
|
186
187
|
const port = config.get<number | undefined>('port');
|
|
187
188
|
if (!port) {
|
|
@@ -218,7 +219,7 @@ export class Jimpex extends Jimple {
|
|
|
218
219
|
onStart?: JimpexStartCallback,
|
|
219
220
|
): Promise<JimpexServerInstance> {
|
|
220
221
|
if (port) {
|
|
221
|
-
await this._setupConfig();
|
|
222
|
+
await Promise.all([this._setupConfig(), this._loadESMModules()]);
|
|
222
223
|
const config = this.getConfig();
|
|
223
224
|
config.set('port', port);
|
|
224
225
|
}
|
|
@@ -608,6 +609,18 @@ export class Jimpex extends Jimple {
|
|
|
608
609
|
await config.loadFromEnv();
|
|
609
610
|
}
|
|
610
611
|
}
|
|
612
|
+
/**
|
|
613
|
+
* Loads the ESM modules that are needed by Jimpex. This is called just before the starting
|
|
614
|
+
* the application so they'll be available for all the services.
|
|
615
|
+
*/
|
|
616
|
+
protected async _loadESMModules(): Promise<void> {
|
|
617
|
+
const { default: nodeFetch } =
|
|
618
|
+
await tsAsyncImport<typeof import('node-fetch')>('node-fetch');
|
|
619
|
+
const { default: mime } = await tsAsyncImport<typeof import('mime')>('mime');
|
|
620
|
+
|
|
621
|
+
this.set('node-fetch', () => nodeFetch);
|
|
622
|
+
this.set('mime', () => mime);
|
|
623
|
+
}
|
|
611
624
|
/**
|
|
612
625
|
* Processes the resources from the mount queue (added with {@link Jimpex.mount} and
|
|
613
626
|
* {@link Jimpex.use}), and adds them to the Express application.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
|
-
import
|
|
2
|
+
import type mime from 'mime';
|
|
3
3
|
import { deepAssignWithOverwrite } from '@homer0/deep-assign';
|
|
4
4
|
import {
|
|
5
5
|
controllerCreator,
|
|
@@ -10,6 +10,9 @@ import {
|
|
|
10
10
|
import type { SendFile } from '../../services';
|
|
11
11
|
import type { Jimpex } from '../../app';
|
|
12
12
|
import type { DeepPartial, ExpressMiddleware, Router, RouterMethod } from '../../types';
|
|
13
|
+
|
|
14
|
+
type Mime = typeof mime;
|
|
15
|
+
|
|
13
16
|
/**
|
|
14
17
|
* The definition for each file the controller handles.
|
|
15
18
|
*
|
|
@@ -84,6 +87,7 @@ export type StaticsControllerConstructorOptions =
|
|
|
84
87
|
*/
|
|
85
88
|
inject: {
|
|
86
89
|
sendFile: SendFile;
|
|
90
|
+
mime: Mime;
|
|
87
91
|
};
|
|
88
92
|
};
|
|
89
93
|
/**
|
|
@@ -147,6 +151,11 @@ export class StaticsController {
|
|
|
147
151
|
* The service that serves static files.
|
|
148
152
|
*/
|
|
149
153
|
protected readonly _sendFile: SendFile;
|
|
154
|
+
/**
|
|
155
|
+
* The MIME type library. Since it's an ESM only module, Jimpex loads it on boot and makes
|
|
156
|
+
* it available on the container.
|
|
157
|
+
*/
|
|
158
|
+
protected readonly _mime: Mime;
|
|
150
159
|
/**
|
|
151
160
|
* The controller customization options.
|
|
152
161
|
*/
|
|
@@ -161,6 +170,7 @@ export class StaticsController {
|
|
|
161
170
|
*/
|
|
162
171
|
constructor({ inject, ...options }: StaticsControllerConstructorOptions) {
|
|
163
172
|
this._sendFile = inject.sendFile;
|
|
173
|
+
this._mime = inject.mime;
|
|
164
174
|
this._options = this._validateOptions(
|
|
165
175
|
deepAssignWithOverwrite(
|
|
166
176
|
{
|
|
@@ -224,7 +234,7 @@ export class StaticsController {
|
|
|
224
234
|
return (_, res, next) => {
|
|
225
235
|
const extension = path.parse(file.path).ext.substring(1);
|
|
226
236
|
const headers = {
|
|
227
|
-
'Content-Type':
|
|
237
|
+
'Content-Type': this._mime.getType(extension) || 'text/html',
|
|
228
238
|
...file.headers,
|
|
229
239
|
};
|
|
230
240
|
|
|
@@ -358,6 +368,7 @@ export const staticsController = controllerCreator(
|
|
|
358
368
|
const ctrl = new StaticsController({
|
|
359
369
|
inject: {
|
|
360
370
|
sendFile: app.get('sendFile'),
|
|
371
|
+
mime: app.get('mime'),
|
|
361
372
|
},
|
|
362
373
|
...options,
|
|
363
374
|
});
|
|
@@ -737,6 +737,10 @@ export class GatewayController {
|
|
|
737
737
|
});
|
|
738
738
|
|
|
739
739
|
if (shouldStream) {
|
|
740
|
+
if (response.body === null) {
|
|
741
|
+
throw new Error('The response body is null');
|
|
742
|
+
}
|
|
743
|
+
|
|
740
744
|
/**
|
|
741
745
|
* If the response should be streamed, set the status, remove unwanted headers,
|
|
742
746
|
* and pipe it to the application response object.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import fetch, { type RequestInit, type BodyInit } from 'node-fetch';
|
|
2
1
|
import urijs from 'urijs';
|
|
2
|
+
import type { RequestInit, BodyInit } from 'node-fetch';
|
|
3
3
|
import { deepAssignWithOverwrite } from '@homer0/deep-assign';
|
|
4
4
|
import { provider } from '../../utils';
|
|
5
|
-
import { Logger, Request, HTTPResponse } from '../../types';
|
|
5
|
+
import { Logger, Request, HTTPResponse, NodeFetch } from '../../types';
|
|
6
|
+
|
|
6
7
|
/**
|
|
7
8
|
* The options to customize the service.
|
|
8
9
|
*
|
|
@@ -25,6 +26,7 @@ export type HTTPContructorOptions = Partial<HTTPOptions> & {
|
|
|
25
26
|
*/
|
|
26
27
|
inject: {
|
|
27
28
|
logger: Logger;
|
|
29
|
+
nodeFetch: NodeFetch;
|
|
28
30
|
};
|
|
29
31
|
};
|
|
30
32
|
/**
|
|
@@ -89,6 +91,11 @@ export class HTTP {
|
|
|
89
91
|
* The service used to log information in the terminal.
|
|
90
92
|
*/
|
|
91
93
|
protected readonly _logger: Logger;
|
|
94
|
+
/**
|
|
95
|
+
* The node-fetch library. Since it's an ESM only module, Jimpex loads it on boot and makes
|
|
96
|
+
* it available on the container.
|
|
97
|
+
*/
|
|
98
|
+
protected readonly _nodeFetch: NodeFetch;
|
|
92
99
|
/**
|
|
93
100
|
* The service customization options.
|
|
94
101
|
*/
|
|
@@ -96,8 +103,9 @@ export class HTTP {
|
|
|
96
103
|
/**
|
|
97
104
|
* @param options The options to construct the class.
|
|
98
105
|
*/
|
|
99
|
-
constructor({ inject: { logger }, ...options }: HTTPContructorOptions) {
|
|
106
|
+
constructor({ inject: { logger, nodeFetch }, ...options }: HTTPContructorOptions) {
|
|
100
107
|
this._logger = logger;
|
|
108
|
+
this._nodeFetch = nodeFetch;
|
|
101
109
|
this._options = deepAssignWithOverwrite(
|
|
102
110
|
{
|
|
103
111
|
logRequests: false,
|
|
@@ -146,7 +154,7 @@ export class HTTP {
|
|
|
146
154
|
this._logRequest(useURL, fetchOptions);
|
|
147
155
|
}
|
|
148
156
|
|
|
149
|
-
const response = await
|
|
157
|
+
const response = await this._nodeFetch(useURL, fetchOptions);
|
|
150
158
|
if (logRequests) {
|
|
151
159
|
this._logResponse(response);
|
|
152
160
|
}
|
|
@@ -279,6 +287,7 @@ export const httpProvider = provider((app) => {
|
|
|
279
287
|
return new HTTP({
|
|
280
288
|
inject: {
|
|
281
289
|
logger: app.get('logger'),
|
|
290
|
+
nodeFetch: app.get('node-fetch'),
|
|
282
291
|
},
|
|
283
292
|
logRequests,
|
|
284
293
|
});
|
package/src/types/http.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { Server as HTTPSServer } from 'https';
|
|
2
2
|
import type { Server as HTTPServer } from 'http';
|
|
3
3
|
import type { ServerOptions as SpdyServerOptions } from 'spdy';
|
|
4
|
+
import type NodeFetchFn from 'node-fetch';
|
|
4
5
|
import type { Express } from './express';
|
|
5
6
|
|
|
6
7
|
export type { Response as HTTPResponse } from 'node-fetch';
|
|
7
8
|
|
|
9
|
+
export type NodeFetch = typeof NodeFetchFn;
|
|
10
|
+
|
|
8
11
|
export type { HTTPSServer, HTTPServer };
|
|
9
12
|
/**
|
|
10
13
|
* @group Jimpex
|
|
File without changes
|