@kollors/deep-json-server 1.0.0-beta.3 → 1.0.0-beta.5

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 (68) hide show
  1. package/README.md +9 -7
  2. package/README.ru.md +9 -7
  3. package/dist/src/core/constants.d.ts +1 -1
  4. package/dist/src/core/constants.js +1 -1
  5. package/dist/src/core/database.d.ts +11 -7
  6. package/dist/src/core/database.js +27 -8
  7. package/dist/src/core/database.js.map +1 -1
  8. package/dist/src/core/engine.d.ts +8 -8
  9. package/dist/src/core/engine.js +12 -9
  10. package/dist/src/core/engine.js.map +1 -1
  11. package/dist/src/core/lifecycle/mutation.d.ts +2 -2
  12. package/dist/src/core/lifecycle/mutation.js.map +1 -1
  13. package/dist/src/core/lifecycle/options.d.ts +2 -2
  14. package/dist/src/core/lifecycle/options.js.map +1 -1
  15. package/dist/src/core/model/load.js +11 -2
  16. package/dist/src/core/model/load.js.map +1 -1
  17. package/dist/src/core/model/policy.js +2 -0
  18. package/dist/src/core/model/policy.js.map +1 -1
  19. package/dist/src/core/model/types.d.ts +1 -3
  20. package/dist/src/core/model/validation.d.ts +2 -2
  21. package/dist/src/core/model/validation.js +8 -7
  22. package/dist/src/core/model/validation.js.map +1 -1
  23. package/dist/src/core/mutations/write.d.ts +1 -1
  24. package/dist/src/core/mutations/write.js +6 -6
  25. package/dist/src/core/mutations/write.js.map +1 -1
  26. package/dist/src/core/query/contract.d.ts +1 -1
  27. package/dist/src/core/query/execute.d.ts +1 -1
  28. package/dist/src/core/query/execute.js +1 -1
  29. package/dist/src/core/query/execute.js.map +1 -1
  30. package/dist/src/core/query/filter.d.ts +1 -1
  31. package/dist/src/core/query/filter.js +5 -6
  32. package/dist/src/core/query/filter.js.map +1 -1
  33. package/dist/src/core/query/options.d.ts +1 -1
  34. package/dist/src/core/query/options.js +1 -1
  35. package/dist/src/core/query/options.js.map +1 -1
  36. package/dist/src/core/records.d.ts +13 -13
  37. package/dist/src/core/records.js +1 -1
  38. package/dist/src/core/records.js.map +1 -1
  39. package/dist/src/core/schema.d.ts +33 -0
  40. package/dist/src/core/schema.js +2 -0
  41. package/dist/src/core/schema.js.map +1 -0
  42. package/dist/src/core/snapshot.d.ts +3 -2
  43. package/dist/src/core/snapshot.js +3 -4
  44. package/dist/src/core/snapshot.js.map +1 -1
  45. package/dist/src/files/http.d.ts +46 -2
  46. package/dist/src/files/http.js.map +1 -1
  47. package/dist/src/graphql/entry.d.ts +2 -2
  48. package/dist/src/graphql/entry.js +2 -2
  49. package/dist/src/graphql/generate.js +1 -2
  50. package/dist/src/graphql/generate.js.map +1 -1
  51. package/dist/src/graphql/schema.d.ts +1 -1
  52. package/dist/src/graphql/schema.js +0 -2
  53. package/dist/src/graphql/schema.js.map +1 -1
  54. package/dist/src/openapi/auth.d.ts +2 -8
  55. package/dist/src/openapi/auth.js.map +1 -1
  56. package/dist/src/openapi/document.d.ts +2 -1
  57. package/dist/src/openapi/document.js +33 -15
  58. package/dist/src/openapi/document.js.map +1 -1
  59. package/dist/src/openapi/entry.d.ts +2 -2
  60. package/dist/src/openapi/entry.js +2 -2
  61. package/dist/src/openapi/files.d.ts +2 -3
  62. package/dist/src/openapi/files.js.map +1 -1
  63. package/dist/src/openapi/helpers.d.ts +3 -16
  64. package/dist/src/openapi/helpers.js.map +1 -1
  65. package/dist/src/openapi/types.d.ts +50 -29
  66. package/dist/src/server/http.js +3 -2
  67. package/dist/src/server/http.js.map +1 -1
  68. package/package.json +1 -1
@@ -1,41 +1,62 @@
1
+ import type { SchemaKeywords, SchemaType } from '../core/schema.js';
1
2
  import type { JsonValue } from '../core/types.js';
2
- export type OpenapiType = 'array' | 'boolean' | 'integer' | 'number' | 'object' | 'string';
3
- export interface OpenapiSchema {
4
- [key: string]: unknown;
5
- additionalProperties?: boolean | OpenapiSchema;
6
- allOf?: OpenapiSchema[];
7
- anyOf?: OpenapiSchema[];
8
- default?: JsonValue;
9
- description?: string;
10
- enum?: JsonValue[];
11
- format?: string;
12
- items?: OpenapiSchema;
13
- maximum?: number;
14
- maxItems?: number;
15
- maxLength?: number;
16
- minimum?: number;
17
- minItems?: number;
18
- minLength?: number;
19
- not?: OpenapiSchema;
3
+ import type { OpenapiInfo } from './options.js';
4
+ export type OpenapiType = Exclude<SchemaType, 'null'>;
5
+ export interface OpenapiSchema extends SchemaKeywords<OpenapiSchema> {
6
+ [key: `x-${string}`]: JsonValue;
20
7
  nullable?: boolean;
21
- oneOf?: OpenapiSchema[];
22
- pattern?: string;
23
- properties?: Record<string, OpenapiSchema>;
24
- required?: string[];
25
- title?: string;
26
8
  type?: OpenapiType;
27
- uniqueItems?: boolean;
9
+ }
10
+ export interface OpenapiReference {
11
+ $ref: string;
12
+ }
13
+ export interface OpenapiContent {
14
+ content: Record<string, {
15
+ schema: OpenapiSchema;
16
+ }>;
17
+ }
18
+ export interface OpenapiParameter {
19
+ in: 'path' | 'query' | 'header' | 'cookie';
20
+ name: string;
21
+ required?: boolean;
22
+ description?: string;
23
+ schema?: OpenapiSchema;
24
+ content?: OpenapiContent['content'];
25
+ }
26
+ export interface OpenapiResponse {
27
+ description: string;
28
+ content?: OpenapiContent['content'];
29
+ }
30
+ export interface OpenapiRequestBody extends OpenapiContent {
31
+ required?: boolean;
32
+ description?: string;
33
+ }
34
+ export interface OpenapiOperation {
35
+ operationId: string;
36
+ tags?: string[];
37
+ description?: string;
38
+ parameters?: Array<OpenapiParameter | OpenapiReference>;
39
+ security?: Array<Record<string, string[]>>;
40
+ requestBody?: OpenapiRequestBody;
41
+ responses: Record<string, OpenapiResponse | OpenapiReference>;
42
+ }
43
+ export type OpenapiMethod = 'get' | 'put' | 'post' | 'delete' | 'options' | 'head' | 'patch' | 'trace';
44
+ export type OpenapiPath = Partial<Record<OpenapiMethod, OpenapiOperation>>;
45
+ export interface OpenapiSecurityScheme {
46
+ type: 'http';
47
+ scheme: 'bearer';
48
+ description?: string;
28
49
  }
29
50
  export interface OpenapiDocument {
30
- [key: string]: unknown;
51
+ [key: `x-${string}`]: JsonValue;
31
52
  components: {
32
- parameters: Record<string, unknown>;
53
+ parameters: Record<string, OpenapiParameter | OpenapiReference>;
33
54
  schemas: Record<string, OpenapiSchema>;
34
- securitySchemes?: Record<string, unknown>;
55
+ securitySchemes?: Record<string, OpenapiSecurityScheme>;
35
56
  };
36
- info: Record<string, unknown>;
57
+ info: OpenapiInfo;
37
58
  openapi: string;
38
- paths: Record<string, Record<string, unknown>>;
59
+ paths: Record<string, OpenapiPath>;
39
60
  servers?: Array<{
40
61
  url: string;
41
62
  }>;
@@ -13,11 +13,12 @@ export function createHttpServer({ create, host, port, logger, cors, corsHeaders
13
13
  originalListen(defaults, optionsOrCallback);
14
14
  return;
15
15
  }
16
+ const options = optionsOrCallback?.path === undefined ? { ...defaults, ...optionsOrCallback } : optionsOrCallback;
16
17
  if (callback) {
17
- originalListen({ ...defaults, ...optionsOrCallback }, callback);
18
+ originalListen(options, callback);
18
19
  return;
19
20
  }
20
- return originalListen({ ...defaults, ...optionsOrCallback });
21
+ return originalListen(options);
21
22
  };
22
23
  server.listen = listen;
23
24
  server.setErrorHandler((error, request, reply) => {
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/server/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/server/http.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kollors/deep-json-server",
3
- "version": "1.0.0-beta.3",
3
+ "version": "1.0.0-beta.5",
4
4
  "description": "JSON mock server with schema-driven REST, GraphQL, OpenAPI generation and file uploads",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",