zod-openapi 0.0.0-semantically-released → 0.2.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 (152) hide show
  1. package/README.md +341 -75
  2. package/lib-commonjs/create/components.js +108 -0
  3. package/lib-commonjs/create/components.js.map +1 -0
  4. package/lib-commonjs/create/content.js +32 -0
  5. package/lib-commonjs/create/content.js.map +1 -0
  6. package/lib-commonjs/create/document.js +28 -0
  7. package/lib-commonjs/create/document.js.map +1 -0
  8. package/lib-commonjs/create/parameters.js +84 -0
  9. package/lib-commonjs/create/parameters.js.map +1 -0
  10. package/lib-commonjs/create/paths.js +68 -0
  11. package/lib-commonjs/create/paths.js.map +1 -0
  12. package/lib-commonjs/create/responses.js +93 -0
  13. package/lib-commonjs/create/responses.js.map +1 -0
  14. package/lib-commonjs/create/schema/array.js +17 -0
  15. package/lib-commonjs/create/schema/array.js.map +1 -0
  16. package/lib-commonjs/create/schema/boolean.js +8 -0
  17. package/lib-commonjs/create/schema/boolean.js.map +1 -0
  18. package/lib-commonjs/create/schema/date.js +8 -0
  19. package/lib-commonjs/create/schema/date.js.map +1 -0
  20. package/lib-commonjs/create/schema/default.js +14 -0
  21. package/lib-commonjs/create/schema/default.js.map +1 -0
  22. package/lib-commonjs/create/schema/discriminatedUnion.js +43 -0
  23. package/lib-commonjs/create/schema/discriminatedUnion.js.map +1 -0
  24. package/lib-commonjs/create/schema/effects.js +7 -0
  25. package/lib-commonjs/create/schema/effects.js.map +1 -0
  26. package/lib-commonjs/create/schema/enum.js +10 -0
  27. package/lib-commonjs/create/schema/enum.js.map +1 -0
  28. package/lib-commonjs/create/schema/index.js +127 -0
  29. package/lib-commonjs/create/schema/index.js.map +1 -0
  30. package/lib-commonjs/create/schema/intersection.js +12 -0
  31. package/lib-commonjs/create/schema/intersection.js.map +1 -0
  32. package/lib-commonjs/create/schema/literal.js +9 -0
  33. package/lib-commonjs/create/schema/literal.js.map +1 -0
  34. package/lib-commonjs/create/schema/metadata.js +38 -0
  35. package/lib-commonjs/create/schema/metadata.js.map +1 -0
  36. package/lib-commonjs/create/schema/nativeEnum.js +35 -0
  37. package/lib-commonjs/create/schema/nativeEnum.js.map +1 -0
  38. package/lib-commonjs/create/schema/null.js +8 -0
  39. package/lib-commonjs/create/schema/null.js.map +1 -0
  40. package/lib-commonjs/create/schema/nullable.js +52 -0
  41. package/lib-commonjs/create/schema/nullable.js.map +1 -0
  42. package/lib-commonjs/create/schema/number.js +28 -0
  43. package/lib-commonjs/create/schema/number.js.map +1 -0
  44. package/lib-commonjs/create/schema/object.js +51 -0
  45. package/lib-commonjs/create/schema/object.js.map +1 -0
  46. package/lib-commonjs/create/schema/optional.js +9 -0
  47. package/lib-commonjs/create/schema/optional.js.map +1 -0
  48. package/lib-commonjs/create/schema/record.js +10 -0
  49. package/lib-commonjs/create/schema/record.js.map +1 -0
  50. package/lib-commonjs/create/schema/string.js +46 -0
  51. package/lib-commonjs/create/schema/string.js.map +1 -0
  52. package/lib-commonjs/create/schema/tuple.js +29 -0
  53. package/lib-commonjs/create/schema/tuple.js.map +1 -0
  54. package/lib-commonjs/create/schema/union.js +13 -0
  55. package/lib-commonjs/create/schema/union.js.map +1 -0
  56. package/lib-commonjs/create/specificationExtension.js +6 -0
  57. package/lib-commonjs/create/specificationExtension.js.map +1 -0
  58. package/lib-commonjs/extendZod.js +49 -0
  59. package/lib-commonjs/extendZod.js.map +1 -0
  60. package/lib-commonjs/index.js +16 -9
  61. package/lib-commonjs/index.js.map +1 -1
  62. package/lib-es2015/create/components.js +102 -0
  63. package/lib-es2015/create/components.js.map +1 -0
  64. package/lib-es2015/create/content.js +28 -0
  65. package/lib-es2015/create/content.js.map +1 -0
  66. package/lib-es2015/create/document.js +22 -0
  67. package/lib-es2015/create/document.js.map +1 -0
  68. package/lib-es2015/create/parameters.js +78 -0
  69. package/lib-es2015/create/parameters.js.map +1 -0
  70. package/lib-es2015/create/paths.js +64 -0
  71. package/lib-es2015/create/paths.js.map +1 -0
  72. package/lib-es2015/create/responses.js +86 -0
  73. package/lib-es2015/create/responses.js.map +1 -0
  74. package/lib-es2015/create/schema/array.js +13 -0
  75. package/lib-es2015/create/schema/array.js.map +1 -0
  76. package/lib-es2015/create/schema/boolean.js +4 -0
  77. package/lib-es2015/create/schema/boolean.js.map +1 -0
  78. package/lib-es2015/create/schema/date.js +4 -0
  79. package/lib-es2015/create/schema/date.js.map +1 -0
  80. package/lib-es2015/create/schema/default.js +10 -0
  81. package/lib-es2015/create/schema/default.js.map +1 -0
  82. package/lib-es2015/create/schema/discriminatedUnion.js +38 -0
  83. package/lib-es2015/create/schema/discriminatedUnion.js.map +1 -0
  84. package/lib-es2015/create/schema/effects.js +3 -0
  85. package/lib-es2015/create/schema/effects.js.map +1 -0
  86. package/lib-es2015/create/schema/enum.js +6 -0
  87. package/lib-es2015/create/schema/enum.js.map +1 -0
  88. package/lib-es2015/create/schema/index.js +121 -0
  89. package/lib-es2015/create/schema/index.js.map +1 -0
  90. package/lib-es2015/create/schema/intersection.js +8 -0
  91. package/lib-es2015/create/schema/intersection.js.map +1 -0
  92. package/lib-es2015/create/schema/literal.js +5 -0
  93. package/lib-es2015/create/schema/literal.js.map +1 -0
  94. package/lib-es2015/create/schema/metadata.js +33 -0
  95. package/lib-es2015/create/schema/metadata.js.map +1 -0
  96. package/lib-es2015/create/schema/nativeEnum.js +29 -0
  97. package/lib-es2015/create/schema/nativeEnum.js.map +1 -0
  98. package/lib-es2015/create/schema/null.js +4 -0
  99. package/lib-es2015/create/schema/null.js.map +1 -0
  100. package/lib-es2015/create/schema/nullable.js +47 -0
  101. package/lib-es2015/create/schema/nullable.js.map +1 -0
  102. package/lib-es2015/create/schema/number.js +24 -0
  103. package/lib-es2015/create/schema/number.js.map +1 -0
  104. package/lib-es2015/create/schema/object.js +43 -0
  105. package/lib-es2015/create/schema/object.js.map +1 -0
  106. package/lib-es2015/create/schema/optional.js +5 -0
  107. package/lib-es2015/create/schema/optional.js.map +1 -0
  108. package/lib-es2015/create/schema/record.js +6 -0
  109. package/lib-es2015/create/schema/record.js.map +1 -0
  110. package/lib-es2015/create/schema/string.js +42 -0
  111. package/lib-es2015/create/schema/string.js.map +1 -0
  112. package/lib-es2015/create/schema/tuple.js +25 -0
  113. package/lib-es2015/create/schema/tuple.js.map +1 -0
  114. package/lib-es2015/create/schema/union.js +9 -0
  115. package/lib-es2015/create/schema/union.js.map +1 -0
  116. package/lib-es2015/create/specificationExtension.js +2 -0
  117. package/lib-es2015/create/specificationExtension.js.map +1 -0
  118. package/lib-es2015/extendZod.js +45 -0
  119. package/lib-es2015/extendZod.js.map +1 -0
  120. package/lib-es2015/index.js +2 -7
  121. package/lib-es2015/index.js.map +1 -1
  122. package/lib-types/create/components.d.ts +33 -0
  123. package/lib-types/create/content.d.ts +4 -0
  124. package/lib-types/create/document.d.ts +62 -0
  125. package/lib-types/create/parameters.d.ts +7 -0
  126. package/lib-types/create/paths.d.ts +4 -0
  127. package/lib-types/create/responses.d.ts +8 -0
  128. package/lib-types/create/schema/array.d.ts +4 -0
  129. package/lib-types/create/schema/boolean.d.ts +3 -0
  130. package/lib-types/create/schema/date.d.ts +3 -0
  131. package/lib-types/create/schema/default.d.ts +4 -0
  132. package/lib-types/create/schema/discriminatedUnion.d.ts +10 -0
  133. package/lib-types/create/schema/effects.d.ts +4 -0
  134. package/lib-types/create/schema/enum.d.ts +3 -0
  135. package/lib-types/create/schema/index.d.ts +6 -0
  136. package/lib-types/create/schema/intersection.d.ts +4 -0
  137. package/lib-types/create/schema/literal.d.ts +3 -0
  138. package/lib-types/create/schema/metadata.d.ts +5 -0
  139. package/lib-types/create/schema/nativeEnum.d.ts +10 -0
  140. package/lib-types/create/schema/null.d.ts +3 -0
  141. package/lib-types/create/schema/nullable.d.ts +5 -0
  142. package/lib-types/create/schema/number.d.ts +3 -0
  143. package/lib-types/create/schema/object.d.ts +8 -0
  144. package/lib-types/create/schema/optional.d.ts +4 -0
  145. package/lib-types/create/schema/record.d.ts +4 -0
  146. package/lib-types/create/schema/string.d.ts +3 -0
  147. package/lib-types/create/schema/tuple.d.ts +4 -0
  148. package/lib-types/create/schema/union.d.ts +4 -0
  149. package/lib-types/create/specificationExtension.d.ts +1 -0
  150. package/lib-types/extendZod.d.ts +36 -0
  151. package/lib-types/index.d.ts +2 -5
  152. package/package.json +14 -7
@@ -0,0 +1,78 @@
1
+ import { createSchemaOrRef } from './schema';
2
+ export const createComponentParamRef = (ref) => `#/components/parameters/${ref}`;
3
+ export const createBaseParameter = (schema, components) => {
4
+ const { ref, ...rest } = schema._def.openapi?.param ?? {};
5
+ const schemaOrRef = createSchemaOrRef(schema, components);
6
+ const required = !schema.isOptional();
7
+ return {
8
+ ...rest,
9
+ ...(schema && { schema: schemaOrRef }),
10
+ ...(required && { required }),
11
+ };
12
+ };
13
+ const createRegisteredParam = (zodSchema, ref, type, name, components) => {
14
+ const component = components.parameters[ref];
15
+ if (component) {
16
+ if (!('$ref' in component.paramObject) &&
17
+ (component.zodSchema !== zodSchema ||
18
+ component.paramObject.in !== type ||
19
+ component.paramObject.name !== name)) {
20
+ throw new Error(`parameterRef "${ref}" is already registered`);
21
+ }
22
+ return {
23
+ $ref: createComponentParamRef(ref),
24
+ };
25
+ }
26
+ // Optional Objects can return a reference object
27
+ const baseParamOrRef = createBaseParameter(zodSchema, components);
28
+ if ('$ref' in baseParamOrRef) {
29
+ throw new Error('Unexpected Error: received a reference object');
30
+ }
31
+ components.parameters[ref] = {
32
+ paramObject: {
33
+ in: type,
34
+ name,
35
+ ...baseParamOrRef,
36
+ },
37
+ zodSchema,
38
+ };
39
+ return {
40
+ $ref: createComponentParamRef(ref),
41
+ };
42
+ };
43
+ const createParamOrRef = (schema, type, name, components) => {
44
+ const ref = schema?._def?.openapi?.param?.ref;
45
+ if (ref) {
46
+ return createRegisteredParam(schema, ref, type, name, components);
47
+ }
48
+ return {
49
+ in: type,
50
+ name,
51
+ ...createBaseParameter(schema, components),
52
+ };
53
+ };
54
+ const createParameters = (type, zodObject, components) => {
55
+ if (!zodObject) {
56
+ return [];
57
+ }
58
+ return Object.entries(zodObject.shape).map(([key, zodSchema]) => createParamOrRef(zodSchema, type, key, components));
59
+ };
60
+ const createRequestParams = (requestParams, components) => {
61
+ if (!requestParams) {
62
+ return [];
63
+ }
64
+ const pathParams = createParameters('path', requestParams.path, components);
65
+ const queryParams = createParameters('query', requestParams.query, components);
66
+ const cookieParams = createParameters('cookie', requestParams.cookie, components);
67
+ const headerParams = createParameters('header', requestParams.header, components);
68
+ return [...pathParams, ...queryParams, ...cookieParams, ...headerParams];
69
+ };
70
+ export const createParametersObject = (parameters, requestParams, components) => {
71
+ const createdParams = createRequestParams(requestParams, components);
72
+ const combinedParameters = [
73
+ ...(parameters ? parameters : []),
74
+ ...createdParams,
75
+ ];
76
+ return combinedParameters.length ? combinedParameters : undefined;
77
+ };
78
+ //# sourceMappingURL=parameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/create/parameters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { createContent } from './content';
2
+ import { createParametersObject } from './parameters';
3
+ import { createResponses } from './responses';
4
+ import { isISpecificationExtension } from './specificationExtension';
5
+ const createRequestBody = (requestBodyObject, components) => {
6
+ if (!requestBodyObject) {
7
+ return undefined;
8
+ }
9
+ return {
10
+ ...requestBodyObject,
11
+ content: createContent(requestBodyObject.content, components),
12
+ };
13
+ };
14
+ const createOperation = (operationObject, components) => {
15
+ if (!operationObject) {
16
+ return undefined;
17
+ }
18
+ const { parameters, requestParams, requestBody, responses, ...rest } = operationObject;
19
+ const maybeParameters = createParametersObject(parameters, requestParams, components);
20
+ const maybeRequestBody = createRequestBody(operationObject.requestBody, components);
21
+ const maybeResponses = createResponses(operationObject.responses, components);
22
+ return {
23
+ ...rest,
24
+ ...(maybeParameters && { parameters: maybeParameters }),
25
+ ...(maybeRequestBody && { requestBody: maybeRequestBody }),
26
+ ...(maybeResponses && { responses: maybeResponses }),
27
+ };
28
+ };
29
+ const createPathItem = (pathObject, components) => {
30
+ const { get, put, post, delete: del, options, head, patch, trace, ...rest } = pathObject;
31
+ const maybeGet = createOperation(get, components);
32
+ const maybePut = createOperation(put, components);
33
+ const maybePost = createOperation(post, components);
34
+ const maybeDelete = createOperation(del, components);
35
+ const maybeOptions = createOperation(options, components);
36
+ const maybeHead = createOperation(head, components);
37
+ const maybePatch = createOperation(patch, components);
38
+ const maybeTrace = createOperation(trace, components);
39
+ return {
40
+ ...rest,
41
+ ...(get && { get: maybeGet }),
42
+ ...(put && { put: maybePut }),
43
+ ...(post && { post: maybePost }),
44
+ ...(del && { delete: maybeDelete }),
45
+ ...(options && { options: maybeOptions }),
46
+ ...(head && { head: maybeHead }),
47
+ ...(patch && { patch: maybePatch }),
48
+ ...(trace && { trace: maybeTrace }),
49
+ };
50
+ };
51
+ export const createPaths = (pathsObject, components) => {
52
+ if (!pathsObject) {
53
+ return undefined;
54
+ }
55
+ return Object.entries(pathsObject).reduce((acc, [path, pathItemObject]) => {
56
+ if (isISpecificationExtension(path)) {
57
+ acc[path] = pathItemObject;
58
+ return acc;
59
+ }
60
+ acc[path] = createPathItem(pathItemObject, components);
61
+ return acc;
62
+ }, {});
63
+ };
64
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/create/paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { createContent } from './content';
2
+ import { createBaseParameter } from './parameters';
3
+ import { createSchemaOrRef } from './schema';
4
+ import { isISpecificationExtension } from './specificationExtension';
5
+ export const createResponseHeaders = (responseHeaders, components) => {
6
+ if (!responseHeaders) {
7
+ return undefined;
8
+ }
9
+ return Object.entries(responseHeaders.shape).reduce((acc, [key, zodSchema]) => {
10
+ acc[key] = createHeaderOrRef(zodSchema, components);
11
+ return acc;
12
+ }, {});
13
+ };
14
+ const createHeaderOrRef = (schema, components) => {
15
+ const ref = schema?._def?.openapi?.header?.ref;
16
+ if (ref) {
17
+ return createRegisteredHeader(schema, ref, components);
18
+ }
19
+ return createBaseHeader(schema, components);
20
+ };
21
+ export const createBaseHeader = (schema, components) => {
22
+ const { ref, ...rest } = schema._def.openapi?.header ?? {};
23
+ const schemaOrRef = createSchemaOrRef(schema, components);
24
+ const required = !schema.isOptional();
25
+ return {
26
+ ...rest,
27
+ ...(schema && { schema: schemaOrRef }),
28
+ ...(required && { required }),
29
+ };
30
+ };
31
+ const createRegisteredHeader = (zodSchema, ref, components) => {
32
+ const component = components.headers[ref];
33
+ if (component) {
34
+ if (!('$ref' in component.headerObject) &&
35
+ component.zodSchema !== zodSchema) {
36
+ throw new Error(`header "${ref}" is already registered`);
37
+ }
38
+ return {
39
+ $ref: createComponentHeaderRef(ref),
40
+ };
41
+ }
42
+ // Optional Objects can return a reference object
43
+ const baseParamOrRef = createBaseParameter(zodSchema, components);
44
+ if ('$ref' in baseParamOrRef) {
45
+ throw new Error('Unexpected Error: received a reference object');
46
+ }
47
+ components.headers[ref] = {
48
+ headerObject: baseParamOrRef,
49
+ zodSchema,
50
+ };
51
+ return {
52
+ $ref: createComponentHeaderRef(ref),
53
+ };
54
+ };
55
+ export const createComponentHeaderRef = (ref) => `#/components/headers/${ref}`;
56
+ const createHeaders = (headers, responseHeaders, components) => {
57
+ if (!responseHeaders && !headers) {
58
+ return undefined;
59
+ }
60
+ const createdHeaders = createResponseHeaders(responseHeaders, components);
61
+ return {
62
+ ...headers,
63
+ ...createdHeaders,
64
+ };
65
+ };
66
+ const createResponse = (responseObject, components) => {
67
+ if ('$ref' in responseObject) {
68
+ return responseObject;
69
+ }
70
+ const { content, headers, responseHeaders, ...rest } = responseObject;
71
+ const maybeHeaders = createHeaders(headers, responseHeaders, components);
72
+ return {
73
+ ...rest,
74
+ ...(maybeHeaders && { headers: maybeHeaders }),
75
+ ...(content && { content: createContent(content, components) }),
76
+ };
77
+ };
78
+ export const createResponses = (responsesObject, components) => Object.entries(responsesObject).reduce((acc, [path, responseObject]) => {
79
+ if (isISpecificationExtension(path)) {
80
+ acc[path] = responseObject;
81
+ return acc;
82
+ }
83
+ acc[path] = createResponse(responseObject, components);
84
+ return acc;
85
+ }, {});
86
+ //# sourceMappingURL=responses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/create/responses.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { createSchemaOrRef } from '.';
2
+ export const createArraySchema = (zodArray, components) => {
3
+ const zodType = zodArray._def.type;
4
+ const minItems = zodArray._def.exactLength?.value ?? zodArray._def.minLength?.value;
5
+ const maxItems = zodArray._def.exactLength?.value ?? zodArray._def.maxLength?.value;
6
+ return {
7
+ type: 'array',
8
+ items: createSchemaOrRef(zodType, components),
9
+ ...(minItems !== undefined && { minItems }),
10
+ ...(maxItems !== undefined && { maxItems }),
11
+ };
12
+ };
13
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/create/schema/array.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAA4B,EAC5B,UAA4B,EACR,EAAE;IACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAkB,CAAC;IACjD,MAAM,QAAQ,GACZ,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;IACrE,MAAM,QAAQ,GACZ,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;IACrE,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;QAC7C,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const createBooleanSchema = (_zodBoolean) => ({
2
+ type: 'boolean',
3
+ });
4
+ //# sourceMappingURL=boolean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../src/create/schema/boolean.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAuB,EACH,EAAE,CAAC,CAAC;IACxB,IAAI,EAAE,SAAS;CAChB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const createDateSchema = (_zodDate) => ({
2
+ type: 'string',
3
+ });
4
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../src/create/schema/date.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAiB,EAAsB,EAAE,CAAC,CAAC;IAC1E,IAAI,EAAE,QAAQ;CACf,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { enhanceWithMetadata } from './metadata';
2
+ import { createSchemaOrRef } from '.';
3
+ export const createDefaultSchema = (zodDefault, components) => {
4
+ const schemaOrRef = createSchemaOrRef(zodDefault._def.innerType, components);
5
+ return enhanceWithMetadata(schemaOrRef, {
6
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
7
+ default: zodDefault._def.defaultValue(),
8
+ });
9
+ };
10
+ //# sourceMappingURL=default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/create/schema/default.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAEtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAA2B,EAC3B,UAA4B,EACgB,EAAE;IAC9C,MAAM,WAAW,GAAG,iBAAiB,CACnC,UAAU,CAAC,IAAI,CAAC,SAAuB,EACvC,UAAU,CACX,CAAC;IAEF,OAAO,mBAAmB,CAAC,WAAW,EAAE;QACtC,mEAAmE;QACnE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE;KACxC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { ZodEnum, } from 'zod';
2
+ import { createComponentSchemaRef } from '../components';
3
+ import { createSchemaOrRef } from '.';
4
+ export const createDiscriminatedUnionSchema = (zodDiscriminatedUnion, components) => {
5
+ const options = zodDiscriminatedUnion.options;
6
+ const schemas = options.map((option) => createSchemaOrRef(option, components));
7
+ const discriminator = mapDiscriminator(options, zodDiscriminatedUnion.discriminator);
8
+ return {
9
+ oneOf: schemas,
10
+ ...(discriminator && { discriminator }),
11
+ };
12
+ };
13
+ export const mapDiscriminator = (zodObjects, discriminator) => {
14
+ if (zodObjects.some((obj) => !obj._def.openapi?.ref)) {
15
+ return undefined;
16
+ }
17
+ const mapping = zodObjects.reduce((acc, zodObject) => {
18
+ const schemaRef = zodObject._def.openapi?.ref;
19
+ const value = zodObject.shape[discriminator];
20
+ if (value instanceof ZodEnum) {
21
+ for (const enumValue of value._def.values) {
22
+ acc[enumValue] = createComponentSchemaRef(schemaRef);
23
+ }
24
+ return acc;
25
+ }
26
+ const literalValue = (value?._def).value;
27
+ if (typeof literalValue !== 'string') {
28
+ throw new Error(`Discriminator ${discriminator} could not be found in one of the values of a discriminated union`);
29
+ }
30
+ acc[literalValue] = createComponentSchemaRef(schemaRef);
31
+ return acc;
32
+ }, {});
33
+ return {
34
+ propertyName: discriminator,
35
+ mapping,
36
+ };
37
+ };
38
+ //# sourceMappingURL=discriminatedUnion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discriminatedUnion.js","sourceRoot":"","sources":["../../../src/create/schema/discriminatedUnion.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,OAAO,GAGR,MAAM,KAAK,CAAC;AAEb,OAAO,EAAoB,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAEtC,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,qBAAsD,EACtD,UAA4B,EACR,EAAE;IACtB,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAyB,CAAC;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACrC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CACtC,CAAC;IACF,MAAM,aAAa,GAAG,gBAAgB,CACpC,OAAO,EACP,qBAAqB,CAAC,aAAuB,CAC9C,CAAC;IACF,OAAO;QACL,KAAK,EAAE,OAAO;QACd,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,UAA0B,EAC1B,aAAqB,EACrB,EAAE;IACF,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;QACpD,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAE/B,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;QACnB,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAa,CAAC;QACxD,MAAM,KAAK,GAAI,SAAS,CAAC,KAAqB,CAAC,aAAa,CAAC,CAAC;QAE9D,IAAI,KAAK,YAAY,OAAO,EAAE;YAC5B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAkB,EAAE;gBACrD,GAAG,CAAC,SAAS,CAAC,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;aACtD;YACD,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,IAA+B,CAAA,CAAC,KAAK,CAAC;QAEnE,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YACpC,MAAM,IAAI,KAAK,CACb,iBAAiB,aAAa,mEAAmE,CAClG,CAAC;SACH;QAED,GAAG,CAAC,YAAY,CAAC,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,YAAY,EAAE,aAAa;QAC3B,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { createSchemaOrRef } from '.';
2
+ export const createEffectsSchema = (zodEffects, components) => createSchemaOrRef(zodEffects._def.schema, components);
3
+ //# sourceMappingURL=effects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effects.js","sourceRoot":"","sources":["../../../src/create/schema/effects.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAEtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAAqC,EACrC,UAA4B,EACgB,EAAE,CAC9C,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAiB,EAAE,UAAU,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export const createEnumSchema = (zodEnum) => ({
2
+ type: 'string',
3
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
4
+ enum: zodEnum._def.values,
5
+ });
6
+ //# sourceMappingURL=enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../src/create/schema/enum.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAqB,EACD,EAAE,CAAC,CAAC;IACxB,IAAI,EAAE,QAAQ;IACd,mEAAmE;IACnE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;CAC1B,CAAC,CAAC"}
@@ -0,0 +1,121 @@
1
+ import { ZodArray, ZodBoolean, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodIntersection, ZodLiteral, ZodNativeEnum, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodRecord, ZodString, ZodTuple, ZodUnion, } from 'zod';
2
+ import { createComponentSchemaRef } from '../components';
3
+ import { createArraySchema } from './array';
4
+ import { createBooleanSchema } from './boolean';
5
+ import { createDateSchema } from './date';
6
+ import { createDefaultSchema } from './default';
7
+ import { createDiscriminatedUnionSchema } from './discriminatedUnion';
8
+ import { createEffectsSchema } from './effects';
9
+ import { createEnumSchema } from './enum';
10
+ import { createIntersectionSchema } from './intersection';
11
+ import { createLiteralSchema } from './literal';
12
+ import { createSchemaWithMetadata } from './metadata';
13
+ import { createNativeEnumSchema } from './nativeEnum';
14
+ import { createNullSchema } from './null';
15
+ import { createNullableSchema } from './nullable';
16
+ import { createNumberSchema } from './number';
17
+ import { createObjectSchema } from './object';
18
+ import { createOptionalSchema } from './optional';
19
+ import { createRecordSchema } from './record';
20
+ import { createStringSchema } from './string';
21
+ import { createTupleSchema } from './tuple';
22
+ import { createUnionSchema } from './union';
23
+ export const createSchema = (zodSchema, components) => {
24
+ if (zodSchema instanceof ZodString) {
25
+ return createStringSchema(zodSchema);
26
+ }
27
+ if (zodSchema instanceof ZodNumber) {
28
+ return createNumberSchema(zodSchema);
29
+ }
30
+ if (zodSchema instanceof ZodBoolean) {
31
+ return createBooleanSchema(zodSchema);
32
+ }
33
+ if (zodSchema instanceof ZodEnum) {
34
+ return createEnumSchema(zodSchema);
35
+ }
36
+ if (zodSchema instanceof ZodLiteral) {
37
+ return createLiteralSchema(zodSchema);
38
+ }
39
+ if (zodSchema instanceof ZodNativeEnum) {
40
+ return createNativeEnumSchema(zodSchema);
41
+ }
42
+ if (zodSchema instanceof ZodArray) {
43
+ return createArraySchema(zodSchema, components);
44
+ }
45
+ if (zodSchema instanceof ZodObject) {
46
+ return createObjectSchema(zodSchema, components);
47
+ }
48
+ if (zodSchema instanceof ZodUnion) {
49
+ return createUnionSchema(zodSchema, components);
50
+ }
51
+ if (zodSchema instanceof ZodDiscriminatedUnion) {
52
+ return createDiscriminatedUnionSchema(zodSchema, components);
53
+ }
54
+ if (zodSchema instanceof ZodNull) {
55
+ return createNullSchema(zodSchema);
56
+ }
57
+ if (zodSchema instanceof ZodNullable) {
58
+ return createNullableSchema(zodSchema, components);
59
+ }
60
+ if (zodSchema instanceof ZodOptional) {
61
+ return createOptionalSchema(zodSchema, components);
62
+ }
63
+ if (zodSchema instanceof ZodDefault) {
64
+ return createDefaultSchema(zodSchema, components);
65
+ }
66
+ if (zodSchema instanceof ZodRecord) {
67
+ return createRecordSchema(zodSchema, components);
68
+ }
69
+ if (zodSchema instanceof ZodTuple) {
70
+ return createTupleSchema(zodSchema, components);
71
+ }
72
+ if (zodSchema instanceof ZodDate) {
73
+ return createDateSchema(zodSchema);
74
+ }
75
+ if (zodSchema instanceof ZodEffects &&
76
+ (zodSchema._def.effect.type === 'refinement' ||
77
+ zodSchema._def.effect.type === 'preprocess')) {
78
+ return createEffectsSchema(zodSchema, components);
79
+ }
80
+ if (zodSchema instanceof ZodNativeEnum) {
81
+ return createNativeEnumSchema(zodSchema);
82
+ }
83
+ if (zodSchema instanceof ZodIntersection) {
84
+ return createIntersectionSchema(zodSchema, components);
85
+ }
86
+ if (!zodSchema._def.openapi?.type) {
87
+ throw new Error(`Unknown schema ${zodSchema.toString()}. Please assign it a manual type`);
88
+ }
89
+ return {};
90
+ };
91
+ export const createRegisteredSchema = (zodSchema, schemaRef, components) => {
92
+ const component = components.schemas[schemaRef];
93
+ if (component) {
94
+ if (component.zodSchema !== zodSchema) {
95
+ throw new Error(`schemaRef "${schemaRef}" is already registered`);
96
+ }
97
+ return {
98
+ $ref: createComponentSchemaRef(schemaRef),
99
+ };
100
+ }
101
+ // Optional Objects can return a reference object
102
+ const schemaOrRef = createSchemaWithMetadata(zodSchema, components);
103
+ if ('$ref' in schemaOrRef) {
104
+ throw new Error('Unexpected Error: received a reference object');
105
+ }
106
+ components.schemas[schemaRef] = {
107
+ schemaObject: schemaOrRef,
108
+ zodSchema,
109
+ };
110
+ return {
111
+ $ref: createComponentSchemaRef(schemaRef),
112
+ };
113
+ };
114
+ export const createSchemaOrRef = (zodSchema, components) => {
115
+ const schemaRef = zodSchema._def.openapi?.ref;
116
+ if (schemaRef) {
117
+ return createRegisteredSchema(zodSchema, schemaRef, components);
118
+ }
119
+ return createSchemaWithMetadata(zodSchema, components);
120
+ };
121
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/create/schema/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { createSchemaOrRef } from '.';
2
+ export const createIntersectionSchema = (zodIntersection, components) => ({
3
+ allOf: [
4
+ createSchemaOrRef(zodIntersection._def.left, components),
5
+ createSchemaOrRef(zodIntersection._def.right, components),
6
+ ],
7
+ });
8
+ //# sourceMappingURL=intersection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intersection.js","sourceRoot":"","sources":["../../../src/create/schema/intersection.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAEtC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,eAA0C,EAC1C,UAA4B,EACgB,EAAE,CAAC,CAAC;IAChD,KAAK,EAAE;QACL,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAe,EAAE,UAAU,CAAC;QACnE,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAgB,EAAE,UAAU,CAAC;KACrE;CACF,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const createLiteralSchema = (zodLiteral) => ({
2
+ type: typeof zodLiteral.value,
3
+ enum: [zodLiteral._def.value],
4
+ });
5
+ //# sourceMappingURL=literal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../src/create/schema/literal.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAA2B,EACP,EAAE,CAAC,CAAC;IACxB,IAAI,EAAE,OAAO,UAAU,CAAC,KAAmC;IAC3D,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;CAC9B,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { createSchema } from '.';
2
+ export const createSchemaWithMetadata = (zodSchema, components) => {
3
+ const { ref, param, header, ...additionalMetadata } = zodSchema._def.openapi ?? {};
4
+ const schemaOrRef = createSchema(zodSchema, components);
5
+ const description = zodSchema.description;
6
+ return enhanceWithMetadata(schemaOrRef, {
7
+ ...(description && { description }),
8
+ ...additionalMetadata,
9
+ });
10
+ };
11
+ export const enhanceWithMetadata = (schemaOrRef, metadata) => {
12
+ if ('$ref' in schemaOrRef) {
13
+ if (Object.values(metadata).every((val) => val === undefined)) {
14
+ return schemaOrRef;
15
+ }
16
+ return {
17
+ allOf: [schemaOrRef, metadata],
18
+ };
19
+ }
20
+ if (schemaOrRef.allOf) {
21
+ const rest = schemaOrRef.allOf.slice(0, -1);
22
+ const end = schemaOrRef.allOf.at(-1);
23
+ return {
24
+ ...schemaOrRef,
25
+ allOf: [...rest, ...(end ? [enhanceWithMetadata(end, metadata)] : [])],
26
+ };
27
+ }
28
+ return {
29
+ ...schemaOrRef,
30
+ ...metadata,
31
+ };
32
+ };
33
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/create/schema/metadata.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AAEjC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAKtC,SAAsC,EACtC,UAA4B,EACgB,EAAE;IAC9C,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,GACjD,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IAE1C,OAAO,mBAAmB,CAAC,WAAW,EAAE;QACtC,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;QACnC,GAAG,kBAAkB;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAuD,EACvD,QAAoD,EACR,EAAE;IAC9C,IAAI,MAAM,IAAI,WAAW,EAAE;QACzB,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE;YAC7D,OAAO,WAAW,CAAC;SACpB;QAED,OAAO;YACL,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;SAC/B,CAAC;KACH;IAED,IAAI,WAAW,CAAC,KAAK,EAAE;QACrB,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,GAAG,WAAW;YACd,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACvE,CAAC;KACH;IAED,OAAO;QACL,GAAG,WAAW;QACd,GAAG,QAAQ;KACZ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ export const createNativeEnumSchema = (zodEnum) => {
2
+ const enumValues = getValidEnumValues(zodEnum._def.values);
3
+ const { numbers, strings } = sortStringsAndNumbers(enumValues);
4
+ if (strings.length && numbers.length) {
5
+ return {
6
+ type: ['string', 'number'],
7
+ enum: [...strings, ...numbers],
8
+ };
9
+ }
10
+ if (strings.length) {
11
+ return {
12
+ type: 'string',
13
+ enum: strings,
14
+ };
15
+ }
16
+ return {
17
+ type: 'number',
18
+ enum: numbers,
19
+ };
20
+ };
21
+ export const getValidEnumValues = (enumValues) => {
22
+ const keys = Object.keys(enumValues).filter((key) => typeof enumValues[enumValues[key]] !== 'number');
23
+ return keys.map((key) => enumValues[key]);
24
+ };
25
+ export const sortStringsAndNumbers = (values) => ({
26
+ strings: values.filter((value) => typeof value === 'string'),
27
+ numbers: values.filter((value) => typeof value === 'number'),
28
+ });
29
+ //# sourceMappingURL=nativeEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeEnum.js","sourceRoot":"","sources":["../../../src/create/schema/nativeEnum.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,OAAyB,EACmB,EAAE;IAC9C,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAE/D,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;QACpC,OAAO;YACL,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAC1B,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC;SAC/B,CAAC;KACH;IAED,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;SACd,CAAC;KACH;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;KACd,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,UAAoB,EAAE,EAAE;IACzD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CACzD,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAA2B,EACR,EAAE,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;IAC7E,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;CAC9E,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const createNullSchema = (_zodNull) => ({
2
+ type: 'null',
3
+ });
4
+ //# sourceMappingURL=null.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null.js","sourceRoot":"","sources":["../../../src/create/schema/null.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAiB,EAAsB,EAAE,CAAC,CAAC;IAC1E,IAAI,EAAE,MAAM;CACb,CAAC,CAAC"}