mock-config-server 3.0.0 → 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 (237) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +614 -502
  3. package/dist/bin/bin.d.ts +2 -0
  4. package/dist/bin/bin.js +13 -0
  5. package/dist/bin/build.d.ts +2 -0
  6. package/dist/bin/build.js +55 -0
  7. package/dist/bin/cli.d.ts +1 -0
  8. package/dist/bin/cli.js +41 -0
  9. package/dist/bin/helpers/index.d.ts +3 -0
  10. package/dist/bin/helpers/index.js +38 -0
  11. package/dist/bin/helpers/resolveConfigFile.d.ts +2 -0
  12. package/dist/bin/helpers/resolveConfigFile.js +23 -0
  13. package/dist/bin/helpers/resolveConfigFilePath.d.ts +1 -0
  14. package/dist/bin/helpers/resolveConfigFilePath.js +16 -0
  15. package/dist/bin/helpers/resolveExportsFromSourceCode.d.ts +1 -0
  16. package/dist/bin/helpers/resolveExportsFromSourceCode.js +14 -0
  17. package/dist/bin/resolveConfigFilePath/resolveConfigFilePath.d.ts +1 -0
  18. package/dist/bin/resolveConfigFilePath/resolveConfigFilePath.js +16 -0
  19. package/dist/bin/run.d.ts +6 -0
  20. package/dist/bin/run.js +22 -0
  21. package/dist/bin/validateMockServerConfig/helpers/index.d.ts +2 -0
  22. package/dist/bin/validateMockServerConfig/helpers/index.js +27 -0
  23. package/dist/bin/validateMockServerConfig/helpers/isCheckModeValid/index.d.ts +1 -0
  24. package/dist/bin/validateMockServerConfig/helpers/isCheckModeValid/index.js +16 -0
  25. package/dist/bin/validateMockServerConfig/helpers/isCheckModeValid/isCheckModeValid.d.ts +1 -0
  26. package/dist/bin/validateMockServerConfig/helpers/isCheckModeValid/isCheckModeValid.js +12 -0
  27. package/dist/bin/validateMockServerConfig/helpers/isDescriptorValueValid/index.d.ts +1 -0
  28. package/dist/bin/validateMockServerConfig/helpers/isDescriptorValueValid/index.js +16 -0
  29. package/dist/bin/validateMockServerConfig/helpers/isDescriptorValueValid/isDescriptorValueValid.d.ts +1 -0
  30. package/dist/bin/validateMockServerConfig/helpers/isDescriptorValueValid/isDescriptorValueValid.js +20 -0
  31. package/dist/bin/validateMockServerConfig/validateBaseUrl/validateBaseUrl.d.ts +1 -0
  32. package/dist/bin/validateMockServerConfig/validateBaseUrl/validateBaseUrl.js +15 -0
  33. package/dist/bin/validateMockServerConfig/validateCors/validateCors.d.ts +1 -0
  34. package/dist/bin/validateMockServerConfig/validateCors/validateCors.js +84 -0
  35. package/dist/bin/validateMockServerConfig/validateDatabaseConfig/validateDatabaseConfig.d.ts +1 -0
  36. package/dist/bin/validateMockServerConfig/validateDatabaseConfig/validateDatabaseConfig.js +45 -0
  37. package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateGraphqlConfig.d.ts +1 -0
  38. package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateGraphqlConfig.js +52 -0
  39. package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateRoutes/validateRoutes.d.ts +2 -0
  40. package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateRoutes/validateRoutes.js +104 -0
  41. package/dist/bin/validateMockServerConfig/validateInterceptors/validateInterceptors.d.ts +1 -0
  42. package/dist/bin/validateMockServerConfig/validateInterceptors/validateInterceptors.js +27 -0
  43. package/dist/bin/validateMockServerConfig/validateMockServerConfig.d.ts +2 -0
  44. package/dist/bin/validateMockServerConfig/validateMockServerConfig.js +32 -0
  45. package/dist/bin/validateMockServerConfig/validatePort/validatePort.d.ts +1 -0
  46. package/dist/bin/validateMockServerConfig/validatePort/validatePort.js +12 -0
  47. package/dist/bin/validateMockServerConfig/validateRestConfig/validateRestConfig.d.ts +1 -0
  48. package/dist/bin/validateMockServerConfig/validateRestConfig/validateRestConfig.js +57 -0
  49. package/dist/bin/validateMockServerConfig/validateRestConfig/validateRoutes/validateRoutes.d.ts +2 -0
  50. package/dist/bin/validateMockServerConfig/validateRestConfig/validateRoutes/validateRoutes.js +108 -0
  51. package/dist/bin/validateMockServerConfig/validateStaticPath/validateStaticPath.d.ts +1 -0
  52. package/dist/bin/validateMockServerConfig/validateStaticPath/validateStaticPath.js +53 -0
  53. package/dist/index.d.ts +1 -0
  54. package/dist/src/core/database/createDatabaseRoutes/createDatabaseRoutes.d.ts +3 -0
  55. package/dist/src/core/database/createDatabaseRoutes/createDatabaseRoutes.js +33 -0
  56. package/dist/src/core/database/createDatabaseRoutes/helpers/array/createNewId/createNewId.d.ts +4 -0
  57. package/dist/src/core/database/createDatabaseRoutes/helpers/array/createNewId/createNewId.js +16 -0
  58. package/dist/src/core/database/createDatabaseRoutes/helpers/array/findIndexById/findIndexById.d.ts +4 -0
  59. package/dist/src/core/database/createDatabaseRoutes/helpers/array/findIndexById/findIndexById.js +8 -0
  60. package/dist/src/core/database/createDatabaseRoutes/helpers/array/index.d.ts +3 -0
  61. package/dist/src/core/database/createDatabaseRoutes/helpers/array/index.js +38 -0
  62. package/dist/src/core/database/createDatabaseRoutes/helpers/array/isIndex/isIndex.d.ts +1 -0
  63. package/dist/src/core/database/createDatabaseRoutes/helpers/array/isIndex/isIndex.js +8 -0
  64. package/dist/src/core/database/createDatabaseRoutes/helpers/createNestedDatabaseRoutes/createNestedDatabaseRoutes.d.ts +4 -0
  65. package/dist/src/core/database/createDatabaseRoutes/helpers/createNestedDatabaseRoutes/createNestedDatabaseRoutes.js +88 -0
  66. package/dist/src/core/database/createDatabaseRoutes/helpers/createRewrittenDatabaseRoutes/createRewrittenDatabaseRoutes.d.ts +2 -0
  67. package/dist/src/core/database/createDatabaseRoutes/helpers/createRewrittenDatabaseRoutes/createRewrittenDatabaseRoutes.js +12 -0
  68. package/dist/src/core/database/createDatabaseRoutes/helpers/createShallowDatabaseRoutes/createShallowDatabaseRoutes.d.ts +4 -0
  69. package/dist/src/core/database/createDatabaseRoutes/helpers/createShallowDatabaseRoutes/createShallowDatabaseRoutes.js +38 -0
  70. package/dist/src/core/database/createDatabaseRoutes/helpers/index.d.ts +5 -0
  71. package/dist/src/core/database/createDatabaseRoutes/helpers/index.js +60 -0
  72. package/dist/src/core/database/createDatabaseRoutes/helpers/splitDatabaseByNesting/splitDatabaseByNesting.d.ts +5 -0
  73. package/dist/src/core/database/createDatabaseRoutes/helpers/splitDatabaseByNesting/splitDatabaseByNesting.js +30 -0
  74. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileStorage.d.ts +11 -0
  75. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileStorage.js +64 -0
  76. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileWriter.d.ts +11 -0
  77. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileWriter.js +58 -0
  78. package/dist/src/core/database/createDatabaseRoutes/storages/Memory/MemoryStorage.d.ts +10 -0
  79. package/dist/src/core/database/createDatabaseRoutes/storages/Memory/MemoryStorage.js +54 -0
  80. package/dist/src/core/database/createDatabaseRoutes/storages/index.d.ts +2 -0
  81. package/dist/src/core/database/createDatabaseRoutes/storages/index.js +27 -0
  82. package/dist/src/core/database/index.d.ts +1 -0
  83. package/dist/src/core/database/index.js +16 -0
  84. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.d.ts +3 -0
  85. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.js +102 -0
  86. package/dist/src/core/graphql/createGraphQLRoutes/helpers/index.d.ts +1 -0
  87. package/dist/src/core/graphql/createGraphQLRoutes/helpers/index.js +16 -0
  88. package/dist/src/core/graphql/createGraphQLRoutes/helpers/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.d.ts +2 -0
  89. package/dist/src/core/graphql/createGraphQLRoutes/helpers/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.js +41 -0
  90. package/dist/src/core/graphql/index.d.ts +1 -0
  91. package/dist/src/core/graphql/index.js +16 -0
  92. package/dist/src/core/middlewares/cookieParseMiddleware/cookieParseMiddleware.d.ts +2 -0
  93. package/dist/src/core/middlewares/cookieParseMiddleware/cookieParseMiddleware.js +18 -0
  94. package/dist/src/core/middlewares/cookieParseMiddleware/helpers/index.d.ts +1 -0
  95. package/dist/src/core/middlewares/cookieParseMiddleware/helpers/index.js +16 -0
  96. package/dist/src/core/middlewares/cookieParseMiddleware/helpers/parseCookie/parseCookie.d.ts +3 -0
  97. package/dist/src/core/middlewares/cookieParseMiddleware/helpers/parseCookie/parseCookie.js +19 -0
  98. package/dist/src/core/middlewares/corsMiddleware/corsMiddleware.d.ts +3 -0
  99. package/dist/src/core/middlewares/corsMiddleware/corsMiddleware.js +52 -0
  100. package/dist/src/core/middlewares/corsMiddleware/helpers/getAllowedOrigins/getAllowedOrigins.d.ts +2 -0
  101. package/dist/src/core/middlewares/corsMiddleware/helpers/getAllowedOrigins/getAllowedOrigins.js +16 -0
  102. package/dist/src/core/middlewares/corsMiddleware/helpers/index.d.ts +1 -0
  103. package/dist/src/core/middlewares/corsMiddleware/helpers/index.js +16 -0
  104. package/dist/src/core/middlewares/destroyerMiddleware/destroyerMiddleware.d.ts +7 -0
  105. package/dist/src/core/middlewares/destroyerMiddleware/destroyerMiddleware.js +26 -0
  106. package/dist/src/core/middlewares/errorMiddleware/errorMiddleware.d.ts +2 -0
  107. package/dist/src/core/middlewares/errorMiddleware/errorMiddleware.js +21 -0
  108. package/dist/src/core/middlewares/index.d.ts +8 -0
  109. package/dist/src/core/middlewares/index.js +93 -0
  110. package/dist/src/core/middlewares/noCorsMiddleware/noCorsMiddleware.d.ts +2 -0
  111. package/dist/src/core/middlewares/noCorsMiddleware/noCorsMiddleware.js +24 -0
  112. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.d.ts +11 -0
  113. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.js +27 -0
  114. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getLevenshteinDistance/getLevenshteinDistance.d.ts +1 -0
  115. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getLevenshteinDistance/getLevenshteinDistance.js +84 -0
  116. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/getRestUrlSuggestions.d.ts +11 -0
  117. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/getRestUrlSuggestions.js +39 -0
  118. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.d.ts +1 -0
  119. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.js +8 -0
  120. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.d.ts +1 -0
  121. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.js +8 -0
  122. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/index.d.ts +2 -0
  123. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/index.js +27 -0
  124. package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.d.ts +3 -0
  125. package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.js +38 -0
  126. package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.d.ts +3 -0
  127. package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.js +68 -0
  128. package/dist/src/core/middlewares/requestInterceptorMiddleware/requestInterceptorMiddleware.d.ts +3 -0
  129. package/dist/src/core/middlewares/requestInterceptorMiddleware/requestInterceptorMiddleware.js +17 -0
  130. package/dist/src/core/middlewares/staticMiddleware/staticMiddleware.d.ts +3 -0
  131. package/dist/src/core/middlewares/staticMiddleware/staticMiddleware.js +31 -0
  132. package/dist/src/core/rest/createRestRoutes/createRestRoutes.d.ts +3 -0
  133. package/dist/src/core/rest/createRestRoutes/createRestRoutes.js +75 -0
  134. package/dist/src/core/rest/createRestRoutes/helpers/index.d.ts +1 -0
  135. package/dist/src/core/rest/createRestRoutes/helpers/index.js +16 -0
  136. package/dist/src/core/rest/createRestRoutes/helpers/prepareRestRequestConfigs/prepareRestRequestConfigs.d.ts +2 -0
  137. package/dist/src/core/rest/createRestRoutes/helpers/prepareRestRequestConfigs/prepareRestRequestConfigs.js +43 -0
  138. package/dist/src/core/rest/index.d.ts +1 -0
  139. package/dist/src/core/rest/index.js +16 -0
  140. package/dist/src/index.d.ts +3 -0
  141. package/dist/src/index.js +38 -0
  142. package/dist/src/server/createMockServer/createMockServer.d.ts +3 -0
  143. package/dist/src/server/createMockServer/createMockServer.js +79 -0
  144. package/dist/src/server/index.d.ts +2 -0
  145. package/dist/src/server/index.js +27 -0
  146. package/dist/src/server/startMockServer/startMockServer.d.ts +5 -0
  147. package/dist/src/server/startMockServer/startMockServer.js +23 -0
  148. package/dist/src/static/views/assets/icons/scheme-dark.svg +3 -0
  149. package/dist/src/static/views/assets/icons/scheme-light.svg +3 -0
  150. package/dist/src/static/views/assets/images/404.png +0 -0
  151. package/dist/src/static/views/assets/images/logo.png +0 -0
  152. package/dist/src/static/views/assets/styles/global.css +88 -0
  153. package/dist/src/static/views/components/header/index.css +55 -0
  154. package/dist/src/static/views/components/header/index.ejs +40 -0
  155. package/dist/src/static/views/components/header/index.js +1 -0
  156. package/dist/src/static/views/features/scheme/dark.css +12 -0
  157. package/dist/src/static/views/features/scheme/index.ejs +3 -0
  158. package/dist/src/static/views/features/scheme/index.js +31 -0
  159. package/dist/src/static/views/features/scheme/light.css +12 -0
  160. package/dist/src/static/views/features/tab/index.css +30 -0
  161. package/dist/src/static/views/features/tab/index.ejs +2 -0
  162. package/dist/src/static/views/features/tab/index.js +12 -0
  163. package/dist/src/static/views/pages/404/index.css +10 -0
  164. package/dist/src/static/views/pages/404/index.ejs +85 -0
  165. package/dist/src/utils/constants/appPath.d.ts +1 -0
  166. package/dist/src/utils/constants/appPath.js +8 -0
  167. package/dist/src/utils/constants/checkModes.d.ts +9 -0
  168. package/dist/src/utils/constants/checkModes.js +22 -0
  169. package/dist/src/utils/constants/default.d.ts +11 -0
  170. package/dist/src/utils/constants/default.js +18 -0
  171. package/dist/src/utils/constants/index.d.ts +3 -0
  172. package/dist/src/utils/constants/index.js +38 -0
  173. package/dist/src/utils/helpers/asyncHandler.d.ts +2 -0
  174. package/dist/src/utils/helpers/asyncHandler.js +8 -0
  175. package/dist/src/utils/helpers/config/index.d.ts +1 -0
  176. package/dist/src/utils/helpers/config/index.js +16 -0
  177. package/dist/src/utils/helpers/config/resolveEntityValues/resolveEntityValues.d.ts +2 -0
  178. package/dist/src/utils/helpers/config/resolveEntityValues/resolveEntityValues.js +118 -0
  179. package/dist/src/utils/helpers/entities/convertToEntityDescriptor/convertToEntityDescriptor.d.ts +2 -0
  180. package/dist/src/utils/helpers/entities/convertToEntityDescriptor/convertToEntityDescriptor.js +12 -0
  181. package/dist/src/utils/helpers/entities/index.d.ts +2 -0
  182. package/dist/src/utils/helpers/entities/index.js +27 -0
  183. package/dist/src/utils/helpers/entities/isEntityDescriptor/isEntityDescriptor.d.ts +1 -0
  184. package/dist/src/utils/helpers/entities/isEntityDescriptor/isEntityDescriptor.js +9 -0
  185. package/dist/src/utils/helpers/graphql/getGraphQLInput/getGraphQLInput.d.ts +3 -0
  186. package/dist/src/utils/helpers/graphql/getGraphQLInput/getGraphQLInput.js +31 -0
  187. package/dist/src/utils/helpers/graphql/index.d.ts +3 -0
  188. package/dist/src/utils/helpers/graphql/index.js +38 -0
  189. package/dist/src/utils/helpers/graphql/parseGraphQLRequest/parseGraphQLRequest.d.ts +3 -0
  190. package/dist/src/utils/helpers/graphql/parseGraphQLRequest/parseGraphQLRequest.js +14 -0
  191. package/dist/src/utils/helpers/graphql/parseQuery/parseQuery.d.ts +7 -0
  192. package/dist/src/utils/helpers/graphql/parseQuery/parseQuery.js +24 -0
  193. package/dist/src/utils/helpers/index.d.ts +10 -0
  194. package/dist/src/utils/helpers/index.js +115 -0
  195. package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.d.ts +8 -0
  196. package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.js +25 -0
  197. package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.d.ts +15 -0
  198. package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.js +60 -0
  199. package/dist/src/utils/helpers/interceptors/helpers/setDelay.d.ts +1 -0
  200. package/dist/src/utils/helpers/interceptors/helpers/setDelay.js +11 -0
  201. package/dist/src/utils/helpers/interceptors/index.d.ts +2 -0
  202. package/dist/src/utils/helpers/interceptors/index.js +27 -0
  203. package/dist/src/utils/helpers/isPlainObject/isPlainObject.d.ts +1 -0
  204. package/dist/src/utils/helpers/isPlainObject/isPlainObject.js +8 -0
  205. package/dist/src/utils/helpers/isPrimitive/isPrimitive.d.ts +2 -0
  206. package/dist/src/utils/helpers/isPrimitive/isPrimitive.js +8 -0
  207. package/dist/src/utils/helpers/isRegExp/isRegExp.d.ts +1 -0
  208. package/dist/src/utils/helpers/isRegExp/isRegExp.js +8 -0
  209. package/dist/src/utils/helpers/sleep.d.ts +1 -0
  210. package/dist/src/utils/helpers/sleep.js +10 -0
  211. package/dist/src/utils/helpers/url/convertWin32PathToUnix/convertWin32PathToUnix.d.ts +1 -0
  212. package/dist/src/utils/helpers/url/convertWin32PathToUnix/convertWin32PathToUnix.js +8 -0
  213. package/dist/src/utils/helpers/url/getUrlParts/getUrlParts.d.ts +1 -0
  214. package/dist/src/utils/helpers/url/getUrlParts/getUrlParts.js +9 -0
  215. package/dist/src/utils/helpers/url/index.d.ts +4 -0
  216. package/dist/src/utils/helpers/url/index.js +49 -0
  217. package/dist/src/utils/helpers/url/removeLeadingAndTrailingSlashes/removeLeadingAndTrailingSlashes.d.ts +1 -0
  218. package/dist/src/utils/helpers/url/removeLeadingAndTrailingSlashes/removeLeadingAndTrailingSlashes.js +8 -0
  219. package/dist/src/utils/helpers/url/urlJoin/urlJoin.d.ts +1 -0
  220. package/dist/src/utils/helpers/url/urlJoin/urlJoin.js +15 -0
  221. package/dist/src/utils/types/checkModes.d.ts +12 -0
  222. package/dist/src/utils/types/checkModes.js +1 -0
  223. package/dist/src/utils/types/database.d.ts +6 -0
  224. package/dist/src/utils/types/database.js +1 -0
  225. package/dist/src/utils/types/graphql.d.ts +74 -0
  226. package/dist/src/utils/types/graphql.js +1 -0
  227. package/dist/src/utils/types/index.d.ts +7 -0
  228. package/dist/src/utils/types/index.js +82 -0
  229. package/dist/src/utils/types/interceptors.d.ts +31 -0
  230. package/dist/src/utils/types/interceptors.js +1 -0
  231. package/dist/src/utils/types/rest.d.ts +77 -0
  232. package/dist/src/utils/types/rest.js +1 -0
  233. package/dist/src/utils/types/server.d.ts +53 -0
  234. package/dist/src/utils/types/server.js +1 -0
  235. package/dist/src/utils/types/values.d.ts +4 -0
  236. package/dist/src/utils/types/values.js +1 -0
  237. package/package.json +130 -113
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ const pleaseUpgradeNode = require('please-upgrade-node');
8
+ const packageJson = require('../../package.json');
9
+ pleaseUpgradeNode(packageJson);
10
+ const {
11
+ cli
12
+ } = require('./cli');
13
+ cli();
@@ -0,0 +1,2 @@
1
+ import type { MockServerConfigArgv } from '../src/utils/types';
2
+ export declare const build: (argv: MockServerConfigArgv) => Promise<void>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.build = void 0;
7
+ var _esbuild = require("esbuild");
8
+ var _helpers = require("./helpers");
9
+ var _run = require("./run");
10
+ const build = async argv => {
11
+ const configFilePath = (0, _helpers.resolveConfigFilePath)(argv.config);
12
+ if (!configFilePath) {
13
+ throw new Error('Cannot find config file mock-server.config.(ts|mts|cts|js|mjs|cjs)');
14
+ }
15
+ const buildOptions = {
16
+ entryPoints: [configFilePath],
17
+ bundle: true,
18
+ platform: 'node',
19
+ target: 'esnext',
20
+ minifySyntax: true,
21
+ minify: true,
22
+ write: false,
23
+ metafile: false,
24
+ logLevel: 'info',
25
+ plugins: []
26
+ };
27
+ if (argv.watch) {
28
+ const watchPlugin = {
29
+ name: 'watch',
30
+ setup: build => {
31
+ let instance;
32
+ build.onStart(() => {
33
+ var _instance;
34
+ (_instance = instance) === null || _instance === void 0 ? void 0 : _instance.destroy();
35
+ });
36
+ build.onEnd(result => {
37
+ if (!result.errors.length) {
38
+ const mockConfig = (0, _helpers.resolveConfigFile)(result.outputFiles[0].text);
39
+ instance = (0, _run.run)(mockConfig, argv);
40
+ }
41
+ });
42
+ }
43
+ };
44
+ buildOptions.plugins.push(watchPlugin);
45
+ const ctx = await (0, _esbuild.context)(buildOptions);
46
+ ctx.watch();
47
+ return;
48
+ }
49
+ const {
50
+ outputFiles
51
+ } = await (0, _esbuild.build)(buildOptions);
52
+ const mockConfig = (0, _helpers.resolveConfigFile)(outputFiles[0].text);
53
+ (0, _run.run)(mockConfig, argv);
54
+ };
55
+ exports.build = build;
@@ -0,0 +1 @@
1
+ export declare const cli: () => void;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.cli = void 0;
7
+ var _yargs = _interopRequireDefault(require("yargs"));
8
+ var _helpers = require("yargs/helpers");
9
+ var _build = require("./build");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ const cli = () => {
12
+ const argv = (0, _yargs.default)((0, _helpers.hideBin)(process.argv)).usage('mcs [options]').epilogue('More info: https://github.com/siberiacancode/mock-config-server#readme').options({
13
+ baseUrl: {
14
+ alias: 'b',
15
+ description: 'Set base url for mock server',
16
+ type: 'string'
17
+ },
18
+ port: {
19
+ alias: 'p',
20
+ description: 'Set port for server',
21
+ type: 'number'
22
+ },
23
+ staticPath: {
24
+ alias: 's',
25
+ description: 'Set static path for mock server',
26
+ type: 'string'
27
+ },
28
+ config: {
29
+ alias: 'c',
30
+ description: 'Set path to config file',
31
+ type: 'string'
32
+ },
33
+ watch: {
34
+ alias: 'w',
35
+ description: 'Enables server restart after config file changes',
36
+ type: 'boolean'
37
+ }
38
+ }).version().alias('version', 'v').help().alias('help', 'h').parse();
39
+ (0, _build.build)(argv);
40
+ };
41
+ exports.cli = cli;
@@ -0,0 +1,3 @@
1
+ export * from './resolveConfigFile';
2
+ export * from './resolveConfigFilePath';
3
+ export * from './resolveExportsFromSourceCode';
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _resolveConfigFile = require("./resolveConfigFile");
7
+ Object.keys(_resolveConfigFile).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _resolveConfigFile[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _resolveConfigFile[key];
14
+ }
15
+ });
16
+ });
17
+ var _resolveConfigFilePath = require("./resolveConfigFilePath");
18
+ Object.keys(_resolveConfigFilePath).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _resolveConfigFilePath[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _resolveConfigFilePath[key];
25
+ }
26
+ });
27
+ });
28
+ var _resolveExportsFromSourceCode = require("./resolveExportsFromSourceCode");
29
+ Object.keys(_resolveExportsFromSourceCode).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _resolveExportsFromSourceCode[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _resolveExportsFromSourceCode[key];
36
+ }
37
+ });
38
+ });
@@ -0,0 +1,2 @@
1
+ import type { MockServerConfig } from '../../src/utils/types';
2
+ export declare const resolveConfigFile: (configSourceCode: string) => MockServerConfig;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.resolveConfigFile = void 0;
7
+ var _helpers = require("../../src/utils/helpers");
8
+ var _resolveExportsFromSourceCode = require("./resolveExportsFromSourceCode");
9
+ const resolveConfigFile = configSourceCode => {
10
+ if (!configSourceCode) {
11
+ throw new Error('Cannot handle source code of mock-server.config.(ts|js)');
12
+ }
13
+ const mockServerConfigExports = (0, _resolveExportsFromSourceCode.resolveExportsFromSourceCode)(configSourceCode);
14
+ const mockServerConfig = mockServerConfigExports.default;
15
+ if (!mockServerConfig) {
16
+ throw new Error('Cannot handle exports of mock-server.config.(ts|js)');
17
+ }
18
+ if (!(0, _helpers.isPlainObject)(mockServerConfig)) {
19
+ throw new Error('configuration should be plain object; see our doc (https://www.npmjs.com/package/mock-config-server) for more information');
20
+ }
21
+ return mockServerConfig;
22
+ };
23
+ exports.resolveConfigFile = resolveConfigFile;
@@ -0,0 +1 @@
1
+ export declare const resolveConfigFilePath: (cliConfigFilePath?: string) => string | undefined;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.resolveConfigFilePath = void 0;
7
+ var _fs = _interopRequireDefault(require("fs"));
8
+ var _path = _interopRequireDefault(require("path"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const resolveConfigFilePath = cliConfigFilePath => {
11
+ const appPath = process.cwd();
12
+ if (cliConfigFilePath) return _path.default.resolve(appPath, cliConfigFilePath);
13
+ const configFileNameRegex = /mock-server.config.(?:ts|mts|cts|js|mjs|cjs)/;
14
+ return _fs.default.readdirSync(appPath).find(fileName => configFileNameRegex.test(fileName));
15
+ };
16
+ exports.resolveConfigFilePath = resolveConfigFilePath;
@@ -0,0 +1 @@
1
+ export declare const resolveExportsFromSourceCode: (sourceCode: string) => any;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.resolveExportsFromSourceCode = void 0;
7
+ const resolveExportsFromSourceCode = sourceCode => {
8
+ // @ts-ignore
9
+ const moduleInstance = new module.constructor();
10
+ // eslint-disable-next-line no-underscore-dangle
11
+ moduleInstance._compile(sourceCode, '');
12
+ return moduleInstance.exports;
13
+ };
14
+ exports.resolveExportsFromSourceCode = resolveExportsFromSourceCode;
@@ -0,0 +1 @@
1
+ export declare const resolveConfigFilePath: (cliConfigFilePath?: string) => string | undefined;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.resolveConfigFilePath = void 0;
7
+ var _fs = _interopRequireDefault(require("fs"));
8
+ var _path = _interopRequireDefault(require("path"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const resolveConfigFilePath = cliConfigFilePath => {
11
+ const appPath = process.cwd();
12
+ if (cliConfigFilePath) return _path.default.resolve(appPath, cliConfigFilePath);
13
+ const configFileNameRegex = /mock-server.config.(?:ts|mts|cts|js|mjs|cjs)/;
14
+ return _fs.default.readdirSync(appPath).find(fileName => configFileNameRegex.test(fileName));
15
+ };
16
+ exports.resolveConfigFilePath = resolveConfigFilePath;
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /// <reference types="node" />
3
+ import type { MockServerConfig, MockServerConfigArgv } from '../src';
4
+ export declare const run: (mockConfig: MockServerConfig, argv: MockServerConfigArgv) => (import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> & {
5
+ destroy: (callback?: ((err?: Error | undefined) => void) | undefined) => import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
6
+ }) | undefined;
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.run = void 0;
8
+ var _server = require("../src/server");
9
+ var _validateMockServerConfig = require("./validateMockServerConfig/validateMockServerConfig");
10
+ const run = (mockConfig, argv) => {
11
+ try {
12
+ const mergedMockServerConfig = {
13
+ ...mockConfig,
14
+ ...argv
15
+ };
16
+ (0, _validateMockServerConfig.validateMockServerConfig)(mergedMockServerConfig);
17
+ return (0, _server.startMockServer)(mergedMockServerConfig);
18
+ } catch (error) {
19
+ console.error(error.message);
20
+ }
21
+ };
22
+ exports.run = run;
@@ -0,0 +1,2 @@
1
+ export * from './isCheckModeValid';
2
+ export * from './isDescriptorValueValid';
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _isCheckModeValid = require("./isCheckModeValid");
7
+ Object.keys(_isCheckModeValid).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _isCheckModeValid[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _isCheckModeValid[key];
14
+ }
15
+ });
16
+ });
17
+ var _isDescriptorValueValid = require("./isDescriptorValueValid");
18
+ Object.keys(_isDescriptorValueValid).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _isDescriptorValueValid[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _isDescriptorValueValid[key];
25
+ }
26
+ });
27
+ });
@@ -0,0 +1 @@
1
+ export * from './isCheckModeValid';
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _isCheckModeValid = require("./isCheckModeValid");
7
+ Object.keys(_isCheckModeValid).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _isCheckModeValid[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _isCheckModeValid[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1 @@
1
+ export declare const isCheckModeValid: (checkMode: unknown, entityName?: unknown) => boolean;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isCheckModeValid = void 0;
7
+ var _constants = require("../../../../src/utils/constants");
8
+ const isCheckModeValid = (checkMode, entityName) => {
9
+ if (entityName === 'body' || entityName === 'variables') return _constants.PLAIN_ENTITY_CHECK_MODES.includes(checkMode);
10
+ return _constants.CHECK_MODES.includes(checkMode);
11
+ };
12
+ exports.isCheckModeValid = isCheckModeValid;
@@ -0,0 +1 @@
1
+ export * from './isDescriptorValueValid';
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _isDescriptorValueValid = require("./isDescriptorValueValid");
7
+ Object.keys(_isDescriptorValueValid).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _isDescriptorValueValid[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _isDescriptorValueValid[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1 @@
1
+ export declare const isDescriptorValueValid: (checkMode: unknown, value: unknown, entityName?: unknown) => boolean;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isDescriptorValueValid = void 0;
7
+ var _constants = require("../../../../src/utils/constants");
8
+ const isDescriptorValueValid = (checkMode, value, entityName) => {
9
+ if (_constants.CHECK_ACTUAL_VALUE_CHECK_MODES.includes(checkMode)) return typeof value === 'undefined';
10
+ if (_constants.COMPARE_WITH_DESCRIPTOR_VALUE_CHECK_MODES.includes(checkMode)) {
11
+ if (entityName === 'body' || entityName === 'variables') {
12
+ return typeof value === 'object' && value !== null && typeof value !== 'function' && !(value instanceof RegExp);
13
+ }
14
+ return typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string';
15
+ }
16
+ if (checkMode === 'function') return typeof value === 'function';
17
+ if (checkMode === 'regExp') return value instanceof RegExp;
18
+ throw new Error('Invalid checkMode');
19
+ };
20
+ exports.isDescriptorValueValid = isDescriptorValueValid;
@@ -0,0 +1 @@
1
+ export declare const validateBaseUrl: (baseUrl: unknown) => void;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateBaseUrl = void 0;
7
+ const validateBaseUrl = baseUrl => {
8
+ if (typeof baseUrl !== 'string' && typeof baseUrl !== 'undefined') {
9
+ throw new Error('baseUrl');
10
+ }
11
+ if (typeof baseUrl === 'string' && !baseUrl.startsWith('/')) {
12
+ throw new Error('baseUrl');
13
+ }
14
+ };
15
+ exports.validateBaseUrl = validateBaseUrl;
@@ -0,0 +1 @@
1
+ export declare const validateCors: (cors: unknown) => void;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateCors = void 0;
7
+ var _helpers = require("../../../src/utils/helpers");
8
+ const validateOrigin = origin => {
9
+ const isOriginArray = Array.isArray(origin);
10
+ if (isOriginArray) {
11
+ origin.forEach((originElement, index) => {
12
+ const isOriginElementStringOrRegExp = typeof originElement === 'string' || originElement instanceof RegExp;
13
+ if (!isOriginElementStringOrRegExp) {
14
+ throw new Error(`origin[${index}]`);
15
+ }
16
+ });
17
+ return;
18
+ }
19
+ const isOriginStringOrRegexp = typeof origin === 'string' || origin instanceof RegExp;
20
+ const isOriginFunction = typeof origin === 'function';
21
+ if (!isOriginStringOrRegexp && !isOriginFunction) {
22
+ throw new Error('origin');
23
+ }
24
+ };
25
+ const validateMethods = methods => {
26
+ const isMethodsArray = Array.isArray(methods);
27
+ if (isMethodsArray) {
28
+ const allowedMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'];
29
+ methods.forEach((method, index) => {
30
+ // ✅ important:
31
+ // compare without 'toUpperCase' because 'Access-Control-Allow-Methods' value is case-sensitive
32
+ if (!allowedMethods.includes(method)) {
33
+ throw new Error(`methods[${index}]`);
34
+ }
35
+ });
36
+ return;
37
+ }
38
+ if (typeof methods !== 'undefined') {
39
+ throw new Error('methods');
40
+ }
41
+ };
42
+ const validateHeaders = headers => {
43
+ const isHeadersArray = Array.isArray(headers);
44
+ if (isHeadersArray) {
45
+ headers.forEach((header, index) => {
46
+ if (typeof header !== 'string') {
47
+ throw new Error(`headers[${index}]`);
48
+ }
49
+ });
50
+ return;
51
+ }
52
+ if (typeof headers !== 'undefined') {
53
+ throw new Error('headers');
54
+ }
55
+ };
56
+ const validateCredentials = credentials => {
57
+ if (typeof credentials !== 'boolean' && typeof credentials !== 'undefined') {
58
+ throw new Error('credentials');
59
+ }
60
+ };
61
+ const validateMaxAge = maxAge => {
62
+ if (typeof maxAge !== 'number' && typeof maxAge !== 'undefined') {
63
+ throw new Error('maxAge');
64
+ }
65
+ };
66
+ const validateCors = cors => {
67
+ const isCorsObject = (0, _helpers.isPlainObject)(cors);
68
+ if (isCorsObject) {
69
+ try {
70
+ validateOrigin(cors.origin);
71
+ validateMethods(cors.methods);
72
+ validateHeaders(cors.headers);
73
+ validateCredentials(cors.credentials);
74
+ validateMaxAge(cors.maxAge);
75
+ } catch (error) {
76
+ throw new Error(`cors.${error.message}`);
77
+ }
78
+ return;
79
+ }
80
+ if (typeof cors !== 'undefined') {
81
+ throw new Error('cors');
82
+ }
83
+ };
84
+ exports.validateCors = validateCors;
@@ -0,0 +1 @@
1
+ export declare const validateDatabaseConfig: (databaseConfig: unknown) => void;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateDatabaseConfig = void 0;
7
+ var _helpers = require("../../../src/utils/helpers");
8
+ const validateData = data => {
9
+ const isDataObject = (0, _helpers.isPlainObject)(data);
10
+ const isDataJsonFilePath = typeof data === 'string' && data.endsWith('.json');
11
+ if (!isDataObject && !isDataJsonFilePath) throw new Error('data');
12
+ };
13
+ const validateRoutes = routes => {
14
+ const isRoutesObject = (0, _helpers.isPlainObject)(routes);
15
+ if (isRoutesObject) {
16
+ Object.entries(routes).forEach(([routeKey, routeValue]) => {
17
+ const isKeyRoutePath = routeKey.startsWith('/');
18
+ const isValueRoutePath = typeof routeValue === 'string' && routeValue.startsWith('/');
19
+ if (!isKeyRoutePath || !isValueRoutePath) {
20
+ throw new Error(`routes.${routeKey}`);
21
+ }
22
+ });
23
+ return;
24
+ }
25
+ const isRoutesJsonFilePath = typeof routes === 'string' && routes.endsWith('.json');
26
+ if (!isRoutesJsonFilePath && typeof routes !== 'undefined') {
27
+ throw new Error('routes');
28
+ }
29
+ };
30
+ const validateDatabaseConfig = databaseConfig => {
31
+ const isDatabaseConfigObject = (0, _helpers.isPlainObject)(databaseConfig);
32
+ if (isDatabaseConfigObject) {
33
+ try {
34
+ validateData(databaseConfig.data);
35
+ validateRoutes(databaseConfig.routes);
36
+ } catch (error) {
37
+ throw new Error(`database.${error.message}`);
38
+ }
39
+ return;
40
+ }
41
+ if (typeof databaseConfig !== 'undefined') {
42
+ throw new Error('database');
43
+ }
44
+ };
45
+ exports.validateDatabaseConfig = validateDatabaseConfig;
@@ -0,0 +1 @@
1
+ export declare const validateGraphqlConfig: (graphqlConfig: unknown) => void;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateGraphqlConfig = void 0;
7
+ var _helpers = require("../../../src/utils/helpers");
8
+ var _validateBaseUrl = require("../validateBaseUrl/validateBaseUrl");
9
+ var _validateInterceptors = require("../validateInterceptors/validateInterceptors");
10
+ var _validateRoutes = require("./validateRoutes/validateRoutes");
11
+ const validateConfigs = configs => {
12
+ const isConfigsArray = Array.isArray(configs);
13
+ if (isConfigsArray) {
14
+ configs.forEach((config, index) => {
15
+ const {
16
+ operationType,
17
+ operationName
18
+ } = config;
19
+ if (operationType !== 'query' && operationType !== 'mutation') {
20
+ throw new Error(`configs[${index}].operationType`);
21
+ }
22
+ const isOperationNameStringOrRegExp = typeof operationName === 'string' || operationName instanceof RegExp;
23
+ if (!isOperationNameStringOrRegExp) {
24
+ throw new Error(`configs[${index}].operationName`);
25
+ }
26
+ try {
27
+ (0, _validateRoutes.validateRoutes)(config.routes, operationType);
28
+ (0, _validateInterceptors.validateInterceptors)(config.interceptors);
29
+ } catch (error) {
30
+ throw new Error(`configs[${index}].${error.message}`);
31
+ }
32
+ });
33
+ return;
34
+ }
35
+ throw new Error('configs');
36
+ };
37
+ const validateGraphqlConfig = graphqlConfig => {
38
+ const isGraphqlConfigObject = (0, _helpers.isPlainObject)(graphqlConfig);
39
+ if (isGraphqlConfigObject) {
40
+ try {
41
+ (0, _validateBaseUrl.validateBaseUrl)(graphqlConfig.baseUrl);
42
+ validateConfigs(graphqlConfig.configs);
43
+ } catch (error) {
44
+ throw new Error(`graphql.${error.message}`);
45
+ }
46
+ return;
47
+ }
48
+ if (typeof graphqlConfig !== 'undefined') {
49
+ throw new Error('graphql');
50
+ }
51
+ };
52
+ exports.validateGraphqlConfig = validateGraphqlConfig;
@@ -0,0 +1,2 @@
1
+ import type { GraphQLOperationType } from '../../../../src/utils/types';
2
+ export declare const validateRoutes: (routes: unknown, operationType: GraphQLOperationType) => void;