mock-config-server 3.7.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/README.md +272 -224
  2. package/dist/bin/bin.js +1 -1
  3. package/dist/bin/build.d.ts +3 -1
  4. package/dist/bin/build.js +10 -0
  5. package/dist/bin/helpers/createTemplate.d.ts +3 -3
  6. package/dist/bin/helpers/createTemplate.js +1 -1
  7. package/dist/bin/helpers/index.d.ts +0 -3
  8. package/dist/bin/helpers/index.js +0 -3
  9. package/dist/bin/helpers/resolveConfigFile.d.ts +2 -2
  10. package/dist/bin/helpers/resolveConfigFile.js +2 -2
  11. package/dist/bin/helpers/resolveConfigFilePath.js +4 -4
  12. package/dist/bin/helpers/resolveExportsFromSourceCode.js +1 -2
  13. package/dist/bin/init.js +5 -8
  14. package/dist/bin/run.d.ts +1 -2
  15. package/dist/bin/run.js +1 -6
  16. package/dist/bin/runFlatConfig.d.ts +5 -0
  17. package/dist/bin/runFlatConfig.js +36 -0
  18. package/dist/bin/templates/js/full/mock-server.config.js +10 -7
  19. package/dist/bin/templates/js/graphql/mock-server.config.js +11 -6
  20. package/dist/bin/templates/js/rest/mock-server.config.js +11 -6
  21. package/dist/bin/templates/ts/full/mock-requests/graphql/index.ts +2 -2
  22. package/dist/bin/templates/ts/full/mock-requests/graphql/user.ts +37 -37
  23. package/dist/bin/templates/ts/full/mock-requests/graphql/users.ts +14 -14
  24. package/dist/bin/templates/ts/full/mock-requests/rest/index.ts +2 -2
  25. package/dist/bin/templates/ts/full/mock-requests/rest/user.ts +37 -37
  26. package/dist/bin/templates/ts/full/mock-requests/rest/users.ts +14 -14
  27. package/dist/bin/templates/ts/full/mock-server.config.ts +11 -8
  28. package/dist/bin/templates/ts/graphql/mock-requests/index.ts +2 -2
  29. package/dist/bin/templates/ts/graphql/mock-requests/user.ts +37 -37
  30. package/dist/bin/templates/ts/graphql/mock-requests/users.ts +14 -14
  31. package/dist/bin/templates/ts/graphql/mock-server.config.ts +12 -7
  32. package/dist/bin/templates/ts/rest/mock-requests/index.ts +2 -2
  33. package/dist/bin/templates/ts/rest/mock-requests/user.ts +37 -37
  34. package/dist/bin/templates/ts/rest/mock-requests/users.ts +14 -14
  35. package/dist/bin/templates/ts/rest/mock-server.config.ts +12 -7
  36. package/dist/src/core/database/createDatabaseRoutes/createDatabaseRoutes.js +2 -1
  37. package/dist/src/core/database/createDatabaseRoutes/helpers/createNestedDatabaseRoutes/createNestedDatabaseRoutes.js +8 -12
  38. package/dist/src/core/database/createDatabaseRoutes/helpers/filter/filter.d.ts +0 -1
  39. package/dist/src/core/database/createDatabaseRoutes/helpers/pagination/pagination.d.ts +0 -1
  40. package/dist/src/core/database/createDatabaseRoutes/helpers/search/search.d.ts +0 -1
  41. package/dist/src/core/database/createDatabaseRoutes/helpers/sort/sort.d.ts +0 -1
  42. package/dist/src/core/database/createDatabaseRoutes/helpers/splitDatabaseByNesting/splitDatabaseByNesting.d.ts +1 -1
  43. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileStorage.d.ts +5 -6
  44. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileStorage.js +4 -4
  45. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileWriter.js +2 -2
  46. package/dist/src/core/database/createDatabaseRoutes/storages/Memory/MemoryStorage.d.ts +6 -7
  47. package/dist/src/core/database/createOrm/createOrm.d.ts +2 -0
  48. package/dist/src/core/database/createOrm/createOrm.js +119 -0
  49. package/dist/src/core/database/createStorage/createStorage.d.ts +2 -0
  50. package/dist/src/core/database/createStorage/createStorage.js +13 -0
  51. package/dist/src/core/database/index.d.ts +2 -0
  52. package/dist/src/core/database/index.js +2 -0
  53. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.d.ts +1 -1
  54. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.js +39 -17
  55. package/dist/src/core/graphql/createGraphQLRoutes/helpers/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.js +2 -2
  56. package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.d.ts +2 -2
  57. package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.js +24 -12
  58. package/dist/src/core/middlewares/destroyerMiddleware/destroyerMiddleware.d.ts +1 -2
  59. package/dist/src/core/middlewares/index.d.ts +0 -1
  60. package/dist/src/core/middlewares/index.js +0 -1
  61. package/dist/src/core/middlewares/requestInterceptorMiddleware/requestInterceptorMiddleware.d.ts +2 -2
  62. package/dist/src/core/rest/createRestRoutes/createRestRoutes.d.ts +1 -1
  63. package/dist/src/core/rest/createRestRoutes/createRestRoutes.js +80 -24
  64. package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.d.ts +1 -1
  65. package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.js +6 -6
  66. package/dist/src/server/createFlatMockServer/createFlatMockServer.d.ts +3 -0
  67. package/dist/src/server/createFlatMockServer/createFlatMockServer.js +127 -0
  68. package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.d.ts +1 -1
  69. package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.js +3 -6
  70. package/dist/src/server/createMockServer/createMockServer.d.ts +1 -1
  71. package/dist/src/server/createMockServer/createMockServer.js +3 -5
  72. package/dist/src/server/createRestMockServer/createRestMockServer.d.ts +1 -1
  73. package/dist/src/server/createRestMockServer/createRestMockServer.js +3 -6
  74. package/dist/src/server/index.d.ts +2 -0
  75. package/dist/src/server/index.js +2 -0
  76. package/dist/src/server/startDatabaseMockServer/startDatabaseMockServer.d.ts +1 -2
  77. package/dist/src/server/startFlatMockServer/startFlatMockServer.d.ts +4 -0
  78. package/dist/src/server/startFlatMockServer/startFlatMockServer.js +28 -0
  79. package/dist/src/server/startGraphQLMockServer/startGraphQLMockServer.d.ts +1 -2
  80. package/dist/src/server/startMockServer/startMockServer.d.ts +1 -2
  81. package/dist/src/server/startRestMockServer/startRestMockServer.d.ts +1 -2
  82. package/dist/src/utils/constants/checkModes.d.ts +1 -3
  83. package/dist/src/utils/constants/checkModes.js +3 -19
  84. package/dist/src/utils/helpers/config/resolveEntityValues/resolveEntityValues.d.ts +20 -2
  85. package/dist/src/utils/helpers/config/resolveEntityValues/resolveEntityValues.js +37 -71
  86. package/dist/src/utils/helpers/files/index.d.ts +1 -0
  87. package/dist/src/utils/helpers/files/index.js +1 -0
  88. package/dist/src/utils/helpers/files/isFileDescriptor/isFileDescriptor.d.ts +2 -0
  89. package/dist/src/utils/helpers/files/isFileDescriptor/isFileDescriptor.js +16 -0
  90. package/dist/src/utils/helpers/files/isFilePathValid/isFilePathValid.js +3 -3
  91. package/dist/src/utils/helpers/graphql/parseQuery/parseQuery.d.ts +1 -1
  92. package/dist/src/utils/helpers/index.d.ts +0 -1
  93. package/dist/src/utils/helpers/index.js +0 -1
  94. package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.d.ts +1 -1
  95. package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.js +2 -1
  96. package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.js +10 -5
  97. package/dist/src/utils/helpers/logger/callResponseLogger/callResponseLogger.d.ts +1 -1
  98. package/dist/src/utils/helpers/tests/createTmpDir.js +4 -4
  99. package/dist/src/utils/helpers/url/convertWin32PathToUnix/convertWin32PathToUnix.js +1 -1
  100. package/dist/src/utils/helpers/url/urlJoin/urlJoin.js +4 -4
  101. package/dist/src/utils/types/checkModes.d.ts +14 -7
  102. package/dist/src/utils/types/database.d.ts +30 -0
  103. package/dist/src/utils/types/entities.d.ts +13 -43
  104. package/dist/src/utils/types/files.d.ts +5 -0
  105. package/dist/src/utils/types/files.js +4 -0
  106. package/dist/src/utils/types/graphql.d.ts +9 -8
  107. package/dist/src/utils/types/index.d.ts +1 -0
  108. package/dist/src/utils/types/index.js +1 -0
  109. package/dist/src/utils/types/interceptors.d.ts +21 -16
  110. package/dist/src/utils/types/logger.d.ts +11 -11
  111. package/dist/src/utils/types/rest.d.ts +17 -12
  112. package/dist/src/utils/types/server.d.ts +48 -20
  113. package/dist/src/utils/types/shared.d.ts +1 -1
  114. package/dist/src/utils/types/utils.d.ts +4 -4
  115. package/dist/src/utils/types/values.d.ts +3 -4
  116. package/dist/{bin/validateMockServerConfig → src/utils/validate}/corsSchema/corsSchema.d.ts +2 -2
  117. package/dist/{bin/helpers → src/utils/validate}/getMostSpecificPathFromError.d.ts +1 -1
  118. package/dist/src/utils/validate/getValidationMessageFromPath.d.ts +1 -0
  119. package/dist/src/utils/validate/graphqlConfigSchema/graphqlConfigSchema.d.ts +535 -0
  120. package/dist/{bin/validateMockServerConfig → src/utils/validate}/graphqlConfigSchema/graphqlConfigSchema.js +14 -6
  121. package/dist/{bin/validateMockServerConfig → src/utils/validate}/graphqlConfigSchema/routeConfigSchema/routeConfigSchema.d.ts +20 -5
  122. package/dist/{bin/validateMockServerConfig → src/utils/validate}/graphqlConfigSchema/routeConfigSchema/routeConfigSchema.js +5 -5
  123. package/dist/src/utils/validate/index.d.ts +14 -0
  124. package/dist/src/utils/validate/index.js +31 -0
  125. package/dist/{bin/helpers → src/utils/validate}/isOnlyRequestedDataResolvingPropertyExists.d.ts +1 -1
  126. package/dist/src/utils/validate/queueSchema/queueSchema.d.ts +20 -0
  127. package/dist/src/utils/validate/queueSchema/queueSchema.js +24 -0
  128. package/dist/src/utils/validate/restConfigSchema/restConfigSchema.d.ts +1659 -0
  129. package/dist/{bin/validateMockServerConfig → src/utils/validate}/restConfigSchema/restConfigSchema.js +13 -5
  130. package/dist/{bin/validateMockServerConfig → src/utils/validate}/restConfigSchema/routeConfigSchema/routeConfigSchema.d.ts +21 -6
  131. package/dist/{bin/validateMockServerConfig → src/utils/validate}/restConfigSchema/routeConfigSchema/routeConfigSchema.js +6 -6
  132. package/dist/src/utils/validate/utils/checkModeSchema/checkModeSchema.d.ts +23 -0
  133. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/checkModeSchema/checkModeSchema.js +24 -1
  134. package/dist/src/utils/validate/utils/entitiesSchema/entitiesSchema.d.ts +4 -0
  135. package/dist/src/utils/validate/utils/entitiesSchema/entitiesSchema.js +94 -0
  136. package/dist/src/utils/validate/utils/extendedDiscriminatedUnion/extendedDiscriminatedUnion.d.ts +8 -0
  137. package/dist/src/utils/validate/utils/extendedDiscriminatedUnion/extendedDiscriminatedUnion.js +46 -0
  138. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/index.d.ts +2 -2
  139. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/index.js +2 -2
  140. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/jsonSchema/jsonSchema.d.ts +2 -2
  141. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/jsonSchema/jsonSchema.js +1 -1
  142. package/dist/src/utils/validate/utils/nestedObjectOrArraySchema/nestedObjectOrArraySchema.d.ts +3 -0
  143. package/dist/src/utils/validate/utils/nestedObjectOrArraySchema/nestedObjectOrArraySchema.js +22 -0
  144. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/requiredPropertiesSchema/requiredPropertiesSchema.d.ts +1 -1
  145. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/requiredPropertiesSchema/requiredPropertiesSchema.js +1 -1
  146. package/dist/src/utils/validate/validateApiMockServerConfig.d.ts +2 -0
  147. package/dist/{bin/validateMockServerConfig → src/utils/validate}/validateApiMockServerConfig.js +4 -3
  148. package/dist/src/utils/validate/validateFlatMockServerConfig.d.ts +2 -0
  149. package/dist/src/utils/validate/validateFlatMockServerConfig.js +53 -0
  150. package/dist/{bin/validateMockServerConfig → src/utils/validate}/validateMockServerConfig.d.ts +1 -1
  151. package/dist/{bin/validateMockServerConfig → src/utils/validate}/validateMockServerConfig.js +4 -3
  152. package/package.json +51 -52
  153. package/dist/bin/helpers/getValidationMessageFromPath.d.ts +0 -1
  154. package/dist/bin/validateMockServerConfig/graphqlConfigSchema/graphqlConfigSchema.d.ts +0 -258
  155. package/dist/bin/validateMockServerConfig/queueSchema/queueSchema.d.ts +0 -8
  156. package/dist/bin/validateMockServerConfig/queueSchema/queueSchema.js +0 -21
  157. package/dist/bin/validateMockServerConfig/restConfigSchema/restConfigSchema.d.ts +0 -743
  158. package/dist/bin/validateMockServerConfig/utils/checkModeSchema/checkModeSchema.d.ts +0 -5
  159. package/dist/bin/validateMockServerConfig/utils/entitiesSchema/entitiesSchema.d.ts +0 -71
  160. package/dist/bin/validateMockServerConfig/utils/entitiesSchema/entitiesSchema.js +0 -124
  161. package/dist/bin/validateMockServerConfig/validateApiMockServerConfig.d.ts +0 -2
  162. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.d.ts +0 -11
  163. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.js +0 -25
  164. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getLevenshteinDistance/getLevenshteinDistance.d.ts +0 -1
  165. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getLevenshteinDistance/getLevenshteinDistance.js +0 -85
  166. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/getRestUrlSuggestions.d.ts +0 -11
  167. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/getRestUrlSuggestions.js +0 -39
  168. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.d.ts +0 -1
  169. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.js +0 -11
  170. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.d.ts +0 -1
  171. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.js +0 -11
  172. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/index.d.ts +0 -2
  173. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/index.js +0 -19
  174. package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.d.ts +0 -3
  175. package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.js +0 -20
  176. package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.d.ts +0 -3
  177. package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.js +0 -65
  178. package/dist/src/static/views/assets/icons/scheme-dark.svg +0 -3
  179. package/dist/src/static/views/assets/icons/scheme-light.svg +0 -3
  180. package/dist/src/static/views/assets/images/404.png +0 -0
  181. package/dist/src/static/views/assets/images/logo.png +0 -0
  182. package/dist/src/static/views/assets/styles/global.css +0 -88
  183. package/dist/src/static/views/components/header/index.css +0 -55
  184. package/dist/src/static/views/components/header/index.ejs +0 -40
  185. package/dist/src/static/views/components/header/index.js +0 -1
  186. package/dist/src/static/views/features/scheme/dark.css +0 -13
  187. package/dist/src/static/views/features/scheme/index.ejs +0 -3
  188. package/dist/src/static/views/features/scheme/index.js +0 -31
  189. package/dist/src/static/views/features/scheme/light.css +0 -13
  190. package/dist/src/static/views/features/tab/index.css +0 -30
  191. package/dist/src/static/views/features/tab/index.ejs +0 -2
  192. package/dist/src/static/views/features/tab/index.js +0 -12
  193. package/dist/src/static/views/pages/404/index.css +0 -10
  194. package/dist/src/static/views/pages/404/index.ejs +0 -82
  195. package/dist/src/utils/helpers/isRegExp/isRegExp.d.ts +0 -1
  196. package/dist/src/utils/helpers/isRegExp/isRegExp.js +0 -11
  197. package/dist/{bin/validateMockServerConfig → src/utils/validate}/baseUrlSchema/baseUrlSchema.d.ts +0 -0
  198. package/dist/{bin/validateMockServerConfig → src/utils/validate}/baseUrlSchema/baseUrlSchema.js +0 -0
  199. package/dist/{bin/validateMockServerConfig → src/utils/validate}/corsSchema/corsSchema.js +0 -0
  200. package/dist/{bin/validateMockServerConfig → src/utils/validate}/databaseConfigSchema/databaseConfigSchema.d.ts +0 -0
  201. package/dist/{bin/validateMockServerConfig → src/utils/validate}/databaseConfigSchema/databaseConfigSchema.js +0 -0
  202. package/dist/{bin/helpers → src/utils/validate}/getMostSpecificPathFromError.js +0 -0
  203. package/dist/{bin/helpers → src/utils/validate}/getValidationMessageFromPath.js +0 -0
  204. package/dist/{bin/validateMockServerConfig → src/utils/validate}/interceptorsSchema/interceptorsSchema.d.ts +0 -0
  205. package/dist/{bin/validateMockServerConfig → src/utils/validate}/interceptorsSchema/interceptorsSchema.js +0 -0
  206. package/dist/{bin/helpers → src/utils/validate}/isOnlyRequestedDataResolvingPropertyExists.js +0 -0
  207. package/dist/{bin/validateMockServerConfig → src/utils/validate}/portSchema/portSchema.d.ts +0 -0
  208. package/dist/{bin/validateMockServerConfig → src/utils/validate}/portSchema/portSchema.js +0 -0
  209. package/dist/{bin/validateMockServerConfig → src/utils/validate}/settingsSchema/settingsSchema.d.ts +2 -2
  210. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/settingsSchema/settingsSchema.js +0 -0
  211. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/staticPathSchema/staticPathSchema.d.ts +0 -0
  212. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/staticPathSchema/staticPathSchema.js +0 -0
  213. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/plainObjectSchema/plainObjectSchema.d.ts +0 -0
  214. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/plainObjectSchema/plainObjectSchema.js +0 -0
  215. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/sharedSchema/sharedSchema.d.ts +0 -0
  216. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/sharedSchema/sharedSchema.js +0 -0
@@ -1,6 +1,36 @@
1
+ export interface Database extends Record<string, unknown> {
2
+ }
1
3
  export type ShallowDatabase = Record<string, unknown>;
2
4
  export type NestedDatabaseId = number | string;
3
5
  export type NestedDatabase = Record<string, {
4
6
  id: NestedDatabaseId;
5
7
  [key: string]: unknown;
6
8
  }[]>;
9
+ export type StorageIndex = number | string;
10
+ export interface Storage {
11
+ delete: (key: StorageIndex | StorageIndex[]) => void;
12
+ read: (key?: StorageIndex | StorageIndex[]) => any;
13
+ write: (key: StorageIndex | StorageIndex[], value: unknown) => void;
14
+ }
15
+ export interface ShallowOrm<Item = unknown> {
16
+ get: () => Item;
17
+ update: (data: Item) => void;
18
+ }
19
+ export interface NestedOrm<Item = Record<string, unknown>> {
20
+ count: () => number;
21
+ create: (item: Omit<Item, 'id'>) => Item;
22
+ createMany: (items: Omit<Item, 'id'>[]) => void;
23
+ delete: (id: StorageIndex) => void;
24
+ deleteMany: (ids: StorageIndex[]) => void;
25
+ exists: (filters: Partial<Item>) => boolean;
26
+ findById: (id: StorageIndex) => Item | undefined;
27
+ findFirst: (filters?: Partial<Item>) => Item | undefined;
28
+ findMany: (filters?: Partial<Item>) => Item[];
29
+ update: (id: StorageIndex, item: Partial<Omit<Item, 'id'>>) => void;
30
+ updateMany: (ids: StorageIndex[], item: Partial<Omit<Item, 'id'>>) => number;
31
+ }
32
+ export type Orm<Database extends Record<string, unknown>> = {
33
+ [Key in keyof Database]: Database[Key] extends Array<infer Item> ? Item extends {
34
+ id: StorageIndex;
35
+ } ? NestedOrm<Item> : ShallowOrm<Database[Key]> : ShallowOrm<Database[Key]>;
36
+ };
@@ -1,48 +1,18 @@
1
- import type { CheckActualValueCheckMode, CheckFunction, CheckMode, CompareWithDescriptorAnyValueCheckMode, CompareWithDescriptorStringValueCheckMode, CompareWithDescriptorValueCheckMode } from './checkModes';
1
+ import type { CheckActualValueCheckMode, CheckFunction, CheckMode, CompareWithDescriptorAnyValueCheckMode, CompareWithDescriptorStringValueCheckMode, CompareWithDescriptorValueCheckMode, EntityDescriptor } from './checkModes';
2
2
  import type { NestedObjectOrArray } from './utils';
3
- type PlainEntityValue = string | number | boolean | null;
4
- export type TopLevelPlainEntityDescriptor<Check extends CheckMode = CheckMode> = Check extends 'function' ? {
5
- checkMode: Check;
6
- value: (actualValue: NestedObjectOrArray<PlainEntityValue>, checkFunction: CheckFunction) => boolean;
7
- } : Check extends CompareWithDescriptorAnyValueCheckMode ? {
8
- checkMode: Check;
9
- value: NestedObjectOrArray<PlainEntityValue>;
10
- } : Check extends CheckActualValueCheckMode ? {
11
- checkMode: Check;
12
- } : never;
13
- type PropertyLevelPlainEntityDescriptor<Check extends CheckMode = CheckMode> = Check extends 'function' ? {
14
- checkMode: Check;
15
- value: (actualValue: PlainEntityValue | NestedObjectOrArray<PlainEntityValue>, checkFunction: CheckFunction) => boolean;
16
- } : Check extends CompareWithDescriptorAnyValueCheckMode ? {
17
- checkMode: Check;
18
- value: PlainEntityValue | NestedObjectOrArray<PlainEntityValue>;
19
- } : Check extends 'regExp' ? {
20
- checkMode: Check;
21
- value: RegExp | RegExp[];
22
- } : Check extends CompareWithDescriptorStringValueCheckMode ? {
23
- checkMode: Check;
24
- value: PlainEntityValue | PlainEntityValue[];
25
- } : Check extends CheckActualValueCheckMode ? {
26
- checkMode: Check;
27
- } : never;
3
+ type PlainEntityPrimitiveValue = boolean | number | string | null;
4
+ type PlainEntityObjectiveValue = NestedObjectOrArray<PlainEntityPrimitiveValue>;
5
+ export type EntityFunctionDescriptorValue<ActualValue> = (actualValue: ActualValue, checkFunction: CheckFunction) => boolean;
6
+ export type TopLevelPlainEntityDescriptor<Check extends CheckMode = CheckMode> = Check extends 'function' ? EntityDescriptor<Check, EntityFunctionDescriptorValue<PlainEntityObjectiveValue>> : Check extends CompareWithDescriptorAnyValueCheckMode ? EntityDescriptor<Check, PlainEntityObjectiveValue> : Check extends CheckActualValueCheckMode ? EntityDescriptor<Check> : never;
7
+ type PropertyLevelPlainEntityDescriptor<Check extends CheckMode = CheckMode> = Check extends 'function' ? EntityDescriptor<Check, EntityFunctionDescriptorValue<PlainEntityObjectiveValue | PlainEntityPrimitiveValue>> : Check extends 'regExp' ? EntityDescriptor<Check, RegExp> : Check extends CompareWithDescriptorAnyValueCheckMode ? EntityDescriptor<Check, PlainEntityObjectiveValue | PlainEntityPrimitiveValue> : Check extends CompareWithDescriptorStringValueCheckMode ? EntityDescriptor<Check, PlainEntityPrimitiveValue> : Check extends CheckActualValueCheckMode ? EntityDescriptor<Check> : never;
28
8
  type NonCheckMode<T extends object> = T & {
29
9
  checkMode?: never;
30
10
  };
31
- type TopLevelPlainEntityRecord = NonCheckMode<Record<string, PropertyLevelPlainEntityDescriptor | NonCheckMode<NestedObjectOrArray<PlainEntityValue>> | PlainEntityValue>>;
32
- export type TopLevelPlainEntityArray = Array<NestedObjectOrArray<PlainEntityValue>>;
33
- export type PlainEntity = TopLevelPlainEntityDescriptor | TopLevelPlainEntityRecord | TopLevelPlainEntityArray;
34
- type MappedEntityValue = string | number | boolean;
35
- type MappedEntityDescriptor<Check extends CheckMode = CheckMode> = Check extends 'function' ? {
36
- checkMode: Check;
37
- value: (actualValue: MappedEntityValue, checkFunction: CheckFunction) => boolean;
38
- } : Check extends 'regExp' ? {
39
- checkMode: Check;
40
- value: RegExp | RegExp[];
41
- } : Check extends CompareWithDescriptorValueCheckMode ? {
42
- checkMode: Check;
43
- value: MappedEntityValue | MappedEntityValue[];
44
- } : Check extends CheckActualValueCheckMode ? {
45
- checkMode: Check;
46
- } : never;
47
- export type MappedEntity = Record<string, MappedEntityDescriptor | MappedEntityValue | MappedEntityValue[]>;
11
+ type TopLevelPlainEntityRecord = NonCheckMode<Record<string, NonCheckMode<PlainEntityObjectiveValue> | PlainEntityPrimitiveValue | PropertyLevelPlainEntityDescriptor>>;
12
+ export type TopLevelPlainEntityArray = Array<PlainEntityObjectiveValue | PlainEntityPrimitiveValue>;
13
+ export type BodyPlainEntity = TopLevelPlainEntityArray | TopLevelPlainEntityDescriptor | TopLevelPlainEntityRecord;
14
+ export type VariablesPlainEntity = TopLevelPlainEntityDescriptor | TopLevelPlainEntityRecord;
15
+ type MappedEntityValue = boolean | number | string;
16
+ type MappedEntityDescriptor<Check extends CheckMode = CheckMode> = Check extends 'function' ? EntityDescriptor<Check, EntityFunctionDescriptorValue<MappedEntityValue>> : Check extends 'regExp' ? EntityDescriptor<Check, RegExp> : Check extends CompareWithDescriptorValueCheckMode ? EntityDescriptor<Check, MappedEntityValue> : Check extends CheckActualValueCheckMode ? EntityDescriptor<Check> : never;
17
+ export type MappedEntity = Record<string, MappedEntityDescriptor | MappedEntityValue>;
48
18
  export {};
@@ -0,0 +1,5 @@
1
+ import type { Buffer } from 'node:buffer';
2
+ export interface FileDescriptor {
3
+ file: Buffer;
4
+ path: string;
5
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
@@ -1,40 +1,41 @@
1
1
  import type { Request } from 'express';
2
- import type { MappedEntity, PlainEntity } from './entities';
2
+ import type { MappedEntity, VariablesPlainEntity } from './entities';
3
3
  import type { Interceptors } from './interceptors';
4
4
  import type { Data } from './values';
5
- export type GraphQLEntityName = 'headers' | 'cookies' | 'query' | 'variables';
6
- export type GraphQLEntity<EntityName extends GraphQLEntityName = GraphQLEntityName> = EntityName extends 'variables' ? PlainEntity : MappedEntity;
7
- export type GraphQLOperationType = 'query' | 'mutation';
5
+ export type GraphQLEntityName = 'cookies' | 'headers' | 'query' | 'variables';
6
+ export type GraphQLEntity<EntityName extends GraphQLEntityName = GraphQLEntityName> = EntityName extends 'variables' ? VariablesPlainEntity : MappedEntity;
7
+ export type GraphQLOperationType = 'mutation' | 'query';
8
8
  export type GraphQLOperationName = string | RegExp;
9
9
  export type GraphQLEntitiesByEntityName = {
10
10
  [EntityName in GraphQLEntityName]?: GraphQLEntity<EntityName>;
11
11
  };
12
12
  interface GraphQLSettings {
13
+ readonly delay?: number;
13
14
  readonly polling?: boolean;
14
15
  readonly status?: number;
15
- readonly delay?: number;
16
16
  }
17
+ export type GraphqlDataResponse = ((request: Request, entities: GraphQLEntitiesByEntityName) => Data | Promise<Data>) | Data;
17
18
  export type GraphQLRouteConfig = ({
18
19
  settings: GraphQLSettings & {
19
20
  polling: true;
20
21
  };
21
22
  queue: Array<{
22
23
  time?: number;
23
- data: ((request: Request, entities: GraphQLEntitiesByEntityName) => Data | Promise<Data>) | Data;
24
+ data: GraphqlDataResponse;
24
25
  }>;
25
26
  } | {
26
27
  settings?: GraphQLSettings & {
27
28
  polling?: false;
28
29
  };
29
- data: ((request: Request, entities: GraphQLEntitiesByEntityName) => Data | Promise<Data>) | Data;
30
+ data: GraphqlDataResponse;
30
31
  }) & {
31
32
  entities?: GraphQLEntitiesByEntityName;
32
33
  interceptors?: Interceptors<'graphql'>;
33
34
  };
34
35
  interface BaseGraphQLRequestConfig {
36
+ interceptors?: Interceptors<'graphql'>;
35
37
  operationType: GraphQLOperationType;
36
38
  routes: GraphQLRouteConfig[];
37
- interceptors?: Interceptors<'graphql'>;
38
39
  }
39
40
  export interface OperationNameGraphQLRequestConfig extends BaseGraphQLRequestConfig {
40
41
  operationName: GraphQLOperationName;
@@ -1,6 +1,7 @@
1
1
  export * from './checkModes';
2
2
  export * from './database';
3
3
  export * from './entities';
4
+ export * from './files';
4
5
  export * from './graphql';
5
6
  export * from './interceptors';
6
7
  export * from './logger';
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  _export_star(require("./checkModes"), exports);
6
6
  _export_star(require("./database"), exports);
7
7
  _export_star(require("./entities"), exports);
8
+ _export_star(require("./files"), exports);
8
9
  _export_star(require("./graphql"), exports);
9
10
  _export_star(require("./interceptors"), exports);
10
11
  _export_star(require("./logger"), exports);
@@ -1,31 +1,36 @@
1
1
  import type { CookieOptions, Request, Response } from 'express';
2
+ import type { Database, Orm } from './database';
2
3
  import type { Logger, LoggerTokens } from './logger';
3
4
  import type { ApiType } from './shared';
4
- type RequestInterceptorCookieValue = string | undefined;
5
- type RequestInterceptorHeaderValue = string | number | string[] | undefined;
5
+ type InterceptorCookieValue = string | undefined;
6
+ type InterceptorHeaderValue = number | string | string[] | undefined;
6
7
  export interface RequestInterceptorParams<Api extends ApiType = ApiType> {
8
+ orm: Orm<Database>;
7
9
  request: Request;
8
- setDelay: (delay: number) => Promise<void>;
9
- getCookie: (name: string) => RequestInterceptorCookieValue;
10
- getHeader: (field: string) => RequestInterceptorHeaderValue;
11
- getHeaders: () => Record<string, RequestInterceptorHeaderValue>;
10
+ getCookie: (name: string) => InterceptorCookieValue;
11
+ getHeader: (field: string) => InterceptorHeaderValue;
12
+ getHeaders: () => Record<string, InterceptorHeaderValue>;
12
13
  log: (logger?: Logger<'request', Api>) => Partial<LoggerTokens>;
14
+ setDelay: (delay: number) => Promise<void>;
13
15
  }
14
- export type RequestInterceptor<Api extends ApiType = ApiType> = (params: RequestInterceptorParams<Api>) => void | Promise<void>;
16
+ export type RequestInterceptor<Api extends ApiType = ApiType> = (params: RequestInterceptorParams<Api>) => Promise<void> | void;
15
17
  export interface ResponseInterceptorParams<Api extends ApiType = ApiType> {
18
+ orm: Orm<Database>;
16
19
  request: Request;
17
20
  response: Response;
18
- setDelay: (delay: number) => Promise<void>;
19
- setStatusCode: (statusCode: number) => void;
20
- setHeader: (field: string, value?: string | string[]) => void;
21
- appendHeader: (field: string, value?: string[] | string) => void;
22
- getHeader: (field: string) => RequestInterceptorHeaderValue;
23
- getHeaders: () => Record<string, RequestInterceptorHeaderValue>;
24
- setCookie: (name: string, value: string, options?: CookieOptions) => void;
25
- getCookie: (name: string) => RequestInterceptorCookieValue;
26
- clearCookie: (name: string, options?: CookieOptions) => void;
21
+ appendHeader: (field: string, value?: string | string[]) => void;
27
22
  attachment: (filename: string) => void;
23
+ clearCookie: (name: string, options?: CookieOptions) => void;
24
+ getCookie: (name: string) => InterceptorCookieValue;
25
+ getRequestHeader: (field: string) => InterceptorHeaderValue;
26
+ getRequestHeaders: () => Record<string, InterceptorHeaderValue>;
27
+ getResponseHeader: (field: string) => InterceptorHeaderValue;
28
+ getResponseHeaders: () => Record<string, InterceptorHeaderValue>;
28
29
  log: (logger?: Logger<'response', Api>) => Partial<LoggerTokens>;
30
+ setCookie: (name: string, value: string, options?: CookieOptions) => void;
31
+ setDelay: (delay: number) => Promise<void>;
32
+ setHeader: (field: string, value?: string | string[]) => void;
33
+ setStatusCode: (statusCode: number) => void;
29
34
  }
30
35
  export type ResponseInterceptor<Data = any, Api extends ApiType = ApiType> = (data: Data, params: ResponseInterceptorParams<Api>) => any;
31
36
  export interface Interceptors<Api extends ApiType = ApiType> {
@@ -3,37 +3,37 @@ import type { RestMethod } from './rest';
3
3
  import type { ApiType } from './shared';
4
4
  import type { Cookies, Headers, Params, PlainObject, Query } from './values';
5
5
  export interface LoggerBaseTokens {
6
- type: string;
6
+ body: any;
7
+ cookies: Cookies;
8
+ headers: Headers;
7
9
  id: number;
8
- timestamp: number;
9
10
  method: RestMethod;
10
- url: string;
11
- headers: Headers;
12
- cookies: Cookies;
13
- query: Query;
14
11
  params: Params;
15
- body: any;
12
+ query: Query;
13
+ timestamp: number;
14
+ type: string;
15
+ url: string;
16
16
  }
17
17
  interface LoggerRestRequestTokens extends LoggerBaseTokens {
18
18
  }
19
19
  interface LoggerRestResponseTokens extends LoggerRestRequestTokens {
20
- statusCode: number;
21
20
  data: any;
21
+ statusCode: number;
22
22
  }
23
23
  interface LoggerGraphQLRequestTokens extends LoggerBaseTokens {
24
- graphQLOperationType: GraphQLOperationType | null;
25
24
  graphQLOperationName: GraphQLOperationName | null;
25
+ graphQLOperationType: GraphQLOperationType | null;
26
26
  graphQLQuery: string | null;
27
27
  variables: PlainObject | null;
28
28
  }
29
29
  interface LoggerGraphQLResponseTokens extends LoggerGraphQLRequestTokens {
30
- statusCode: number;
31
30
  data: any;
31
+ statusCode: number;
32
32
  }
33
33
  export type LoggerType = 'request' | 'response';
34
34
  export type LoggerTokens<Type extends LoggerType = LoggerType, Api extends ApiType = ApiType> = Type extends 'request' ? Api extends 'rest' ? LoggerRestRequestTokens : Api extends 'graphql' ? LoggerGraphQLRequestTokens : never : Type extends 'response' ? Api extends 'rest' ? LoggerRestResponseTokens : Api extends 'graphql' ? LoggerGraphQLResponseTokens : never : never;
35
35
  type LoggerTokensToLoggerOptions<Type> = {
36
- [Key in keyof Type]?: Type[Key] extends PlainObject ? Record<string, boolean> | boolean : boolean;
36
+ [Key in keyof Type]?: Type[Key] extends PlainObject ? boolean | Record<string, boolean> : boolean;
37
37
  };
38
38
  export type LoggerOptions<Type extends LoggerType = LoggerType, Api extends ApiType = ApiType> = LoggerTokensToLoggerOptions<LoggerTokens<Type, Api>>;
39
39
  export interface Logger<Type extends LoggerType = LoggerType, Api extends ApiType = ApiType> {
@@ -1,49 +1,54 @@
1
1
  import type { Request } from 'express';
2
- import type { MappedEntity, PlainEntity } from './entities';
2
+ import type { BodyPlainEntity, MappedEntity } from './entities';
3
3
  import type { Interceptors } from './interceptors';
4
4
  import type { Data } from './values';
5
- export type RestMethod = 'get' | 'post' | 'delete' | 'put' | 'patch' | 'options';
6
- export type RestEntityName = 'headers' | 'cookies' | 'query' | 'params' | 'body';
7
- export type RestEntity<EntityName extends RestEntityName = RestEntityName> = EntityName extends 'body' ? PlainEntity : MappedEntity;
5
+ export type RestMethod = 'delete' | 'get' | 'options' | 'patch' | 'post' | 'put';
6
+ export type RestEntityName = 'body' | 'cookies' | 'headers' | 'params' | 'query';
7
+ export type RestEntity<EntityName extends RestEntityName = RestEntityName> = EntityName extends 'body' ? BodyPlainEntity : MappedEntity;
8
8
  export type RestEntityNamesByMethod = {
9
- [key in RestMethod]: key extends 'get' | 'delete' | 'options' ? Exclude<RestEntityName, 'body'> : RestEntityName;
9
+ [key in RestMethod]: key extends 'delete' | 'get' | 'options' ? Exclude<RestEntityName, 'body'> : RestEntityName;
10
10
  };
11
11
  export type RestEntitiesByEntityName<Method extends RestMethod = RestMethod> = {
12
12
  [EntityName in RestEntityNamesByMethod[Method]]?: RestEntity<EntityName>;
13
13
  };
14
14
  interface RestSettings {
15
+ readonly delay?: number;
15
16
  readonly polling?: boolean;
16
17
  readonly status?: number;
17
- readonly delay?: number;
18
18
  }
19
+ export type RestDataResponse<Method extends RestMethod = RestMethod> = ((request: Request, entities: RestEntitiesByEntityName<Method>) => Data | Promise<Data>) | Data;
20
+ export type RestFileResponse = string;
19
21
  export type RestRouteConfig<Method extends RestMethod> = ({
20
22
  settings: RestSettings & {
21
23
  polling: true;
22
24
  };
23
25
  queue: Array<{
24
26
  time?: number;
25
- data: ((request: Request, entities: RestEntitiesByEntityName<Method>) => Data | Promise<Data>) | Data;
27
+ data: RestDataResponse<Method>;
28
+ } | {
29
+ time?: number;
30
+ file: RestFileResponse;
26
31
  }>;
27
32
  } | {
28
33
  settings?: RestSettings & {
29
34
  polling?: false;
30
35
  };
31
- data: ((request: Request, entities: RestEntitiesByEntityName<Method>) => Data | Promise<Data>) | Data;
36
+ data: RestDataResponse<Method>;
32
37
  } | {
33
38
  settings?: RestSettings & {
34
39
  polling?: false;
35
40
  };
36
- file: string;
41
+ file: RestFileResponse;
37
42
  }) & {
38
43
  entities?: RestEntitiesByEntityName<Method>;
39
44
  interceptors?: Interceptors<'rest'>;
40
45
  };
41
46
  export type RestPathString = `/${string}`;
42
47
  interface BaseRestRequestConfig<Method extends RestMethod> {
43
- path: RestPathString | RegExp;
48
+ interceptors?: Interceptors<'rest'>;
44
49
  method: Method;
50
+ path: RegExp | RestPathString;
45
51
  routes: RestRouteConfig<Method>[];
46
- interceptors?: Interceptors<'rest'>;
47
52
  }
48
53
  type RestGetRequestConfig = BaseRestRequestConfig<'get'>;
49
54
  type RestPostRequestConfig = BaseRestRequestConfig<'post'>;
@@ -51,5 +56,5 @@ type RestPutRequestConfig = BaseRestRequestConfig<'put'>;
51
56
  type RestDeleteRequestConfig = BaseRestRequestConfig<'delete'>;
52
57
  type RestPatchRequestConfig = BaseRestRequestConfig<'patch'>;
53
58
  type RestOptionsRequestConfig = BaseRestRequestConfig<'options'>;
54
- export type RestRequestConfig = RestGetRequestConfig | RestPostRequestConfig | RestPutRequestConfig | RestDeleteRequestConfig | RestPatchRequestConfig | RestOptionsRequestConfig;
59
+ export type RestRequestConfig = RestDeleteRequestConfig | RestGetRequestConfig | RestOptionsRequestConfig | RestPatchRequestConfig | RestPostRequestConfig | RestPutRequestConfig;
55
60
  export {};
@@ -1,23 +1,24 @@
1
1
  import type { Request } from 'express';
2
2
  import type { Arguments } from 'yargs';
3
+ import type { Database, Orm } from './database';
3
4
  import type { GraphQLRequestConfig } from './graphql';
4
5
  import type { Interceptors } from './interceptors';
5
6
  import type { RestMethod, RestRequestConfig } from './rest';
6
- type StaticPathObject = {
7
- prefix: `/${string}`;
7
+ interface StaticPathObject {
8
8
  path: `/${string}`;
9
- };
10
- export type StaticPath = `/${string}` | StaticPathObject | (StaticPathObject | `/${string}`)[];
9
+ prefix: `/${string}`;
10
+ }
11
+ export type StaticPath = `/${string}` | (`/${string}` | StaticPathObject)[] | StaticPathObject;
11
12
  type CorsHeader = string;
12
- export type CorsOrigin = string | RegExp | (RegExp | string)[];
13
- export type Cors = {
14
- origin: CorsOrigin | ((request: Request) => Promise<CorsOrigin> | CorsOrigin);
15
- methods?: Uppercase<RestMethod>[];
13
+ export type CorsOrigin = string | (string | RegExp)[] | RegExp;
14
+ export interface Cors {
16
15
  allowedHeaders?: CorsHeader[];
17
- exposedHeaders?: CorsHeader[];
18
16
  credentials?: boolean;
17
+ exposedHeaders?: CorsHeader[];
19
18
  maxAge?: number;
20
- };
19
+ methods?: Uppercase<RestMethod>[];
20
+ origin: ((request: Request) => CorsOrigin | Promise<CorsOrigin>) | CorsOrigin;
21
+ }
21
22
  type Port = number;
22
23
  export type BaseUrl = `/${string}`;
23
24
  export interface RestConfig {
@@ -30,21 +31,21 @@ export interface GraphqlConfig {
30
31
  configs: GraphQLRequestConfig[];
31
32
  interceptors?: Interceptors<'graphql'>;
32
33
  }
33
- export type DatabaseConfig = {
34
- data: Record<string, unknown> | `${string}.json`;
35
- routes?: Record<`/${string}`, `/${string}`> | `${string}.json`;
36
- };
34
+ export interface DatabaseConfig {
35
+ data: `${string}.json` | Record<string, unknown>;
36
+ routes?: `${string}.json` | Record<`/${string}`, `/${string}`>;
37
+ }
37
38
  export interface BaseMockServerConfig {
38
39
  baseUrl?: BaseUrl;
40
+ cors?: Cors;
41
+ interceptors?: Interceptors;
39
42
  port?: Port;
40
43
  staticPath?: StaticPath;
41
- interceptors?: Interceptors;
42
- cors?: Cors;
43
44
  }
44
45
  export interface MockServerConfig extends BaseMockServerConfig {
45
- rest?: RestConfig;
46
- graphql?: GraphqlConfig;
47
46
  database?: DatabaseConfig;
47
+ graphql?: GraphqlConfig;
48
+ rest?: RestConfig;
48
49
  }
49
50
  export interface RestMockServerConfig extends BaseMockServerConfig {
50
51
  configs?: RestRequestConfig[];
@@ -55,8 +56,8 @@ export interface GraphQLMockServerConfig extends BaseMockServerConfig {
55
56
  database?: DatabaseConfig;
56
57
  }
57
58
  export interface DatabaseMockServerConfig extends BaseMockServerConfig {
58
- data: Record<string, unknown> | `${string}.json`;
59
- routes?: Record<`/${string}`, `/${string}`> | `${string}.json`;
59
+ data: `${string}.json` | Record<string, unknown>;
60
+ routes?: `${string}.json` | Record<`/${string}`, `/${string}`>;
60
61
  }
61
62
  export type MockServerConfigArgv = Arguments<{
62
63
  baseUrl?: string;
@@ -65,4 +66,31 @@ export type MockServerConfigArgv = Arguments<{
65
66
  config?: string;
66
67
  watch?: boolean;
67
68
  }>;
69
+ declare global {
70
+ namespace Express {
71
+ interface Request {
72
+ context: {
73
+ orm: Orm<Database>;
74
+ };
75
+ }
76
+ }
77
+ }
78
+ export interface FlatMockServerComponent {
79
+ baseUrl?: BaseUrl;
80
+ configs: Array<GraphQLRequestConfig | RestRequestConfig>;
81
+ interceptors?: Interceptors;
82
+ name?: string;
83
+ }
84
+ export interface FlatMockServerSettings {
85
+ baseUrl?: BaseUrl;
86
+ cors?: Cors;
87
+ database?: DatabaseConfig;
88
+ interceptors?: Interceptors;
89
+ port?: Port;
90
+ staticPath?: StaticPath;
91
+ }
92
+ export type FlatMockServerConfig = [
93
+ option: FlatMockServerComponent | FlatMockServerSettings,
94
+ ...flatMockServerComponents: FlatMockServerComponent[]
95
+ ];
68
96
  export {};
@@ -1 +1 @@
1
- export type ApiType = 'rest' | 'graphql';
1
+ export type ApiType = 'graphql' | 'rest';
@@ -1,8 +1,8 @@
1
1
  import type { PlainObject } from './values';
2
- export type ValueOf<T extends PlainObject | Array<any>> = T extends Array<any> ? T[number] : T[keyof T];
3
- export type Entries<T extends PlainObject | Array<any>> = ValueOf<{
2
+ export type ValueOf<T extends Array<any> | PlainObject> = T extends Array<any> ? T[number] : T[keyof T];
3
+ export type Entries<T extends Array<any> | PlainObject> = ValueOf<{
4
4
  [K in keyof T]-?: [K, T[K]];
5
5
  }>[];
6
- export type NestedObjectOrArray<T> = {
6
+ export type NestedObjectOrArray<T> = Array<NestedObjectOrArray<T> | T> | {
7
7
  [key: string]: NestedObjectOrArray<T> | T;
8
- } | Array<NestedObjectOrArray<T> | T>;
8
+ };
@@ -1,8 +1,7 @@
1
- /// <reference types="node" />
2
- import type { ParamsDictionary, Query as ExpressQuery } from 'express-serve-static-core';
3
- import type { IncomingHttpHeaders } from 'http';
1
+ import type { Query as ExpressQuery, ParamsDictionary } from 'express-serve-static-core';
2
+ import type { IncomingHttpHeaders } from 'node:http';
4
3
  export type PlainObject = Record<string, any>;
5
- export type Primitive = boolean | number | bigint | string | null | undefined | symbol;
4
+ export type Primitive = bigint | boolean | number | string | symbol | null | undefined;
6
5
  export type Headers = IncomingHttpHeaders;
7
6
  export type Query = ExpressQuery;
8
7
  export type Params = ParamsDictionary;
@@ -8,14 +8,14 @@ export declare const corsSchema: z.ZodObject<{
8
8
  maxAge: z.ZodOptional<z.ZodNumber>;
9
9
  }, "strict", z.ZodTypeAny, {
10
10
  origin: string | RegExp | (string | RegExp)[] | ((...args: unknown[]) => unknown);
11
- methods?: ("GET" | "POST" | "DELETE" | "PUT" | "PATCH" | "OPTIONS")[] | undefined;
11
+ methods?: ("DELETE" | "GET" | "OPTIONS" | "PATCH" | "POST" | "PUT")[] | undefined;
12
12
  allowedHeaders?: string[] | undefined;
13
13
  exposedHeaders?: string[] | undefined;
14
14
  credentials?: boolean | undefined;
15
15
  maxAge?: number | undefined;
16
16
  }, {
17
17
  origin: string | RegExp | (string | RegExp)[] | ((...args: unknown[]) => unknown);
18
- methods?: ("GET" | "POST" | "DELETE" | "PUT" | "PATCH" | "OPTIONS")[] | undefined;
18
+ methods?: ("DELETE" | "GET" | "OPTIONS" | "PATCH" | "POST" | "PUT")[] | undefined;
19
19
  allowedHeaders?: string[] | undefined;
20
20
  exposedHeaders?: string[] | undefined;
21
21
  credentials?: boolean | undefined;
@@ -1,2 +1,2 @@
1
1
  import { z } from 'zod';
2
- export declare const getMostSpecificPathFromError: (error: z.ZodError) => (string | number)[];
2
+ export declare const getMostSpecificPathFromError: (error: z.ZodError) => (number | string)[];
@@ -0,0 +1 @@
1
+ export declare const getValidationMessageFromPath: (path: (number | string)[]) => string | number;