@visulima/api-platform 1.1.1 → 1.1.3

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 (46) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/chunk-AG2ROSSA.mjs +2 -0
  3. package/dist/{chunk-D5JLMBFH.mjs.map → chunk-AG2ROSSA.mjs.map} +1 -1
  4. package/dist/chunk-HONWWBY6.mjs +2 -0
  5. package/dist/{chunk-YR2QJYUL.mjs.map → chunk-HONWWBY6.mjs.map} +1 -1
  6. package/dist/chunk-JXD3457O.js +2 -0
  7. package/dist/chunk-JXD3457O.js.map +1 -0
  8. package/dist/chunk-M7LGAQP3.mjs +10 -0
  9. package/dist/{chunk-EGE7A4ZK.mjs.map → chunk-M7LGAQP3.mjs.map} +1 -1
  10. package/dist/chunk-OUWZ2PU5.js +2 -0
  11. package/dist/{chunk-JC4IRQUL.js.map → chunk-OUWZ2PU5.js.map} +0 -0
  12. package/dist/chunk-QIHOLJVA.js +2 -0
  13. package/dist/chunk-QIHOLJVA.js.map +1 -0
  14. package/dist/chunk-UI23SSBN.js +10 -0
  15. package/dist/chunk-UI23SSBN.js.map +1 -0
  16. package/dist/chunk-YOXCJZNX.mjs +2 -0
  17. package/dist/{chunk-5VRACIDE.mjs.map → chunk-YOXCJZNX.mjs.map} +0 -0
  18. package/dist/index-browser.js +1 -7
  19. package/dist/index-browser.mjs +1 -7
  20. package/dist/index-server.d.ts +1 -1
  21. package/dist/index-server.js +1 -452
  22. package/dist/index-server.js.map +1 -1
  23. package/dist/index-server.mjs +1 -452
  24. package/dist/index-server.mjs.map +1 -1
  25. package/dist/next/cli/index.js +3 -202
  26. package/dist/next/cli/index.js.map +1 -1
  27. package/dist/next/cli/index.mjs +3 -202
  28. package/dist/next/cli/index.mjs.map +1 -1
  29. package/dist/next/index-browser.js +1 -11
  30. package/dist/next/index-browser.mjs +1 -11
  31. package/dist/next/index-server.js +1 -75
  32. package/dist/next/index-server.js.map +1 -1
  33. package/dist/next/index-server.mjs +1 -75
  34. package/dist/next/index-server.mjs.map +1 -1
  35. package/package.json +4 -4
  36. package/dist/chunk-5VRACIDE.mjs +0 -10
  37. package/dist/chunk-CVURPKKG.js +0 -120
  38. package/dist/chunk-CVURPKKG.js.map +0 -1
  39. package/dist/chunk-D5JLMBFH.mjs +0 -284
  40. package/dist/chunk-EGE7A4ZK.mjs +0 -120
  41. package/dist/chunk-HOWWQBSN.js +0 -99
  42. package/dist/chunk-HOWWQBSN.js.map +0 -1
  43. package/dist/chunk-JC4IRQUL.js +0 -10
  44. package/dist/chunk-R6HXY2JR.js +0 -284
  45. package/dist/chunk-R6HXY2JR.js.map +0 -1
  46. package/dist/chunk-YR2QJYUL.mjs +0 -99
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## @visulima/api-platform [1.1.3](https://github.com/visulima/visulima/compare/@visulima/api-platform@1.1.2...@visulima/api-platform@1.1.3) (2022-12-15)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **api-platform:** removed UnorderedCollection from http-errors ([58e3fab](https://github.com/visulima/visulima/commit/58e3fab9982d27277bf47996d4bfc9f4c0b8bc04))
7
+
8
+ ## @visulima/api-platform [1.1.2](https://github.com/visulima/visulima/compare/@visulima/api-platform@1.1.1...@visulima/api-platform@1.1.2) (2022-12-15)
9
+
10
+
11
+
12
+ ### Dependencies
13
+
14
+ * **@visulima/crud:** upgraded to 1.0.4
15
+
1
16
  ## @visulima/api-platform [1.1.1](https://github.com/visulima/visulima/compare/@visulima/api-platform@1.1.0...@visulima/api-platform@1.1.1) (2022-12-10)
2
17
 
3
18
 
@@ -0,0 +1,2 @@
1
+ import{modelsToOpenApi as X}from"@visulima/crud";import q from"debug";import M from"lodash.merge";import{existsSync as B,readFileSync as G}from"fs";import Q from"path";import{stringify as T}from"yaml";var D=e=>T(e,{indent:2}),w=D;import{header as E}from"case";import{toXML as $}from"jstoxml";import{stringify as C}from"yaml";var I="application/json",V=(e,n,s)=>{var a,c,p,r,t;((c=(a=e==null?void 0:e.responses)==null?void 0:a[n])==null?void 0:c.content)===void 0&&(e.responses[n].content={}),((t=(r=(p=e==null?void 0:e.responses)==null?void 0:p[n])==null?void 0:r.content)==null?void 0:t[s])===void 0&&(e.responses[n].content[s]={})},v=(e,n,s)=>{typeof e.components!="object"&&(e.components={}),typeof e.components.schemas!="object"&&(e.components.schemas={}),e.components.schemas[n]===void 0&&(e.components.schemas[n]=s)},H=(e,n,s,a,c)=>{var p,r,t,f;V(e,n,s),((f=(t=(r=(p=e==null?void 0:e.responses)==null?void 0:p[n])==null?void 0:r.content)==null?void 0:t[s])==null?void 0:f.schema)===void 0&&(e.responses[n].content[s].schema={}),e.responses[n].content[s].schema=c?{type:"array",items:{$ref:`#/components/schemas/${a}`}}:{$ref:`#/components/schemas/${a}`}},F=(e,n,s,a,c,p)=>{let r,t;return Object.entries(n.content).forEach(([f,o])=>{if(typeof o.schema=="object"){let{schema:i}=o;f===I&&o.examples!==void 0?t=o.examples:f===I&&o.example!==void 0&&(r=o.example);let O=i.type==="array";Object.entries(s||{}).forEach(([j,b])=>{if(!b)return;let P;i.$ref===void 0?(P=`${E(a.trim().replace("/",""))}${j==="application/ld+json"?".jsonld":""}`,v(c,P,i)):P=i.$ref.replace("#/components/schemas/",""),H(e,p,j,P,O)})}}),{examples:t,example:r}},J=(e,n,s,a,c,p)=>{Object.keys(n.content).forEach(r=>{r!==I&&Object.entries(a||{}).forEach(([t,f])=>{var i,O,j,b;if(!f)return;V(e,s,t),((b=(j=(O=(i=e==null?void 0:e.responses)==null?void 0:i[s])==null?void 0:O.content)==null?void 0:j[t])==null?void 0:b.example)===void 0&&(e.responses[s].content[t].example={});let o=!1;c.forEach(({regex:P,transformer:A})=>{!o&&P.test(t)&&(e.responses[s].content[t].example=A(p),o=!0)}),o||(e.responses[s].content[t].example=p)})})},W=(e,n,s)=>{typeof e.components!="object"&&(e.components={}),typeof e.components.examples!="object"&&(e.components.examples={}),e.components.examples[n]===void 0&&s[n]!==void 0&&(e.components.examples[n]=s[n])},z=(e,n,s,a,c,p)=>{var t,f,o,i;V(n,s,a),((i=(o=(f=(t=n==null?void 0:n.responses)==null?void 0:t[s])==null?void 0:f.content)==null?void 0:o[a])==null?void 0:i.examples)===void 0&&(n.responses[s].content[a].examples={});let r={};Object.entries(p).forEach(([O,j])=>{var P,A;let b=!1;c.forEach(({regex:k,transformer:h})=>{var m,u,d,y,R,x;if(!b&&k.test(a)){let g="";((u=(m=e.components)==null?void 0:m.examples)==null?void 0:u[O])!==void 0?g=((y=(d=e.components)==null?void 0:d.examples)==null?void 0:y[O]).value:j?g=((x=(R=e.components)==null?void 0:R.examples)==null?void 0:x[j.$ref.replace("#/components/examples/","")]).value:typeof(j==null?void 0:j.value)=="string"&&(g=j.value),r[O]={value:h(g)},b=!0}}),b||(r[O]=((A=(P=e.components)==null?void 0:P.examples)==null?void 0:A[O])===void 0?j:{$ref:`#/components/examples/${O}`})}),n.responses[s].content[a].examples=r},L=(e,n,s,a,c,p,r,t)=>{let f=`${E(p.trim().replace("/",""))}`;Object.keys(a.content).forEach(o=>{o!==I&&Object.entries(c||{}).forEach(([i,O])=>{!O||(W(e,f,t),z(e,n,s,i,r,t))})})};function l(e,n,s=[{regex:/xml/,transformer:a=>$(a,{header:!0,indent:" "})},{regex:/yaml|yml/,transformer:a=>C(a,{indent:2})}]){return typeof e=="object"&&typeof e.paths=="object"&&Object.entries(e.paths).forEach(([a,c])=>{Object.values(c).forEach(p=>{typeof p.responses=="object"&&Object.entries(p.responses).forEach(([r,t])=>{if(typeof t.content=="object"){let{examples:f,example:o}=F(p,t,n,a,e,r);o!==void 0?J(p,t,r,n,s,o):f!==void 0&&L(e,p,r,t,n,a,s,f)}})})}),e}var U=q("visulima:api-platform:swagger:crud:get-static-properties-swagger"),Y=(e={})=>{let{allowedMediaTypes:n={"application/json":!0},swaggerFilePath:s,crud:a,specs:c}=e;return async(p,r)=>{let t=Q.join(process.cwd(),s||"swagger/swagger.json");if(!B(t))throw new Error(`Swagger file not found at ${t}. Did you change the output path in "withOpenApi" inside the next.config.js file?`);let f=G(t,"utf8"),o=l(JSON.parse(f),n),i={};if(a!==void 0)try{let O=await X(a);i={components:{schemas:O.schemas,examples:O.examples},tags:O.tags,paths:O.paths},i=l(i,n),U(JSON.stringify(i,null,2)),o=M(o,i)}catch(O){throw console.log(O),new Error("Please install @visulima/crud to use the crud swagger generator.")}Array.isArray(c)&&c.forEach(O=>{o=M(o,l(O,n))}),typeof p.headers.accept=="string"&&/yaml|yml/.test(p.headers.accept)?(r.statusCode=200,r.setHeader("Content-Type",p.headers.accept),r.end(w(o))):(r.statusCode=200,r.setHeader("Content-Type","application/json"),r.end(JSON.stringify(o,null,2)))}},Oe=Y;export{w as a,Oe as b};
2
+ //# sourceMappingURL=chunk-AG2ROSSA.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/swagger/swagger-handler.ts","../src/connect/serializers/yaml.ts","../src/swagger/extend-swagger-spec.ts"],"sourcesContent":["// eslint-disable-next-line unicorn/prevent-abbreviations,import/no-extraneous-dependencies\nimport type { ModelsToOpenApiParameters, SwaggerModelsConfig } from \"@visulima/crud\";\n// eslint-disable-next-line unicorn/prevent-abbreviations,import/no-extraneous-dependencies\nimport { modelsToOpenApi } from \"@visulima/crud\";\nimport debug from \"debug\";\nimport merge from \"lodash.merge\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport path from \"node:path\";\nimport type { OpenAPIV3 } from \"openapi-types\";\n\nimport yamlTransformer from \"../connect/serializers/yaml\";\nimport extendSwaggerSpec from \"./extend-swagger-spec\";\n\n// eslint-disable-next-line testing-library/no-debugging-utils\nconst swaggerCrudDebug = debug(\"visulima:api-platform:swagger:crud:get-static-properties-swagger\");\n\nconst swaggerHandler = (options: Partial<SwaggerHandlerOptions> = {}) => {\n const {\n allowedMediaTypes = {\n \"application/json\": true,\n },\n swaggerFilePath,\n crud,\n specs,\n } = options;\n\n return async <Request extends IncomingMessage, Response extends ServerResponse>(request: Request, response: Response) => {\n const swaggerPath = path.join(process.cwd(), swaggerFilePath || \"swagger/swagger.json\");\n\n if (!existsSync(swaggerPath)) {\n throw new Error(`Swagger file not found at ${swaggerPath}. Did you change the output path in \"withOpenApi\" inside the next.config.js file?`);\n }\n\n const fileContents = readFileSync(swaggerPath, \"utf8\");\n\n let spec = extendSwaggerSpec(JSON.parse(fileContents) as OpenAPIV3.Document, allowedMediaTypes) as OpenAPIV3.Document;\n let crudSwagger: Partial<OpenAPIV3.Document> = {};\n\n if (crud !== undefined) {\n try {\n const modelsOpenApi = await modelsToOpenApi(crud);\n\n crudSwagger = {\n components: { schemas: modelsOpenApi.schemas, examples: modelsOpenApi.examples },\n tags: modelsOpenApi.tags as OpenAPIV3.TagObject[],\n paths: modelsOpenApi.paths,\n };\n\n crudSwagger = extendSwaggerSpec(crudSwagger, allowedMediaTypes);\n\n swaggerCrudDebug(JSON.stringify(crudSwagger, null, 2));\n\n spec = merge(spec, crudSwagger);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error);\n\n throw new Error(\"Please install @visulima/crud to use the crud swagger generator.\");\n }\n }\n\n if (Array.isArray(specs)) {\n specs.forEach((value) => {\n spec = merge(spec, extendSwaggerSpec(value, allowedMediaTypes));\n });\n }\n\n if (typeof request.headers.accept === \"string\" && /yaml|yml/.test(request.headers.accept)) {\n response.statusCode = 200;\n response.setHeader(\"Content-Type\", request.headers.accept);\n response.end(yamlTransformer(spec));\n } else {\n response.statusCode = 200;\n response.setHeader(\"Content-Type\", \"application/json\");\n response.end(JSON.stringify(spec, null, 2));\n }\n };\n};\n\nexport type SwaggerHandlerOptions = {\n allowedMediaTypes: { [key: string]: boolean };\n swaggerFilePath: string;\n crud: Exclude<ModelsToOpenApiParameters, \"swagger\"> & {\n swagger?: {\n models?: SwaggerModelsConfig<string>;\n };\n };\n specs?: Partial<OpenAPIV3.Document>[];\n};\n\nexport default swaggerHandler;\n","import { stringify } from \"yaml\";\n\nimport type { Serializer } from \"./types\";\n\nconst yamlTransformer: Serializer = (data) => stringify(data, { indent: 2 });\n\nexport default yamlTransformer;\n","/* eslint-disable no-param-reassign */\nimport { header as headerCase } from \"case\";\nimport { toXML } from \"jstoxml\";\nimport type { OpenAPIV3 } from \"openapi-types\";\nimport { stringify } from \"yaml\";\n\ntype Transformers = { regex: RegExp; transformer: (data: any) => string }[];\n\nconst jsonMediaType = \"application/json\";\n\nconst prepareStatusContent = (methodSpec: OpenAPIV3.OperationObject<{}>, status: string, mediaType: string) => {\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content === undefined) {\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content = {};\n }\n\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType] === undefined) {\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] = {} as OpenAPIV3.MediaTypeObject;\n }\n};\n\nconst extendComponentSchemas = (spec: Partial<OpenAPIV3.Document>, schemaName: string, schema: OpenAPIV3.SchemaObject) => {\n if (typeof spec.components !== \"object\") {\n spec.components = {};\n }\n\n if (typeof spec.components.schemas !== \"object\") {\n spec.components.schemas = {};\n }\n\n if (spec.components.schemas[schemaName] === undefined) {\n spec.components.schemas[schemaName] = schema;\n }\n};\n\nconst extendResponseSchema = (methodSpec: OpenAPIV3.OperationObject, status: string, mediaType: string, schemaName: string, schemaIsArray: boolean) => {\n prepareStatusContent(methodSpec, status, mediaType);\n\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType]?.schema === undefined) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).schema = {} as OpenAPIV3.SchemaObject;\n }\n\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).schema = schemaIsArray\n ? {\n type: \"array\",\n items: {\n $ref: `#/components/schemas/${schemaName}`,\n },\n }\n : {\n $ref: `#/components/schemas/${schemaName}`,\n };\n};\n\nconst extendSwaggerWithMediaTypeSchema = (\n methodSpec: OpenAPIV3.OperationObject,\n responseSpec: OpenAPIV3.ResponseObject,\n allowedMediaTypes: { [p: string]: boolean } | undefined,\n pathKey: string,\n spec: Partial<OpenAPIV3.Document>,\n status: string,\n): {\n example?: any;\n examples?: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n };\n} => {\n let example: any | undefined;\n let examples:\n | {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n }\n | undefined;\n\n // eslint-disable-next-line radar/cognitive-complexity\n Object.entries(responseSpec.content as object).forEach(([mediaName, contentSpec]) => {\n if (typeof contentSpec.schema === \"object\") {\n const { schema } = contentSpec;\n\n if (mediaName === jsonMediaType && contentSpec.examples !== undefined) {\n examples = contentSpec.examples;\n } else if (mediaName === jsonMediaType && contentSpec.example !== undefined) {\n example = contentSpec.example;\n }\n\n const schemaIsArray = (schema as OpenAPIV3.SchemaObject).type === \"array\";\n\n Object.entries(allowedMediaTypes || {}).forEach(([mediaType, allowed]) => {\n if (!allowed) {\n return;\n }\n\n let schemaName: string;\n\n if ((schema as OpenAPIV3.ReferenceObject).$ref === undefined) {\n // eslint-disable-next-line max-len\n schemaName = `${headerCase(pathKey.trim().replace(\"/\", \"\"))}${mediaType === \"application/ld+json\" ? \".jsonld\" : \"\"}`;\n\n extendComponentSchemas(spec as OpenAPIV3.Document, schemaName, schema as OpenAPIV3.SchemaObject);\n } else {\n // eslint-disable-next-line max-len\n schemaName = (schema as OpenAPIV3.ReferenceObject).$ref.replace(\"#/components/schemas/\", \"\");\n }\n\n extendResponseSchema(methodSpec, status, mediaType, schemaName, schemaIsArray);\n });\n }\n });\n\n return { examples, example };\n};\n\nconst extendSwaggerWithMediaTypeExample = (\n methodSpec: OpenAPIV3.OperationObject,\n responseSpec: OpenAPIV3.ResponseObject,\n status: string,\n allowedMediaTypes: { [p: string]: boolean } | undefined,\n transformers: Transformers,\n example: any,\n) => {\n Object.keys(responseSpec.content as object).forEach((mediaName) => {\n if (mediaName === jsonMediaType) {\n return;\n }\n\n Object.entries(allowedMediaTypes || {}).forEach(([mediaType, allowed]) => {\n if (!allowed) {\n return;\n }\n\n prepareStatusContent(methodSpec, status, mediaType);\n\n if (\n ((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType]?.example\n === undefined\n ) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).example = {};\n }\n\n let transformed = false;\n\n transformers.forEach(({ regex, transformer }) => {\n if (!transformed && regex.test(mediaType)) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).example = transformer(example);\n\n transformed = true;\n }\n });\n\n if (!transformed) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).example = example;\n }\n });\n });\n};\n\nconst extendComponentExamples = (\n spec: Partial<OpenAPIV3.Document>,\n exampleName: string,\n examples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n },\n) => {\n if (typeof spec.components !== \"object\") {\n spec.components = {};\n }\n\n if (typeof spec.components.examples !== \"object\") {\n spec.components.examples = {};\n }\n\n if (spec.components.examples[exampleName] === undefined && examples[exampleName] !== undefined) {\n spec.components.examples[exampleName] = examples[exampleName] as OpenAPIV3.ExampleObject;\n }\n};\n\nconst prepareResponseExamples = (\n spec: Partial<OpenAPIV3.Document>,\n methodSpec: OpenAPIV3.OperationObject,\n status: string,\n mediaType: string,\n transformers: Transformers,\n examples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n },\n // eslint-disable-next-line radar/cognitive-complexity\n) => {\n prepareStatusContent(methodSpec, status, mediaType);\n\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType]?.examples === undefined) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).examples = {};\n }\n\n const transformedExamples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n } = {};\n\n Object.entries(examples).forEach(([exampleName, example]) => {\n let transformed = false;\n\n transformers.forEach(({ regex, transformer }) => {\n if (!transformed && regex.test(mediaType)) {\n let data: any = \"\";\n\n if ((spec.components?.examples?.[exampleName] as OpenAPIV3.ExampleObject) !== undefined) {\n data = (spec.components?.examples?.[exampleName] as OpenAPIV3.ExampleObject).value;\n } else if (example as OpenAPIV3.ReferenceObject) {\n data = (\n spec.components?.examples?.[\n (example as OpenAPIV3.ReferenceObject).$ref.replace(\"#/components/examples/\", \"\")\n ] as OpenAPIV3.ExampleObject\n ).value;\n } else if (typeof (example as OpenAPIV3.ExampleObject)?.value === \"string\") {\n data = (example as OpenAPIV3.ExampleObject).value;\n }\n\n transformedExamples[exampleName] = {\n value: transformer(data),\n };\n\n transformed = true;\n }\n });\n\n if (!transformed) {\n transformedExamples[exampleName] = spec.components?.examples?.[exampleName] === undefined\n ? example\n : {\n $ref: `#/components/examples/${exampleName}`,\n };\n }\n });\n\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).examples = transformedExamples;\n};\n\nconst extendSwaggerWithMediaTypeExamples = (\n spec: Partial<OpenAPIV3.Document>,\n methodSpec: OpenAPIV3.OperationObject,\n status: string,\n responseSpec: OpenAPIV3.ResponseObject,\n allowedMediaTypes: { [p: string]: boolean } | undefined,\n pathKey: string,\n transformers: Transformers,\n examples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n },\n) => {\n const examplesName = `${headerCase(pathKey.trim().replace(\"/\", \"\"))}`;\n\n Object.keys(responseSpec.content as object).forEach((mediaName) => {\n if (mediaName === jsonMediaType) {\n return;\n }\n\n Object.entries(allowedMediaTypes || {}).forEach(([mediaType, allowed]) => {\n if (!allowed) {\n return;\n }\n\n extendComponentExamples(spec, examplesName, examples);\n\n prepareResponseExamples(spec, methodSpec, status, mediaType, transformers, examples);\n });\n });\n};\n\n// eslint-disable-next-line radar/cognitive-complexity\nexport default function extendSwaggerSpec(\n spec: Partial<OpenAPIV3.Document>,\n allowedMediaTypes?: { [key: string]: boolean },\n transformers: Transformers = [\n {\n regex: /xml/,\n transformer: (value) => toXML(value, {\n header: true,\n indent: \" \",\n }),\n },\n {\n regex: /yaml|yml/,\n transformer: (value) => stringify(value, { indent: 2 }),\n },\n ],\n): Partial<OpenAPIV3.Document> {\n if (typeof spec === \"object\" && typeof spec.paths === \"object\") {\n Object.entries(spec.paths).forEach(([pathKey, pathSpec]) => {\n Object.values(pathSpec as OpenAPIV3.PathsObject & OpenAPIV3.OperationObject).forEach((methodSpec) => {\n if (typeof (methodSpec as OpenAPIV3.OperationObject).responses === \"object\") {\n Object.entries((methodSpec as OpenAPIV3.OperationObject).responses).forEach(([status, responseSpec]) => {\n if (typeof (responseSpec as OpenAPIV3.ResponseObject).content === \"object\") {\n const { examples, example } = extendSwaggerWithMediaTypeSchema(\n methodSpec as OpenAPIV3.OperationObject,\n responseSpec as OpenAPIV3.ResponseObject,\n allowedMediaTypes,\n pathKey,\n spec,\n status,\n );\n\n if (example !== undefined) {\n extendSwaggerWithMediaTypeExample(\n methodSpec as OpenAPIV3.OperationObject,\n responseSpec as OpenAPIV3.ResponseObject,\n status,\n allowedMediaTypes,\n transformers,\n example,\n );\n } else if (examples !== undefined) {\n extendSwaggerWithMediaTypeExamples(\n spec,\n methodSpec as OpenAPIV3.OperationObject,\n status,\n responseSpec as OpenAPIV3.ResponseObject,\n allowedMediaTypes,\n pathKey,\n transformers,\n examples,\n );\n }\n }\n });\n }\n });\n });\n }\n\n return spec;\n}\n\n/* eslint-enable no-param-reassign */\n"],"mappings":"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","names":["stringify","_a","_b","_c","_d"]}
1
+ {"version":3,"sources":["../src/swagger/swagger-handler.ts","../src/connect/serializers/yaml.ts","../src/swagger/extend-swagger-spec.ts"],"sourcesContent":["// eslint-disable-next-line unicorn/prevent-abbreviations,import/no-extraneous-dependencies\nimport type { ModelsToOpenApiParameters, SwaggerModelsConfig } from \"@visulima/crud\";\n// eslint-disable-next-line unicorn/prevent-abbreviations,import/no-extraneous-dependencies\nimport { modelsToOpenApi } from \"@visulima/crud\";\nimport debug from \"debug\";\nimport merge from \"lodash.merge\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport path from \"node:path\";\nimport type { OpenAPIV3 } from \"openapi-types\";\n\nimport yamlTransformer from \"../connect/serializers/yaml\";\nimport extendSwaggerSpec from \"./extend-swagger-spec\";\n\n// eslint-disable-next-line testing-library/no-debugging-utils\nconst swaggerCrudDebug = debug(\"visulima:api-platform:swagger:crud:get-static-properties-swagger\");\n\nconst swaggerHandler = (options: Partial<SwaggerHandlerOptions> = {}) => {\n const {\n allowedMediaTypes = {\n \"application/json\": true,\n },\n swaggerFilePath,\n crud,\n specs,\n } = options;\n\n return async <Request extends IncomingMessage, Response extends ServerResponse>(request: Request, response: Response) => {\n const swaggerPath = path.join(process.cwd(), swaggerFilePath || \"swagger/swagger.json\");\n\n if (!existsSync(swaggerPath)) {\n throw new Error(`Swagger file not found at ${swaggerPath}. Did you change the output path in \"withOpenApi\" inside the next.config.js file?`);\n }\n\n const fileContents = readFileSync(swaggerPath, \"utf8\");\n\n let spec = extendSwaggerSpec(JSON.parse(fileContents) as OpenAPIV3.Document, allowedMediaTypes) as OpenAPIV3.Document;\n let crudSwagger: Partial<OpenAPIV3.Document> = {};\n\n if (crud !== undefined) {\n try {\n const modelsOpenApi = await modelsToOpenApi(crud);\n\n crudSwagger = {\n components: { schemas: modelsOpenApi.schemas, examples: modelsOpenApi.examples },\n tags: modelsOpenApi.tags as OpenAPIV3.TagObject[],\n paths: modelsOpenApi.paths,\n };\n\n crudSwagger = extendSwaggerSpec(crudSwagger, allowedMediaTypes);\n\n swaggerCrudDebug(JSON.stringify(crudSwagger, null, 2));\n\n spec = merge(spec, crudSwagger);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error);\n\n throw new Error(\"Please install @visulima/crud to use the crud swagger generator.\");\n }\n }\n\n if (Array.isArray(specs)) {\n specs.forEach((value) => {\n spec = merge(spec, extendSwaggerSpec(value, allowedMediaTypes));\n });\n }\n\n if (typeof request.headers.accept === \"string\" && /yaml|yml/.test(request.headers.accept)) {\n response.statusCode = 200;\n response.setHeader(\"Content-Type\", request.headers.accept);\n response.end(yamlTransformer(spec));\n } else {\n response.statusCode = 200;\n response.setHeader(\"Content-Type\", \"application/json\");\n response.end(JSON.stringify(spec, null, 2));\n }\n };\n};\n\nexport type SwaggerHandlerOptions = {\n allowedMediaTypes: { [key: string]: boolean };\n swaggerFilePath: string;\n crud: Exclude<ModelsToOpenApiParameters, \"swagger\"> & {\n swagger?: {\n models?: SwaggerModelsConfig<string>;\n };\n };\n specs?: Partial<OpenAPIV3.Document>[];\n};\n\nexport default swaggerHandler;\n","import { stringify } from \"yaml\";\n\nimport type { Serializer } from \"./types\";\n\nconst yamlTransformer: Serializer = (data) => stringify(data, { indent: 2 });\n\nexport default yamlTransformer;\n","/* eslint-disable no-param-reassign */\nimport { header as headerCase } from \"case\";\nimport { toXML } from \"jstoxml\";\nimport type { OpenAPIV3 } from \"openapi-types\";\nimport { stringify } from \"yaml\";\n\ntype Transformers = { regex: RegExp; transformer: (data: any) => string }[];\n\nconst jsonMediaType = \"application/json\";\n\nconst prepareStatusContent = (methodSpec: OpenAPIV3.OperationObject<{}>, status: string, mediaType: string) => {\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content === undefined) {\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content = {};\n }\n\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType] === undefined) {\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] = {} as OpenAPIV3.MediaTypeObject;\n }\n};\n\nconst extendComponentSchemas = (spec: Partial<OpenAPIV3.Document>, schemaName: string, schema: OpenAPIV3.SchemaObject) => {\n if (typeof spec.components !== \"object\") {\n spec.components = {};\n }\n\n if (typeof spec.components.schemas !== \"object\") {\n spec.components.schemas = {};\n }\n\n if (spec.components.schemas[schemaName] === undefined) {\n spec.components.schemas[schemaName] = schema;\n }\n};\n\nconst extendResponseSchema = (methodSpec: OpenAPIV3.OperationObject, status: string, mediaType: string, schemaName: string, schemaIsArray: boolean) => {\n prepareStatusContent(methodSpec, status, mediaType);\n\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType]?.schema === undefined) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).schema = {} as OpenAPIV3.SchemaObject;\n }\n\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).schema = schemaIsArray\n ? {\n type: \"array\",\n items: {\n $ref: `#/components/schemas/${schemaName}`,\n },\n }\n : {\n $ref: `#/components/schemas/${schemaName}`,\n };\n};\n\nconst extendSwaggerWithMediaTypeSchema = (\n methodSpec: OpenAPIV3.OperationObject,\n responseSpec: OpenAPIV3.ResponseObject,\n allowedMediaTypes: { [p: string]: boolean } | undefined,\n pathKey: string,\n spec: Partial<OpenAPIV3.Document>,\n status: string,\n): {\n example?: any;\n examples?: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n };\n} => {\n let example: any | undefined;\n let examples:\n | {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n }\n | undefined;\n\n // eslint-disable-next-line radar/cognitive-complexity\n Object.entries(responseSpec.content as object).forEach(([mediaName, contentSpec]) => {\n if (typeof contentSpec.schema === \"object\") {\n const { schema } = contentSpec;\n\n if (mediaName === jsonMediaType && contentSpec.examples !== undefined) {\n examples = contentSpec.examples;\n } else if (mediaName === jsonMediaType && contentSpec.example !== undefined) {\n example = contentSpec.example;\n }\n\n const schemaIsArray = (schema as OpenAPIV3.SchemaObject).type === \"array\";\n\n Object.entries(allowedMediaTypes || {}).forEach(([mediaType, allowed]) => {\n if (!allowed) {\n return;\n }\n\n let schemaName: string;\n\n if ((schema as OpenAPIV3.ReferenceObject).$ref === undefined) {\n // eslint-disable-next-line max-len\n schemaName = `${headerCase(pathKey.trim().replace(\"/\", \"\"))}${mediaType === \"application/ld+json\" ? \".jsonld\" : \"\"}`;\n\n extendComponentSchemas(spec as OpenAPIV3.Document, schemaName, schema as OpenAPIV3.SchemaObject);\n } else {\n // eslint-disable-next-line max-len\n schemaName = (schema as OpenAPIV3.ReferenceObject).$ref.replace(\"#/components/schemas/\", \"\");\n }\n\n extendResponseSchema(methodSpec, status, mediaType, schemaName, schemaIsArray);\n });\n }\n });\n\n return { examples, example };\n};\n\nconst extendSwaggerWithMediaTypeExample = (\n methodSpec: OpenAPIV3.OperationObject,\n responseSpec: OpenAPIV3.ResponseObject,\n status: string,\n allowedMediaTypes: { [p: string]: boolean } | undefined,\n transformers: Transformers,\n example: any,\n) => {\n Object.keys(responseSpec.content as object).forEach((mediaName) => {\n if (mediaName === jsonMediaType) {\n return;\n }\n\n Object.entries(allowedMediaTypes || {}).forEach(([mediaType, allowed]) => {\n if (!allowed) {\n return;\n }\n\n prepareStatusContent(methodSpec, status, mediaType);\n\n if (\n ((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType]?.example\n === undefined\n ) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).example = {};\n }\n\n let transformed = false;\n\n transformers.forEach(({ regex, transformer }) => {\n if (!transformed && regex.test(mediaType)) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).example = transformer(example);\n\n transformed = true;\n }\n });\n\n if (!transformed) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).example = example;\n }\n });\n });\n};\n\nconst extendComponentExamples = (\n spec: Partial<OpenAPIV3.Document>,\n exampleName: string,\n examples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n },\n) => {\n if (typeof spec.components !== \"object\") {\n spec.components = {};\n }\n\n if (typeof spec.components.examples !== \"object\") {\n spec.components.examples = {};\n }\n\n if (spec.components.examples[exampleName] === undefined && examples[exampleName] !== undefined) {\n spec.components.examples[exampleName] = examples[exampleName] as OpenAPIV3.ExampleObject;\n }\n};\n\nconst prepareResponseExamples = (\n spec: Partial<OpenAPIV3.Document>,\n methodSpec: OpenAPIV3.OperationObject,\n status: string,\n mediaType: string,\n transformers: Transformers,\n examples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n },\n // eslint-disable-next-line radar/cognitive-complexity\n) => {\n prepareStatusContent(methodSpec, status, mediaType);\n\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType]?.examples === undefined) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).examples = {};\n }\n\n const transformedExamples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n } = {};\n\n Object.entries(examples).forEach(([exampleName, example]) => {\n let transformed = false;\n\n transformers.forEach(({ regex, transformer }) => {\n if (!transformed && regex.test(mediaType)) {\n let data: any = \"\";\n\n if ((spec.components?.examples?.[exampleName] as OpenAPIV3.ExampleObject) !== undefined) {\n data = (spec.components?.examples?.[exampleName] as OpenAPIV3.ExampleObject).value;\n } else if (example as OpenAPIV3.ReferenceObject) {\n data = (\n spec.components?.examples?.[\n (example as OpenAPIV3.ReferenceObject).$ref.replace(\"#/components/examples/\", \"\")\n ] as OpenAPIV3.ExampleObject\n ).value;\n } else if (typeof (example as OpenAPIV3.ExampleObject)?.value === \"string\") {\n data = (example as OpenAPIV3.ExampleObject).value;\n }\n\n transformedExamples[exampleName] = {\n value: transformer(data),\n };\n\n transformed = true;\n }\n });\n\n if (!transformed) {\n transformedExamples[exampleName] = spec.components?.examples?.[exampleName] === undefined\n ? example\n : {\n $ref: `#/components/examples/${exampleName}`,\n };\n }\n });\n\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).examples = transformedExamples;\n};\n\nconst extendSwaggerWithMediaTypeExamples = (\n spec: Partial<OpenAPIV3.Document>,\n methodSpec: OpenAPIV3.OperationObject,\n status: string,\n responseSpec: OpenAPIV3.ResponseObject,\n allowedMediaTypes: { [p: string]: boolean } | undefined,\n pathKey: string,\n transformers: Transformers,\n examples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n },\n) => {\n const examplesName = `${headerCase(pathKey.trim().replace(\"/\", \"\"))}`;\n\n Object.keys(responseSpec.content as object).forEach((mediaName) => {\n if (mediaName === jsonMediaType) {\n return;\n }\n\n Object.entries(allowedMediaTypes || {}).forEach(([mediaType, allowed]) => {\n if (!allowed) {\n return;\n }\n\n extendComponentExamples(spec, examplesName, examples);\n\n prepareResponseExamples(spec, methodSpec, status, mediaType, transformers, examples);\n });\n });\n};\n\n// eslint-disable-next-line radar/cognitive-complexity\nexport default function extendSwaggerSpec(\n spec: Partial<OpenAPIV3.Document>,\n allowedMediaTypes?: { [key: string]: boolean },\n transformers: Transformers = [\n {\n regex: /xml/,\n transformer: (value) => toXML(value, {\n header: true,\n indent: \" \",\n }),\n },\n {\n regex: /yaml|yml/,\n transformer: (value) => stringify(value, { indent: 2 }),\n },\n ],\n): Partial<OpenAPIV3.Document> {\n if (typeof spec === \"object\" && typeof spec.paths === \"object\") {\n Object.entries(spec.paths).forEach(([pathKey, pathSpec]) => {\n Object.values(pathSpec as OpenAPIV3.PathsObject & OpenAPIV3.OperationObject).forEach((methodSpec) => {\n if (typeof (methodSpec as OpenAPIV3.OperationObject).responses === \"object\") {\n Object.entries((methodSpec as OpenAPIV3.OperationObject).responses).forEach(([status, responseSpec]) => {\n if (typeof (responseSpec as OpenAPIV3.ResponseObject).content === \"object\") {\n const { examples, example } = extendSwaggerWithMediaTypeSchema(\n methodSpec as OpenAPIV3.OperationObject,\n responseSpec as OpenAPIV3.ResponseObject,\n allowedMediaTypes,\n pathKey,\n spec,\n status,\n );\n\n if (example !== undefined) {\n extendSwaggerWithMediaTypeExample(\n methodSpec as OpenAPIV3.OperationObject,\n responseSpec as OpenAPIV3.ResponseObject,\n status,\n allowedMediaTypes,\n transformers,\n example,\n );\n } else if (examples !== undefined) {\n extendSwaggerWithMediaTypeExamples(\n spec,\n methodSpec as OpenAPIV3.OperationObject,\n status,\n responseSpec as OpenAPIV3.ResponseObject,\n allowedMediaTypes,\n pathKey,\n transformers,\n examples,\n );\n }\n }\n });\n }\n });\n });\n }\n\n return spec;\n}\n\n/* eslint-enable no-param-reassign */\n"],"mappings":"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","names":["modelsToOpenApi","debug","merge","existsSync","readFileSync","path","stringify","yamlTransformer","data","yaml_default","headerCase","toXML","stringify","jsonMediaType","prepareStatusContent","methodSpec","status","mediaType","_a","_b","_c","_d","_e","extendComponentSchemas","spec","schemaName","schema","extendResponseSchema","schemaIsArray","extendSwaggerWithMediaTypeSchema","responseSpec","allowedMediaTypes","pathKey","example","examples","mediaName","contentSpec","allowed","extendSwaggerWithMediaTypeExample","transformers","transformed","regex","transformer","extendComponentExamples","exampleName","prepareResponseExamples","transformedExamples","_f","data","extendSwaggerWithMediaTypeExamples","examplesName","extendSwaggerSpec","value","pathSpec","swaggerCrudDebug","debug","swaggerHandler","options","allowedMediaTypes","swaggerFilePath","crud","specs","request","response","swaggerPath","path","existsSync","fileContents","readFileSync","spec","extendSwaggerSpec","crudSwagger","modelsOpenApi","modelsToOpenApi","merge","error","value","yaml_default","swagger_handler_default"]}
@@ -0,0 +1,2 @@
1
+ import{a as Z}from"./chunk-YOXCJZNX.mjs";var I={};Z(I,{dateIn:()=>K,dateOut:()=>w});import{withGetType as x}from"zod-to-ts";import{addIssueToContext as s,INVALID as c,ZodIssueCode as n,ZodParsedType as u,ZodType as g}from"zod";var N="ZodDateIn",P=/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{3})?)?Z?$/,p=class extends g{_parse(t){let{status:d,ctx:e}=this._processInputParams(t);if(e.parsedType!==u.string)return s(e,{code:n.invalid_type,expected:u.string,received:e.parsedType}),c;P.test(e.data)||(s(e,{code:n.invalid_string,validation:"regex"}),d.dirty());let y=new Date(e.data);return Number.isNaN(y.getTime())?(s(e,{code:n.invalid_date}),c):{status:d.value,value:y}}},a=p;a.create=()=>new p({typeName:N});import{addIssueToContext as f,INVALID as m,ZodIssueCode as D,ZodParsedType as T,ZodType as l}from"zod";var v="ZodDateOut",i=class extends l{_parse(t){let{status:d,ctx:e}=this._processInputParams(t);return e.parsedType!==T.date?(f(e,{code:D.invalid_type,expected:T.date,received:e.parsedType}),m):Number.isNaN(e.data.getTime())?(f(e,{code:D.invalid_date}),m):{status:d.value,value:e.data.toISOString()}}},r=i;r.create=()=>new i({typeName:v});var K=(...o)=>x(a.create(...o),t=>t.factory.createKeywordTypeNode(t.SyntaxKind.StringKeyword)),w=(...o)=>x(r.create(...o),t=>t.factory.createKeywordTypeNode(t.SyntaxKind.StringKeyword));export{K as a,w as b,I as c};
2
+ //# sourceMappingURL=chunk-HONWWBY6.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/zod/index.ts","../src/zod/date-in-schema.ts","../src/zod/date-out-schema.ts"],"sourcesContent":["import { withGetType } from \"zod-to-ts\";\n\nimport { ZodDateIn } from \"./date-in-schema\";\nimport { ZodDateOut } from \"./date-out-schema\";\n\n// eslint-disable-next-line max-len\nexport const dateIn = (...parameters: Parameters<typeof ZodDateIn.create>) => withGetType(ZodDateIn.create(...parameters), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));\n// eslint-disable-next-line max-len\nexport const dateOut = (...parameters: Parameters<typeof ZodDateOut.create>) => withGetType(ZodDateOut.create(...parameters), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));\n","import type { ParseInput, ParseReturnType, ZodTypeDef } from \"zod\";\nimport {\n addIssueToContext, INVALID, ZodIssueCode, ZodParsedType, ZodType,\n} from \"zod\";\n\nconst zodDateInKind = \"ZodDateIn\";\n\n// simple regex for ISO date, supports the following formats:\n// 2021-01-01T00:00:00.000Z\n// 2021-01-01T00:00:00Z\n// 2021-01-01T00:00:00\n// 2021-01-01\nexport const isoDateRegex = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?)?Z?$/;\n\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport interface ZodDateInDef extends ZodTypeDef {\n typeName: typeof zodDateInKind;\n}\n\nexport class ZodDateIn extends ZodType<Date, ZodDateInDef, string> {\n // eslint-disable-next-line no-underscore-dangle\n _parse(input: ParseInput): ParseReturnType<Date> {\n // eslint-disable-next-line no-underscore-dangle\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.string) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n\n if (!isoDateRegex.test(ctx.data as string)) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"regex\",\n });\n status.dirty();\n }\n\n const date = new Date(ctx.data);\n\n if (Number.isNaN(date.getTime())) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n\n return { status: status.value, value: date };\n }\n\n static create = () => new ZodDateIn({\n typeName: zodDateInKind,\n });\n}\n","import type { ParseInput, ParseReturnType, ZodTypeDef } from \"zod\";\nimport {\n addIssueToContext, INVALID, ZodIssueCode, ZodParsedType, ZodType,\n} from \"zod\";\n\nconst zodDateOutKind = \"ZodDateOut\";\n\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport interface ZodDateOutDef extends ZodTypeDef {\n typeName: typeof zodDateOutKind;\n}\n\nexport class ZodDateOut extends ZodType<string, ZodDateOutDef, Date> {\n // eslint-disable-next-line no-underscore-dangle\n _parse(input: ParseInput): ParseReturnType<string> {\n // eslint-disable-next-line no-underscore-dangle\n const { status, ctx } = this._processInputParams(input);\n\n if (ctx.parsedType !== ZodParsedType.date) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n\n if (Number.isNaN(ctx.data.getTime())) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n\n return { status: status.value, value: (ctx.data as Date).toISOString() };\n }\n\n static create = () => new ZodDateOut({\n typeName: zodDateOutKind,\n });\n}\n"],"mappings":";;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,mBAAmB;;;ACC5B;AAAA,EACI;AAAA,EAAmB;AAAA,EAAS;AAAA,EAAc;AAAA,EAAe;AAAA,OACtD;AAEP,IAAM,gBAAgB;AAOf,IAAM,eAAe;AAOrB,IAAM,aAAN,cAAwB,QAAoC;AAAA,EAE/D,OAAO,OAA0C;AAE7C,UAAM,EAAE,QAAQ,IAAI,IAAI,KAAK,oBAAoB,KAAK;AACtD,QAAI,IAAI,eAAe,cAAc,QAAQ;AACzC,wBAAkB,KAAK;AAAA,QACnB,MAAM,aAAa;AAAA,QACnB,UAAU,cAAc;AAAA,QACxB,UAAU,IAAI;AAAA,MAClB,CAAC;AACD,aAAO;AAAA,IACX;AAEA,QAAI,CAAC,aAAa,KAAK,IAAI,IAAc,GAAG;AACxC,wBAAkB,KAAK;AAAA,QACnB,MAAM,aAAa;AAAA,QACnB,YAAY;AAAA,MAChB,CAAC;AACD,aAAO,MAAM;AAAA,IACjB;AAEA,UAAM,OAAO,IAAI,KAAK,IAAI,IAAI;AAE9B,QAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,GAAG;AAC9B,wBAAkB,KAAK;AAAA,QACnB,MAAM,aAAa;AAAA,MACvB,CAAC;AACD,aAAO;AAAA,IACX;AAEA,WAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,KAAK;AAAA,EAC/C;AAKJ;AArCO,IAAM,YAAN;AAAM,UAkCF,SAAS,MAAM,IAAI,WAAU;AAAA,EAChC,UAAU;AACd,CAAC;;;ACtDL;AAAA,EACI,qBAAAA;AAAA,EAAmB,WAAAC;AAAA,EAAS,gBAAAC;AAAA,EAAc,iBAAAC;AAAA,EAAe,WAAAC;AAAA,OACtD;AAEP,IAAM,iBAAiB;AAOhB,IAAM,cAAN,cAAyBA,SAAqC;AAAA,EAEjE,OAAO,OAA4C;AAE/C,UAAM,EAAE,QAAQ,IAAI,IAAI,KAAK,oBAAoB,KAAK;AAEtD,QAAI,IAAI,eAAeD,eAAc,MAAM;AACvC,MAAAH,mBAAkB,KAAK;AAAA,QACnB,MAAME,cAAa;AAAA,QACnB,UAAUC,eAAc;AAAA,QACxB,UAAU,IAAI;AAAA,MAClB,CAAC;AACD,aAAOF;AAAA,IACX;AAEA,QAAI,OAAO,MAAM,IAAI,KAAK,QAAQ,CAAC,GAAG;AAClC,MAAAD,mBAAkB,KAAK;AAAA,QACnB,MAAME,cAAa;AAAA,MACvB,CAAC;AACD,aAAOD;AAAA,IACX;AAEA,WAAO,EAAE,QAAQ,OAAO,OAAO,OAAQ,IAAI,KAAc,YAAY,EAAE;AAAA,EAC3E;AAKJ;AA5BO,IAAM,aAAN;AAAM,WAyBF,SAAS,MAAM,IAAI,YAAW;AAAA,EACjC,UAAU;AACd,CAAC;;;AFjCE,IAAM,SAAS,IAAI,eAAoD,YAAY,UAAU,OAAO,GAAG,UAAU,GAAG,CAAC,OAAO,GAAG,QAAQ,sBAAsB,GAAG,WAAW,aAAa,CAAC;AAEzL,IAAM,UAAU,IAAI,eAAqD,YAAY,WAAW,OAAO,GAAG,UAAU,GAAG,CAAC,OAAO,GAAG,QAAQ,sBAAsB,GAAG,WAAW,aAAa,CAAC;","names":["addIssueToContext","INVALID","ZodIssueCode","ZodParsedType","ZodType"]}
1
+ {"version":3,"sources":["../src/zod/index.ts","../src/zod/date-in-schema.ts","../src/zod/date-out-schema.ts"],"sourcesContent":["import { withGetType } from \"zod-to-ts\";\n\nimport { ZodDateIn } from \"./date-in-schema\";\nimport { ZodDateOut } from \"./date-out-schema\";\n\n// eslint-disable-next-line max-len\nexport const dateIn = (...parameters: Parameters<typeof ZodDateIn.create>) => withGetType(ZodDateIn.create(...parameters), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));\n// eslint-disable-next-line max-len\nexport const dateOut = (...parameters: Parameters<typeof ZodDateOut.create>) => withGetType(ZodDateOut.create(...parameters), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));\n","import type { ParseInput, ParseReturnType, ZodTypeDef } from \"zod\";\nimport {\n addIssueToContext, INVALID, ZodIssueCode, ZodParsedType, ZodType,\n} from \"zod\";\n\nconst zodDateInKind = \"ZodDateIn\";\n\n// simple regex for ISO date, supports the following formats:\n// 2021-01-01T00:00:00.000Z\n// 2021-01-01T00:00:00Z\n// 2021-01-01T00:00:00\n// 2021-01-01\nexport const isoDateRegex = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?)?Z?$/;\n\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport interface ZodDateInDef extends ZodTypeDef {\n typeName: typeof zodDateInKind;\n}\n\nexport class ZodDateIn extends ZodType<Date, ZodDateInDef, string> {\n // eslint-disable-next-line no-underscore-dangle\n _parse(input: ParseInput): ParseReturnType<Date> {\n // eslint-disable-next-line no-underscore-dangle\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.string) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n\n if (!isoDateRegex.test(ctx.data as string)) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"regex\",\n });\n status.dirty();\n }\n\n const date = new Date(ctx.data);\n\n if (Number.isNaN(date.getTime())) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n\n return { status: status.value, value: date };\n }\n\n static create = () => new ZodDateIn({\n typeName: zodDateInKind,\n });\n}\n","import type { ParseInput, ParseReturnType, ZodTypeDef } from \"zod\";\nimport {\n addIssueToContext, INVALID, ZodIssueCode, ZodParsedType, ZodType,\n} from \"zod\";\n\nconst zodDateOutKind = \"ZodDateOut\";\n\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport interface ZodDateOutDef extends ZodTypeDef {\n typeName: typeof zodDateOutKind;\n}\n\nexport class ZodDateOut extends ZodType<string, ZodDateOutDef, Date> {\n // eslint-disable-next-line no-underscore-dangle\n _parse(input: ParseInput): ParseReturnType<string> {\n // eslint-disable-next-line no-underscore-dangle\n const { status, ctx } = this._processInputParams(input);\n\n if (ctx.parsedType !== ZodParsedType.date) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n\n if (Number.isNaN(ctx.data.getTime())) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n\n return { status: status.value, value: (ctx.data as Date).toISOString() };\n }\n\n static create = () => new ZodDateOut({\n typeName: zodDateOutKind,\n });\n}\n"],"mappings":"yCAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,EAAA,YAAAC,IAAA,OAAS,eAAAC,MAAmB,YCC5B,OACI,qBAAAC,EAAmB,WAAAC,EAAS,gBAAAC,EAAc,iBAAAC,EAAe,WAAAC,MACtD,MAEP,IAAMC,EAAgB,YAOTC,EAAe,uDAOfC,EAAN,cAAwBH,CAAoC,CAE/D,OAAOI,EAA0C,CAE7C,GAAM,CAAE,OAAAC,EAAQ,IAAAC,CAAI,EAAI,KAAK,oBAAoBF,CAAK,EACtD,GAAIE,EAAI,aAAeP,EAAc,OACjC,OAAAH,EAAkBU,EAAK,CACnB,KAAMR,EAAa,aACnB,SAAUC,EAAc,OACxB,SAAUO,EAAI,UAClB,CAAC,EACMT,EAGNK,EAAa,KAAKI,EAAI,IAAc,IACrCV,EAAkBU,EAAK,CACnB,KAAMR,EAAa,eACnB,WAAY,OAChB,CAAC,EACDO,EAAO,MAAM,GAGjB,IAAME,EAAO,IAAI,KAAKD,EAAI,IAAI,EAE9B,OAAI,OAAO,MAAMC,EAAK,QAAQ,CAAC,GAC3BX,EAAkBU,EAAK,CACnB,KAAMR,EAAa,YACvB,CAAC,EACMD,GAGJ,CAAE,OAAQQ,EAAO,MAAO,MAAOE,CAAK,CAC/C,CAKJ,EArCaC,EAANL,EAAMK,EAkCF,OAAS,IAAM,IAAIL,EAAU,CAChC,SAAUF,CACd,CAAC,ECtDL,OACI,qBAAAQ,EAAmB,WAAAC,EAAS,gBAAAC,EAAc,iBAAAC,EAAe,WAAAC,MACtD,MAEP,IAAMC,EAAiB,aAOVC,EAAN,cAAyBF,CAAqC,CAEjE,OAAOG,EAA4C,CAE/C,GAAM,CAAE,OAAAC,EAAQ,IAAAC,CAAI,EAAI,KAAK,oBAAoBF,CAAK,EAEtD,OAAIE,EAAI,aAAeN,EAAc,MACjCH,EAAkBS,EAAK,CACnB,KAAMP,EAAa,aACnB,SAAUC,EAAc,KACxB,SAAUM,EAAI,UAClB,CAAC,EACMR,GAGP,OAAO,MAAMQ,EAAI,KAAK,QAAQ,CAAC,GAC/BT,EAAkBS,EAAK,CACnB,KAAMP,EAAa,YACvB,CAAC,EACMD,GAGJ,CAAE,OAAQO,EAAO,MAAO,MAAQC,EAAI,KAAc,YAAY,CAAE,CAC3E,CAKJ,EA5BaC,EAANJ,EAAMI,EAyBF,OAAS,IAAM,IAAIJ,EAAW,CACjC,SAAUD,CACd,CAAC,EFjCE,IAAMM,EAAS,IAAIC,IAAoDC,EAAYC,EAAU,OAAO,GAAGF,CAAU,EAAIG,GAAOA,EAAG,QAAQ,sBAAsBA,EAAG,WAAW,aAAa,CAAC,EAEnLC,EAAU,IAAIJ,IAAqDC,EAAYI,EAAW,OAAO,GAAGL,CAAU,EAAIG,GAAOA,EAAG,QAAQ,sBAAsBA,EAAG,WAAW,aAAa,CAAC","names":["zod_exports","__export","dateIn","dateOut","withGetType","addIssueToContext","INVALID","ZodIssueCode","ZodParsedType","ZodType","zodDateInKind","isoDateRegex","_ZodDateIn","input","status","ctx","date","ZodDateIn","addIssueToContext","INVALID","ZodIssueCode","ZodParsedType","ZodType","zodDateOutKind","_ZodDateOut","input","status","ctx","ZodDateOut","dateIn","parameters","withGetType","ZodDateIn","ts","dateOut","ZodDateOut"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkOUWZ2PU5js = require('./chunk-OUWZ2PU5.js');var I={};_chunkOUWZ2PU5js.a.call(void 0, I,{dateIn:()=>K,dateOut:()=>w});var _zodtots = require('zod-to-ts');var _zod = require('zod');var N="ZodDateIn",P=/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{3})?)?Z?$/,p=class extends _zod.ZodType{_parse(t){let{status:d,ctx:e}=this._processInputParams(t);if(e.parsedType!==_zod.ZodParsedType.string)return _zod.addIssueToContext.call(void 0, e,{code:_zod.ZodIssueCode.invalid_type,expected:_zod.ZodParsedType.string,received:e.parsedType}),_zod.INVALID;P.test(e.data)||(_zod.addIssueToContext.call(void 0, e,{code:_zod.ZodIssueCode.invalid_string,validation:"regex"}),d.dirty());let y=new Date(e.data);return Number.isNaN(y.getTime())?(_zod.addIssueToContext.call(void 0, e,{code:_zod.ZodIssueCode.invalid_date}),_zod.INVALID):{status:d.value,value:y}}},a=p;a.create=()=>new p({typeName:N});var v="ZodDateOut",i=class extends _zod.ZodType{_parse(t){let{status:d,ctx:e}=this._processInputParams(t);return e.parsedType!==_zod.ZodParsedType.date?(_zod.addIssueToContext.call(void 0, e,{code:_zod.ZodIssueCode.invalid_type,expected:_zod.ZodParsedType.date,received:e.parsedType}),_zod.INVALID):Number.isNaN(e.data.getTime())?(_zod.addIssueToContext.call(void 0, e,{code:_zod.ZodIssueCode.invalid_date}),_zod.INVALID):{status:d.value,value:e.data.toISOString()}}},r=i;r.create=()=>new i({typeName:v});var K=(...o)=>_zodtots.withGetType.call(void 0, a.create(...o),t=>t.factory.createKeywordTypeNode(t.SyntaxKind.StringKeyword)),w= exports.b =(...o)=>_zodtots.withGetType.call(void 0, r.create(...o),t=>t.factory.createKeywordTypeNode(t.SyntaxKind.StringKeyword));exports.a = K; exports.b = w; exports.c = I;
2
+ //# sourceMappingURL=chunk-JXD3457O.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/zod/index.ts","../src/zod/date-in-schema.ts","../src/zod/date-out-schema.ts"],"names":["zod_exports","__export","dateIn","dateOut","withGetType","addIssueToContext","INVALID","ZodIssueCode","ZodParsedType","ZodType","zodDateInKind","isoDateRegex","_ZodDateIn","input","status","ctx","date","ZodDateIn","zodDateOutKind","_ZodDateOut","ZodDateOut","parameters","ts"],"mappings":"wCAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,EAAA,YAAAC,IAAA,OAAS,eAAAC,MAAmB,YCC5B,OACI,qBAAAC,EAAmB,WAAAC,EAAS,gBAAAC,EAAc,iBAAAC,EAAe,WAAAC,MACtD,MAEP,IAAMC,EAAgB,YAOTC,EAAe,uDAOfC,EAAN,cAAwBH,CAAoC,CAE/D,OAAOI,EAA0C,CAE7C,GAAM,CAAE,OAAAC,EAAQ,IAAAC,CAAI,EAAI,KAAK,oBAAoBF,CAAK,EACtD,GAAIE,EAAI,aAAeP,EAAc,OACjC,OAAAH,EAAkBU,EAAK,CACnB,KAAMR,EAAa,aACnB,SAAUC,EAAc,OACxB,SAAUO,EAAI,UAClB,CAAC,EACMT,EAGNK,EAAa,KAAKI,EAAI,IAAc,IACrCV,EAAkBU,EAAK,CACnB,KAAMR,EAAa,eACnB,WAAY,OAChB,CAAC,EACDO,EAAO,MAAM,GAGjB,IAAME,EAAO,IAAI,KAAKD,EAAI,IAAI,EAE9B,OAAI,OAAO,MAAMC,EAAK,QAAQ,CAAC,GAC3BX,EAAkBU,EAAK,CACnB,KAAMR,EAAa,YACvB,CAAC,EACMD,GAGJ,CAAE,OAAQQ,EAAO,MAAO,MAAOE,CAAK,CAC/C,CAKJ,EArCaC,EAANL,EAAMK,EAkCF,OAAS,IAAM,IAAIL,EAAU,CAChC,SAAUF,CACd,CAAC,ECtDL,OACI,qBAAAL,EAAmB,WAAAC,EAAS,gBAAAC,EAAc,iBAAAC,EAAe,WAAAC,MACtD,MAEP,IAAMS,EAAiB,aAOVC,EAAN,cAAyBV,CAAqC,CAEjE,OAAOI,EAA4C,CAE/C,GAAM,CAAE,OAAAC,EAAQ,IAAAC,CAAI,EAAI,KAAK,oBAAoBF,CAAK,EAEtD,OAAIE,EAAI,aAAeP,EAAc,MACjCH,EAAkBU,EAAK,CACnB,KAAMR,EAAa,aACnB,SAAUC,EAAc,KACxB,SAAUO,EAAI,UAClB,CAAC,EACMT,GAGP,OAAO,MAAMS,EAAI,KAAK,QAAQ,CAAC,GAC/BV,EAAkBU,EAAK,CACnB,KAAMR,EAAa,YACvB,CAAC,EACMD,GAGJ,CAAE,OAAQQ,EAAO,MAAO,MAAQC,EAAI,KAAc,YAAY,CAAE,CAC3E,CAKJ,EA5BaK,EAAND,EAAMC,EAyBF,OAAS,IAAM,IAAID,EAAW,CACjC,SAAUD,CACd,CAAC,EFjCE,IAAMhB,EAAS,IAAImB,IAAoDjB,EAAYa,EAAU,OAAO,GAAGI,CAAU,EAAIC,GAAOA,EAAG,QAAQ,sBAAsBA,EAAG,WAAW,aAAa,CAAC,EAEnLnB,EAAU,IAAIkB,IAAqDjB,EAAYgB,EAAW,OAAO,GAAGC,CAAU,EAAIC,GAAOA,EAAG,QAAQ,sBAAsBA,EAAG,WAAW,aAAa,CAAC","sourcesContent":["import { withGetType } from \"zod-to-ts\";\n\nimport { ZodDateIn } from \"./date-in-schema\";\nimport { ZodDateOut } from \"./date-out-schema\";\n\n// eslint-disable-next-line max-len\nexport const dateIn = (...parameters: Parameters<typeof ZodDateIn.create>) => withGetType(ZodDateIn.create(...parameters), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));\n// eslint-disable-next-line max-len\nexport const dateOut = (...parameters: Parameters<typeof ZodDateOut.create>) => withGetType(ZodDateOut.create(...parameters), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));\n","import type { ParseInput, ParseReturnType, ZodTypeDef } from \"zod\";\nimport {\n addIssueToContext, INVALID, ZodIssueCode, ZodParsedType, ZodType,\n} from \"zod\";\n\nconst zodDateInKind = \"ZodDateIn\";\n\n// simple regex for ISO date, supports the following formats:\n// 2021-01-01T00:00:00.000Z\n// 2021-01-01T00:00:00Z\n// 2021-01-01T00:00:00\n// 2021-01-01\nexport const isoDateRegex = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?)?Z?$/;\n\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport interface ZodDateInDef extends ZodTypeDef {\n typeName: typeof zodDateInKind;\n}\n\nexport class ZodDateIn extends ZodType<Date, ZodDateInDef, string> {\n // eslint-disable-next-line no-underscore-dangle\n _parse(input: ParseInput): ParseReturnType<Date> {\n // eslint-disable-next-line no-underscore-dangle\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.string) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n\n if (!isoDateRegex.test(ctx.data as string)) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"regex\",\n });\n status.dirty();\n }\n\n const date = new Date(ctx.data);\n\n if (Number.isNaN(date.getTime())) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n\n return { status: status.value, value: date };\n }\n\n static create = () => new ZodDateIn({\n typeName: zodDateInKind,\n });\n}\n","import type { ParseInput, ParseReturnType, ZodTypeDef } from \"zod\";\nimport {\n addIssueToContext, INVALID, ZodIssueCode, ZodParsedType, ZodType,\n} from \"zod\";\n\nconst zodDateOutKind = \"ZodDateOut\";\n\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport interface ZodDateOutDef extends ZodTypeDef {\n typeName: typeof zodDateOutKind;\n}\n\nexport class ZodDateOut extends ZodType<string, ZodDateOutDef, Date> {\n // eslint-disable-next-line no-underscore-dangle\n _parse(input: ParseInput): ParseReturnType<string> {\n // eslint-disable-next-line no-underscore-dangle\n const { status, ctx } = this._processInputParams(input);\n\n if (ctx.parsedType !== ZodParsedType.date) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n\n if (Number.isNaN(ctx.data.getTime())) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n\n return { status: status.value, value: (ctx.data as Date).toISOString() };\n }\n\n static create = () => new ZodDateOut({\n typeName: zodDateOutKind,\n });\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import i from"next/head";import{RedocStandalone as c}from"redoc";import{Fragment as m,jsx as o,jsxs as p}from"react/jsx-runtime";var f=(t,r={})=>({swaggerData:e})=>p(m,{children:[p(i,{children:[o("title",{children:t}),o("style",{children:`
2
+ body {
3
+ background: #fafafa !important;
4
+ }
5
+ `})]}),o(c,{...r,spec:e})]}),n=f;import g from"next/dynamic";import P from"next/head";import{Fragment as l,jsx as a,jsxs as s}from"react/jsx-runtime";var d=g(()=>import("swagger-ui-react"),{ssr:!1});g(import("swagger-ui-react/swagger-ui.css"),{ssr:!1});var S=(t,r={})=>({swaggerData:e})=>s(l,{children:[s(P,{children:[a("title",{children:t}),a("style",{children:`
6
+ body {
7
+ background: #fafafa !important;
8
+ }
9
+ `})]}),a(d,{...r,spec:e})]}),y=S;import w from"debug";var u=w("visulima:api-platform:swagger:get-static-properties-swagger"),x=t=>async()=>{let e=await(await fetch(t)).json();return u(e),{props:{swaggerUrl:t,swaggerData:JSON.parse(JSON.stringify(e))}}},I=x;export{n as a,y as b,I as c};
10
+ //# sourceMappingURL=chunk-M7LGAQP3.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/next/routes/pages/swagger/redoc.tsx","../src/next/routes/pages/swagger/swagger.tsx","../src/next/routes/pages/swagger/get-static-properties-swagger.ts"],"sourcesContent":["// eslint-disable-next-line import/no-extraneous-dependencies\nimport type { InferGetStaticPropsType, NextPage } from \"next\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport Head from \"next/head\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport type { RedocStandaloneProps } from \"redoc\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { RedocStandalone } from \"redoc\";\n\nimport getStaticProps from \"./get-static-properties-swagger\";\n\n// eslint-disable-next-line max-len\nconst RedocApiDocument: (\n name: string,\n swagger?: Exclude<RedocStandaloneProps, \"spec\">,\n // eslint-disable-next-line max-len,unicorn/no-useless-undefined\n) => NextPage<InferGetStaticPropsType<typeof getStaticProps>> = (name, swagger = {}) => ({ swaggerData }: InferGetStaticPropsType<typeof getStaticProps>) => (\n <>\n <Head>\n <title>{name}</title>\n <style>\n {`\nbody {\n background: #fafafa !important;\n}\n`}\n </style>\n </Head>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <RedocStandalone {...swagger} spec={swaggerData} />\n </>\n);\n\nexport default RedocApiDocument;\n","import type { InferGetStaticPropsType, NextPage } from \"next\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport dynamic from \"next/dynamic\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport Head from \"next/head\";\nimport type { SwaggerUIProps } from \"swagger-ui-react\";\n\nimport getStaticProps from \"./get-static-properties-swagger\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nconst SwaggerUI = dynamic(() => import(\"swagger-ui-react\"), { ssr: false });\n// @ts-ignore\n// eslint-disable-next-line import/no-extraneous-dependencies\ndynamic(import(\"swagger-ui-react/swagger-ui.css\"), { ssr: false });\n\n// eslint-disable-next-line max-len\nconst SwaggerApiDocument: (\n name: string,\n swagger?: Exclude<SwaggerUIProps, \"spec\">,\n // eslint-disable-next-line max-len,unicorn/no-useless-undefined\n) => NextPage<InferGetStaticPropsType<typeof getStaticProps>> = (name, swagger = {}) => ({ swaggerData }: InferGetStaticPropsType<typeof getStaticProps>) => (\n <>\n <Head>\n <title>{name}</title>\n <style>\n {`\nbody {\n background: #fafafa !important;\n}\n`}\n </style>\n </Head>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <SwaggerUI {...swagger} spec={swaggerData} />\n </>\n);\n\nexport default SwaggerApiDocument;\n","// eslint-disable-next-line unicorn/prevent-abbreviations\nimport debug from \"debug\";\nimport type { GetStaticProps } from \"next\";\nimport type { OpenAPIV3 } from \"openapi-types\";\n\n// eslint-disable-next-line testing-library/no-debugging-utils\nconst swaggerDebug = debug(\"visulima:api-platform:swagger:get-static-properties-swagger\");\n\n// eslint-disable-next-line unicorn/consistent-function-scoping\nconst getStaticProps: (\n swaggerUrl: string,\n) => GetStaticProps = (swaggerUrl) => async (): Promise<{\n props: {\n swaggerUrl: string;\n swaggerData: OpenAPIV3.Document;\n };\n}> => {\n // eslint-disable-next-line compat/compat\n const response = await fetch(swaggerUrl);\n const swaggerData = await response.json();\n\n swaggerDebug(swaggerData);\n\n return {\n props: {\n swaggerUrl,\n swaggerData: JSON.parse(JSON.stringify(swaggerData)),\n },\n };\n};\n\nexport default getStaticProps;\n"],"mappings":";AAGA,OAAO,UAAU;AAIjB,SAAS,uBAAuB;AAUpB,mBAEQ,cAFR;AALZ,IAAM,mBAI0D,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,MAC3F;AAAA,EACI;AAAA,2BAAC;AAAA,MACG;AAAA,+BAAC;AAAA,UAAO;AAAA,WAAR;AAAA;AAAA;AAAA;AAAA,eAAa;AAAA,QACb,uBAAC;AAAA,UACI;AAAA;AAAA;AAAA;AAAA;AAAA,WADL;AAAA;AAAA;AAAA;AAAA,eAMA;AAAA;AAAA,OARJ;AAAA;AAAA;AAAA;AAAA,WASA;AAAA,IAEA,uBAAC;AAAA,MAAiB,GAAG;AAAA,MAAS,MAAM;AAAA,OAApC;AAAA;AAAA;AAAA;AAAA,WAAiD;AAAA;AAAA,GAZrD;AAAA;AAAA;AAAA;AAAA,OAaA;AAGZ,IAAO,gBAAQ;;;AC/Bf,OAAO,aAAa;AAEpB,OAAOA,WAAU;AAgBL,qBAAAC,WAEQ,UAAAC,eAFR;AAXZ,IAAM,YAAY,QAAQ,MAAM,OAAO,qBAAqB,EAAE,KAAK,MAAM,CAAC;AAG1E,QAAQ,OAAO,oCAAoC,EAAE,KAAK,MAAM,CAAC;AAGjE,IAAM,qBAI0D,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,MAC3F,gBAAAA,QAAAD,WAAA;AAAA,EACI;AAAA,oBAAAC,QAACF,OAAA;AAAA,MACG;AAAA,wBAAAE,QAAC;AAAA,UAAO;AAAA,WAAR;AAAA;AAAA;AAAA;AAAA,eAAa;AAAA,QACb,gBAAAA,QAAC;AAAA,UACI;AAAA;AAAA;AAAA;AAAA;AAAA,WADL;AAAA;AAAA;AAAA;AAAA,eAMA;AAAA;AAAA,OARJ;AAAA;AAAA;AAAA;AAAA,WASA;AAAA,IAEA,gBAAAA,QAAC;AAAA,MAAW,GAAG;AAAA,MAAS,MAAM;AAAA,OAA9B;AAAA;AAAA;AAAA;AAAA,WAA2C;AAAA;AAAA,GAZ/C;AAAA;AAAA;AAAA;AAAA,OAaA;AAGZ,IAAO,kBAAQ;;;ACnCf,OAAO,WAAW;AAKlB,IAAM,eAAe,MAAM,6DAA6D;AAGxF,IAAM,iBAEgB,CAAC,eAAe,YAKhC;AAEF,QAAM,WAAW,MAAM,MAAM,UAAU;AACvC,QAAM,cAAc,MAAM,SAAS,KAAK;AAExC,eAAa,WAAW;AAExB,SAAO;AAAA,IACH,OAAO;AAAA,MACH;AAAA,MACA,aAAa,KAAK,MAAM,KAAK,UAAU,WAAW,CAAC;AAAA,IACvD;AAAA,EACJ;AACJ;AAEA,IAAO,wCAAQ;","names":["Head","Fragment","jsxDEV"]}
1
+ {"version":3,"sources":["../src/next/routes/pages/swagger/redoc.tsx","../src/next/routes/pages/swagger/swagger.tsx","../src/next/routes/pages/swagger/get-static-properties-swagger.ts"],"sourcesContent":["// eslint-disable-next-line import/no-extraneous-dependencies\nimport type { InferGetStaticPropsType, NextPage } from \"next\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport Head from \"next/head\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport type { RedocStandaloneProps } from \"redoc\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { RedocStandalone } from \"redoc\";\n\nimport getStaticProps from \"./get-static-properties-swagger\";\n\n// eslint-disable-next-line max-len\nconst RedocApiDocument: (\n name: string,\n swagger?: Exclude<RedocStandaloneProps, \"spec\">,\n // eslint-disable-next-line max-len,unicorn/no-useless-undefined\n) => NextPage<InferGetStaticPropsType<typeof getStaticProps>> = (name, swagger = {}) => ({ swaggerData }: InferGetStaticPropsType<typeof getStaticProps>) => (\n <>\n <Head>\n <title>{name}</title>\n <style>\n {`\nbody {\n background: #fafafa !important;\n}\n`}\n </style>\n </Head>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <RedocStandalone {...swagger} spec={swaggerData} />\n </>\n);\n\nexport default RedocApiDocument;\n","import type { InferGetStaticPropsType, NextPage } from \"next\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport dynamic from \"next/dynamic\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport Head from \"next/head\";\nimport type { SwaggerUIProps } from \"swagger-ui-react\";\n\nimport getStaticProps from \"./get-static-properties-swagger\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nconst SwaggerUI = dynamic(() => import(\"swagger-ui-react\"), { ssr: false });\n// @ts-ignore\n// eslint-disable-next-line import/no-extraneous-dependencies\ndynamic(import(\"swagger-ui-react/swagger-ui.css\"), { ssr: false });\n\n// eslint-disable-next-line max-len\nconst SwaggerApiDocument: (\n name: string,\n swagger?: Exclude<SwaggerUIProps, \"spec\">,\n // eslint-disable-next-line max-len,unicorn/no-useless-undefined\n) => NextPage<InferGetStaticPropsType<typeof getStaticProps>> = (name, swagger = {}) => ({ swaggerData }: InferGetStaticPropsType<typeof getStaticProps>) => (\n <>\n <Head>\n <title>{name}</title>\n <style>\n {`\nbody {\n background: #fafafa !important;\n}\n`}\n </style>\n </Head>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <SwaggerUI {...swagger} spec={swaggerData} />\n </>\n);\n\nexport default SwaggerApiDocument;\n","// eslint-disable-next-line unicorn/prevent-abbreviations\nimport debug from \"debug\";\nimport type { GetStaticProps } from \"next\";\nimport type { OpenAPIV3 } from \"openapi-types\";\n\n// eslint-disable-next-line testing-library/no-debugging-utils\nconst swaggerDebug = debug(\"visulima:api-platform:swagger:get-static-properties-swagger\");\n\n// eslint-disable-next-line unicorn/consistent-function-scoping\nconst getStaticProps: (\n swaggerUrl: string,\n) => GetStaticProps = (swaggerUrl) => async (): Promise<{\n props: {\n swaggerUrl: string;\n swaggerData: OpenAPIV3.Document;\n };\n}> => {\n // eslint-disable-next-line compat/compat\n const response = await fetch(swaggerUrl);\n const swaggerData = await response.json();\n\n swaggerDebug(swaggerData);\n\n return {\n props: {\n swaggerUrl,\n swaggerData: JSON.parse(JSON.stringify(swaggerData)),\n },\n };\n};\n\nexport default getStaticProps;\n"],"mappings":"AAGA,OAAOA,MAAU,YAIjB,OAAS,mBAAAC,MAAuB,QAUpB,mBAAAC,EAEQ,OAAAC,EADJ,QAAAC,MADJ,oBALZ,IAAMC,EAI0D,CAACC,EAAMC,EAAU,CAAC,IAAM,CAAC,CAAE,YAAAC,CAAY,IAC3FJ,EAAAF,EAAA,CACI,UAAAE,EAACJ,EAAA,CACG,UAAAG,EAAC,SAAO,SAAAG,EAAK,EACbH,EAAC,SACI;AAAA;AAAA;AAAA;AAAA,EAKL,GACJ,EAEAA,EAACF,EAAA,CAAiB,GAAGM,EAAS,KAAMC,EAAa,GACrD,EAGLC,EAAQJ,EC/Bf,OAAOK,MAAa,eAEpB,OAAOC,MAAU,YAgBL,mBAAAC,EAEQ,OAAAC,EADJ,QAAAC,MADJ,oBAXZ,IAAMC,EAAYL,EAAQ,IAAM,OAAO,oBAAqB,CAAE,IAAK,EAAM,CAAC,EAG1EA,EAAQ,OAAO,mCAAoC,CAAE,IAAK,EAAM,CAAC,EAGjE,IAAMM,EAI0D,CAACC,EAAMC,EAAU,CAAC,IAAM,CAAC,CAAE,YAAAC,CAAY,IAC3FL,EAAAF,EAAA,CACI,UAAAE,EAACH,EAAA,CACG,UAAAE,EAAC,SAAO,SAAAI,EAAK,EACbJ,EAAC,SACI;AAAA;AAAA;AAAA;AAAA,EAKL,GACJ,EAEAA,EAACE,EAAA,CAAW,GAAGG,EAAS,KAAMC,EAAa,GAC/C,EAGLC,EAAQJ,ECnCf,OAAOK,MAAW,QAKlB,IAAMC,EAAeD,EAAM,6DAA6D,EAGlFE,EAEiBC,GAAe,SAKhC,CAGF,IAAMC,EAAc,MADH,MAAM,MAAMD,CAAU,GACJ,KAAK,EAExC,OAAAF,EAAaG,CAAW,EAEjB,CACH,MAAO,CACH,WAAAD,EACA,YAAa,KAAK,MAAM,KAAK,UAAUC,CAAW,CAAC,CACvD,CACJ,CACJ,EAEOC,EAAQH","names":["Head","RedocStandalone","Fragment","jsx","jsxs","RedocApiDocument","name","swagger","swaggerData","redoc_default","dynamic","Head","Fragment","jsx","jsxs","SwaggerUI","SwaggerApiDocument","name","swagger","swaggerData","swagger_default","debug","swaggerDebug","getStaticProps","swaggerUrl","swaggerData","get_static_properties_swagger_default"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var d=Object.defineProperty;var e=(c,a)=>{for(var b in a)d(c,b,{get:a[b],enumerable:!0})};exports.a = e;
2
+ //# sourceMappingURL=chunk-OUWZ2PU5.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _crud = require('@visulima/crud');var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);var _lodashmerge = require('lodash.merge'); var _lodashmerge2 = _interopRequireDefault(_lodashmerge);var _fs = require('fs');var _path = require('path'); var _path2 = _interopRequireDefault(_path);var _yaml = require('yaml');var D=e=>_yaml.stringify.call(void 0, e,{indent:2}),w= exports.a =D;var _case = require('case');var _jstoxml = require('jstoxml');var I="application/json",V=(e,n,s)=>{var a,c,p,r,t;((c=(a=e==null?void 0:e.responses)==null?void 0:a[n])==null?void 0:c.content)===void 0&&(e.responses[n].content={}),((t=(r=(p=e==null?void 0:e.responses)==null?void 0:p[n])==null?void 0:r.content)==null?void 0:t[s])===void 0&&(e.responses[n].content[s]={})},v=(e,n,s)=>{typeof e.components!="object"&&(e.components={}),typeof e.components.schemas!="object"&&(e.components.schemas={}),e.components.schemas[n]===void 0&&(e.components.schemas[n]=s)},H=(e,n,s,a,c)=>{var p,r,t,f;V(e,n,s),((f=(t=(r=(p=e==null?void 0:e.responses)==null?void 0:p[n])==null?void 0:r.content)==null?void 0:t[s])==null?void 0:f.schema)===void 0&&(e.responses[n].content[s].schema={}),e.responses[n].content[s].schema=c?{type:"array",items:{$ref:`#/components/schemas/${a}`}}:{$ref:`#/components/schemas/${a}`}},F=(e,n,s,a,c,p)=>{let r,t;return Object.entries(n.content).forEach(([f,o])=>{if(typeof o.schema=="object"){let{schema:i}=o;f===I&&o.examples!==void 0?t=o.examples:f===I&&o.example!==void 0&&(r=o.example);let O=i.type==="array";Object.entries(s||{}).forEach(([j,b])=>{if(!b)return;let P;i.$ref===void 0?(P=`${_case.header.call(void 0, a.trim().replace("/",""))}${j==="application/ld+json"?".jsonld":""}`,v(c,P,i)):P=i.$ref.replace("#/components/schemas/",""),H(e,p,j,P,O)})}}),{examples:t,example:r}},J=(e,n,s,a,c,p)=>{Object.keys(n.content).forEach(r=>{r!==I&&Object.entries(a||{}).forEach(([t,f])=>{var i,O,j,b;if(!f)return;V(e,s,t),((b=(j=(O=(i=e==null?void 0:e.responses)==null?void 0:i[s])==null?void 0:O.content)==null?void 0:j[t])==null?void 0:b.example)===void 0&&(e.responses[s].content[t].example={});let o=!1;c.forEach(({regex:P,transformer:A})=>{!o&&P.test(t)&&(e.responses[s].content[t].example=A(p),o=!0)}),o||(e.responses[s].content[t].example=p)})})},W=(e,n,s)=>{typeof e.components!="object"&&(e.components={}),typeof e.components.examples!="object"&&(e.components.examples={}),e.components.examples[n]===void 0&&s[n]!==void 0&&(e.components.examples[n]=s[n])},z=(e,n,s,a,c,p)=>{var t,f,o,i;V(n,s,a),((i=(o=(f=(t=n==null?void 0:n.responses)==null?void 0:t[s])==null?void 0:f.content)==null?void 0:o[a])==null?void 0:i.examples)===void 0&&(n.responses[s].content[a].examples={});let r={};Object.entries(p).forEach(([O,j])=>{var P,A;let b=!1;c.forEach(({regex:k,transformer:h})=>{var m,u,d,y,R,x;if(!b&&k.test(a)){let g="";((u=(m=e.components)==null?void 0:m.examples)==null?void 0:u[O])!==void 0?g=((y=(d=e.components)==null?void 0:d.examples)==null?void 0:y[O]).value:j?g=((x=(R=e.components)==null?void 0:R.examples)==null?void 0:x[j.$ref.replace("#/components/examples/","")]).value:typeof(j==null?void 0:j.value)=="string"&&(g=j.value),r[O]={value:h(g)},b=!0}}),b||(r[O]=((A=(P=e.components)==null?void 0:P.examples)==null?void 0:A[O])===void 0?j:{$ref:`#/components/examples/${O}`})}),n.responses[s].content[a].examples=r},L=(e,n,s,a,c,p,r,t)=>{let f=`${_case.header.call(void 0, p.trim().replace("/",""))}`;Object.keys(a.content).forEach(o=>{o!==I&&Object.entries(c||{}).forEach(([i,O])=>{!O||(W(e,f,t),z(e,n,s,i,r,t))})})};function l(e,n,s=[{regex:/xml/,transformer:a=>_jstoxml.toXML.call(void 0, a,{header:!0,indent:" "})},{regex:/yaml|yml/,transformer:a=>_yaml.stringify.call(void 0, a,{indent:2})}]){return typeof e=="object"&&typeof e.paths=="object"&&Object.entries(e.paths).forEach(([a,c])=>{Object.values(c).forEach(p=>{typeof p.responses=="object"&&Object.entries(p.responses).forEach(([r,t])=>{if(typeof t.content=="object"){let{examples:f,example:o}=F(p,t,n,a,e,r);o!==void 0?J(p,t,r,n,s,o):f!==void 0&&L(e,p,r,t,n,a,s,f)}})})}),e}var U=_debug2.default.call(void 0, "visulima:api-platform:swagger:crud:get-static-properties-swagger"),Y=(e={})=>{let{allowedMediaTypes:n={"application/json":!0},swaggerFilePath:s,crud:a,specs:c}=e;return async(p,r)=>{let t=_path2.default.join(process.cwd(),s||"swagger/swagger.json");if(!_fs.existsSync.call(void 0, t))throw new Error(`Swagger file not found at ${t}. Did you change the output path in "withOpenApi" inside the next.config.js file?`);let f=_fs.readFileSync.call(void 0, t,"utf8"),o=l(JSON.parse(f),n),i={};if(a!==void 0)try{let O=await _crud.modelsToOpenApi.call(void 0, a);i={components:{schemas:O.schemas,examples:O.examples},tags:O.tags,paths:O.paths},i=l(i,n),U(JSON.stringify(i,null,2)),o=_lodashmerge2.default.call(void 0, o,i)}catch(O){throw console.log(O),new Error("Please install @visulima/crud to use the crud swagger generator.")}Array.isArray(c)&&c.forEach(O=>{o=_lodashmerge2.default.call(void 0, o,l(O,n))}),typeof p.headers.accept=="string"&&/yaml|yml/.test(p.headers.accept)?(r.statusCode=200,r.setHeader("Content-Type",p.headers.accept),r.end(w(o))):(r.statusCode=200,r.setHeader("Content-Type","application/json"),r.end(JSON.stringify(o,null,2)))}},Oe= exports.b =Y;exports.a = w; exports.b = Oe;
2
+ //# sourceMappingURL=chunk-QIHOLJVA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/swagger/swagger-handler.ts","../src/connect/serializers/yaml.ts","../src/swagger/extend-swagger-spec.ts"],"names":["modelsToOpenApi","debug","merge","existsSync","readFileSync","path","stringify","yamlTransformer","data","yaml_default","headerCase","toXML","jsonMediaType","prepareStatusContent","methodSpec","status","mediaType","_a","_b","_c","_d","_e","extendComponentSchemas","spec","schemaName","schema","extendResponseSchema","schemaIsArray","extendSwaggerWithMediaTypeSchema","responseSpec","allowedMediaTypes","pathKey","example","examples","mediaName","contentSpec","allowed","extendSwaggerWithMediaTypeExample","transformers","transformed","regex","transformer","extendComponentExamples","exampleName","prepareResponseExamples","transformedExamples","_f","extendSwaggerWithMediaTypeExamples","examplesName","extendSwaggerSpec","value","pathSpec","swaggerCrudDebug","swaggerHandler","options","swaggerFilePath","crud","specs","request","response","swaggerPath","fileContents","crudSwagger","modelsOpenApi","error","swagger_handler_default"],"mappings":"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","sourcesContent":["// eslint-disable-next-line unicorn/prevent-abbreviations,import/no-extraneous-dependencies\nimport type { ModelsToOpenApiParameters, SwaggerModelsConfig } from \"@visulima/crud\";\n// eslint-disable-next-line unicorn/prevent-abbreviations,import/no-extraneous-dependencies\nimport { modelsToOpenApi } from \"@visulima/crud\";\nimport debug from \"debug\";\nimport merge from \"lodash.merge\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport path from \"node:path\";\nimport type { OpenAPIV3 } from \"openapi-types\";\n\nimport yamlTransformer from \"../connect/serializers/yaml\";\nimport extendSwaggerSpec from \"./extend-swagger-spec\";\n\n// eslint-disable-next-line testing-library/no-debugging-utils\nconst swaggerCrudDebug = debug(\"visulima:api-platform:swagger:crud:get-static-properties-swagger\");\n\nconst swaggerHandler = (options: Partial<SwaggerHandlerOptions> = {}) => {\n const {\n allowedMediaTypes = {\n \"application/json\": true,\n },\n swaggerFilePath,\n crud,\n specs,\n } = options;\n\n return async <Request extends IncomingMessage, Response extends ServerResponse>(request: Request, response: Response) => {\n const swaggerPath = path.join(process.cwd(), swaggerFilePath || \"swagger/swagger.json\");\n\n if (!existsSync(swaggerPath)) {\n throw new Error(`Swagger file not found at ${swaggerPath}. Did you change the output path in \"withOpenApi\" inside the next.config.js file?`);\n }\n\n const fileContents = readFileSync(swaggerPath, \"utf8\");\n\n let spec = extendSwaggerSpec(JSON.parse(fileContents) as OpenAPIV3.Document, allowedMediaTypes) as OpenAPIV3.Document;\n let crudSwagger: Partial<OpenAPIV3.Document> = {};\n\n if (crud !== undefined) {\n try {\n const modelsOpenApi = await modelsToOpenApi(crud);\n\n crudSwagger = {\n components: { schemas: modelsOpenApi.schemas, examples: modelsOpenApi.examples },\n tags: modelsOpenApi.tags as OpenAPIV3.TagObject[],\n paths: modelsOpenApi.paths,\n };\n\n crudSwagger = extendSwaggerSpec(crudSwagger, allowedMediaTypes);\n\n swaggerCrudDebug(JSON.stringify(crudSwagger, null, 2));\n\n spec = merge(spec, crudSwagger);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error);\n\n throw new Error(\"Please install @visulima/crud to use the crud swagger generator.\");\n }\n }\n\n if (Array.isArray(specs)) {\n specs.forEach((value) => {\n spec = merge(spec, extendSwaggerSpec(value, allowedMediaTypes));\n });\n }\n\n if (typeof request.headers.accept === \"string\" && /yaml|yml/.test(request.headers.accept)) {\n response.statusCode = 200;\n response.setHeader(\"Content-Type\", request.headers.accept);\n response.end(yamlTransformer(spec));\n } else {\n response.statusCode = 200;\n response.setHeader(\"Content-Type\", \"application/json\");\n response.end(JSON.stringify(spec, null, 2));\n }\n };\n};\n\nexport type SwaggerHandlerOptions = {\n allowedMediaTypes: { [key: string]: boolean };\n swaggerFilePath: string;\n crud: Exclude<ModelsToOpenApiParameters, \"swagger\"> & {\n swagger?: {\n models?: SwaggerModelsConfig<string>;\n };\n };\n specs?: Partial<OpenAPIV3.Document>[];\n};\n\nexport default swaggerHandler;\n","import { stringify } from \"yaml\";\n\nimport type { Serializer } from \"./types\";\n\nconst yamlTransformer: Serializer = (data) => stringify(data, { indent: 2 });\n\nexport default yamlTransformer;\n","/* eslint-disable no-param-reassign */\nimport { header as headerCase } from \"case\";\nimport { toXML } from \"jstoxml\";\nimport type { OpenAPIV3 } from \"openapi-types\";\nimport { stringify } from \"yaml\";\n\ntype Transformers = { regex: RegExp; transformer: (data: any) => string }[];\n\nconst jsonMediaType = \"application/json\";\n\nconst prepareStatusContent = (methodSpec: OpenAPIV3.OperationObject<{}>, status: string, mediaType: string) => {\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content === undefined) {\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content = {};\n }\n\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType] === undefined) {\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] = {} as OpenAPIV3.MediaTypeObject;\n }\n};\n\nconst extendComponentSchemas = (spec: Partial<OpenAPIV3.Document>, schemaName: string, schema: OpenAPIV3.SchemaObject) => {\n if (typeof spec.components !== \"object\") {\n spec.components = {};\n }\n\n if (typeof spec.components.schemas !== \"object\") {\n spec.components.schemas = {};\n }\n\n if (spec.components.schemas[schemaName] === undefined) {\n spec.components.schemas[schemaName] = schema;\n }\n};\n\nconst extendResponseSchema = (methodSpec: OpenAPIV3.OperationObject, status: string, mediaType: string, schemaName: string, schemaIsArray: boolean) => {\n prepareStatusContent(methodSpec, status, mediaType);\n\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType]?.schema === undefined) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).schema = {} as OpenAPIV3.SchemaObject;\n }\n\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).schema = schemaIsArray\n ? {\n type: \"array\",\n items: {\n $ref: `#/components/schemas/${schemaName}`,\n },\n }\n : {\n $ref: `#/components/schemas/${schemaName}`,\n };\n};\n\nconst extendSwaggerWithMediaTypeSchema = (\n methodSpec: OpenAPIV3.OperationObject,\n responseSpec: OpenAPIV3.ResponseObject,\n allowedMediaTypes: { [p: string]: boolean } | undefined,\n pathKey: string,\n spec: Partial<OpenAPIV3.Document>,\n status: string,\n): {\n example?: any;\n examples?: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n };\n} => {\n let example: any | undefined;\n let examples:\n | {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n }\n | undefined;\n\n // eslint-disable-next-line radar/cognitive-complexity\n Object.entries(responseSpec.content as object).forEach(([mediaName, contentSpec]) => {\n if (typeof contentSpec.schema === \"object\") {\n const { schema } = contentSpec;\n\n if (mediaName === jsonMediaType && contentSpec.examples !== undefined) {\n examples = contentSpec.examples;\n } else if (mediaName === jsonMediaType && contentSpec.example !== undefined) {\n example = contentSpec.example;\n }\n\n const schemaIsArray = (schema as OpenAPIV3.SchemaObject).type === \"array\";\n\n Object.entries(allowedMediaTypes || {}).forEach(([mediaType, allowed]) => {\n if (!allowed) {\n return;\n }\n\n let schemaName: string;\n\n if ((schema as OpenAPIV3.ReferenceObject).$ref === undefined) {\n // eslint-disable-next-line max-len\n schemaName = `${headerCase(pathKey.trim().replace(\"/\", \"\"))}${mediaType === \"application/ld+json\" ? \".jsonld\" : \"\"}`;\n\n extendComponentSchemas(spec as OpenAPIV3.Document, schemaName, schema as OpenAPIV3.SchemaObject);\n } else {\n // eslint-disable-next-line max-len\n schemaName = (schema as OpenAPIV3.ReferenceObject).$ref.replace(\"#/components/schemas/\", \"\");\n }\n\n extendResponseSchema(methodSpec, status, mediaType, schemaName, schemaIsArray);\n });\n }\n });\n\n return { examples, example };\n};\n\nconst extendSwaggerWithMediaTypeExample = (\n methodSpec: OpenAPIV3.OperationObject,\n responseSpec: OpenAPIV3.ResponseObject,\n status: string,\n allowedMediaTypes: { [p: string]: boolean } | undefined,\n transformers: Transformers,\n example: any,\n) => {\n Object.keys(responseSpec.content as object).forEach((mediaName) => {\n if (mediaName === jsonMediaType) {\n return;\n }\n\n Object.entries(allowedMediaTypes || {}).forEach(([mediaType, allowed]) => {\n if (!allowed) {\n return;\n }\n\n prepareStatusContent(methodSpec, status, mediaType);\n\n if (\n ((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType]?.example\n === undefined\n ) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).example = {};\n }\n\n let transformed = false;\n\n transformers.forEach(({ regex, transformer }) => {\n if (!transformed && regex.test(mediaType)) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).example = transformer(example);\n\n transformed = true;\n }\n });\n\n if (!transformed) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).example = example;\n }\n });\n });\n};\n\nconst extendComponentExamples = (\n spec: Partial<OpenAPIV3.Document>,\n exampleName: string,\n examples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n },\n) => {\n if (typeof spec.components !== \"object\") {\n spec.components = {};\n }\n\n if (typeof spec.components.examples !== \"object\") {\n spec.components.examples = {};\n }\n\n if (spec.components.examples[exampleName] === undefined && examples[exampleName] !== undefined) {\n spec.components.examples[exampleName] = examples[exampleName] as OpenAPIV3.ExampleObject;\n }\n};\n\nconst prepareResponseExamples = (\n spec: Partial<OpenAPIV3.Document>,\n methodSpec: OpenAPIV3.OperationObject,\n status: string,\n mediaType: string,\n transformers: Transformers,\n examples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n },\n // eslint-disable-next-line radar/cognitive-complexity\n) => {\n prepareStatusContent(methodSpec, status, mediaType);\n\n if (((methodSpec?.responses as unknown as OpenAPIV3.ResponsesObject)?.[status] as OpenAPIV3.ResponseObject)?.content?.[mediaType]?.examples === undefined) {\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).examples = {};\n }\n\n const transformedExamples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n } = {};\n\n Object.entries(examples).forEach(([exampleName, example]) => {\n let transformed = false;\n\n transformers.forEach(({ regex, transformer }) => {\n if (!transformed && regex.test(mediaType)) {\n let data: any = \"\";\n\n if ((spec.components?.examples?.[exampleName] as OpenAPIV3.ExampleObject) !== undefined) {\n data = (spec.components?.examples?.[exampleName] as OpenAPIV3.ExampleObject).value;\n } else if (example as OpenAPIV3.ReferenceObject) {\n data = (\n spec.components?.examples?.[\n (example as OpenAPIV3.ReferenceObject).$ref.replace(\"#/components/examples/\", \"\")\n ] as OpenAPIV3.ExampleObject\n ).value;\n } else if (typeof (example as OpenAPIV3.ExampleObject)?.value === \"string\") {\n data = (example as OpenAPIV3.ExampleObject).value;\n }\n\n transformedExamples[exampleName] = {\n value: transformer(data),\n };\n\n transformed = true;\n }\n });\n\n if (!transformed) {\n transformedExamples[exampleName] = spec.components?.examples?.[exampleName] === undefined\n ? example\n : {\n $ref: `#/components/examples/${exampleName}`,\n };\n }\n });\n\n (\n (\n ((methodSpec.responses as unknown as OpenAPIV3.ResponsesObject)[status] as OpenAPIV3.ResponseObject).content as {\n [key: string]: OpenAPIV3.MediaTypeObject;\n }\n )[mediaType] as OpenAPIV3.MediaTypeObject\n ).examples = transformedExamples;\n};\n\nconst extendSwaggerWithMediaTypeExamples = (\n spec: Partial<OpenAPIV3.Document>,\n methodSpec: OpenAPIV3.OperationObject,\n status: string,\n responseSpec: OpenAPIV3.ResponseObject,\n allowedMediaTypes: { [p: string]: boolean } | undefined,\n pathKey: string,\n transformers: Transformers,\n examples: {\n [media: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.ExampleObject;\n },\n) => {\n const examplesName = `${headerCase(pathKey.trim().replace(\"/\", \"\"))}`;\n\n Object.keys(responseSpec.content as object).forEach((mediaName) => {\n if (mediaName === jsonMediaType) {\n return;\n }\n\n Object.entries(allowedMediaTypes || {}).forEach(([mediaType, allowed]) => {\n if (!allowed) {\n return;\n }\n\n extendComponentExamples(spec, examplesName, examples);\n\n prepareResponseExamples(spec, methodSpec, status, mediaType, transformers, examples);\n });\n });\n};\n\n// eslint-disable-next-line radar/cognitive-complexity\nexport default function extendSwaggerSpec(\n spec: Partial<OpenAPIV3.Document>,\n allowedMediaTypes?: { [key: string]: boolean },\n transformers: Transformers = [\n {\n regex: /xml/,\n transformer: (value) => toXML(value, {\n header: true,\n indent: \" \",\n }),\n },\n {\n regex: /yaml|yml/,\n transformer: (value) => stringify(value, { indent: 2 }),\n },\n ],\n): Partial<OpenAPIV3.Document> {\n if (typeof spec === \"object\" && typeof spec.paths === \"object\") {\n Object.entries(spec.paths).forEach(([pathKey, pathSpec]) => {\n Object.values(pathSpec as OpenAPIV3.PathsObject & OpenAPIV3.OperationObject).forEach((methodSpec) => {\n if (typeof (methodSpec as OpenAPIV3.OperationObject).responses === \"object\") {\n Object.entries((methodSpec as OpenAPIV3.OperationObject).responses).forEach(([status, responseSpec]) => {\n if (typeof (responseSpec as OpenAPIV3.ResponseObject).content === \"object\") {\n const { examples, example } = extendSwaggerWithMediaTypeSchema(\n methodSpec as OpenAPIV3.OperationObject,\n responseSpec as OpenAPIV3.ResponseObject,\n allowedMediaTypes,\n pathKey,\n spec,\n status,\n );\n\n if (example !== undefined) {\n extendSwaggerWithMediaTypeExample(\n methodSpec as OpenAPIV3.OperationObject,\n responseSpec as OpenAPIV3.ResponseObject,\n status,\n allowedMediaTypes,\n transformers,\n example,\n );\n } else if (examples !== undefined) {\n extendSwaggerWithMediaTypeExamples(\n spec,\n methodSpec as OpenAPIV3.OperationObject,\n status,\n responseSpec as OpenAPIV3.ResponseObject,\n allowedMediaTypes,\n pathKey,\n transformers,\n examples,\n );\n }\n }\n });\n }\n });\n });\n }\n\n return spec;\n}\n\n/* eslint-enable no-param-reassign */\n"]}
@@ -0,0 +1,10 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _head = require('next/head'); var _head2 = _interopRequireDefault(_head);var _redoc = require('redoc');var _jsxruntime = require('react/jsx-runtime');var f=(t,r={})=>({swaggerData:e})=>_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsxs.call(void 0, _head2.default,{children:[_jsxruntime.jsx.call(void 0, "title",{children:t}),_jsxruntime.jsx.call(void 0, "style",{children:`
2
+ body {
3
+ background: #fafafa !important;
4
+ }
5
+ `})]}),_jsxruntime.jsx.call(void 0, _redoc.RedocStandalone,{...r,spec:e})]}),n= exports.a =f;var _dynamic = require('next/dynamic'); var _dynamic2 = _interopRequireDefault(_dynamic);var d=_dynamic2.default.call(void 0, ()=>Promise.resolve().then(() => require("swagger-ui-react")),{ssr:!1});_dynamic2.default.call(void 0, Promise.resolve().then(() => require("swagger-ui-react/swagger-ui.css")),{ssr:!1});var S=(t,r={})=>({swaggerData:e})=>_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsxs.call(void 0, _head2.default,{children:[_jsxruntime.jsx.call(void 0, "title",{children:t}),_jsxruntime.jsx.call(void 0, "style",{children:`
6
+ body {
7
+ background: #fafafa !important;
8
+ }
9
+ `})]}),_jsxruntime.jsx.call(void 0, d,{...r,spec:e})]}),y= exports.b =S;var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);var u=_debug2.default.call(void 0, "visulima:api-platform:swagger:get-static-properties-swagger"),x=t=>async()=>{let e=await(await fetch(t)).json();return u(e),{props:{swaggerUrl:t,swaggerData:JSON.parse(JSON.stringify(e))}}},I= exports.c =x;exports.a = n; exports.b = y; exports.c = I;
10
+ //# sourceMappingURL=chunk-UI23SSBN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/next/routes/pages/swagger/redoc.tsx","../src/next/routes/pages/swagger/swagger.tsx","../src/next/routes/pages/swagger/get-static-properties-swagger.ts"],"names":["Head","RedocStandalone","Fragment","jsx","jsxs","RedocApiDocument","name","swagger","swaggerData","redoc_default","dynamic","SwaggerUI","SwaggerApiDocument","swagger_default","debug","swaggerDebug","getStaticProps","swaggerUrl","get_static_properties_swagger_default"],"mappings":"AAGA,OAAOA,MAAU,YAIjB,OAAS,mBAAAC,MAAuB,QAUpB,mBAAAC,EAEQ,OAAAC,EADJ,QAAAC,MADJ,oBALZ,IAAMC,EAI0D,CAACC,EAAMC,EAAU,CAAC,IAAM,CAAC,CAAE,YAAAC,CAAY,IAC3FJ,EAAAF,EAAA,CACI,UAAAE,EAACJ,EAAA,CACG,UAAAG,EAAC,SAAO,SAAAG,EAAK,EACbH,EAAC,SACI;AAAA;AAAA;AAAA;AAAA,EAKL,GACJ,EAEAA,EAACF,EAAA,CAAiB,GAAGM,EAAS,KAAMC,EAAa,GACrD,EAGLC,EAAQJ,EC/Bf,OAAOK,MAAa,eAEpB,OAAOV,MAAU,YAgBL,mBAAAE,EAEQ,OAAAC,EADJ,QAAAC,MADJ,oBAXZ,IAAMO,EAAYD,EAAQ,IAAM,OAAO,oBAAqB,CAAE,IAAK,EAAM,CAAC,EAG1EA,EAAQ,OAAO,mCAAoC,CAAE,IAAK,EAAM,CAAC,EAGjE,IAAME,EAI0D,CAACN,EAAMC,EAAU,CAAC,IAAM,CAAC,CAAE,YAAAC,CAAY,IAC3FJ,EAAAF,EAAA,CACI,UAAAE,EAACJ,EAAA,CACG,UAAAG,EAAC,SAAO,SAAAG,EAAK,EACbH,EAAC,SACI;AAAA;AAAA;AAAA;AAAA,EAKL,GACJ,EAEAA,EAACQ,EAAA,CAAW,GAAGJ,EAAS,KAAMC,EAAa,GAC/C,EAGLK,EAAQD,ECnCf,OAAOE,MAAW,QAKlB,IAAMC,EAAeD,EAAM,6DAA6D,EAGlFE,EAEiBC,GAAe,SAKhC,CAGF,IAAMT,EAAc,MADH,MAAM,MAAMS,CAAU,GACJ,KAAK,EAExC,OAAAF,EAAaP,CAAW,EAEjB,CACH,MAAO,CACH,WAAAS,EACA,YAAa,KAAK,MAAM,KAAK,UAAUT,CAAW,CAAC,CACvD,CACJ,CACJ,EAEOU,EAAQF","sourcesContent":["// eslint-disable-next-line import/no-extraneous-dependencies\nimport type { InferGetStaticPropsType, NextPage } from \"next\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport Head from \"next/head\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport type { RedocStandaloneProps } from \"redoc\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { RedocStandalone } from \"redoc\";\n\nimport getStaticProps from \"./get-static-properties-swagger\";\n\n// eslint-disable-next-line max-len\nconst RedocApiDocument: (\n name: string,\n swagger?: Exclude<RedocStandaloneProps, \"spec\">,\n // eslint-disable-next-line max-len,unicorn/no-useless-undefined\n) => NextPage<InferGetStaticPropsType<typeof getStaticProps>> = (name, swagger = {}) => ({ swaggerData }: InferGetStaticPropsType<typeof getStaticProps>) => (\n <>\n <Head>\n <title>{name}</title>\n <style>\n {`\nbody {\n background: #fafafa !important;\n}\n`}\n </style>\n </Head>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <RedocStandalone {...swagger} spec={swaggerData} />\n </>\n);\n\nexport default RedocApiDocument;\n","import type { InferGetStaticPropsType, NextPage } from \"next\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport dynamic from \"next/dynamic\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport Head from \"next/head\";\nimport type { SwaggerUIProps } from \"swagger-ui-react\";\n\nimport getStaticProps from \"./get-static-properties-swagger\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nconst SwaggerUI = dynamic(() => import(\"swagger-ui-react\"), { ssr: false });\n// @ts-ignore\n// eslint-disable-next-line import/no-extraneous-dependencies\ndynamic(import(\"swagger-ui-react/swagger-ui.css\"), { ssr: false });\n\n// eslint-disable-next-line max-len\nconst SwaggerApiDocument: (\n name: string,\n swagger?: Exclude<SwaggerUIProps, \"spec\">,\n // eslint-disable-next-line max-len,unicorn/no-useless-undefined\n) => NextPage<InferGetStaticPropsType<typeof getStaticProps>> = (name, swagger = {}) => ({ swaggerData }: InferGetStaticPropsType<typeof getStaticProps>) => (\n <>\n <Head>\n <title>{name}</title>\n <style>\n {`\nbody {\n background: #fafafa !important;\n}\n`}\n </style>\n </Head>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <SwaggerUI {...swagger} spec={swaggerData} />\n </>\n);\n\nexport default SwaggerApiDocument;\n","// eslint-disable-next-line unicorn/prevent-abbreviations\nimport debug from \"debug\";\nimport type { GetStaticProps } from \"next\";\nimport type { OpenAPIV3 } from \"openapi-types\";\n\n// eslint-disable-next-line testing-library/no-debugging-utils\nconst swaggerDebug = debug(\"visulima:api-platform:swagger:get-static-properties-swagger\");\n\n// eslint-disable-next-line unicorn/consistent-function-scoping\nconst getStaticProps: (\n swaggerUrl: string,\n) => GetStaticProps = (swaggerUrl) => async (): Promise<{\n props: {\n swaggerUrl: string;\n swaggerData: OpenAPIV3.Document;\n };\n}> => {\n // eslint-disable-next-line compat/compat\n const response = await fetch(swaggerUrl);\n const swaggerData = await response.json();\n\n swaggerDebug(swaggerData);\n\n return {\n props: {\n swaggerUrl,\n swaggerData: JSON.parse(JSON.stringify(swaggerData)),\n },\n };\n};\n\nexport default getStaticProps;\n"]}
@@ -0,0 +1,2 @@
1
+ var d=Object.defineProperty;var e=(c,a)=>{for(var b in a)d(c,b,{get:a[b],enumerable:!0})};export{e as a};
2
+ //# sourceMappingURL=chunk-YOXCJZNX.mjs.map
@@ -1,8 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkHOWWQBSNjs = require('./chunk-HOWWQBSN.js');
4
- require('./chunk-JC4IRQUL.js');
5
-
6
-
7
- exports.zod = _chunkHOWWQBSNjs.zod_exports;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkJXD3457Ojs = require('./chunk-JXD3457O.js');require('./chunk-OUWZ2PU5.js');exports.zod = _chunkJXD3457Ojs.c;
8
2
  //# sourceMappingURL=index-browser.js.map
@@ -1,8 +1,2 @@
1
- import {
2
- zod_exports
3
- } from "./chunk-YR2QJYUL.mjs";
4
- import "./chunk-5VRACIDE.mjs";
5
- export {
6
- zod_exports as zod
7
- };
1
+ import{c as a}from"./chunk-HONWWBY6.mjs";import"./chunk-YOXCJZNX.mjs";export{a as zod};
8
2
  //# sourceMappingURL=index-browser.mjs.map
@@ -1,5 +1,5 @@
1
1
  export { d as dateIn, a as dateOut, i as zod } from './index-3318b0da.js';
2
- export { BadGateway, BadRequest, BandwidthLimitExceeded, Conflict, ExpectationFailed, FailedDependency, Forbidden, GatewayTimeout, Gone, HTTPVersionNotSupported, ImATeapot, InsufficientStorage, InternalServerError, LengthRequired, Locked, LoopDetected, MethodNotAllowed, MisdirectedRequest, NetworkAuthenticationRequire, NotAcceptable, NotExtended, NotFound, NotImplemented, PayloadTooLarge, PaymentRequired, PreconditionFailed, PreconditionRequired, ProxyAuthenticationRequired, RangeNotSatisfiable, RequestHeaderFieldsTooLarge, RequestTimeout, ServiceUnavailable, TooManyRequests, URITooLong, Unauthorized, UnavailableForLegalReasons, UnorderedCollection, UnprocessableEntity, UnsupportedMediaType, UpgradeRequired, VariantAlsoNegotiates, default as createHttpError } from 'http-errors';
2
+ export { BadGateway, BadRequest, BandwidthLimitExceeded, Conflict, ExpectationFailed, FailedDependency, Forbidden, GatewayTimeout, Gone, HTTPVersionNotSupported, ImATeapot, InsufficientStorage, InternalServerError, LengthRequired, Locked, LoopDetected, MethodNotAllowed, MisdirectedRequest, NetworkAuthenticationRequire, NotAcceptable, NotExtended, NotFound, NotImplemented, PayloadTooLarge, PaymentRequired, PreconditionFailed, PreconditionRequired, ProxyAuthenticationRequired, RangeNotSatisfiable, RequestHeaderFieldsTooLarge, RequestTimeout, ServiceUnavailable, TooManyRequests, URITooLong, Unauthorized, UnavailableForLegalReasons, UnprocessableEntity, UnsupportedMediaType, UpgradeRequired, VariantAlsoNegotiates, default as createHttpError } from 'http-errors';
3
3
  import * as zod from 'zod';
4
4
  import { AnyZodObject, ZodObject } from 'zod';
5
5
  import * as _visulima_connect from '@visulima/connect';