mock-config-server 3.0.1 → 3.1.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.
Files changed (146) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +614 -502
  3. package/dist/bin/bin.js +8 -3
  4. package/dist/bin/build.js +51 -45
  5. package/dist/bin/cli.js +37 -44
  6. package/dist/bin/helpers/index.js +36 -17
  7. package/dist/bin/helpers/resolveConfigFile.js +20 -17
  8. package/dist/bin/helpers/resolveConfigFilePath.js +12 -35
  9. package/dist/bin/helpers/resolveExportsFromSourceCode.js +11 -8
  10. package/dist/bin/resolveConfigFilePath/resolveConfigFilePath.js +12 -35
  11. package/dist/bin/run.js +17 -12
  12. package/dist/bin/validateMockServerConfig/helpers/index.js +25 -16
  13. package/dist/bin/validateMockServerConfig/helpers/isCheckModeValid/index.js +14 -15
  14. package/dist/bin/validateMockServerConfig/helpers/isCheckModeValid/isCheckModeValid.js +8 -6
  15. package/dist/bin/validateMockServerConfig/helpers/isDescriptorValueValid/index.js +14 -15
  16. package/dist/bin/validateMockServerConfig/helpers/isDescriptorValueValid/isDescriptorValueValid.js +15 -18
  17. package/dist/bin/validateMockServerConfig/validateBaseUrl/validateBaseUrl.js +12 -9
  18. package/dist/bin/validateMockServerConfig/validateCors/validateCors.js +75 -73
  19. package/dist/bin/validateMockServerConfig/validateDatabaseConfig/validateDatabaseConfig.d.ts +1 -0
  20. package/dist/bin/validateMockServerConfig/validateDatabaseConfig/validateDatabaseConfig.js +45 -0
  21. package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateGraphqlConfig.js +47 -43
  22. package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateRoutes/validateRoutes.js +90 -83
  23. package/dist/bin/validateMockServerConfig/validateInterceptors/validateInterceptors.js +22 -16
  24. package/dist/bin/validateMockServerConfig/validateMockServerConfig.js +29 -27
  25. package/dist/bin/validateMockServerConfig/validatePort/validatePort.js +9 -6
  26. package/dist/bin/validateMockServerConfig/validateRestConfig/validateRestConfig.js +52 -47
  27. package/dist/bin/validateMockServerConfig/validateRestConfig/validateRoutes/validateRoutes.js +94 -87
  28. package/dist/bin/validateMockServerConfig/validateStaticPath/validateStaticPath.js +43 -34
  29. package/dist/src/core/database/createDatabaseRoutes/createDatabaseRoutes.d.ts +3 -0
  30. package/dist/src/core/database/createDatabaseRoutes/createDatabaseRoutes.js +33 -0
  31. package/dist/src/core/database/createDatabaseRoutes/helpers/array/createNewId/createNewId.d.ts +4 -0
  32. package/dist/src/core/database/createDatabaseRoutes/helpers/array/createNewId/createNewId.js +16 -0
  33. package/dist/src/core/database/createDatabaseRoutes/helpers/array/findIndexById/findIndexById.d.ts +4 -0
  34. package/dist/src/core/database/createDatabaseRoutes/helpers/array/findIndexById/findIndexById.js +8 -0
  35. package/dist/src/core/database/createDatabaseRoutes/helpers/array/index.d.ts +3 -0
  36. package/dist/src/core/database/createDatabaseRoutes/helpers/array/index.js +38 -0
  37. package/dist/src/core/database/createDatabaseRoutes/helpers/array/isIndex/isIndex.d.ts +1 -0
  38. package/dist/src/core/database/createDatabaseRoutes/helpers/array/isIndex/isIndex.js +8 -0
  39. package/dist/src/core/database/createDatabaseRoutes/helpers/createNestedDatabaseRoutes/createNestedDatabaseRoutes.d.ts +4 -0
  40. package/dist/src/core/database/createDatabaseRoutes/helpers/createNestedDatabaseRoutes/createNestedDatabaseRoutes.js +88 -0
  41. package/dist/src/core/database/createDatabaseRoutes/helpers/createRewrittenDatabaseRoutes/createRewrittenDatabaseRoutes.d.ts +2 -0
  42. package/dist/src/core/database/createDatabaseRoutes/helpers/createRewrittenDatabaseRoutes/createRewrittenDatabaseRoutes.js +12 -0
  43. package/dist/src/core/database/createDatabaseRoutes/helpers/createShallowDatabaseRoutes/createShallowDatabaseRoutes.d.ts +4 -0
  44. package/dist/src/core/database/createDatabaseRoutes/helpers/createShallowDatabaseRoutes/createShallowDatabaseRoutes.js +38 -0
  45. package/dist/src/core/database/createDatabaseRoutes/helpers/index.d.ts +5 -0
  46. package/dist/src/core/database/createDatabaseRoutes/helpers/index.js +60 -0
  47. package/dist/src/core/database/createDatabaseRoutes/helpers/splitDatabaseByNesting/splitDatabaseByNesting.d.ts +5 -0
  48. package/dist/src/core/database/createDatabaseRoutes/helpers/splitDatabaseByNesting/splitDatabaseByNesting.js +30 -0
  49. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileStorage.d.ts +11 -0
  50. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileStorage.js +64 -0
  51. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileWriter.d.ts +11 -0
  52. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileWriter.js +58 -0
  53. package/dist/src/core/database/createDatabaseRoutes/storages/Memory/MemoryStorage.d.ts +10 -0
  54. package/dist/src/core/database/createDatabaseRoutes/storages/Memory/MemoryStorage.js +54 -0
  55. package/dist/src/core/database/createDatabaseRoutes/storages/index.d.ts +2 -0
  56. package/dist/src/core/database/createDatabaseRoutes/storages/index.js +27 -0
  57. package/dist/src/core/database/index.d.ts +1 -0
  58. package/dist/src/core/database/index.js +16 -0
  59. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.js +96 -83
  60. package/dist/src/core/graphql/createGraphQLRoutes/helpers/index.js +14 -15
  61. package/dist/src/core/graphql/createGraphQLRoutes/helpers/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.js +36 -30
  62. package/dist/src/core/graphql/index.js +14 -15
  63. package/dist/src/core/middlewares/cookieParseMiddleware/cookieParseMiddleware.js +15 -13
  64. package/dist/src/core/middlewares/cookieParseMiddleware/helpers/index.js +14 -15
  65. package/dist/src/core/middlewares/cookieParseMiddleware/helpers/parseCookie/parseCookie.js +16 -14
  66. package/dist/src/core/middlewares/corsMiddleware/corsMiddleware.js +48 -41
  67. package/dist/src/core/middlewares/corsMiddleware/helpers/getAllowedOrigins/getAllowedOrigins.js +13 -10
  68. package/dist/src/core/middlewares/corsMiddleware/helpers/index.js +14 -15
  69. package/dist/src/core/middlewares/destroyerMiddleware/destroyerMiddleware.js +21 -18
  70. package/dist/src/core/middlewares/errorMiddleware/errorMiddleware.js +18 -15
  71. package/dist/src/core/middlewares/index.js +92 -23
  72. package/dist/src/core/middlewares/noCorsMiddleware/noCorsMiddleware.js +21 -21
  73. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.js +24 -16
  74. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getLevenshteinDistance/getLevenshteinDistance.js +78 -74
  75. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/getRestUrlSuggestions.js +36 -31
  76. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.js +6 -5
  77. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.js +6 -3
  78. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/index.js +25 -16
  79. package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.js +36 -17
  80. package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.js +63 -48
  81. package/dist/src/core/middlewares/requestInterceptorMiddleware/requestInterceptorMiddleware.js +13 -7
  82. package/dist/src/core/middlewares/staticMiddleware/staticMiddleware.js +26 -25
  83. package/dist/src/core/rest/createRestRoutes/createRestRoutes.js +71 -56
  84. package/dist/src/core/rest/createRestRoutes/helpers/index.js +14 -15
  85. package/dist/src/core/rest/createRestRoutes/helpers/prepareRestRequestConfigs/prepareRestRequestConfigs.js +38 -32
  86. package/dist/src/core/rest/index.js +14 -15
  87. package/dist/src/index.js +36 -17
  88. package/dist/src/server/createMockServer/createMockServer.js +74 -53
  89. package/dist/src/server/index.js +25 -16
  90. package/dist/src/server/startMockServer/startMockServer.js +20 -17
  91. package/dist/src/static/views/assets/icons/scheme-dark.svg +3 -3
  92. package/dist/src/static/views/assets/icons/scheme-light.svg +3 -3
  93. package/dist/src/static/views/assets/styles/global.css +88 -88
  94. package/dist/src/static/views/components/header/index.css +55 -55
  95. package/dist/src/static/views/components/header/index.ejs +39 -39
  96. package/dist/src/static/views/components/header/index.js +1 -1
  97. package/dist/src/static/views/features/scheme/dark.css +12 -12
  98. package/dist/src/static/views/features/scheme/index.ejs +3 -3
  99. package/dist/src/static/views/features/scheme/index.js +31 -31
  100. package/dist/src/static/views/features/scheme/light.css +12 -12
  101. package/dist/src/static/views/features/tab/index.css +30 -30
  102. package/dist/src/static/views/features/tab/index.ejs +1 -1
  103. package/dist/src/static/views/features/tab/index.js +12 -12
  104. package/dist/src/static/views/pages/404/index.css +10 -10
  105. package/dist/src/static/views/pages/404/index.ejs +84 -84
  106. package/dist/src/utils/constants/appPath.js +6 -2
  107. package/dist/src/utils/constants/checkModes.js +21 -30
  108. package/dist/src/utils/constants/default.js +15 -11
  109. package/dist/src/utils/constants/index.js +36 -17
  110. package/dist/src/utils/helpers/asyncHandler.js +6 -3
  111. package/dist/src/utils/helpers/config/index.js +14 -15
  112. package/dist/src/utils/helpers/config/resolveEntityValues/resolveEntityValues.js +109 -122
  113. package/dist/src/utils/helpers/entities/convertToEntityDescriptor/convertToEntityDescriptor.js +10 -6
  114. package/dist/src/utils/helpers/entities/index.js +25 -16
  115. package/dist/src/utils/helpers/entities/isEntityDescriptor/isEntityDescriptor.js +7 -4
  116. package/dist/src/utils/helpers/graphql/getGraphQLInput/getGraphQLInput.js +28 -18
  117. package/dist/src/utils/helpers/graphql/index.js +36 -17
  118. package/dist/src/utils/helpers/graphql/parseGraphQLRequest/parseGraphQLRequest.js +11 -9
  119. package/dist/src/utils/helpers/graphql/parseQuery/parseQuery.js +20 -17
  120. package/dist/src/utils/helpers/index.js +114 -25
  121. package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.js +22 -16
  122. package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.js +56 -48
  123. package/dist/src/utils/helpers/interceptors/helpers/setDelay.js +8 -5
  124. package/dist/src/utils/helpers/interceptors/index.js +25 -16
  125. package/dist/src/utils/helpers/isPlainObject/isPlainObject.js +6 -6
  126. package/dist/src/utils/helpers/isPrimitive/isPrimitive.js +6 -3
  127. package/dist/src/utils/helpers/isRegExp/isRegExp.js +6 -3
  128. package/dist/src/utils/helpers/sleep.js +7 -4
  129. package/dist/src/utils/helpers/url/convertWin32PathToUnix/convertWin32PathToUnix.js +6 -6
  130. package/dist/src/utils/helpers/url/getUrlParts/getUrlParts.js +7 -4
  131. package/dist/src/utils/helpers/url/index.js +47 -18
  132. package/dist/src/utils/helpers/url/removeLeadingAndTrailingSlashes/removeLeadingAndTrailingSlashes.js +6 -3
  133. package/dist/src/utils/helpers/url/urlJoin/urlJoin.js +11 -10
  134. package/dist/src/utils/types/checkModes.js +1 -2
  135. package/dist/src/utils/types/database.d.ts +6 -0
  136. package/dist/src/utils/types/database.js +1 -0
  137. package/dist/src/utils/types/graphql.js +1 -2
  138. package/dist/src/utils/types/index.d.ts +1 -0
  139. package/dist/src/utils/types/index.js +80 -20
  140. package/dist/src/utils/types/interceptors.js +1 -2
  141. package/dist/src/utils/types/rest.js +1 -2
  142. package/dist/src/utils/types/server.d.ts +5 -0
  143. package/dist/src/utils/types/server.js +1 -2
  144. package/dist/src/utils/types/values.js +1 -2
  145. package/package.json +130 -113
  146. package/dist/index.js +0 -17
@@ -1,35 +1,41 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.prepareGraphQLRequestConfigs = void 0;
4
- const helpers_1 = require("../../../../../utils/helpers");
5
- const calculateRouteConfigWeight = (graphQLRouteConfig) => {
6
- const { entities } = graphQLRouteConfig;
7
- if (!entities)
8
- return 0;
9
- let routeConfigWeight = 0;
10
- const { headers, cookies, query, variables } = entities;
11
- if (headers)
12
- routeConfigWeight += Object.keys(headers).length;
13
- if (cookies)
14
- routeConfigWeight += Object.keys(cookies).length;
15
- if (query)
16
- routeConfigWeight += Object.keys(query).length;
17
- if (variables) {
18
- if ((0, helpers_1.isPlainObject)(variables) && variables.checkMode) {
19
- routeConfigWeight += (0, helpers_1.isPlainObject)(variables.value) ? Object.keys(variables.value).length : 1;
20
- return routeConfigWeight;
21
- }
22
- routeConfigWeight += Object.keys(variables).length;
7
+ var _helpers = require("../../../../../utils/helpers");
8
+ const calculateRouteConfigWeight = graphQLRouteConfig => {
9
+ const {
10
+ entities
11
+ } = graphQLRouteConfig;
12
+ if (!entities) return 0;
13
+ let routeConfigWeight = 0;
14
+ const {
15
+ headers,
16
+ cookies,
17
+ query,
18
+ variables
19
+ } = entities;
20
+ if (headers) routeConfigWeight += Object.keys(headers).length;
21
+ if (cookies) routeConfigWeight += Object.keys(cookies).length;
22
+ if (query) routeConfigWeight += Object.keys(query).length;
23
+ if (variables) {
24
+ if ((0, _helpers.isPlainObject)(variables) && variables.checkMode) {
25
+ routeConfigWeight += (0, _helpers.isPlainObject)(variables.value) ? Object.keys(variables.value).length : 1;
26
+ return routeConfigWeight;
23
27
  }
24
- return routeConfigWeight;
28
+ routeConfigWeight += Object.keys(variables).length;
29
+ }
30
+ return routeConfigWeight;
25
31
  };
26
- const prepareGraphQLRequestConfigs = (requestConfigs) => {
27
- requestConfigs.forEach((requestConfig) => {
28
- requestConfig.routes.sort((first, second) =>
29
- // ✅ important:
30
- // Lift more specific configs for correct working of routes
31
- calculateRouteConfigWeight(second) - calculateRouteConfigWeight(first));
32
- });
33
- return requestConfigs;
32
+ const prepareGraphQLRequestConfigs = requestConfigs => {
33
+ requestConfigs.forEach(requestConfig => {
34
+ requestConfig.routes.sort((first, second) =>
35
+ // ✅ important:
36
+ // Lift more specific configs for correct working of routes
37
+ calculateRouteConfigWeight(second) - calculateRouteConfigWeight(first));
38
+ });
39
+ return requestConfigs;
34
40
  };
35
- exports.prepareGraphQLRequestConfigs = prepareGraphQLRequestConfigs;
41
+ exports.prepareGraphQLRequestConfigs = prepareGraphQLRequestConfigs;
@@ -1,17 +1,16 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _createGraphQLRoutes = require("./createGraphQLRoutes/createGraphQLRoutes");
7
+ Object.keys(_createGraphQLRoutes).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _createGraphQLRoutes[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _createGraphQLRoutes[key];
7
14
  }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./createGraphQLRoutes/createGraphQLRoutes"), exports);
15
+ });
16
+ });
@@ -1,16 +1,18 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.cookieParseMiddleware = void 0;
4
- const helpers_1 = require("./helpers");
5
- const cookieParseMiddleware = (server) => {
6
- server.use((request, _response, next) => {
7
- if (request.headers.cookie) {
8
- request.cookies = (0, helpers_1.parseCookie)(request.headers.cookie);
9
- }
10
- else {
11
- request.cookies = {};
12
- }
13
- return next();
14
- });
7
+ var _helpers = require("./helpers");
8
+ const cookieParseMiddleware = server => {
9
+ server.use((request, _response, next) => {
10
+ if (request.headers.cookie) {
11
+ request.cookies = (0, _helpers.parseCookie)(request.headers.cookie);
12
+ } else {
13
+ request.cookies = {};
14
+ }
15
+ return next();
16
+ });
15
17
  };
16
- exports.cookieParseMiddleware = cookieParseMiddleware;
18
+ exports.cookieParseMiddleware = cookieParseMiddleware;
@@ -1,17 +1,16 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _parseCookie = require("./parseCookie/parseCookie");
7
+ Object.keys(_parseCookie).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _parseCookie[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _parseCookie[key];
7
14
  }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./parseCookie/parseCookie"), exports);
15
+ });
16
+ });
@@ -1,17 +1,19 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.parseCookie = void 0;
4
- const parseCookie = (cookieHeader) => {
5
- if (!cookieHeader)
6
- return {};
7
- const cookies = {};
8
- const cookiePairs = cookieHeader.split(';');
9
- cookiePairs.forEach((cookie) => {
10
- const [name, value] = cookie.trim().split('=');
11
- if (!name)
12
- return;
13
- cookies[name.trim()] = value?.trim() ?? '';
14
- });
15
- return cookies;
7
+ const parseCookie = cookieHeader => {
8
+ if (!cookieHeader) return {};
9
+ const cookies = {};
10
+ const cookiePairs = cookieHeader.split(';');
11
+ cookiePairs.forEach(cookie => {
12
+ var _value$trim;
13
+ const [name, value] = cookie.trim().split('=');
14
+ if (!name) return;
15
+ cookies[name.trim()] = (_value$trim = value === null || value === void 0 ? void 0 : value.trim()) !== null && _value$trim !== void 0 ? _value$trim : '';
16
+ });
17
+ return cookies;
16
18
  };
17
- exports.parseCookie = parseCookie;
19
+ exports.parseCookie = parseCookie;
@@ -1,45 +1,52 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.corsMiddleware = void 0;
4
- const constants_1 = require("../../../utils/constants");
5
- const helpers_1 = require("../../../utils/helpers");
6
- const helpers_2 = require("./helpers");
7
+ var _constants = require("../../../utils/constants");
8
+ var _helpers = require("../../../utils/helpers");
9
+ var _helpers2 = require("./helpers");
7
10
  const corsMiddleware = (server, cors) => {
8
- server.use((0, helpers_1.asyncHandler)(async (request, response, next) => {
9
- if (Array.isArray(cors.origin) && !cors.origin.length) {
10
- return next();
11
- }
12
- let allowedOrigins = [];
13
- if (typeof cors.origin === 'function') {
14
- const origins = await cors.origin(request);
15
- allowedOrigins = (0, helpers_2.getAllowedOrigins)(origins);
16
- }
17
- else {
18
- allowedOrigins = (0, helpers_2.getAllowedOrigins)(cors.origin);
19
- }
20
- const { origin } = request.headers;
21
- if (!allowedOrigins?.length || !origin) {
22
- return next();
23
- }
24
- const isRequestOriginAllowed = allowedOrigins.some((allowedOrigin) => {
25
- if (allowedOrigin instanceof RegExp) {
26
- return new RegExp(allowedOrigin).test(origin);
27
- }
28
- return allowedOrigin === origin;
29
- });
30
- if (isRequestOriginAllowed) {
31
- response.setHeader('Access-Control-Allow-Origin', origin);
32
- response.setHeader('Access-Control-Allow-Credentials', `${cors.credentials ?? constants_1.DEFAULT.CORS.CREDENTIALS}`);
33
- response.setHeader('Access-Control-Expose-Headers', cors.exposedHeaders ?? constants_1.DEFAULT.CORS.EXPOSED_HEADERS);
34
- if (request.method === 'OPTIONS') {
35
- response.setHeader('Access-Control-Allow-Methods', cors.methods ?? constants_1.DEFAULT.CORS.METHODS);
36
- response.setHeader('Access-Control-Allow-Headers', cors.allowedHeaders ?? constants_1.DEFAULT.CORS.ALLOWED_HEADERS);
37
- response.setHeader('Access-Control-Max-Age', cors.maxAge ?? constants_1.DEFAULT.CORS.MAX_AGE);
38
- response.sendStatus(204);
39
- return response.end();
40
- }
41
- }
42
- return next();
43
- }));
11
+ server.use((0, _helpers.asyncHandler)(async (request, response, next) => {
12
+ var _allowedOrigins;
13
+ if (Array.isArray(cors.origin) && !cors.origin.length) {
14
+ return next();
15
+ }
16
+ let allowedOrigins = [];
17
+ if (typeof cors.origin === 'function') {
18
+ const origins = await cors.origin(request);
19
+ allowedOrigins = (0, _helpers2.getAllowedOrigins)(origins);
20
+ } else {
21
+ allowedOrigins = (0, _helpers2.getAllowedOrigins)(cors.origin);
22
+ }
23
+ const {
24
+ origin
25
+ } = request.headers;
26
+ if (!((_allowedOrigins = allowedOrigins) !== null && _allowedOrigins !== void 0 && _allowedOrigins.length) || !origin) {
27
+ return next();
28
+ }
29
+ const isRequestOriginAllowed = allowedOrigins.some(allowedOrigin => {
30
+ if (allowedOrigin instanceof RegExp) {
31
+ return new RegExp(allowedOrigin).test(origin);
32
+ }
33
+ return allowedOrigin === origin;
34
+ });
35
+ if (isRequestOriginAllowed) {
36
+ var _cors$credentials, _cors$exposedHeaders;
37
+ response.setHeader('Access-Control-Allow-Origin', origin);
38
+ response.setHeader('Access-Control-Allow-Credentials', `${(_cors$credentials = cors.credentials) !== null && _cors$credentials !== void 0 ? _cors$credentials : _constants.DEFAULT.CORS.CREDENTIALS}`);
39
+ response.setHeader('Access-Control-Expose-Headers', (_cors$exposedHeaders = cors.exposedHeaders) !== null && _cors$exposedHeaders !== void 0 ? _cors$exposedHeaders : _constants.DEFAULT.CORS.EXPOSED_HEADERS);
40
+ if (request.method === 'OPTIONS') {
41
+ var _cors$methods, _cors$allowedHeaders, _cors$maxAge;
42
+ response.setHeader('Access-Control-Allow-Methods', (_cors$methods = cors.methods) !== null && _cors$methods !== void 0 ? _cors$methods : _constants.DEFAULT.CORS.METHODS);
43
+ response.setHeader('Access-Control-Allow-Headers', (_cors$allowedHeaders = cors.allowedHeaders) !== null && _cors$allowedHeaders !== void 0 ? _cors$allowedHeaders : _constants.DEFAULT.CORS.ALLOWED_HEADERS);
44
+ response.setHeader('Access-Control-Max-Age', (_cors$maxAge = cors.maxAge) !== null && _cors$maxAge !== void 0 ? _cors$maxAge : _constants.DEFAULT.CORS.MAX_AGE);
45
+ response.sendStatus(204);
46
+ return response.end();
47
+ }
48
+ }
49
+ return next();
50
+ }));
44
51
  };
45
- exports.corsMiddleware = corsMiddleware;
52
+ exports.corsMiddleware = corsMiddleware;
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.getAllowedOrigins = void 0;
4
- const getAllowedOrigins = (origin) => {
5
- if (Array.isArray(origin)) {
6
- return origin;
7
- }
8
- if (typeof origin === 'string' || origin instanceof RegExp) {
9
- return [origin];
10
- }
11
- throw new Error('Invalid cors origin format');
7
+ const getAllowedOrigins = origin => {
8
+ if (Array.isArray(origin)) {
9
+ return origin;
10
+ }
11
+ if (typeof origin === 'string' || origin instanceof RegExp) {
12
+ return [origin];
13
+ }
14
+ throw new Error('Invalid cors origin format');
12
15
  };
13
- exports.getAllowedOrigins = getAllowedOrigins;
16
+ exports.getAllowedOrigins = getAllowedOrigins;
@@ -1,17 +1,16 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _getAllowedOrigins = require("./getAllowedOrigins/getAllowedOrigins");
7
+ Object.keys(_getAllowedOrigins).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _getAllowedOrigins[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _getAllowedOrigins[key];
7
14
  }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./getAllowedOrigins/getAllowedOrigins"), exports);
15
+ });
16
+ });
@@ -1,23 +1,26 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.destroyerMiddleware = void 0;
4
- const destroyerMiddleware = (server) => {
5
- const serverWithDestroyer = server;
6
- const connections = {};
7
- serverWithDestroyer.on('connection', (connection) => {
8
- const key = `${connection.remoteAddress}:${connection.remotePort}`;
9
- connections[key] = connection;
10
- connection.on('close', () => {
11
- delete connections[key];
12
- });
7
+ const destroyerMiddleware = server => {
8
+ const serverWithDestroyer = server;
9
+ const connections = {};
10
+ serverWithDestroyer.on('connection', connection => {
11
+ const key = `${connection.remoteAddress}:${connection.remotePort}`;
12
+ connections[key] = connection;
13
+ connection.on('close', () => {
14
+ delete connections[key];
15
+ });
16
+ });
17
+ serverWithDestroyer.destroy = callback => {
18
+ serverWithDestroyer.close(callback);
19
+ Object.values(connections).forEach(connection => {
20
+ connection.destroy();
13
21
  });
14
- serverWithDestroyer.destroy = (callback) => {
15
- serverWithDestroyer.close(callback);
16
- Object.values(connections).forEach((connection) => {
17
- connection.destroy();
18
- });
19
- return serverWithDestroyer;
20
- };
21
22
  return serverWithDestroyer;
23
+ };
24
+ return serverWithDestroyer;
22
25
  };
23
- exports.destroyerMiddleware = destroyerMiddleware;
26
+ exports.destroyerMiddleware = destroyerMiddleware;
@@ -1,18 +1,21 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
6
  exports.errorMiddleware = void 0;
7
- const ansi_colors_1 = __importDefault(require("ansi-colors"));
8
- const errorMiddleware = (server) => {
9
- server.use(((error, request, response, next) => {
10
- console.error(ansi_colors_1.default.bgRed(`\nError on ${request.method} ${request.url} request\n`));
11
- const message = `Message: ${error.message ?? 'Internal server error'}\n\n${error.stack}`;
12
- response.status(error.status || 500).send(message);
13
- // important:
14
- // call next function for trigger default express error handling behavior
15
- next(error);
16
- }));
7
+ var _ansiColors = _interopRequireDefault(require("ansi-colors"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ const errorMiddleware = server => {
10
+ server.use((error, request, response, next) => {
11
+ var _error$message;
12
+ console.error(_ansiColors.default.bgRed(`\nError on ${request.method} ${request.url} request\n`));
13
+ const message = `Message: ${(_error$message = error.message) !== null && _error$message !== void 0 ? _error$message : 'Internal server error'}\n\n${error.stack}`;
14
+ response.status(error.status || 500).send(message);
15
+
16
+ // ✅ important:
17
+ // call next function for trigger default express error handling behavior
18
+ next(error);
19
+ });
17
20
  };
18
- exports.errorMiddleware = errorMiddleware;
21
+ exports.errorMiddleware = errorMiddleware;
@@ -1,24 +1,93 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./staticMiddleware/staticMiddleware"), exports);
18
- __exportStar(require("./corsMiddleware/corsMiddleware"), exports);
19
- __exportStar(require("./noCorsMiddleware/noCorsMiddleware"), exports);
20
- __exportStar(require("./notFoundMiddleware/notFoundMiddleware"), exports);
21
- __exportStar(require("./requestInterceptorMiddleware/requestInterceptorMiddleware"), exports);
22
- __exportStar(require("./destroyerMiddleware/destroyerMiddleware"), exports);
23
- __exportStar(require("./cookieParseMiddleware/cookieParseMiddleware"), exports);
24
- __exportStar(require("./errorMiddleware/errorMiddleware"), exports);
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _staticMiddleware = require("./staticMiddleware/staticMiddleware");
7
+ Object.keys(_staticMiddleware).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _staticMiddleware[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _staticMiddleware[key];
14
+ }
15
+ });
16
+ });
17
+ var _corsMiddleware = require("./corsMiddleware/corsMiddleware");
18
+ Object.keys(_corsMiddleware).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _corsMiddleware[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _corsMiddleware[key];
25
+ }
26
+ });
27
+ });
28
+ var _noCorsMiddleware = require("./noCorsMiddleware/noCorsMiddleware");
29
+ Object.keys(_noCorsMiddleware).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _noCorsMiddleware[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _noCorsMiddleware[key];
36
+ }
37
+ });
38
+ });
39
+ var _notFoundMiddleware = require("./notFoundMiddleware/notFoundMiddleware");
40
+ Object.keys(_notFoundMiddleware).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _notFoundMiddleware[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _notFoundMiddleware[key];
47
+ }
48
+ });
49
+ });
50
+ var _requestInterceptorMiddleware = require("./requestInterceptorMiddleware/requestInterceptorMiddleware");
51
+ Object.keys(_requestInterceptorMiddleware).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _requestInterceptorMiddleware[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _requestInterceptorMiddleware[key];
58
+ }
59
+ });
60
+ });
61
+ var _destroyerMiddleware = require("./destroyerMiddleware/destroyerMiddleware");
62
+ Object.keys(_destroyerMiddleware).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _destroyerMiddleware[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _destroyerMiddleware[key];
69
+ }
70
+ });
71
+ });
72
+ var _cookieParseMiddleware = require("./cookieParseMiddleware/cookieParseMiddleware");
73
+ Object.keys(_cookieParseMiddleware).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (key in exports && exports[key] === _cookieParseMiddleware[key]) return;
76
+ Object.defineProperty(exports, key, {
77
+ enumerable: true,
78
+ get: function () {
79
+ return _cookieParseMiddleware[key];
80
+ }
81
+ });
82
+ });
83
+ var _errorMiddleware = require("./errorMiddleware/errorMiddleware");
84
+ Object.keys(_errorMiddleware).forEach(function (key) {
85
+ if (key === "default" || key === "__esModule") return;
86
+ if (key in exports && exports[key] === _errorMiddleware[key]) return;
87
+ Object.defineProperty(exports, key, {
88
+ enumerable: true,
89
+ get: function () {
90
+ return _errorMiddleware[key];
91
+ }
92
+ });
93
+ });
@@ -1,24 +1,24 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.noCorsMiddleware = void 0;
4
- const constants_1 = require("../../../utils/constants");
5
- const noCorsMiddleware = (server) => {
6
- server.use((request, response, next) => {
7
- response.setHeader('Access-Control-Allow-Origin', constants_1.DEFAULT.CORS.ORIGIN);
8
- response.setHeader('Access-Control-Allow-Credentials', `${constants_1.DEFAULT.CORS.CREDENTIALS}`);
9
- response.setHeader('Access-Control-Expose-Headers', constants_1.DEFAULT.CORS.EXPOSED_HEADERS);
10
- const isPreflightRequest = request.method === 'OPTIONS' &&
11
- request.headers.origin &&
12
- request.headers['access-control-request-method'] &&
13
- request.headers['access-control-request-headers'];
14
- if (isPreflightRequest) {
15
- response.setHeader('Access-Control-Allow-Methods', constants_1.DEFAULT.CORS.METHODS);
16
- response.setHeader('Access-Control-Allow-Headers', constants_1.DEFAULT.CORS.ALLOWED_HEADERS);
17
- response.setHeader('Access-Control-Max-Age', constants_1.DEFAULT.CORS.MAX_AGE);
18
- response.sendStatus(204);
19
- return response.end();
20
- }
21
- return next();
22
- });
7
+ var _constants = require("../../../utils/constants");
8
+ const noCorsMiddleware = server => {
9
+ server.use((request, response, next) => {
10
+ response.setHeader('Access-Control-Allow-Origin', _constants.DEFAULT.CORS.ORIGIN);
11
+ response.setHeader('Access-Control-Allow-Credentials', `${_constants.DEFAULT.CORS.CREDENTIALS}`);
12
+ response.setHeader('Access-Control-Expose-Headers', _constants.DEFAULT.CORS.EXPOSED_HEADERS);
13
+ const isPreflightRequest = request.method === 'OPTIONS' && request.headers.origin && request.headers['access-control-request-method'] && request.headers['access-control-request-headers'];
14
+ if (isPreflightRequest) {
15
+ response.setHeader('Access-Control-Allow-Methods', _constants.DEFAULT.CORS.METHODS);
16
+ response.setHeader('Access-Control-Allow-Headers', _constants.DEFAULT.CORS.ALLOWED_HEADERS);
17
+ response.setHeader('Access-Control-Max-Age', _constants.DEFAULT.CORS.MAX_AGE);
18
+ response.sendStatus(204);
19
+ return response.end();
20
+ }
21
+ return next();
22
+ });
23
23
  };
24
- exports.noCorsMiddleware = noCorsMiddleware;
24
+ exports.noCorsMiddleware = noCorsMiddleware;