@digi-frontend/dgate-api-documentation 1.0.0 → 1.0.4

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 (214) hide show
  1. package/.editorconfig +13 -0
  2. package/.prettierignore +8 -0
  3. package/.prettierrc +15 -0
  4. package/dist/_virtual/index5.js +1 -1
  5. package/dist/_virtual/index6.js +1 -1
  6. package/dist/a7568b270e175038.svg +8 -0
  7. package/dist/b82c7612e73342f3.svg +3 -0
  8. package/dist/node_modules/@popperjs/core/lib/createPopper.js +2 -0
  9. package/dist/node_modules/@popperjs/core/lib/createPopper.js.map +1 -0
  10. package/dist/node_modules/@popperjs/core/lib/dom-utils/contains.js +2 -0
  11. package/dist/node_modules/@popperjs/core/lib/dom-utils/contains.js.map +1 -0
  12. package/dist/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js +2 -0
  13. package/dist/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js.map +1 -0
  14. package/dist/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js +2 -0
  15. package/dist/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js.map +1 -0
  16. package/dist/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js +2 -0
  17. package/dist/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js.map +1 -0
  18. package/dist/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js +2 -0
  19. package/dist/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js.map +1 -0
  20. package/dist/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js +2 -0
  21. package/dist/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js.map +1 -0
  22. package/dist/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js +2 -0
  23. package/dist/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js.map +1 -0
  24. package/dist/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js +2 -0
  25. package/dist/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js.map +1 -0
  26. package/dist/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js +2 -0
  27. package/dist/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js.map +1 -0
  28. package/dist/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js +2 -0
  29. package/dist/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js.map +1 -0
  30. package/dist/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js +2 -0
  31. package/dist/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js.map +1 -0
  32. package/dist/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js +2 -0
  33. package/dist/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js.map +1 -0
  34. package/dist/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js +2 -0
  35. package/dist/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js.map +1 -0
  36. package/dist/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js +2 -0
  37. package/dist/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js.map +1 -0
  38. package/dist/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js +2 -0
  39. package/dist/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js.map +1 -0
  40. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindow.js +2 -0
  41. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindow.js.map +1 -0
  42. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js +2 -0
  43. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js.map +1 -0
  44. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js +2 -0
  45. package/dist/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js.map +1 -0
  46. package/dist/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js +2 -0
  47. package/dist/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js.map +1 -0
  48. package/dist/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js +2 -0
  49. package/dist/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js.map +1 -0
  50. package/dist/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js +2 -0
  51. package/dist/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js.map +1 -0
  52. package/dist/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js +2 -0
  53. package/dist/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js.map +1 -0
  54. package/dist/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js +2 -0
  55. package/dist/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js.map +1 -0
  56. package/dist/node_modules/@popperjs/core/lib/enums.js +2 -0
  57. package/dist/node_modules/@popperjs/core/lib/enums.js.map +1 -0
  58. package/dist/node_modules/@popperjs/core/lib/modifiers/applyStyles.js +2 -0
  59. package/dist/node_modules/@popperjs/core/lib/modifiers/applyStyles.js.map +1 -0
  60. package/dist/node_modules/@popperjs/core/lib/modifiers/arrow.js +2 -0
  61. package/dist/node_modules/@popperjs/core/lib/modifiers/arrow.js.map +1 -0
  62. package/dist/node_modules/@popperjs/core/lib/modifiers/computeStyles.js +2 -0
  63. package/dist/node_modules/@popperjs/core/lib/modifiers/computeStyles.js.map +1 -0
  64. package/dist/node_modules/@popperjs/core/lib/modifiers/eventListeners.js +2 -0
  65. package/dist/node_modules/@popperjs/core/lib/modifiers/eventListeners.js.map +1 -0
  66. package/dist/node_modules/@popperjs/core/lib/modifiers/flip.js +2 -0
  67. package/dist/node_modules/@popperjs/core/lib/modifiers/flip.js.map +1 -0
  68. package/dist/node_modules/@popperjs/core/lib/modifiers/hide.js +2 -0
  69. package/dist/node_modules/@popperjs/core/lib/modifiers/hide.js.map +1 -0
  70. package/dist/node_modules/@popperjs/core/lib/modifiers/offset.js +2 -0
  71. package/dist/node_modules/@popperjs/core/lib/modifiers/offset.js.map +1 -0
  72. package/dist/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js +2 -0
  73. package/dist/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js.map +1 -0
  74. package/dist/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js +2 -0
  75. package/dist/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js.map +1 -0
  76. package/dist/node_modules/@popperjs/core/lib/popper.js +2 -0
  77. package/dist/node_modules/@popperjs/core/lib/popper.js.map +1 -0
  78. package/dist/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js +2 -0
  79. package/dist/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js.map +1 -0
  80. package/dist/node_modules/@popperjs/core/lib/utils/computeOffsets.js +2 -0
  81. package/dist/node_modules/@popperjs/core/lib/utils/computeOffsets.js.map +1 -0
  82. package/dist/node_modules/@popperjs/core/lib/utils/debounce.js +2 -0
  83. package/dist/node_modules/@popperjs/core/lib/utils/debounce.js.map +1 -0
  84. package/dist/node_modules/@popperjs/core/lib/utils/detectOverflow.js +2 -0
  85. package/dist/node_modules/@popperjs/core/lib/utils/detectOverflow.js.map +1 -0
  86. package/dist/node_modules/@popperjs/core/lib/utils/expandToHashMap.js +2 -0
  87. package/dist/node_modules/@popperjs/core/lib/utils/expandToHashMap.js.map +1 -0
  88. package/dist/node_modules/@popperjs/core/lib/utils/getAltAxis.js +2 -0
  89. package/dist/node_modules/@popperjs/core/lib/utils/getAltAxis.js.map +1 -0
  90. package/dist/node_modules/@popperjs/core/lib/utils/getBasePlacement.js +2 -0
  91. package/dist/node_modules/@popperjs/core/lib/utils/getBasePlacement.js.map +1 -0
  92. package/dist/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js +2 -0
  93. package/dist/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js.map +1 -0
  94. package/dist/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js +2 -0
  95. package/dist/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js.map +1 -0
  96. package/dist/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js +2 -0
  97. package/dist/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js.map +1 -0
  98. package/dist/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js +2 -0
  99. package/dist/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js.map +1 -0
  100. package/dist/node_modules/@popperjs/core/lib/utils/getVariation.js +2 -0
  101. package/dist/node_modules/@popperjs/core/lib/utils/getVariation.js.map +1 -0
  102. package/dist/node_modules/@popperjs/core/lib/utils/math.js +2 -0
  103. package/dist/node_modules/@popperjs/core/lib/utils/math.js.map +1 -0
  104. package/dist/node_modules/@popperjs/core/lib/utils/mergeByName.js +2 -0
  105. package/dist/node_modules/@popperjs/core/lib/utils/mergeByName.js.map +1 -0
  106. package/dist/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js +2 -0
  107. package/dist/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js.map +1 -0
  108. package/dist/node_modules/@popperjs/core/lib/utils/orderModifiers.js +2 -0
  109. package/dist/node_modules/@popperjs/core/lib/utils/orderModifiers.js.map +1 -0
  110. package/dist/node_modules/@popperjs/core/lib/utils/rectToClientRect.js +2 -0
  111. package/dist/node_modules/@popperjs/core/lib/utils/rectToClientRect.js.map +1 -0
  112. package/dist/node_modules/@popperjs/core/lib/utils/userAgent.js +2 -0
  113. package/dist/node_modules/@popperjs/core/lib/utils/userAgent.js.map +1 -0
  114. package/dist/node_modules/@popperjs/core/lib/utils/within.js +2 -0
  115. package/dist/node_modules/@popperjs/core/lib/utils/within.js.map +1 -0
  116. package/dist/node_modules/@tippyjs/react/dist/tippy-react.esm.js +2 -0
  117. package/dist/node_modules/@tippyjs/react/dist/tippy-react.esm.js.map +1 -0
  118. package/dist/node_modules/digitinary-ui/dist/index.js +1 -1
  119. package/dist/node_modules/digitinary-ui/dist/index.js.map +1 -1
  120. package/dist/node_modules/formik/dist/formik.esm.js +1 -1
  121. package/dist/node_modules/formik/dist/formik.esm.js.map +1 -1
  122. package/dist/node_modules/tippy.js/dist/tippy.css.js +2 -0
  123. package/dist/node_modules/tippy.js/dist/tippy.css.js.map +1 -0
  124. package/dist/node_modules/tippy.js/dist/tippy.esm.js +7 -0
  125. package/dist/node_modules/tippy.js/dist/tippy.esm.js.map +1 -0
  126. package/dist/node_modules/yup/index.esm.js +1 -1
  127. package/dist/node_modules/yup/index.esm.js.map +1 -1
  128. package/dist/src/assets/icons/AddRow.svg.js +2 -0
  129. package/dist/src/assets/icons/AddRow.svg.js.map +1 -0
  130. package/dist/src/assets/icons/deleteOutlinedIcon.svg.js +2 -0
  131. package/dist/src/assets/icons/deleteOutlinedIcon.svg.js.map +1 -0
  132. package/dist/src/components/InfoForm/InfoForm.js +1 -1
  133. package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
  134. package/dist/src/components/LivePreview/LivePreview.js +2 -0
  135. package/dist/src/components/LivePreview/LivePreview.js.map +1 -0
  136. package/dist/src/components/LivePreview/LivePreview.module.scss.js +2 -0
  137. package/dist/src/components/LivePreview/LivePreview.module.scss.js.map +1 -0
  138. package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
  139. package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
  140. package/dist/src/components/SimpleLabelValue/SimpleLabelValue.js +2 -0
  141. package/dist/src/components/SimpleLabelValue/SimpleLabelValue.js.map +1 -0
  142. package/dist/src/components/Tooltip/Tooltip.js +2 -0
  143. package/dist/src/components/Tooltip/Tooltip.js.map +1 -0
  144. package/dist/src/components/dialog/index.js +2 -0
  145. package/dist/src/components/dialog/index.js.map +1 -0
  146. package/dist/src/components/table/table.js +2 -0
  147. package/dist/src/components/table/table.js.map +1 -0
  148. package/dist/src/constants/index.js +1 -1
  149. package/dist/src/constants/index.js.map +1 -1
  150. package/dist/src/helpers/layout.helper.js +2 -0
  151. package/dist/src/helpers/layout.helper.js.map +1 -0
  152. package/dist/src/helpers/methodAccordion.helper.js +2 -0
  153. package/dist/src/helpers/methodAccordion.helper.js.map +1 -0
  154. package/dist/src/layout/layout.js +1 -1
  155. package/dist/src/layout/layout.js.map +1 -1
  156. package/dist/src/layout/layout.module.css.js +1 -1
  157. package/dist/src/validator/form.scheme.js +2 -0
  158. package/dist/src/validator/form.scheme.js.map +1 -0
  159. package/dist/styles.css +673 -63
  160. package/dist/types/assets/icons/index.d.ts +2 -0
  161. package/dist/types/components/LivePreview/LivePreview.d.ts +7 -0
  162. package/dist/types/components/MethodAccordion/MethodAccordion.d.ts +8 -1
  163. package/dist/types/components/SimpleLabelValue/SimpleLabelValue.d.ts +11 -0
  164. package/dist/types/components/SimpleLabelValue/index.d.ts +1 -0
  165. package/dist/types/components/Tooltip/Tooltip.d.ts +19 -0
  166. package/dist/types/components/dialog/dialog.d.ts +41 -0
  167. package/dist/types/components/dialog/index.d.ts +4 -0
  168. package/dist/types/components/table/table.d.ts +11 -0
  169. package/dist/types/constants/index.d.ts +20 -4
  170. package/dist/types/helpers/layout.helper.d.ts +7 -0
  171. package/dist/types/helpers/methodAccordion.helper.d.ts +2 -0
  172. package/dist/types/layout/layout.d.ts +5 -1
  173. package/dist/types/types/layout.type.d.ts +19 -0
  174. package/dist/types/types/openApi.d.ts +85 -0
  175. package/dist/types/types/transformedOpenApi.d.ts +50 -0
  176. package/dist/types/validator/form.scheme.d.ts +40 -0
  177. package/package.json +1 -1
  178. package/src/assets/icons/AddRow.svg +3 -0
  179. package/src/assets/icons/deleteOutlinedIcon.svg +8 -0
  180. package/src/assets/icons/index.ts +2 -0
  181. package/src/components/Chips/style.scss +1 -1
  182. package/src/components/InfoForm/InfoForm.module.scss +1 -0
  183. package/src/components/InfoForm/InfoForm.tsx +94 -59
  184. package/src/components/LivePreview/LivePreview.module.scss +5 -0
  185. package/src/components/LivePreview/LivePreview.tsx +80 -0
  186. package/src/components/MethodAccordion/MethodAccordion.module.scss +232 -125
  187. package/src/components/MethodAccordion/MethodAccordion.tsx +404 -57
  188. package/src/components/SimpleLabelValue/SimpleLabelValue.tsx +31 -0
  189. package/src/components/SimpleLabelValue/index.ts +1 -0
  190. package/src/components/SimpleLabelValue/style.scss +30 -0
  191. package/src/components/Tooltip/Tooltip.scss +130 -0
  192. package/src/components/Tooltip/Tooltip.tsx +86 -0
  193. package/src/components/_global.scss +338 -0
  194. package/src/components/dialog/dialog.ts +54 -0
  195. package/src/components/dialog/index.tsx +85 -0
  196. package/src/components/dialog/style.scss +104 -0
  197. package/src/components/table/style.scss +179 -0
  198. package/src/components/table/table.tsx +307 -0
  199. package/src/constants/index.ts +23 -6
  200. package/src/helpers/layout.helper.ts +118 -0
  201. package/src/helpers/methodAccordion.helper.ts +20 -0
  202. package/src/layout/layout.module.css +1 -0
  203. package/src/layout/layout.tsx +57 -9
  204. package/src/types/index.ts +0 -20
  205. package/src/types/layout.type.ts +22 -0
  206. package/src/types/openApi.ts +95 -0
  207. package/src/types/transformedOpenApi.ts +52 -0
  208. package/src/validator/form.scheme.ts +70 -0
  209. package/tsconfig.json +4 -1
  210. package/dist/src/components/Button/Button.js +0 -2
  211. package/dist/src/components/Button/Button.js.map +0 -1
  212. package/dist/src/components/Button/Button.module.css.js +0 -2
  213. package/dist/src/components/Button/Button.module.css.js.map +0 -1
  214. package/dist/types/components/Button/Button.d.ts +0 -7
@@ -1,24 +1,72 @@
1
- import React, { JSX } from 'react'
1
+ import { JSX } from 'react'
2
2
  import { Alert } from 'digitinary-ui'
3
3
  import MethodsAccordion from '../components/MethodAccordion/MethodAccordion'
4
4
  import styles from './layout.module.css'
5
5
  import InfoForm from '../components/InfoForm/InfoForm'
6
6
  import SectionHead from '../components/SectionHead/SectionHead'
7
+ import { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'
8
+ import { OpenAPIFile } from '../types/openApi'
9
+ import LivePreview from '../components/LivePreview/LivePreview'
10
+ import { FormikProvider, useFormik } from 'formik'
11
+ import * as Yup from 'yup'
12
+ import { schemaValidation } from '../validator/form.scheme'
13
+ import { TransformedOpenApi } from '@entities/transformedOpenApi'
14
+
15
+ interface ILayoutProps {
16
+ openApiJson?: OpenAPIFile
17
+ }
18
+
19
+ const Layout = ({ openApiJson, handleSave }: ILayoutProps): JSX.Element => {
20
+ const transformedOpenApi = transformOpenApiObject(openApiJson)
21
+ const formik = useFormik<TransformedOpenApi>({
22
+ initialValues: structuredClone(transformedOpenApi),
23
+ validationSchema: schemaValidation,
24
+ validateOnMount: true,
25
+ onSubmit: (values, { validateForm }) => {
26
+ // Handle save logic
27
+ handleSave(transformOpenApiObjectToOrigin(values))
28
+ validateForm(values)
29
+ },
30
+ })
7
31
 
8
- const Layout = (): JSX.Element => {
9
32
  return (
10
33
  <div className={styles.docsLayout}>
11
- <Alert className={styles.apiDocAlert} color='info'>
12
- Changes are saved and published for API information and each endpoint individually as you update.
34
+ <Alert className={styles.apiDocAlert} color="info">
35
+ Changes are saved and published for API information and each endpoint individually as you
36
+ update.
13
37
  </Alert>
14
38
  <div className={styles.layoutContainer}>
15
39
  <div className={`${styles.editorSide} ${styles.docSide}`}>
16
- <SectionHead text='API Information' />
17
- <InfoForm />
18
- <SectionHead text='API Methods' />
19
- <MethodsAccordion />
40
+ <SectionHead className={styles.editorSectionHead} text="API Information" />
41
+ <FormikProvider value={formik}>
42
+ <InfoForm />
43
+ </FormikProvider>
44
+ <SectionHead className={styles.editorSectionHead} text="API Methods" />
45
+ <FormikProvider value={formik}>
46
+ {formik.values.paths.map((path, pathIndex) => (
47
+ <>
48
+ {path.methods.map((method, methodIndex) => (
49
+ <MethodsAccordion
50
+ method={method}
51
+ path={path.path}
52
+ setFieldValue={(key, value) => {
53
+ const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`
54
+ formik.setFieldValue(h, value)
55
+ }}
56
+ handleSave={formik.submitForm}
57
+ />
58
+ ))}
59
+ </>
60
+ ))}
61
+ </FormikProvider>
62
+ </div>
63
+ <div className={`${styles.livePreviewSide} ${styles.docSide}`}>
64
+ {transformedOpenApi && (
65
+ <FormikProvider value={formik}>
66
+ <LivePreview transformedData={transformedOpenApi} />
67
+ </FormikProvider>
68
+ )}
20
69
  </div>
21
- <div className={`${styles.livePreviewSide} ${styles.docSide}`}></div>
22
70
  </div>
23
71
  </div>
24
72
  )
@@ -1,20 +0,0 @@
1
- export type MethodTypes = 'GET' | 'POST' | 'PUT' | 'DELETE'
2
-
3
- export interface ParameterType {
4
- name: string
5
- in: string
6
- schemaType: string
7
- required: boolean
8
- }
9
-
10
- export interface MethodAccordionProps {
11
- method: MethodTypes
12
- path: string
13
- desc: string
14
- parameters: ParameterType[]
15
- request: string
16
- response: {
17
- content: string
18
- statusCode: number
19
- }
20
- }
@@ -0,0 +1,22 @@
1
+ import { HTTPMethod } from './openApi'
2
+
3
+ export type TransformedMethod = {
4
+ type: HTTPMethod
5
+ tags: string[]
6
+ parameters: any
7
+ requestBody: any
8
+ responses: {
9
+ code: string
10
+ content: {
11
+ contentType?: string
12
+ schema?: unknown
13
+ }
14
+ }[]
15
+ }
16
+
17
+ export type TransformedPath = {
18
+ path: string
19
+ methods: TransformedMethod[]
20
+ }
21
+
22
+ export type TransformedPathsArray = TransformedPath[]
@@ -0,0 +1,95 @@
1
+ export interface OpenAPIFile {
2
+ openapi: string
3
+ info: {
4
+ title: string
5
+ description?: string
6
+ version: string
7
+ }
8
+ servers?: {
9
+ url: string
10
+ description?: string
11
+ }[]
12
+ paths: {
13
+ [path: string]: Partial<
14
+ Record<
15
+ HTTPMethod,
16
+ {
17
+ tags: string[]
18
+ responses: Responses
19
+ summary?: string
20
+ description?: string
21
+ parameters?: Parameter[]
22
+ requestBody?: RequestBody
23
+ }
24
+ >
25
+ >
26
+ }
27
+ components?: {
28
+ schemas?: {
29
+ [schemaName: string]: Schema
30
+ }
31
+ securitySchemes?: {
32
+ [schemeName: string]: SecurityScheme
33
+ }
34
+ }
35
+ security?: {
36
+ [schemeName: string]: string[]
37
+ }[]
38
+ tags?: {
39
+ name: string
40
+ description?: string
41
+ }[]
42
+ }
43
+
44
+ interface Parameter {
45
+ name: string
46
+ in: 'query' | 'header' | 'path' | 'cookie'
47
+ description?: string
48
+ required: boolean
49
+ schema: Schema
50
+ }
51
+
52
+ interface RequestBody {
53
+ description?: string
54
+ required: boolean
55
+ content: {
56
+ [contentType: string]: {
57
+ schema: Schema
58
+ }
59
+ }
60
+ }
61
+
62
+ interface Responses {
63
+ [statusCode: string]: {
64
+ description: string
65
+ content?: {
66
+ [contentType: string]: {
67
+ schema: Schema
68
+ }
69
+ }
70
+ }
71
+ }
72
+
73
+ interface Schema {
74
+ type?: string
75
+ format?: string
76
+ properties?: {
77
+ [propertyName: string]: Schema
78
+ }
79
+ items?: Schema
80
+ enum?: string[]
81
+ required?: string[]
82
+ }
83
+
84
+ interface SecurityScheme {
85
+ type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect'
86
+ description?: string
87
+ name?: string
88
+ in?: 'query' | 'header' | 'cookie'
89
+ scheme?: string
90
+ bearerFormat?: string
91
+ flows?: any
92
+ openIdConnectUrl?: string
93
+ }
94
+
95
+ export type HTTPMethod = 'get' | 'put' | 'post' | 'delete' | 'options' | 'head' | 'patch' | 'trace'
@@ -0,0 +1,52 @@
1
+ import { TransformedPathsArray } from "./layout.type";
2
+
3
+ export interface TransformedOpenApi {
4
+ openapi: string;
5
+ info: {
6
+ title: string;
7
+ description?: string;
8
+ version: string;
9
+ };
10
+ servers?: {
11
+ url: string;
12
+ description?: string;
13
+ }[];
14
+ paths: TransformedPathsArray;
15
+ components?: {
16
+ schemas?: {
17
+ [schemaName: string]: Schema;
18
+ };
19
+ securitySchemes?: {
20
+ [schemeName: string]: SecurityScheme;
21
+ };
22
+ };
23
+ security?: {
24
+ [schemeName: string]: string[];
25
+ }[];
26
+ tags?: {
27
+ name: string;
28
+ description?: string;
29
+ }[];
30
+ }
31
+
32
+ interface Schema {
33
+ type?: string;
34
+ format?: string;
35
+ properties?: {
36
+ [propertyName: string]: Schema;
37
+ };
38
+ items?: Schema;
39
+ enum?: string[];
40
+ required?: string[];
41
+ }
42
+
43
+ interface SecurityScheme {
44
+ type: "apiKey" | "http" | "oauth2" | "openIdConnect";
45
+ description?: string;
46
+ name?: string;
47
+ in?: "query" | "header" | "cookie";
48
+ scheme?: string;
49
+ bearerFormat?: string;
50
+ flows?: any;
51
+ openIdConnectUrl?: string;
52
+ }
@@ -0,0 +1,70 @@
1
+ import * as yup from "yup";
2
+ export const schemaValidation = yup.object({
3
+ openapi: yup.string().required(),
4
+ info: yup
5
+ .object({
6
+ title: yup.string().required("API Name is required."),
7
+ description: yup.string().optional(),
8
+ version: yup.string().required("API Version is required"),
9
+ })
10
+ .required(),
11
+ servers: yup
12
+ .array(
13
+ yup.object({
14
+ url: yup.string().url().required(),
15
+ description: yup.string().optional(),
16
+ })
17
+ )
18
+ .optional(),
19
+ paths: yup.mixed().required(), // Assuming TransformedPathsArray is validated elsewhere
20
+ components: yup
21
+ .object({
22
+ schemas: yup
23
+ .lazy((value) =>
24
+ yup.object(
25
+ value
26
+ ? Object.keys(value).reduce((acc, key) => {
27
+ acc[key] = yup.object({
28
+ type: yup.string().optional(),
29
+ format: yup.string().optional(),
30
+ properties: yup
31
+ .lazy((props) =>
32
+ yup.object(
33
+ props
34
+ ? Object.keys(props).reduce((acc, propKey) => {
35
+ acc[propKey] = yup.mixed();
36
+ return acc;
37
+ }, {})
38
+ : {}
39
+ )
40
+ )
41
+ .optional(),
42
+ items: yup.mixed().optional(),
43
+ enum: yup.array(yup.string()).optional(),
44
+ required: yup.array(yup.string()).optional(),
45
+ });
46
+ return acc;
47
+ }, {})
48
+ : {}
49
+ )
50
+ )
51
+ .optional(),
52
+ securitySchemes: yup.object().optional(),
53
+ })
54
+ .optional(),
55
+ security: yup
56
+ .array(
57
+ yup.object().shape({
58
+ schemeName: yup.array(yup.string()).optional(),
59
+ })
60
+ )
61
+ .optional(),
62
+ tags: yup
63
+ .array(
64
+ yup.object({
65
+ name: yup.string().required(),
66
+ description: yup.string().optional(),
67
+ })
68
+ )
69
+ .optional(),
70
+ });
package/tsconfig.json CHANGED
@@ -13,6 +13,7 @@
13
13
  "skipLibCheck": true,
14
14
  "forceConsistentCasingInFileNames": true,
15
15
  "importHelpers": true,
16
+ "resolveJsonModule": true,
16
17
  "plugins": [
17
18
  {
18
19
  "name": "typescript-plugin-css-modules"
@@ -22,7 +23,9 @@
22
23
  "paths": {
23
24
  "@components/*": ["src/components/*"],
24
25
  "@icons": ["src/assets/icons"],
25
- "@constants/*": ["src/constants/*"]
26
+ "@constants/*": ["src/constants/*"],
27
+ "@entities/*": ["src/types/*"],
28
+ "@helpers/*": ["src/helpers/*"]
26
29
  }
27
30
  },
28
31
  "include": ["src", "src/global.d.ts"], // Add "src/global.d.ts" here
@@ -1,2 +0,0 @@
1
- import{j as t}from"../../../_virtual/jsx-runtime.js";import o from"./Button.module.css.js";const s=({children:s,onClick:n})=>t.jsx("button",{className:o.button,onClick:n,children:s});export{s as default};
2
- //# sourceMappingURL=Button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, { JSX } from 'react';\r\nimport styles from './Button.module.css'\r\ninterface ButtonProps {\r\n children: React.ReactNode;\r\n onClick?: () => void;\r\n}\r\n\r\nconst Button = ({ children, onClick }: ButtonProps): JSX.Element => {\r\n return (\r\n <button className={styles.button} onClick={onClick}>\r\n {children}\r\n </button>\r\n );\r\n};\r\n\r\nexport default Button;"],"names":["Button","children","onClick","_jsx","className","styles","button"],"mappings":"2FAOM,MAAAA,EAAS,EAAGC,WAAUC,aAExBC,MAAA,SAAA,CAAQC,UAAWC,EAAOC,OAAQJ,QAASA,EAAOD,SAC/CA"}
@@ -1,2 +0,0 @@
1
- import o from"../../../node_modules/style-inject/dist/style-inject.es.js";var t={button:"Button-module_button__2ZuB7"};o(".Button-module_button__2ZuB7{background-color:blue;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:10px 20px}");export{t as default};
2
- //# sourceMappingURL=Button.module.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import React, { JSX } from 'react';
2
- interface ButtonProps {
3
- children: React.ReactNode;
4
- onClick?: () => void;
5
- }
6
- declare const Button: ({ children, onClick }: ButtonProps) => JSX.Element;
7
- export default Button;