@opra/core 0.33.13 → 1.0.0-alpha.2

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 (156) hide show
  1. package/cjs/augmentation/18n.augmentation.js +17 -4
  2. package/cjs/augmentation/http-controller.augmentation.js +25 -0
  3. package/cjs/constants.js +5 -0
  4. package/cjs/execution-context.js +25 -12
  5. package/cjs/{services → helpers}/logger.js +1 -2
  6. package/cjs/{services/api-service.js → helpers/service-base.js} +8 -8
  7. package/cjs/http/express-adapter.js +164 -0
  8. package/cjs/http/http-adapter.js +27 -0
  9. package/cjs/http/http-context.js +116 -0
  10. package/cjs/http/impl/asset-cache.js +21 -0
  11. package/cjs/http/impl/http-handler.js +575 -0
  12. package/cjs/http/{http-server-request.js → impl/http-incoming.host.js} +21 -46
  13. package/cjs/http/{http-server-response.js → impl/http-outgoing.host.js} +7 -26
  14. package/cjs/http/{helpers/multipart-helper.js → impl/multipart-reader.js} +24 -22
  15. package/cjs/http/impl/{http-incoming-message.host.js → node-incoming-message.host.js} +13 -54
  16. package/cjs/http/impl/{http-outgoing-message.host.js → node-outgoing-message.host.js} +11 -14
  17. package/cjs/http/interfaces/http-incoming.interface.js +25 -0
  18. package/cjs/http/interfaces/http-outgoing.interface.js +22 -0
  19. package/cjs/http/interfaces/node-incoming-message.interface.js +63 -0
  20. package/cjs/http/interfaces/node-outgoing-message.interface.js +15 -0
  21. package/cjs/http/utils/body-reader.js +215 -0
  22. package/cjs/http/{helpers → utils}/convert-to-raw-headers.js +1 -2
  23. package/cjs/http/{helpers → utils}/match-known-fields.js +11 -9
  24. package/cjs/http/utils/wrap-exception.js +34 -0
  25. package/cjs/index.js +25 -25
  26. package/cjs/platform-adapter.js +21 -0
  27. package/cjs/type-guards.js +23 -0
  28. package/esm/augmentation/18n.augmentation.js +20 -7
  29. package/esm/augmentation/http-controller.augmentation.js +23 -0
  30. package/esm/constants.js +2 -0
  31. package/esm/execution-context.js +25 -13
  32. package/esm/{services → helpers}/logger.js +1 -2
  33. package/esm/{services/api-service.js → helpers/service-base.js} +6 -6
  34. package/esm/http/express-adapter.js +159 -0
  35. package/esm/http/http-adapter.js +23 -0
  36. package/esm/http/http-context.js +111 -0
  37. package/esm/http/impl/asset-cache.js +17 -0
  38. package/esm/http/impl/http-handler.js +570 -0
  39. package/esm/http/{http-server-request.js → impl/http-incoming.host.js} +17 -43
  40. package/esm/http/{http-server-response.js → impl/http-outgoing.host.js} +6 -26
  41. package/esm/http/{helpers/multipart-helper.js → impl/multipart-reader.js} +22 -20
  42. package/esm/http/impl/{http-incoming-message.host.js → node-incoming-message.host.js} +11 -52
  43. package/esm/http/impl/{http-outgoing-message.host.js → node-outgoing-message.host.js} +9 -12
  44. package/esm/http/interfaces/http-incoming.interface.js +22 -0
  45. package/esm/http/interfaces/http-outgoing.interface.js +19 -0
  46. package/esm/http/interfaces/node-incoming-message.interface.js +60 -0
  47. package/esm/http/interfaces/node-outgoing-message.interface.js +12 -0
  48. package/esm/http/utils/body-reader.js +210 -0
  49. package/esm/http/{helpers → utils}/convert-to-headers.js +1 -1
  50. package/esm/http/{helpers → utils}/convert-to-raw-headers.js +2 -3
  51. package/esm/http/{helpers → utils}/match-known-fields.js +11 -9
  52. package/esm/http/utils/wrap-exception.js +30 -0
  53. package/esm/index.js +25 -26
  54. package/esm/platform-adapter.js +19 -1
  55. package/esm/type-guards.js +16 -0
  56. package/package.json +22 -10
  57. package/types/augmentation/18n.augmentation.d.ts +32 -2
  58. package/types/augmentation/http-controller.augmentation.d.ts +21 -0
  59. package/types/constants.d.ts +2 -0
  60. package/types/execution-context.d.ts +24 -26
  61. package/types/helpers/service-base.d.ts +10 -0
  62. package/types/http/express-adapter.d.ts +13 -0
  63. package/types/http/http-adapter.d.ts +27 -0
  64. package/types/http/http-context.d.ts +44 -0
  65. package/types/http/impl/asset-cache.d.ts +5 -0
  66. package/types/http/impl/http-handler.d.ts +73 -0
  67. package/types/http/impl/http-incoming.host.d.ts +23 -0
  68. package/types/http/impl/http-outgoing.host.d.ts +17 -0
  69. package/types/http/{helpers/multipart-helper.d.ts → impl/multipart-reader.d.ts} +8 -6
  70. package/types/http/impl/{http-incoming-message.host.d.ts → node-incoming-message.host.d.ts} +9 -22
  71. package/types/http/impl/{http-outgoing-message.host.d.ts → node-outgoing-message.host.d.ts} +11 -27
  72. package/types/http/{http-server-request.d.ts → interfaces/http-incoming.interface.d.ts} +28 -17
  73. package/types/http/{http-server-response.d.ts → interfaces/http-outgoing.interface.d.ts} +17 -10
  74. package/types/http/interfaces/node-incoming-message.interface.d.ts +38 -0
  75. package/types/http/interfaces/node-outgoing-message.interface.d.ts +29 -0
  76. package/types/http/utils/body-reader.d.ts +41 -0
  77. package/types/http/utils/wrap-exception.d.ts +2 -0
  78. package/types/index.d.ts +24 -26
  79. package/types/platform-adapter.d.ts +20 -48
  80. package/types/type-guards.d.ts +8 -0
  81. package/cjs/augmentation/collection.augmentation.js +0 -2
  82. package/cjs/augmentation/container.augmentation.js +0 -2
  83. package/cjs/augmentation/resource.augmentation.js +0 -26
  84. package/cjs/augmentation/singleton.augmentation.js +0 -2
  85. package/cjs/augmentation/storage.augmentation.js +0 -2
  86. package/cjs/execution-context.host.js +0 -46
  87. package/cjs/http/adapters/express-adapter.host.js +0 -34
  88. package/cjs/http/adapters/express-adapter.js +0 -14
  89. package/cjs/http/adapters/node-http-adapter.host.js +0 -70
  90. package/cjs/http/adapters/node-http-adapter.js +0 -14
  91. package/cjs/http/helpers/json-body-loader.js +0 -29
  92. package/cjs/http/helpers/query-parsers.js +0 -16
  93. package/cjs/http/http-adapter-host.js +0 -715
  94. package/cjs/interfaces/interceptor.interface.js +0 -2
  95. package/cjs/interfaces/request-handler.interface.js +0 -2
  96. package/cjs/platform-adapter.host.js +0 -154
  97. package/cjs/request-context.js +0 -25
  98. package/cjs/request.host.js +0 -24
  99. package/cjs/request.js +0 -2
  100. package/cjs/response.host.js +0 -22
  101. package/cjs/response.js +0 -2
  102. package/esm/augmentation/collection.augmentation.js +0 -1
  103. package/esm/augmentation/container.augmentation.js +0 -1
  104. package/esm/augmentation/resource.augmentation.js +0 -24
  105. package/esm/augmentation/singleton.augmentation.js +0 -1
  106. package/esm/augmentation/storage.augmentation.js +0 -1
  107. package/esm/execution-context.host.js +0 -42
  108. package/esm/http/adapters/express-adapter.host.js +0 -30
  109. package/esm/http/adapters/express-adapter.js +0 -11
  110. package/esm/http/adapters/node-http-adapter.host.js +0 -65
  111. package/esm/http/adapters/node-http-adapter.js +0 -11
  112. package/esm/http/helpers/json-body-loader.js +0 -24
  113. package/esm/http/helpers/query-parsers.js +0 -12
  114. package/esm/http/http-adapter-host.js +0 -710
  115. package/esm/interfaces/interceptor.interface.js +0 -1
  116. package/esm/interfaces/request-handler.interface.js +0 -1
  117. package/esm/platform-adapter.host.js +0 -149
  118. package/esm/request-context.js +0 -22
  119. package/esm/request.host.js +0 -20
  120. package/esm/request.js +0 -1
  121. package/esm/response.host.js +0 -18
  122. package/esm/response.js +0 -1
  123. package/i18n/i18n/en/error.json +0 -21
  124. package/types/augmentation/collection.augmentation.d.ts +0 -146
  125. package/types/augmentation/container.augmentation.d.ts +0 -14
  126. package/types/augmentation/resource.augmentation.d.ts +0 -38
  127. package/types/augmentation/singleton.augmentation.d.ts +0 -83
  128. package/types/augmentation/storage.augmentation.d.ts +0 -50
  129. package/types/execution-context.host.d.ts +0 -25
  130. package/types/http/adapters/express-adapter.d.ts +0 -15
  131. package/types/http/adapters/express-adapter.host.d.ts +0 -12
  132. package/types/http/adapters/node-http-adapter.d.ts +0 -17
  133. package/types/http/adapters/node-http-adapter.host.d.ts +0 -19
  134. package/types/http/helpers/json-body-loader.d.ts +0 -5
  135. package/types/http/helpers/query-parsers.d.ts +0 -1
  136. package/types/http/http-adapter-host.d.ts +0 -34
  137. package/types/interfaces/interceptor.interface.d.ts +0 -2
  138. package/types/interfaces/request-handler.interface.d.ts +0 -4
  139. package/types/platform-adapter.host.d.ts +0 -43
  140. package/types/request-context.d.ts +0 -13
  141. package/types/request.d.ts +0 -14
  142. package/types/request.host.d.ts +0 -27
  143. package/types/response.d.ts +0 -22
  144. package/types/response.host.d.ts +0 -22
  145. package/types/services/api-service.d.ts +0 -10
  146. /package/cjs/http/{helpers → utils}/common.js +0 -0
  147. /package/cjs/http/{helpers → utils}/concat-readable.js +0 -0
  148. /package/cjs/http/{helpers → utils}/convert-to-headers.js +0 -0
  149. /package/esm/http/{helpers → utils}/common.js +0 -0
  150. /package/esm/http/{helpers → utils}/concat-readable.js +0 -0
  151. /package/types/{services → helpers}/logger.d.ts +0 -0
  152. /package/types/http/{helpers → utils}/common.d.ts +0 -0
  153. /package/types/http/{helpers → utils}/concat-readable.d.ts +0 -0
  154. /package/types/http/{helpers → utils}/convert-to-headers.d.ts +0 -0
  155. /package/types/http/{helpers → utils}/convert-to-raw-headers.d.ts +0 -0
  156. /package/types/http/{helpers → utils}/match-known-fields.d.ts +0 -0
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExpressAdapter = void 0;
4
- const express_adapter_host_js_1 = require("./express-adapter.host.js");
5
- /**
6
- * @namespace
7
- */
8
- var ExpressAdapter;
9
- (function (ExpressAdapter) {
10
- async function create(app, api, options) {
11
- return express_adapter_host_js_1.ExpressAdapterHost.create(app, api, options);
12
- }
13
- ExpressAdapter.create = create;
14
- })(ExpressAdapter || (exports.ExpressAdapter = ExpressAdapter = {}));
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NodeHttpAdapterHost = void 0;
4
- const tslib_1 = require("tslib");
5
- const http_1 = tslib_1.__importDefault(require("http"));
6
- const common_1 = require("@opra/common");
7
- const http_adapter_host_js_1 = require("../http-adapter-host.js");
8
- const http_server_request_js_1 = require("../http-server-request.js");
9
- const http_server_response_js_1 = require("../http-server-response.js");
10
- /**
11
- * @class NodeHttpAdapterHost
12
- */
13
- class NodeHttpAdapterHost extends http_adapter_host_js_1.HttpAdapterHost {
14
- constructor() {
15
- super(...arguments);
16
- this._platform = 'http';
17
- }
18
- get basePath() {
19
- return this._basePath;
20
- }
21
- get server() {
22
- return this._server;
23
- }
24
- async close() {
25
- await super.close();
26
- if (this.server.listening)
27
- await new Promise((resolve, reject) => {
28
- this.server.close((err) => {
29
- if (err)
30
- return reject(err);
31
- resolve();
32
- });
33
- });
34
- }
35
- async init(api, options) {
36
- await super.init(api, options);
37
- this._basePath = new common_1.OpraURLPath(options?.basePath);
38
- this._server = http_1.default.createServer((incomingMessage, serverResponse) => this._serverListener(incomingMessage, serverResponse));
39
- }
40
- _serverListener(incomingMessage, serverResponse) {
41
- const originalUrl = incomingMessage.url;
42
- const parsedUrl = new common_1.OpraURL(originalUrl);
43
- const relativePath = common_1.OpraURLPath.relative(parsedUrl.path, this.basePath);
44
- if (!relativePath) {
45
- serverResponse.statusCode = common_1.HttpStatusCode.NOT_FOUND;
46
- serverResponse.statusMessage = common_1.HttpStatusMessages[common_1.HttpStatusCode.NOT_FOUND];
47
- serverResponse.end();
48
- return;
49
- }
50
- parsedUrl.path = relativePath;
51
- incomingMessage.originalUrl = originalUrl;
52
- incomingMessage.baseUrl = this.basePath.toString();
53
- incomingMessage.parsedUrl = parsedUrl;
54
- Object.defineProperty(incomingMessage, 'searchParams', {
55
- get() {
56
- return incomingMessage.parsedUrl.searchParams;
57
- }
58
- });
59
- const req = http_server_request_js_1.HttpServerRequest.from(incomingMessage);
60
- const res = http_server_response_js_1.HttpServerResponse.from(serverResponse);
61
- this.handleHttp(req, res)
62
- .catch((e) => this._logger.fatal(e));
63
- }
64
- static async create(api, options) {
65
- const adapter = new NodeHttpAdapterHost();
66
- await adapter.init(api, options);
67
- return adapter;
68
- }
69
- }
70
- exports.NodeHttpAdapterHost = NodeHttpAdapterHost;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NodeHttpAdapter = void 0;
4
- const node_http_adapter_host_js_1 = require("./node-http-adapter.host.js");
5
- /**
6
- * @namespace NodeHttpAdapter
7
- */
8
- var NodeHttpAdapter;
9
- (function (NodeHttpAdapter) {
10
- async function create(api, options) {
11
- return node_http_adapter_host_js_1.NodeHttpAdapterHost.create(api, options);
12
- }
13
- NodeHttpAdapter.create = create;
14
- })(NodeHttpAdapter || (exports.NodeHttpAdapter = NodeHttpAdapter = {}));
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.jsonBodyLoader = void 0;
4
- const tslib_1 = require("tslib");
5
- const body_parser_1 = tslib_1.__importDefault(require("body-parser"));
6
- const bodyLoaderCache = new WeakMap();
7
- function jsonBodyLoader(options, cachePoint) {
8
- let bodyLoader = cachePoint ? bodyLoaderCache.get(cachePoint) : undefined;
9
- if (bodyLoader)
10
- return bodyLoader;
11
- const parser = body_parser_1.default.json({
12
- ...options,
13
- type: 'json'
14
- });
15
- bodyLoader = (incoming) => {
16
- return new Promise((resolve, reject) => {
17
- const next = (error) => {
18
- if (error)
19
- return reject(error);
20
- resolve(incoming.body);
21
- };
22
- parser(incoming, {}, next);
23
- });
24
- };
25
- if (cachePoint)
26
- bodyLoaderCache.set(cachePoint, bodyLoader);
27
- return bodyLoader;
28
- }
29
- exports.jsonBodyLoader = jsonBodyLoader;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseArrayParam = void 0;
4
- const fast_tokenizer_1 = require("fast-tokenizer");
5
- function parseArrayParam(v) {
6
- if (!v)
7
- return;
8
- return (0, fast_tokenizer_1.splitString)(v, {
9
- delimiters: ',',
10
- quotes: true,
11
- brackets: true,
12
- keepBrackets: true,
13
- keepQuotes: true
14
- }).map(x => x.trim());
15
- }
16
- exports.parseArrayParam = parseArrayParam;