@upendra19/swagger-ui-custom 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/.agignore +1 -0
  2. package/.browserslistrc +29 -0
  3. package/.dockerignore +8 -0
  4. package/.editorconfig +10 -0
  5. package/.eslintrc.js +78 -0
  6. package/.lintstagedrc +4 -0
  7. package/.nvmrc +1 -0
  8. package/.prettierrc.yaml +5 -0
  9. package/.releaserc +26 -0
  10. package/AUTHORIZATION_CONFIG.md +350 -0
  11. package/Dockerfile +39 -0
  12. package/LICENSE +202 -0
  13. package/NOTICE +2 -0
  14. package/README.md +117 -0
  15. package/babel.config.js +140 -0
  16. package/composer.json +40 -0
  17. package/dist/favicon-16x16.png +0 -0
  18. package/dist/favicon-32x32.png +0 -0
  19. package/dist/index.css +16 -0
  20. package/dist/index.html +19 -0
  21. package/dist/log.bundle-sizes.swagger-ui.txt +114 -0
  22. package/dist/log.es-bundle-core-sizes.swagger-ui.txt +14 -0
  23. package/dist/log.es-bundle-sizes.swagger-ui.txt +114 -0
  24. package/dist/oauth2-redirect.html +6 -0
  25. package/dist/oauth2-redirect.js +1 -0
  26. package/dist/swagger-initializer.js +20 -0
  27. package/dist/swagger-ui-bundle.js +2 -0
  28. package/dist/swagger-ui-bundle.js.LICENSE.txt +106 -0
  29. package/dist/swagger-ui-bundle.js.map +1 -0
  30. package/dist/swagger-ui-es-bundle-core.js +3 -0
  31. package/dist/swagger-ui-es-bundle-core.js.LICENSE.txt +35 -0
  32. package/dist/swagger-ui-es-bundle-core.js.map +1 -0
  33. package/dist/swagger-ui-es-bundle.js +2 -0
  34. package/dist/swagger-ui-es-bundle.js.LICENSE.txt +106 -0
  35. package/dist/swagger-ui-es-bundle.js.map +1 -0
  36. package/dist/swagger-ui-standalone-preset.js +2 -0
  37. package/dist/swagger-ui-standalone-preset.js.LICENSE.txt +22 -0
  38. package/dist/swagger-ui-standalone-preset.js.map +1 -0
  39. package/dist/swagger-ui.css +3 -0
  40. package/dist/swagger-ui.css.map +1 -0
  41. package/dist/swagger-ui.js +2 -0
  42. package/dist/swagger-ui.js.map +1 -0
  43. package/docker/configurator/helpers.js +13 -0
  44. package/docker/configurator/index.js +52 -0
  45. package/docker/configurator/oauth.js +55 -0
  46. package/docker/configurator/translator.js +111 -0
  47. package/docker/configurator/variables.js +125 -0
  48. package/docker/cors.conf +14 -0
  49. package/docker/default.conf.template +43 -0
  50. package/docker/docker-entrypoint.d/40-swagger-ui.sh +52 -0
  51. package/docker/embedding.conf +5 -0
  52. package/package.json +224 -0
  53. package/snapcraft.yaml +28 -0
  54. package/src/core/assets/rolling-load.svg +1 -0
  55. package/src/core/components/app.jsx +30 -0
  56. package/src/core/components/auth/api-key-auth.jsx +93 -0
  57. package/src/core/components/auth/auth-item.jsx +60 -0
  58. package/src/core/components/auth/authorization-popup.jsx +59 -0
  59. package/src/core/components/auth/authorize-btn.jsx +30 -0
  60. package/src/core/components/auth/authorize-operation-btn.jsx +35 -0
  61. package/src/core/components/auth/auths.jsx +124 -0
  62. package/src/core/components/auth/basic-auth.jsx +110 -0
  63. package/src/core/components/auth/error.jsx +24 -0
  64. package/src/core/components/auth/oauth2.jsx +283 -0
  65. package/src/core/components/clear.jsx +25 -0
  66. package/src/core/components/contact.jsx +44 -0
  67. package/src/core/components/content-type.jsx +64 -0
  68. package/src/core/components/copy-to-clipboard-btn.jsx +29 -0
  69. package/src/core/components/curl.jsx +38 -0
  70. package/src/core/components/debug.jsx +50 -0
  71. package/src/core/components/deep-link.jsx +20 -0
  72. package/src/core/components/errors.jsx +132 -0
  73. package/src/core/components/example.jsx +43 -0
  74. package/src/core/components/examples-select-value-retainer.jsx +254 -0
  75. package/src/core/components/examples-select.jsx +139 -0
  76. package/src/core/components/execute.jsx +103 -0
  77. package/src/core/components/footer.jsx +9 -0
  78. package/src/core/components/headers.jsx +58 -0
  79. package/src/core/components/info.jsx +169 -0
  80. package/src/core/components/initialized-input.jsx +36 -0
  81. package/src/core/components/jump-to-path.jsx +9 -0
  82. package/src/core/components/layout-utils.jsx +265 -0
  83. package/src/core/components/layouts/base.jsx +156 -0
  84. package/src/core/components/layouts/xpane.jsx +73 -0
  85. package/src/core/components/license.jsx +40 -0
  86. package/src/core/components/live-response.jsx +133 -0
  87. package/src/core/components/online-validator-badge.jsx +120 -0
  88. package/src/core/components/openapi-version.jsx +15 -0
  89. package/src/core/components/operation-extension-row.jsx +17 -0
  90. package/src/core/components/operation-extensions.jsx +35 -0
  91. package/src/core/components/operation-summary-method.jsx +25 -0
  92. package/src/core/components/operation-summary-path.jsx +54 -0
  93. package/src/core/components/operation-summary.jsx +102 -0
  94. package/src/core/components/operation-tag.jsx +121 -0
  95. package/src/core/components/operation.jsx +259 -0
  96. package/src/core/components/operations.jsx +100 -0
  97. package/src/core/components/overview.jsx +119 -0
  98. package/src/core/components/param-body.jsx +156 -0
  99. package/src/core/components/parameter-extension.jsx +12 -0
  100. package/src/core/components/parameter-include-empty.jsx +59 -0
  101. package/src/core/components/parameter-row.jsx +438 -0
  102. package/src/core/components/parameters/index.js +1 -0
  103. package/src/core/components/parameters/parameters.jsx +287 -0
  104. package/src/core/components/property.jsx +17 -0
  105. package/src/core/components/providers/README.md +6 -0
  106. package/src/core/components/providers/markdown.jsx +72 -0
  107. package/src/core/components/response-body.jsx +170 -0
  108. package/src/core/components/response-extension.jsx +12 -0
  109. package/src/core/components/response.jsx +276 -0
  110. package/src/core/components/responses.jsx +170 -0
  111. package/src/core/components/svg-assets.jsx +48 -0
  112. package/src/core/components/system-wrapper.jsx +0 -0
  113. package/src/core/components/try-it-out-button.jsx +41 -0
  114. package/src/core/components/version-pragma-filter.jsx +54 -0
  115. package/src/core/components/version-stamp.jsx +12 -0
  116. package/src/core/containers/OperationContainer.jsx +267 -0
  117. package/src/core/containers/authorize-btn.jsx +31 -0
  118. package/src/core/containers/filter.jsx +44 -0
  119. package/src/core/containers/info.jsx +35 -0
  120. package/src/core/index.js +174 -0
  121. package/src/core/oauth2-authorize.js +137 -0
  122. package/src/core/plugins/auth/actions.js +286 -0
  123. package/src/core/plugins/auth/components/lock-auth-icon.jsx +27 -0
  124. package/src/core/plugins/auth/components/unlock-auth-icon.jsx +27 -0
  125. package/src/core/plugins/auth/configs-extensions/wrap-actions.js +19 -0
  126. package/src/core/plugins/auth/index.js +94 -0
  127. package/src/core/plugins/auth/reducers.js +77 -0
  128. package/src/core/plugins/auth/selectors.js +121 -0
  129. package/src/core/plugins/auth/spec-extensions/wrap-actions.js +10 -0
  130. package/src/core/plugins/auth/wrap-actions.js +66 -0
  131. package/src/core/plugins/configs/actions.js +58 -0
  132. package/src/core/plugins/configs/fn.js +12 -0
  133. package/src/core/plugins/configs/index.js +16 -0
  134. package/src/core/plugins/configs/reducers.js +20 -0
  135. package/src/core/plugins/configs/selectors.js +4 -0
  136. package/src/core/plugins/deep-linking/README.md +1 -0
  137. package/src/core/plugins/deep-linking/helpers.js +7 -0
  138. package/src/core/plugins/deep-linking/index.js +24 -0
  139. package/src/core/plugins/deep-linking/layout.js +209 -0
  140. package/src/core/plugins/deep-linking/operation-tag-wrapper.jsx +25 -0
  141. package/src/core/plugins/deep-linking/operation-wrapper.jsx +27 -0
  142. package/src/core/plugins/download-url/index.js +126 -0
  143. package/src/core/plugins/err/actions.js +60 -0
  144. package/src/core/plugins/err/error-transformers/README.md +31 -0
  145. package/src/core/plugins/err/error-transformers/hook.js +38 -0
  146. package/src/core/plugins/err/error-transformers/transformers/not-of-type.js +29 -0
  147. package/src/core/plugins/err/error-transformers/transformers/parameter-oneof.js +59 -0
  148. package/src/core/plugins/err/index.js +15 -0
  149. package/src/core/plugins/err/reducers.js +100 -0
  150. package/src/core/plugins/err/selectors.js +15 -0
  151. package/src/core/plugins/filter/index.js +9 -0
  152. package/src/core/plugins/filter/opsFilter.js +3 -0
  153. package/src/core/plugins/icons/components/arrow-down.jsx +28 -0
  154. package/src/core/plugins/icons/components/arrow-up.jsx +28 -0
  155. package/src/core/plugins/icons/components/arrow.jsx +28 -0
  156. package/src/core/plugins/icons/components/close.jsx +28 -0
  157. package/src/core/plugins/icons/components/copy.jsx +34 -0
  158. package/src/core/plugins/icons/components/lock.jsx +28 -0
  159. package/src/core/plugins/icons/components/unlock.jsx +28 -0
  160. package/src/core/plugins/icons/index.js +24 -0
  161. package/src/core/plugins/json-schema-2020-12/components/Accordion/Accordion.jsx +45 -0
  162. package/src/core/plugins/json-schema-2020-12/components/Accordion/_accordion.scss +33 -0
  163. package/src/core/plugins/json-schema-2020-12/components/ExpandDeepButton/ExpandDeepButton.jsx +31 -0
  164. package/src/core/plugins/json-schema-2020-12/components/ExpandDeepButton/_expand-deep-button.scss +10 -0
  165. package/src/core/plugins/json-schema-2020-12/components/JSONSchema/JSONSchema.jsx +227 -0
  166. package/src/core/plugins/json-schema-2020-12/components/JSONSchema/_json-schema.scss +34 -0
  167. package/src/core/plugins/json-schema-2020-12/components/JSONViewer/JSONViewer.jsx +153 -0
  168. package/src/core/plugins/json-schema-2020-12/components/JSONViewer/_json-viewer.scss +11 -0
  169. package/src/core/plugins/json-schema-2020-12/components/_all.scss +4 -0
  170. package/src/core/plugins/json-schema-2020-12/components/_mixins.scss +82 -0
  171. package/src/core/plugins/json-schema-2020-12/components/icons/ChevronRight.jsx +17 -0
  172. package/src/core/plugins/json-schema-2020-12/components/keywords/$anchor.jsx +27 -0
  173. package/src/core/plugins/json-schema-2020-12/components/keywords/$comment.jsx +27 -0
  174. package/src/core/plugins/json-schema-2020-12/components/keywords/$defs.jsx +93 -0
  175. package/src/core/plugins/json-schema-2020-12/components/keywords/$dynamicAnchor.jsx +27 -0
  176. package/src/core/plugins/json-schema-2020-12/components/keywords/$dynamicRef.jsx +27 -0
  177. package/src/core/plugins/json-schema-2020-12/components/keywords/$id.jsx +27 -0
  178. package/src/core/plugins/json-schema-2020-12/components/keywords/$ref.jsx +27 -0
  179. package/src/core/plugins/json-schema-2020-12/components/keywords/$schema.jsx +27 -0
  180. package/src/core/plugins/json-schema-2020-12/components/keywords/$vocabulary/$vocabulary.jsx +66 -0
  181. package/src/core/plugins/json-schema-2020-12/components/keywords/$vocabulary/_$vocabulary.scss +17 -0
  182. package/src/core/plugins/json-schema-2020-12/components/keywords/AdditionalProperties.jsx +55 -0
  183. package/src/core/plugins/json-schema-2020-12/components/keywords/AllOf.jsx +105 -0
  184. package/src/core/plugins/json-schema-2020-12/components/keywords/AnyOf.jsx +105 -0
  185. package/src/core/plugins/json-schema-2020-12/components/keywords/Const/Const.jsx +28 -0
  186. package/src/core/plugins/json-schema-2020-12/components/keywords/Const/_const.scss +11 -0
  187. package/src/core/plugins/json-schema-2020-12/components/keywords/Constraint/Constraint.jsx +38 -0
  188. package/src/core/plugins/json-schema-2020-12/components/keywords/Constraint/_constraint.scss +16 -0
  189. package/src/core/plugins/json-schema-2020-12/components/keywords/Contains.jsx +35 -0
  190. package/src/core/plugins/json-schema-2020-12/components/keywords/ContentSchema.jsx +39 -0
  191. package/src/core/plugins/json-schema-2020-12/components/keywords/Default/Default.jsx +28 -0
  192. package/src/core/plugins/json-schema-2020-12/components/keywords/Default/_default.scss +11 -0
  193. package/src/core/plugins/json-schema-2020-12/components/keywords/DependentRequired/DependentRequired.jsx +37 -0
  194. package/src/core/plugins/json-schema-2020-12/components/keywords/DependentRequired/_dependent-required.scss +12 -0
  195. package/src/core/plugins/json-schema-2020-12/components/keywords/DependentSchemas.jsx +97 -0
  196. package/src/core/plugins/json-schema-2020-12/components/keywords/Deprecated.jsx +22 -0
  197. package/src/core/plugins/json-schema-2020-12/components/keywords/Description/Description.jsx +24 -0
  198. package/src/core/plugins/json-schema-2020-12/components/keywords/Description/_description.scss +9 -0
  199. package/src/core/plugins/json-schema-2020-12/components/keywords/Else.jsx +35 -0
  200. package/src/core/plugins/json-schema-2020-12/components/keywords/Enum/Enum.jsx +27 -0
  201. package/src/core/plugins/json-schema-2020-12/components/keywords/Enum/_enum.scss +11 -0
  202. package/src/core/plugins/json-schema-2020-12/components/keywords/Examples/Examples.jsx +30 -0
  203. package/src/core/plugins/json-schema-2020-12/components/keywords/Examples/_examples.scss +11 -0
  204. package/src/core/plugins/json-schema-2020-12/components/keywords/ExtensionKeywords/ExtensionKeywords.jsx +103 -0
  205. package/src/core/plugins/json-schema-2020-12/components/keywords/ExtensionKeywords/_extension-keywords.scss +11 -0
  206. package/src/core/plugins/json-schema-2020-12/components/keywords/If.jsx +35 -0
  207. package/src/core/plugins/json-schema-2020-12/components/keywords/Items.jsx +35 -0
  208. package/src/core/plugins/json-schema-2020-12/components/keywords/Not.jsx +35 -0
  209. package/src/core/plugins/json-schema-2020-12/components/keywords/OneOf.jsx +105 -0
  210. package/src/core/plugins/json-schema-2020-12/components/keywords/PatternProperties/PatternProperties.jsx +41 -0
  211. package/src/core/plugins/json-schema-2020-12/components/keywords/PatternProperties/_pattern-properties.scss +21 -0
  212. package/src/core/plugins/json-schema-2020-12/components/keywords/PrefixItems.jsx +105 -0
  213. package/src/core/plugins/json-schema-2020-12/components/keywords/Properties/Properties.jsx +61 -0
  214. package/src/core/plugins/json-schema-2020-12/components/keywords/Properties/_properties.scss +24 -0
  215. package/src/core/plugins/json-schema-2020-12/components/keywords/PropertyNames.jsx +38 -0
  216. package/src/core/plugins/json-schema-2020-12/components/keywords/ReadOnly.jsx +22 -0
  217. package/src/core/plugins/json-schema-2020-12/components/keywords/Then.jsx +35 -0
  218. package/src/core/plugins/json-schema-2020-12/components/keywords/Title/Title.jsx +24 -0
  219. package/src/core/plugins/json-schema-2020-12/components/keywords/Title/_title.scss +26 -0
  220. package/src/core/plugins/json-schema-2020-12/components/keywords/Type.jsx +27 -0
  221. package/src/core/plugins/json-schema-2020-12/components/keywords/UnevaluatedItems.jsx +39 -0
  222. package/src/core/plugins/json-schema-2020-12/components/keywords/UnevaluatedProperties.jsx +39 -0
  223. package/src/core/plugins/json-schema-2020-12/components/keywords/WriteOnly.jsx +22 -0
  224. package/src/core/plugins/json-schema-2020-12/components/keywords/_all.scss +43 -0
  225. package/src/core/plugins/json-schema-2020-12/context.js +14 -0
  226. package/src/core/plugins/json-schema-2020-12/enum.js +10 -0
  227. package/src/core/plugins/json-schema-2020-12/fn.js +527 -0
  228. package/src/core/plugins/json-schema-2020-12/hoc.jsx +296 -0
  229. package/src/core/plugins/json-schema-2020-12/hooks.js +144 -0
  230. package/src/core/plugins/json-schema-2020-12/index.js +153 -0
  231. package/src/core/plugins/json-schema-2020-12/prop-types.js +10 -0
  232. package/src/core/plugins/json-schema-2020-12-samples/fn/api/encoderAPI.js +20 -0
  233. package/src/core/plugins/json-schema-2020-12-samples/fn/api/formatAPI.js +20 -0
  234. package/src/core/plugins/json-schema-2020-12-samples/fn/api/mediaTypeAPI.js +27 -0
  235. package/src/core/plugins/json-schema-2020-12-samples/fn/api/optionAPI.js +17 -0
  236. package/src/core/plugins/json-schema-2020-12-samples/fn/class/EncoderRegistry.js +33 -0
  237. package/src/core/plugins/json-schema-2020-12-samples/fn/class/FormatRegistry.js +65 -0
  238. package/src/core/plugins/json-schema-2020-12-samples/fn/class/MediaTypeRegistry.js +27 -0
  239. package/src/core/plugins/json-schema-2020-12-samples/fn/class/OptionRegistry.js +16 -0
  240. package/src/core/plugins/json-schema-2020-12-samples/fn/class/Registry.js +24 -0
  241. package/src/core/plugins/json-schema-2020-12-samples/fn/core/constants.js +6 -0
  242. package/src/core/plugins/json-schema-2020-12-samples/fn/core/example.js +57 -0
  243. package/src/core/plugins/json-schema-2020-12-samples/fn/core/merge.js +83 -0
  244. package/src/core/plugins/json-schema-2020-12-samples/fn/core/predicates.js +16 -0
  245. package/src/core/plugins/json-schema-2020-12-samples/fn/core/random.js +46 -0
  246. package/src/core/plugins/json-schema-2020-12-samples/fn/core/type.js +156 -0
  247. package/src/core/plugins/json-schema-2020-12-samples/fn/core/utils.js +23 -0
  248. package/src/core/plugins/json-schema-2020-12-samples/fn/encoders/7bit.js +6 -0
  249. package/src/core/plugins/json-schema-2020-12-samples/fn/encoders/8bit.js +6 -0
  250. package/src/core/plugins/json-schema-2020-12-samples/fn/encoders/base16.js +6 -0
  251. package/src/core/plugins/json-schema-2020-12-samples/fn/encoders/base32.js +34 -0
  252. package/src/core/plugins/json-schema-2020-12-samples/fn/encoders/base64.js +6 -0
  253. package/src/core/plugins/json-schema-2020-12-samples/fn/encoders/base64url.js +6 -0
  254. package/src/core/plugins/json-schema-2020-12-samples/fn/encoders/binary.js +6 -0
  255. package/src/core/plugins/json-schema-2020-12-samples/fn/encoders/quoted-printable.js +38 -0
  256. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/date-time.js +6 -0
  257. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/date.js +6 -0
  258. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/double.js +6 -0
  259. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/duration.js +6 -0
  260. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/email.js +6 -0
  261. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/float.js +6 -0
  262. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/hostname.js +6 -0
  263. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/idn-email.js +6 -0
  264. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/idn-hostname.js +6 -0
  265. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/int32.js +6 -0
  266. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/int64.js +6 -0
  267. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/ipv4.js +6 -0
  268. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/ipv6.js +6 -0
  269. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/iri-reference.js +6 -0
  270. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/iri.js +6 -0
  271. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/json-pointer.js +6 -0
  272. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/media-types/application.js +17 -0
  273. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/media-types/audio.js +10 -0
  274. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/media-types/image.js +10 -0
  275. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/media-types/text.js +17 -0
  276. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/media-types/video.js +10 -0
  277. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/password.js +6 -0
  278. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/regex.js +6 -0
  279. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/relative-json-pointer.js +6 -0
  280. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/time.js +6 -0
  281. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/uri-reference.js +6 -0
  282. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/uri-template.js +7 -0
  283. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/uri.js +6 -0
  284. package/src/core/plugins/json-schema-2020-12-samples/fn/generators/uuid.js +6 -0
  285. package/src/core/plugins/json-schema-2020-12-samples/fn/get-json-sample-schema.js +36 -0
  286. package/src/core/plugins/json-schema-2020-12-samples/fn/get-sample-schema.js +39 -0
  287. package/src/core/plugins/json-schema-2020-12-samples/fn/get-xml-sample-schema.js +35 -0
  288. package/src/core/plugins/json-schema-2020-12-samples/fn/get-yaml-sample-schema.js +34 -0
  289. package/src/core/plugins/json-schema-2020-12-samples/fn/index.js +16 -0
  290. package/src/core/plugins/json-schema-2020-12-samples/fn/main.js +562 -0
  291. package/src/core/plugins/json-schema-2020-12-samples/fn/types/array.js +52 -0
  292. package/src/core/plugins/json-schema-2020-12-samples/fn/types/boolean.js +9 -0
  293. package/src/core/plugins/json-schema-2020-12-samples/fn/types/index.js +30 -0
  294. package/src/core/plugins/json-schema-2020-12-samples/fn/types/integer.js +43 -0
  295. package/src/core/plugins/json-schema-2020-12-samples/fn/types/null.js +9 -0
  296. package/src/core/plugins/json-schema-2020-12-samples/fn/types/number.js +65 -0
  297. package/src/core/plugins/json-schema-2020-12-samples/fn/types/object.js +9 -0
  298. package/src/core/plugins/json-schema-2020-12-samples/fn/types/string.js +80 -0
  299. package/src/core/plugins/json-schema-2020-12-samples/index.js +51 -0
  300. package/src/core/plugins/json-schema-5/components/array-model.jsx +80 -0
  301. package/src/core/plugins/json-schema-5/components/enum-model.jsx +19 -0
  302. package/src/core/plugins/json-schema-5/components/json-schema-components.jsx +441 -0
  303. package/src/core/plugins/json-schema-5/components/model-collapse.jsx +99 -0
  304. package/src/core/plugins/json-schema-5/components/model-example.jsx +160 -0
  305. package/src/core/plugins/json-schema-5/components/model-extensions.jsx +28 -0
  306. package/src/core/plugins/json-schema-5/components/model-wrapper.jsx +44 -0
  307. package/src/core/plugins/json-schema-5/components/model.jsx +136 -0
  308. package/src/core/plugins/json-schema-5/components/models.jsx +139 -0
  309. package/src/core/plugins/json-schema-5/components/object-model.jsx +340 -0
  310. package/src/core/plugins/json-schema-5/components/primitive-model.jsx +137 -0
  311. package/src/core/plugins/json-schema-5/components/schemes.jsx +53 -0
  312. package/src/core/plugins/json-schema-5/containers/schemes.jsx +30 -0
  313. package/src/core/plugins/json-schema-5/fn.js +51 -0
  314. package/src/core/plugins/json-schema-5/index.js +41 -0
  315. package/src/core/plugins/json-schema-5-samples/fn/get-json-sample-schema.js +32 -0
  316. package/src/core/plugins/json-schema-5-samples/fn/get-sample-schema.js +30 -0
  317. package/src/core/plugins/json-schema-5-samples/fn/get-xml-sample-schema.js +31 -0
  318. package/src/core/plugins/json-schema-5-samples/fn/get-yaml-sample-schema.js +34 -0
  319. package/src/core/plugins/json-schema-5-samples/fn/index.js +653 -0
  320. package/src/core/plugins/json-schema-5-samples/index.js +56 -0
  321. package/src/core/plugins/layout/actions.js +39 -0
  322. package/src/core/plugins/layout/index.js +19 -0
  323. package/src/core/plugins/layout/reducers.js +32 -0
  324. package/src/core/plugins/layout/selectors.js +24 -0
  325. package/src/core/plugins/layout/spec-extensions/wrap-selector.js +22 -0
  326. package/src/core/plugins/logs/index.js +28 -0
  327. package/src/core/plugins/oas3/actions.js +99 -0
  328. package/src/core/plugins/oas3/auth-extensions/wrap-selectors.js +92 -0
  329. package/src/core/plugins/oas3/components/auth/http-auth.jsx +157 -0
  330. package/src/core/plugins/oas3/components/callbacks.jsx +51 -0
  331. package/src/core/plugins/oas3/components/index.js +19 -0
  332. package/src/core/plugins/oas3/components/operation-link.jsx +43 -0
  333. package/src/core/plugins/oas3/components/operation-servers.jsx +102 -0
  334. package/src/core/plugins/oas3/components/request-body-editor.jsx +103 -0
  335. package/src/core/plugins/oas3/components/request-body.jsx +338 -0
  336. package/src/core/plugins/oas3/components/servers-container.jsx +33 -0
  337. package/src/core/plugins/oas3/components/servers.jsx +153 -0
  338. package/src/core/plugins/oas3/fn.js +35 -0
  339. package/src/core/plugins/oas3/helpers.jsx +48 -0
  340. package/src/core/plugins/oas3/index.js +39 -0
  341. package/src/core/plugins/oas3/reducers.js +111 -0
  342. package/src/core/plugins/oas3/selectors.js +308 -0
  343. package/src/core/plugins/oas3/spec-extensions/selectors.js +100 -0
  344. package/src/core/plugins/oas3/spec-extensions/wrap-selectors.js +71 -0
  345. package/src/core/plugins/oas3/wrap-components/auth/auth-item.jsx +25 -0
  346. package/src/core/plugins/oas3/wrap-components/index.js +15 -0
  347. package/src/core/plugins/oas3/wrap-components/json-schema-string.jsx +27 -0
  348. package/src/core/plugins/oas3/wrap-components/markdown.jsx +45 -0
  349. package/src/core/plugins/oas3/wrap-components/model.jsx +40 -0
  350. package/src/core/plugins/oas3/wrap-components/online-validator-badge.js +5 -0
  351. package/src/core/plugins/oas3/wrap-components/openapi-version.jsx +7 -0
  352. package/src/core/plugins/oas31/after-load.js +72 -0
  353. package/src/core/plugins/oas31/auth-extensions/wrap-selectors.js +28 -0
  354. package/src/core/plugins/oas31/components/_all.scss +2 -0
  355. package/src/core/plugins/oas31/components/auth/auths.jsx +186 -0
  356. package/src/core/plugins/oas31/components/auth/mutual-tls-auth.jsx +32 -0
  357. package/src/core/plugins/oas31/components/contact.jsx +43 -0
  358. package/src/core/plugins/oas31/components/info.jsx +99 -0
  359. package/src/core/plugins/oas31/components/json-schema-dialect.jsx +60 -0
  360. package/src/core/plugins/oas31/components/license.jsx +38 -0
  361. package/src/core/plugins/oas31/components/model/_model.scss +23 -0
  362. package/src/core/plugins/oas31/components/model/model.jsx +54 -0
  363. package/src/core/plugins/oas31/components/models/_models.scss +11 -0
  364. package/src/core/plugins/oas31/components/models/models.jsx +141 -0
  365. package/src/core/plugins/oas31/components/version-pragma-filter.jsx +73 -0
  366. package/src/core/plugins/oas31/components/webhooks.jsx +49 -0
  367. package/src/core/plugins/oas31/fn.js +124 -0
  368. package/src/core/plugins/oas31/index.js +166 -0
  369. package/src/core/plugins/oas31/json-schema-2020-12-extensions/components/keywords/Description.jsx +27 -0
  370. package/src/core/plugins/oas31/json-schema-2020-12-extensions/components/keywords/Discriminator/Discriminator.jsx +118 -0
  371. package/src/core/plugins/oas31/json-schema-2020-12-extensions/components/keywords/Discriminator/DiscriminatorMapping.jsx +32 -0
  372. package/src/core/plugins/oas31/json-schema-2020-12-extensions/components/keywords/Example.jsx +28 -0
  373. package/src/core/plugins/oas31/json-schema-2020-12-extensions/components/keywords/ExternalDocs.jsx +143 -0
  374. package/src/core/plugins/oas31/json-schema-2020-12-extensions/components/keywords/OpenAPIExtensions.jsx +33 -0
  375. package/src/core/plugins/oas31/json-schema-2020-12-extensions/components/keywords/Properties.jsx +60 -0
  376. package/src/core/plugins/oas31/json-schema-2020-12-extensions/components/keywords/Xml.jsx +162 -0
  377. package/src/core/plugins/oas31/json-schema-2020-12-extensions/fn.js +57 -0
  378. package/src/core/plugins/oas31/json-schema-2020-12-extensions/wrap-components/keywords/Description.jsx +9 -0
  379. package/src/core/plugins/oas31/json-schema-2020-12-extensions/wrap-components/keywords/Examples.jsx +31 -0
  380. package/src/core/plugins/oas31/json-schema-2020-12-extensions/wrap-components/keywords/Properties.jsx +9 -0
  381. package/src/core/plugins/oas31/oas3-extensions/fn.js +46 -0
  382. package/src/core/plugins/oas31/selectors.js +26 -0
  383. package/src/core/plugins/oas31/spec-extensions/selectors.js +198 -0
  384. package/src/core/plugins/oas31/spec-extensions/wrap-selectors.js +18 -0
  385. package/src/core/plugins/oas31/wrap-components/auth/auth-item.jsx +22 -0
  386. package/src/core/plugins/oas31/wrap-components/auths.jsx +17 -0
  387. package/src/core/plugins/oas31/wrap-components/contact.jsx +15 -0
  388. package/src/core/plugins/oas31/wrap-components/info.jsx +15 -0
  389. package/src/core/plugins/oas31/wrap-components/license.jsx +15 -0
  390. package/src/core/plugins/oas31/wrap-components/model.jsx +44 -0
  391. package/src/core/plugins/oas31/wrap-components/models.jsx +47 -0
  392. package/src/core/plugins/oas31/wrap-components/version-pragma-filter.jsx +16 -0
  393. package/src/core/plugins/on-complete/index.js +28 -0
  394. package/src/core/plugins/request-snippets/fn.js +169 -0
  395. package/src/core/plugins/request-snippets/index.js +21 -0
  396. package/src/core/plugins/request-snippets/request-snippets.jsx +163 -0
  397. package/src/core/plugins/request-snippets/selectors.js +45 -0
  398. package/src/core/plugins/safe-render/components/error-boundary.jsx +52 -0
  399. package/src/core/plugins/safe-render/components/fallback.jsx +13 -0
  400. package/src/core/plugins/safe-render/fn.jsx +32 -0
  401. package/src/core/plugins/safe-render/index.js +42 -0
  402. package/src/core/plugins/spec/actions.js +531 -0
  403. package/src/core/plugins/spec/index.js +20 -0
  404. package/src/core/plugins/spec/reducers.js +176 -0
  405. package/src/core/plugins/spec/selectors.js +575 -0
  406. package/src/core/plugins/spec/wrap-actions.js +39 -0
  407. package/src/core/plugins/swagger-client/configs-wrap-actions.js +6 -0
  408. package/src/core/plugins/swagger-client/index.js +54 -0
  409. package/src/core/plugins/syntax-highlighting/after-load.js +25 -0
  410. package/src/core/plugins/syntax-highlighting/components/HighlightCode.jsx +107 -0
  411. package/src/core/plugins/syntax-highlighting/components/PlainTextViewer.jsx +17 -0
  412. package/src/core/plugins/syntax-highlighting/components/SyntaxHighlighter.jsx +42 -0
  413. package/src/core/plugins/syntax-highlighting/index.js +34 -0
  414. package/src/core/plugins/syntax-highlighting/root-injects.js +22 -0
  415. package/src/core/plugins/syntax-highlighting/wrap-components/SyntaxHighlighter.jsx +31 -0
  416. package/src/core/plugins/util/index.js +11 -0
  417. package/src/core/plugins/versions/after-load.js +19 -0
  418. package/src/core/plugins/versions/index.js +10 -0
  419. package/src/core/plugins/view/fn.js +1 -0
  420. package/src/core/plugins/view/index.js +34 -0
  421. package/src/core/plugins/view/root-injects.jsx +118 -0
  422. package/src/core/plugins/view-legacy/index.js +25 -0
  423. package/src/core/plugins/view-legacy/root-injects.jsx +12 -0
  424. package/src/core/presets/apis/index.js +18 -0
  425. package/src/core/presets/base/index.js +55 -0
  426. package/src/core/presets/base/plugins/core-components/index.js +130 -0
  427. package/src/core/presets/base/plugins/form-components/index.js +10 -0
  428. package/src/core/system.js +511 -0
  429. package/src/core/utils/create-html-ready-id.js +10 -0
  430. package/src/core/utils/get-parameter-schema.js +94 -0
  431. package/src/core/utils/index.js +847 -0
  432. package/src/core/utils/jsonParse.js +15 -0
  433. package/src/core/utils/memoizeN.js +48 -0
  434. package/src/core/utils/url.js +79 -0
  435. package/src/core/window.js +30 -0
  436. package/src/index.js +3 -0
  437. package/src/standalone/plugins/stadalone-layout/components/StandaloneLayout.jsx +40 -0
  438. package/src/standalone/plugins/stadalone-layout/index.js +12 -0
  439. package/src/standalone/plugins/top-bar/assets/lightbulb-off.svg +1 -0
  440. package/src/standalone/plugins/top-bar/assets/lightbulb.svg +1 -0
  441. package/src/standalone/plugins/top-bar/assets/logo_small.svg +60 -0
  442. package/src/standalone/plugins/top-bar/components/DarkModeToggle.jsx +47 -0
  443. package/src/standalone/plugins/top-bar/components/Logo.jsx +9 -0
  444. package/src/standalone/plugins/top-bar/components/TopBar.jsx +183 -0
  445. package/src/standalone/plugins/top-bar/index.js +12 -0
  446. package/src/standalone/presets/standalone/index.js +19 -0
  447. package/src/style/_authorize.scss +96 -0
  448. package/src/style/_buttons.scss +199 -0
  449. package/src/style/_dark-mode.scss +664 -0
  450. package/src/style/_errors.scss +72 -0
  451. package/src/style/_form.scss +214 -0
  452. package/src/style/_information.scss +99 -0
  453. package/src/style/_layout.scss +941 -0
  454. package/src/style/_markdown.scss +34 -0
  455. package/src/style/_mixins.scss +159 -0
  456. package/src/style/_modal.scss +95 -0
  457. package/src/style/_models.scss +330 -0
  458. package/src/style/_servers.scss +66 -0
  459. package/src/style/_split-pane-mode.scss +3 -0
  460. package/src/style/_table.scss +191 -0
  461. package/src/style/_topbar.scss +126 -0
  462. package/src/style/_type.scss +21 -0
  463. package/src/style/_variables.scss +230 -0
  464. package/src/style/main.scss +28 -0
  465. package/stylelint.config.js +11 -0
  466. package/swagger-ui-dist-package/absolute-path.js +14 -0
  467. package/swagger-ui-dist-package/index.js +17 -0
  468. package/swagger-ui-dist-package/package.json +20 -0
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import Registry from "./Registry"
5
+ import encode7bit from "../encoders/7bit"
6
+ import encode8bit from "../encoders/8bit"
7
+ import encodeBinary from "../encoders/binary"
8
+ import encodeQuotedPrintable from "../encoders/quoted-printable"
9
+ import encodeBase16 from "../encoders/base16"
10
+ import encodeBase32 from "../encoders/base32"
11
+ import encodeBase64 from "../encoders/base64"
12
+ import encodeBase64Url from "../encoders/base64url"
13
+
14
+ class EncoderRegistry extends Registry {
15
+ #defaults = {
16
+ "7bit": encode7bit,
17
+ "8bit": encode8bit,
18
+ binary: encodeBinary,
19
+ "quoted-printable": encodeQuotedPrintable,
20
+ base16: encodeBase16,
21
+ base32: encodeBase32,
22
+ base64: encodeBase64,
23
+ base64url: encodeBase64Url,
24
+ }
25
+
26
+ data = { ...this.#defaults }
27
+
28
+ get defaults() {
29
+ return { ...this.#defaults }
30
+ }
31
+ }
32
+
33
+ export default EncoderRegistry
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import Registry from "./Registry"
5
+ import int32Generator from "../generators/int32"
6
+ import int64Generator from "../generators/int64"
7
+ import floatGenerator from "../generators/float"
8
+ import doubleGenerator from "../generators/double"
9
+ import emailGenerator from "../generators/email"
10
+ import idnEmailGenerator from "../generators/idn-email"
11
+ import hostnameGenerator from "../generators/hostname"
12
+ import idnHostnameGenerator from "../generators/idn-hostname"
13
+ import ipv4Generator from "../generators/ipv4"
14
+ import ipv6Generator from "../generators/ipv6"
15
+ import uriGenerator from "../generators/uri"
16
+ import uriReferenceGenerator from "../generators/uri-reference"
17
+ import iriGenerator from "../generators/iri"
18
+ import iriReferenceGenerator from "../generators/iri-reference"
19
+ import uuidGenerator from "../generators/uuid"
20
+ import uriTemplateGenerator from "../generators/uri-template"
21
+ import jsonPointerGenerator from "../generators/json-pointer"
22
+ import relativeJsonPointerGenerator from "../generators/relative-json-pointer"
23
+ import dateTimeGenerator from "../generators/date-time"
24
+ import dateGenerator from "../generators/date"
25
+ import timeGenerator from "../generators/time"
26
+ import durationGenerator from "../generators/duration"
27
+ import passwordGenerator from "../generators/password"
28
+ import regexGenerator from "../generators/regex"
29
+
30
+ class FormatRegistry extends Registry {
31
+ #defaults = {
32
+ int32: int32Generator,
33
+ int64: int64Generator,
34
+ float: floatGenerator,
35
+ double: doubleGenerator,
36
+ email: emailGenerator,
37
+ "idn-email": idnEmailGenerator,
38
+ hostname: hostnameGenerator,
39
+ "idn-hostname": idnHostnameGenerator,
40
+ ipv4: ipv4Generator,
41
+ ipv6: ipv6Generator,
42
+ uri: uriGenerator,
43
+ "uri-reference": uriReferenceGenerator,
44
+ iri: iriGenerator,
45
+ "iri-reference": iriReferenceGenerator,
46
+ uuid: uuidGenerator,
47
+ "uri-template": uriTemplateGenerator,
48
+ "json-pointer": jsonPointerGenerator,
49
+ "relative-json-pointer": relativeJsonPointerGenerator,
50
+ "date-time": dateTimeGenerator,
51
+ date: dateGenerator,
52
+ time: timeGenerator,
53
+ duration: durationGenerator,
54
+ password: passwordGenerator,
55
+ regex: regexGenerator,
56
+ }
57
+
58
+ data = { ...this.#defaults }
59
+
60
+ get defaults() {
61
+ return { ...this.#defaults }
62
+ }
63
+ }
64
+
65
+ export default FormatRegistry
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import Registry from "./Registry"
5
+ import textMediaTypesGenerators from "../generators/media-types/text"
6
+ import imageMediaTypesGenerators from "../generators/media-types/image"
7
+ import audioMediaTypesGenerators from "../generators/media-types/audio"
8
+ import videoMediaTypesGenerators from "../generators/media-types/video"
9
+ import applicationMediaTypesGenerators from "../generators/media-types/application"
10
+
11
+ class MediaTypeRegistry extends Registry {
12
+ #defaults = {
13
+ ...textMediaTypesGenerators,
14
+ ...imageMediaTypesGenerators,
15
+ ...audioMediaTypesGenerators,
16
+ ...videoMediaTypesGenerators,
17
+ ...applicationMediaTypesGenerators,
18
+ }
19
+
20
+ data = { ...this.#defaults }
21
+
22
+ get defaults() {
23
+ return { ...this.#defaults }
24
+ }
25
+ }
26
+
27
+ export default MediaTypeRegistry
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import Registry from "./Registry"
5
+
6
+ class OptionRegistry extends Registry {
7
+ #defaults = {}
8
+
9
+ data = { ...this.#defaults }
10
+
11
+ get defaults() {
12
+ return { ...this.#defaults }
13
+ }
14
+ }
15
+
16
+ export default OptionRegistry
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ class Registry {
5
+ data = {}
6
+
7
+ register(name, value) {
8
+ this.data[name] = value
9
+ }
10
+
11
+ unregister(name) {
12
+ if (typeof name === "undefined") {
13
+ this.data = {}
14
+ } else {
15
+ delete this.data[name]
16
+ }
17
+ }
18
+
19
+ get(name) {
20
+ return this.data[name]
21
+ }
22
+ }
23
+
24
+ export default Registry
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ export const SCALAR_TYPES = ["number", "integer", "string", "boolean", "null"]
5
+
6
+ export const ALL_TYPES = ["array", "object", ...SCALAR_TYPES]
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { isJSONSchemaObject } from "./predicates"
5
+
6
+ /**
7
+ * Precedence of keywords that provides author defined values (top of the list = higher priority)
8
+ *
9
+ * ### examples
10
+ * Array containing example values for the item defined by the schema.
11
+ * Not guaranteed to be valid or invalid against the schema
12
+ *
13
+ * ### default
14
+ * Default value for an item defined by the schema.
15
+ * Is expected to be a valid instance of the schema.
16
+ *
17
+ * ### example
18
+ * Deprecated. Part of OpenAPI 3.1.0 Schema Object dialect.
19
+ * Represents single example. Equivalent of `examples` keywords
20
+ * with single item.
21
+ */
22
+
23
+ export const hasExample = (schema) => {
24
+ if (!isJSONSchemaObject(schema)) return false
25
+
26
+ const { examples, example, default: defaultVal } = schema
27
+
28
+ if (Array.isArray(examples) && examples.length >= 1) {
29
+ return true
30
+ }
31
+
32
+ if (typeof defaultVal !== "undefined") {
33
+ return true
34
+ }
35
+
36
+ return typeof example !== "undefined"
37
+ }
38
+
39
+ export const extractExample = (schema) => {
40
+ if (!isJSONSchemaObject(schema)) return null
41
+
42
+ const { examples, example, default: defaultVal } = schema
43
+
44
+ if (Array.isArray(examples) && examples.length >= 1) {
45
+ return examples.at(0)
46
+ }
47
+
48
+ if (typeof defaultVal !== "undefined") {
49
+ return defaultVal
50
+ }
51
+
52
+ if (typeof example !== "undefined") {
53
+ return example
54
+ }
55
+
56
+ return undefined
57
+ }
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { normalizeArray as ensureArray } from "core/utils"
5
+ import { isBooleanJSONSchema, isJSONSchema } from "./predicates"
6
+
7
+ const merge = (target, source, config = {}) => {
8
+ if (isBooleanJSONSchema(target) && target === true) return true
9
+ if (isBooleanJSONSchema(target) && target === false) return false
10
+ if (isBooleanJSONSchema(source) && source === true) return true
11
+ if (isBooleanJSONSchema(source) && source === false) return false
12
+
13
+ if (!isJSONSchema(target)) return source
14
+ if (!isJSONSchema(source)) return target
15
+
16
+ /**
17
+ * Merging properties from the source object into the target object
18
+ * only if they do not already exist in the target object.
19
+ */
20
+ const merged = { ...source, ...target }
21
+
22
+ // merging the type keyword
23
+ if (source.type && target.type) {
24
+ if (Array.isArray(source.type) && typeof source.type === "string") {
25
+ const mergedType = ensureArray(source.type).concat(target.type)
26
+ merged.type = Array.from(new Set(mergedType))
27
+ }
28
+ }
29
+
30
+ // merging required keyword
31
+ if (Array.isArray(source.required) && Array.isArray(target.required)) {
32
+ merged.required = [...new Set([...target.required, ...source.required])]
33
+ }
34
+
35
+ // merging properties keyword
36
+ if (source.properties && target.properties) {
37
+ const allPropertyNames = new Set([
38
+ ...Object.keys(source.properties),
39
+ ...Object.keys(target.properties),
40
+ ])
41
+
42
+ merged.properties = {}
43
+ for (const name of allPropertyNames) {
44
+ const sourceProperty = source.properties[name] || {}
45
+ const targetProperty = target.properties[name] || {}
46
+
47
+ if (
48
+ (sourceProperty.readOnly && !config.includeReadOnly) ||
49
+ (sourceProperty.writeOnly && !config.includeWriteOnly)
50
+ ) {
51
+ merged.required = (merged.required || []).filter((p) => p !== name)
52
+ } else {
53
+ merged.properties[name] = merge(targetProperty, sourceProperty, config)
54
+ }
55
+ }
56
+ }
57
+
58
+ // merging items keyword
59
+ if (isJSONSchema(source.items) && isJSONSchema(target.items)) {
60
+ merged.items = merge(target.items, source.items, config)
61
+ }
62
+
63
+ // merging contains keyword
64
+ if (isJSONSchema(source.contains) && isJSONSchema(target.contains)) {
65
+ merged.contains = merge(target.contains, source.contains, config)
66
+ }
67
+
68
+ // merging contentSchema keyword
69
+ if (
70
+ isJSONSchema(source.contentSchema) &&
71
+ isJSONSchema(target.contentSchema)
72
+ ) {
73
+ merged.contentSchema = merge(
74
+ target.contentSchema,
75
+ source.contentSchema,
76
+ config
77
+ )
78
+ }
79
+
80
+ return merged
81
+ }
82
+
83
+ export default merge
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import isPlainObject from "lodash/isPlainObject"
5
+
6
+ export const isBooleanJSONSchema = (schema) => {
7
+ return typeof schema === "boolean"
8
+ }
9
+
10
+ export const isJSONSchemaObject = (schema) => {
11
+ return isPlainObject(schema)
12
+ }
13
+
14
+ export const isJSONSchema = (schema) => {
15
+ return isBooleanJSONSchema(schema) || isJSONSchemaObject(schema)
16
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import randomBytes from "randombytes"
5
+ import RandExp from "randexp"
6
+
7
+ /**
8
+ * Some of the functions returns constants. This is due to the nature
9
+ * of SwaggerUI expectations - provide as stable data as possible.
10
+ *
11
+ * In future, we may decide to randomize these function and provide
12
+ * true random values.
13
+ */
14
+
15
+ export const bytes = (length) => randomBytes(length)
16
+
17
+ export const randexp = (pattern) => {
18
+ try {
19
+ /**
20
+ * Applying maximum value (100) to numbers from regex patterns to avoid ReDoS:
21
+ * 1. {x}
22
+ * 2. {x,}
23
+ * 3. {,y}
24
+ * 4. {x,y}
25
+ */
26
+ const patternSanitizer =
27
+ /(?<=(?<!\\)\{)(\d{3,})(?=\})|(?<=(?<!\\)\{\d*,)(\d{3,})(?=\})|(?<=(?<!\\)\{)(\d{3,})(?=,\d*\})/g
28
+ const safePattern = pattern.replace(patternSanitizer, "100")
29
+ const randexpInstance = new RandExp(safePattern)
30
+ randexpInstance.max = 100
31
+ return randexpInstance.gen()
32
+ } catch {
33
+ // invalid regex should not cause a crash (regex syntax varies across languages)
34
+ return "string"
35
+ }
36
+ }
37
+
38
+ export const pick = (list) => {
39
+ return list.at(0)
40
+ }
41
+
42
+ export const string = () => "string"
43
+
44
+ export const number = () => 0
45
+
46
+ export const integer = () => 0
@@ -0,0 +1,156 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { ALL_TYPES } from "./constants"
5
+ import { isJSONSchemaObject } from "./predicates"
6
+ import { pick as randomPick } from "./random"
7
+ import { hasExample, extractExample } from "./example"
8
+
9
+ const inferringKeywords = {
10
+ array: [
11
+ "items",
12
+ "prefixItems",
13
+ "contains",
14
+ "maxContains",
15
+ "minContains",
16
+ "maxItems",
17
+ "minItems",
18
+ "uniqueItems",
19
+ "unevaluatedItems",
20
+ ],
21
+ object: [
22
+ "properties",
23
+ "additionalProperties",
24
+ "patternProperties",
25
+ "propertyNames",
26
+ "minProperties",
27
+ "maxProperties",
28
+ "required",
29
+ "dependentSchemas",
30
+ "dependentRequired",
31
+ "unevaluatedProperties",
32
+ ],
33
+ string: [
34
+ "pattern",
35
+ "format",
36
+ "minLength",
37
+ "maxLength",
38
+ "contentEncoding",
39
+ "contentMediaType",
40
+ "contentSchema",
41
+ ],
42
+ integer: [
43
+ "minimum",
44
+ "maximum",
45
+ "exclusiveMinimum",
46
+ "exclusiveMaximum",
47
+ "multipleOf",
48
+ ],
49
+ }
50
+ inferringKeywords.number = inferringKeywords.integer
51
+
52
+ const fallbackType = "string"
53
+
54
+ const inferTypeFromValue = (value) => {
55
+ if (typeof value === "undefined") return null
56
+ if (value === null) return "null"
57
+ if (Array.isArray(value)) return "array"
58
+ if (Number.isInteger(value)) return "integer"
59
+
60
+ return typeof value
61
+ }
62
+
63
+ export const foldType = (type) => {
64
+ if (Array.isArray(type) && type.length >= 1) {
65
+ if (type.includes("array")) {
66
+ return "array"
67
+ } else if (type.includes("object")) {
68
+ return "object"
69
+ } else {
70
+ const notNullTypes = type.filter((t) => t !== "null")
71
+ const pickedType = randomPick(
72
+ notNullTypes.length > 0 ? notNullTypes : type
73
+ )
74
+ if (ALL_TYPES.includes(pickedType)) {
75
+ return pickedType
76
+ }
77
+ }
78
+ }
79
+
80
+ if (ALL_TYPES.includes(type)) {
81
+ return type
82
+ }
83
+
84
+ return null
85
+ }
86
+
87
+ export const inferType = (schema, processedSchemas = new WeakSet()) => {
88
+ if (!isJSONSchemaObject(schema)) return fallbackType
89
+ if (processedSchemas.has(schema)) return fallbackType
90
+
91
+ processedSchemas.add(schema)
92
+
93
+ let { type, const: constant } = schema
94
+ type = foldType(type)
95
+
96
+ // inferring type from inferring keywords
97
+ if (typeof type !== "string") {
98
+ const inferringTypes = Object.keys(inferringKeywords)
99
+
100
+ interrupt: for (let i = 0; i < inferringTypes.length; i += 1) {
101
+ const inferringType = inferringTypes[i]
102
+ const inferringTypeKeywords = inferringKeywords[inferringType]
103
+
104
+ for (let j = 0; j < inferringTypeKeywords.length; j += 1) {
105
+ const inferringKeyword = inferringTypeKeywords[j]
106
+ if (Object.hasOwn(schema, inferringKeyword)) {
107
+ type = inferringType
108
+ break interrupt
109
+ }
110
+ }
111
+ }
112
+ }
113
+
114
+ // inferring type from const keyword
115
+ if (typeof type !== "string" && typeof constant !== "undefined") {
116
+ const constType = inferTypeFromValue(constant)
117
+ type = typeof constType === "string" ? constType : type
118
+ }
119
+
120
+ // inferring type from combining schemas
121
+ if (typeof type !== "string") {
122
+ const combineTypes = (keyword) => {
123
+ if (Array.isArray(schema[keyword])) {
124
+ const combinedTypes = schema[keyword].map((subSchema) =>
125
+ inferType(subSchema, processedSchemas)
126
+ )
127
+ return foldType(combinedTypes)
128
+ }
129
+ return null
130
+ }
131
+
132
+ const allOf = combineTypes("allOf")
133
+ const anyOf = combineTypes("anyOf")
134
+ const oneOf = combineTypes("oneOf")
135
+ const not = schema.not ? inferType(schema.not, processedSchemas) : null
136
+
137
+ if (allOf || anyOf || oneOf || not) {
138
+ type = foldType([allOf, anyOf, oneOf, not].filter(Boolean))
139
+ }
140
+ }
141
+
142
+ // inferring type from example
143
+ if (typeof type !== "string" && hasExample(schema)) {
144
+ const example = extractExample(schema)
145
+ const exampleType = inferTypeFromValue(example)
146
+ type = typeof exampleType === "string" ? exampleType : type
147
+ }
148
+
149
+ processedSchemas.delete(schema)
150
+
151
+ return type || fallbackType
152
+ }
153
+
154
+ export const getType = (schema) => {
155
+ return inferType(schema)
156
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { isBooleanJSONSchema, isJSONSchemaObject } from "./predicates"
5
+
6
+ export const fromJSONBooleanSchema = (schema) => {
7
+ if (schema === false) {
8
+ return { not: {} }
9
+ }
10
+
11
+ return {}
12
+ }
13
+
14
+ export const typeCast = (schema) => {
15
+ if (isBooleanJSONSchema(schema)) {
16
+ return fromJSONBooleanSchema(schema)
17
+ }
18
+ if (!isJSONSchemaObject(schema)) {
19
+ return {}
20
+ }
21
+
22
+ return schema
23
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ const encode7bit = (content) => Buffer.from(content).toString("ascii")
5
+
6
+ export default encode7bit
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ const encode8bit = (content) => Buffer.from(content).toString("utf8")
5
+
6
+ export default encode8bit
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ const encodeBase16 = (content) => Buffer.from(content).toString("hex")
5
+
6
+ export default encodeBase16
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ const encodeBase32 = (content) => {
5
+ const utf8Value = Buffer.from(content).toString("utf8")
6
+ const base32Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
7
+ let paddingCount = 0
8
+ let base32Str = ""
9
+ let buffer = 0
10
+ let bufferLength = 0
11
+
12
+ for (let i = 0; i < utf8Value.length; i++) {
13
+ buffer = (buffer << 8) | utf8Value.charCodeAt(i)
14
+ bufferLength += 8
15
+
16
+ while (bufferLength >= 5) {
17
+ base32Str += base32Alphabet.charAt((buffer >>> (bufferLength - 5)) & 31)
18
+ bufferLength -= 5
19
+ }
20
+ }
21
+
22
+ if (bufferLength > 0) {
23
+ base32Str += base32Alphabet.charAt((buffer << (5 - bufferLength)) & 31)
24
+ paddingCount = (8 - ((utf8Value.length * 8) % 5)) % 5
25
+ }
26
+
27
+ for (let i = 0; i < paddingCount; i++) {
28
+ base32Str += "="
29
+ }
30
+
31
+ return base32Str
32
+ }
33
+
34
+ export default encodeBase32
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ const encodeBase64 = (content) => Buffer.from(content).toString("base64")
5
+
6
+ export default encodeBase64
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ const encodeBase64Url = (content) => Buffer.from(content).toString("base64url")
5
+
6
+ export default encodeBase64Url
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ const encodeBinary = (content) => Buffer.from(content).toString("binary")
5
+
6
+ export default encodeBinary
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ const encodeQuotedPrintable = (content) => {
5
+ let quotedPrintable = ""
6
+
7
+ for (let i = 0; i < content.length; i++) {
8
+ const charCode = content.charCodeAt(i)
9
+
10
+ if (charCode === 61) {
11
+ // ASCII content of "="
12
+ quotedPrintable += "=3D"
13
+ } else if (
14
+ (charCode >= 33 && charCode <= 60) ||
15
+ (charCode >= 62 && charCode <= 126) ||
16
+ charCode === 9 ||
17
+ charCode === 32
18
+ ) {
19
+ quotedPrintable += content.charAt(i)
20
+ } else if (charCode === 13 || charCode === 10) {
21
+ quotedPrintable += "\r\n"
22
+ } else if (charCode > 126) {
23
+ // convert non-ASCII characters to UTF-8 and encode each byte
24
+ const utf8 = unescape(encodeURIComponent(content.charAt(i)))
25
+ for (let j = 0; j < utf8.length; j++) {
26
+ quotedPrintable +=
27
+ "=" + ("0" + utf8.charCodeAt(j).toString(16)).slice(-2).toUpperCase()
28
+ }
29
+ } else {
30
+ quotedPrintable +=
31
+ "=" + ("0" + charCode.toString(16)).slice(-2).toUpperCase()
32
+ }
33
+ }
34
+
35
+ return quotedPrintable
36
+ }
37
+
38
+ export default encodeQuotedPrintable