@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,130 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import App from "core/components/app"
5
+ import AuthorizationPopup from "core/components/auth/authorization-popup"
6
+ import AuthorizeBtn from "core/components/auth/authorize-btn"
7
+ import AuthorizeBtnContainer from "core/containers/authorize-btn"
8
+ import AuthorizeOperationBtn from "core/components/auth/authorize-operation-btn"
9
+ import Auths from "core/components/auth/auths"
10
+ import AuthItem from "core/components/auth/auth-item"
11
+ import AuthError from "core/components/auth/error"
12
+ import ApiKeyAuth from "core/components/auth/api-key-auth"
13
+ import BasicAuth from "core/components/auth/basic-auth"
14
+ import Example from "core/components/example"
15
+ import ExamplesSelect from "core/components/examples-select"
16
+ import ExamplesSelectValueRetainer from "core/components/examples-select-value-retainer"
17
+ import Oauth2 from "core/components/auth/oauth2"
18
+ import Clear from "core/components/clear"
19
+ import LiveResponse from "core/components/live-response"
20
+ import OnlineValidatorBadge from "core/components/online-validator-badge"
21
+ import Operations from "core/components/operations"
22
+ import OperationTag from "core/components/operation-tag"
23
+ import Operation from "core/components/operation"
24
+ import OperationContainer from "core/containers/OperationContainer"
25
+ import OperationSummary from "core/components/operation-summary"
26
+ import OperationSummaryMethod from "core/components/operation-summary-method"
27
+ import OperationSummaryPath from "core/components/operation-summary-path"
28
+ import OperationExt from "core/components/operation-extensions"
29
+ import OperationExtRow from "core/components/operation-extension-row"
30
+ import Responses from "core/components/responses"
31
+ import Response from "core/components/response"
32
+ import ResponseExtension from "core/components/response-extension"
33
+ import ResponseBody from "core/components/response-body"
34
+ import { Parameters } from "core/components/parameters"
35
+ import ParameterExt from "core/components/parameter-extension"
36
+ import ParameterIncludeEmpty from "core/components/parameter-include-empty"
37
+ import ParameterRow from "core/components/parameter-row"
38
+ import Execute from "core/components/execute"
39
+ import Headers from "core/components/headers"
40
+ import Errors from "core/components/errors"
41
+ import ContentType from "core/components/content-type"
42
+ import Overview from "core/components/overview"
43
+ import InitializedInput from "core/components/initialized-input"
44
+ import Info, { InfoUrl, InfoBasePath } from "core/components/info"
45
+ import InfoContainer from "core/containers/info"
46
+ import Contact from "core/components/contact"
47
+ import License from "core/components/license"
48
+ import JumpToPath from "core/components/jump-to-path"
49
+ import CopyToClipboardBtn from "core/components/copy-to-clipboard-btn"
50
+ import Footer from "core/components/footer"
51
+ import FilterContainer from "core/containers/filter"
52
+ import ParamBody from "core/components/param-body"
53
+ import Curl from "core/components/curl"
54
+ import Property from "core/components/property"
55
+ import TryItOutButton from "core/components/try-it-out-button"
56
+ import VersionPragmaFilter from "core/components/version-pragma-filter"
57
+ import VersionStamp from "core/components/version-stamp"
58
+ import OpenAPIVersion from "core/components/openapi-version"
59
+ import DeepLink from "core/components/deep-link"
60
+ import SvgAssets from "core/components/svg-assets"
61
+ import Markdown from "core/components/providers/markdown"
62
+ import BaseLayout from "core/components/layouts/base"
63
+
64
+ const CoreComponentsPlugin = () => ({
65
+ components: {
66
+ App,
67
+ authorizationPopup: AuthorizationPopup,
68
+ authorizeBtn: AuthorizeBtn,
69
+ AuthorizeBtnContainer,
70
+ authorizeOperationBtn: AuthorizeOperationBtn,
71
+ auths: Auths,
72
+ AuthItem: AuthItem,
73
+ authError: AuthError,
74
+ oauth2: Oauth2,
75
+ apiKeyAuth: ApiKeyAuth,
76
+ basicAuth: BasicAuth,
77
+ clear: Clear,
78
+ liveResponse: LiveResponse,
79
+ InitializedInput,
80
+ info: Info,
81
+ InfoContainer,
82
+ InfoUrl,
83
+ InfoBasePath,
84
+ Contact,
85
+ License,
86
+ JumpToPath,
87
+ CopyToClipboardBtn,
88
+ onlineValidatorBadge: OnlineValidatorBadge,
89
+ operations: Operations,
90
+ operation: Operation,
91
+ OperationSummary,
92
+ OperationSummaryMethod,
93
+ OperationSummaryPath,
94
+ responses: Responses,
95
+ response: Response,
96
+ ResponseExtension: ResponseExtension,
97
+ responseBody: ResponseBody,
98
+ parameters: Parameters,
99
+ parameterRow: ParameterRow,
100
+ execute: Execute,
101
+ headers: Headers,
102
+ errors: Errors,
103
+ contentType: ContentType,
104
+ overview: Overview,
105
+ footer: Footer,
106
+ FilterContainer,
107
+ ParamBody: ParamBody,
108
+ curl: Curl,
109
+ Property,
110
+ TryItOutButton,
111
+ Markdown,
112
+ BaseLayout,
113
+ VersionPragmaFilter,
114
+ VersionStamp,
115
+ OperationExt,
116
+ OperationExtRow,
117
+ ParameterExt,
118
+ ParameterIncludeEmpty,
119
+ OperationTag,
120
+ OperationContainer,
121
+ OpenAPIVersion,
122
+ DeepLink,
123
+ SvgAssets,
124
+ Example,
125
+ ExamplesSelect,
126
+ ExamplesSelectValueRetainer,
127
+ },
128
+ })
129
+
130
+ export default CoreComponentsPlugin
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import * as LayoutUtils from "core/components/layout-utils"
5
+
6
+ const FormComponentsPlugin = () => ({
7
+ components: { ...LayoutUtils },
8
+ })
9
+
10
+ export default FormComponentsPlugin
@@ -0,0 +1,511 @@
1
+ import React from "react"
2
+ import { createStore, applyMiddleware, bindActionCreators, compose } from "redux"
3
+ import Im, { fromJS, Map } from "immutable"
4
+ import deepExtend from "deep-extend"
5
+ import { combineReducers } from "redux-immutable"
6
+ import { serializeError } from "serialize-error"
7
+ import merge from "lodash/merge"
8
+ import { NEW_THROWN_ERR } from "core/plugins/err/actions"
9
+ import win from "core/window"
10
+
11
+ import { systemThunkMiddleware, isFn, objMap, objReduce, isObject, isArray, isFunc } from "core/utils"
12
+
13
+ const idFn = a => a
14
+
15
+ // Apply middleware that gets sandwitched between `dispatch` and the reducer function(s)
16
+ function createStoreWithMiddleware(rootReducer, initialState, getSystem) {
17
+
18
+ let middlwares = [
19
+ // createLogger( {
20
+ // stateTransformer: state => state && state.toJS()
21
+ // } ),
22
+ systemThunkMiddleware( getSystem )
23
+ ]
24
+
25
+ const composeEnhancers = win.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose
26
+
27
+ return createStore(rootReducer, initialState, composeEnhancers(
28
+ applyMiddleware( ...middlwares )
29
+ ))
30
+ }
31
+
32
+ export default class Store {
33
+
34
+ constructor(opts={}) {
35
+ deepExtend(this, {
36
+ state: {},
37
+ plugins: [],
38
+ system: {
39
+ configs: {},
40
+ fn: {},
41
+ components: {},
42
+ rootInjects: {},
43
+ statePlugins: {}
44
+ },
45
+ boundSystem: {},
46
+ toolbox: {}
47
+ }, opts)
48
+
49
+ this.getSystem = this._getSystem.bind(this)
50
+
51
+ // Bare system (nothing in it, besides the state)
52
+ this.store = configureStore(idFn, fromJS(this.state), this.getSystem )
53
+
54
+ // will be the system + Im, we can add more tools when we need to
55
+ this.buildSystem(false)
56
+
57
+ // Bootstrap plugins
58
+ this.register(this.plugins)
59
+ }
60
+
61
+ getStore() {
62
+ return this.store
63
+ }
64
+
65
+ register(plugins, rebuild=true) {
66
+ var pluginSystem = combinePlugins(plugins, this.getSystem())
67
+ systemExtend(this.system, pluginSystem)
68
+ if(rebuild) {
69
+ this.buildSystem()
70
+ }
71
+
72
+ const needAnotherRebuild = callAfterLoad.call(this.system, plugins, this.getSystem())
73
+
74
+ if(needAnotherRebuild) {
75
+ this.buildSystem()
76
+ }
77
+ }
78
+
79
+ buildSystem(buildReducer=true) {
80
+ let dispatch = this.getStore().dispatch
81
+ let getState = this.getStore().getState
82
+
83
+ this.boundSystem = Object.assign({},
84
+ this.getRootInjects(),
85
+ this.getWrappedAndBoundActions(dispatch),
86
+ this.getWrappedAndBoundSelectors(getState, this.getSystem),
87
+ this.getStateThunks(getState),
88
+ this.getFn(),
89
+ this.getConfigs()
90
+ )
91
+
92
+ if(buildReducer)
93
+ this.rebuildReducer()
94
+ }
95
+
96
+ _getSystem() {
97
+ return this.boundSystem
98
+ }
99
+
100
+ getRootInjects() {
101
+ return Object.assign({
102
+ getSystem: this.getSystem,
103
+ getStore: this.getStore.bind(this),
104
+ getComponents: this.getComponents.bind(this),
105
+ getState: this.getStore().getState,
106
+ getConfigs: this._getConfigs.bind(this),
107
+ Im,
108
+ React
109
+ }, this.system.rootInjects || {})
110
+ }
111
+
112
+ _getConfigs(){
113
+ return this.system.configs
114
+ }
115
+
116
+ getConfigs() {
117
+ return {
118
+ configs: this.system.configs
119
+ }
120
+ }
121
+
122
+ setConfigs(configs) {
123
+ this.system.configs = configs
124
+ }
125
+
126
+ rebuildReducer() {
127
+ this.store.replaceReducer(buildReducer(this.system.statePlugins, this.getSystem))
128
+ }
129
+
130
+ /**
131
+ * Generic getter from system.statePlugins
132
+ *
133
+ */
134
+ getType(name) {
135
+ let upName = name[0].toUpperCase() + name.slice(1)
136
+ return objReduce(this.system.statePlugins, (val, namespace) => {
137
+ let thing = val[name]
138
+ if(thing)
139
+ return {[namespace+upName]: thing}
140
+ })
141
+ }
142
+
143
+ getSelectors() {
144
+ return this.getType("selectors")
145
+ }
146
+
147
+ getActions() {
148
+ let actionHolders = this.getType("actions")
149
+
150
+ return objMap(actionHolders, (actions) => {
151
+ return objReduce(actions, (action, actionName) => {
152
+ if(isFn(action))
153
+ return {[actionName]: action}
154
+ })
155
+ })
156
+ }
157
+
158
+ getWrappedAndBoundActions(dispatch) {
159
+ let actionGroups = this.getBoundActions(dispatch)
160
+ return objMap(actionGroups, (actions, actionGroupName) => {
161
+ let wrappers = this.system.statePlugins[actionGroupName.slice(0,-7)].wrapActions
162
+ if(wrappers) {
163
+ return objMap(actions, (action, actionName) => {
164
+ let wrap = wrappers[actionName]
165
+ if(!wrap) {
166
+ return action
167
+ }
168
+
169
+ if(!Array.isArray(wrap)) {
170
+ wrap = [wrap]
171
+ }
172
+ return wrap.reduce((acc, fn) => {
173
+ let newAction = (...args) => {
174
+ return fn(acc, this.getSystem())(...args)
175
+ }
176
+ if(!isFn(newAction)) {
177
+ throw new TypeError("wrapActions needs to return a function that returns a new function (ie the wrapped action)")
178
+ }
179
+ return wrapWithTryCatch(newAction, this.getSystem)
180
+ }, action || Function.prototype)
181
+ })
182
+ }
183
+ return actions
184
+ })
185
+ }
186
+
187
+ getWrappedAndBoundSelectors(getState, getSystem) {
188
+ let selectorGroups = this.getBoundSelectors(getState, getSystem)
189
+ return objMap(selectorGroups, (selectors, selectorGroupName) => {
190
+ let stateName = [selectorGroupName.slice(0, -9)] // selectors = 9 chars
191
+ let wrappers = this.system.statePlugins[stateName].wrapSelectors
192
+ if(wrappers) {
193
+ return objMap(selectors, (selector, selectorName) => {
194
+ let wrap = wrappers[selectorName]
195
+ if(!wrap) {
196
+ return selector
197
+ }
198
+
199
+ if(!Array.isArray(wrap)) {
200
+ wrap = [wrap]
201
+ }
202
+ return wrap.reduce((acc, fn) => {
203
+ let wrappedSelector = (...args) => {
204
+ return fn(acc, this.getSystem())(getState().getIn(stateName), ...args)
205
+ }
206
+ if(!isFn(wrappedSelector)) {
207
+ throw new TypeError("wrapSelector needs to return a function that returns a new function (ie the wrapped action)")
208
+ }
209
+ return wrappedSelector
210
+ }, selector || Function.prototype)
211
+ })
212
+ }
213
+ return selectors
214
+ })
215
+ }
216
+
217
+ getStates(state) {
218
+ return Object.keys(this.system.statePlugins).reduce((obj, key) => {
219
+ obj[key] = state.get(key)
220
+ return obj
221
+ }, {})
222
+ }
223
+
224
+ getStateThunks(getState) {
225
+ return Object.keys(this.system.statePlugins).reduce((obj, key) => {
226
+ obj[key] = ()=> getState().get(key)
227
+ return obj
228
+ }, {})
229
+ }
230
+
231
+ getFn() {
232
+ return {
233
+ fn: this.system.fn
234
+ }
235
+ }
236
+
237
+ getComponents(component) {
238
+ const res = this.system.components[component]
239
+
240
+ if(Array.isArray(res)) {
241
+ return res.reduce((ori, wrapper) => {
242
+ return wrapper(ori, this.getSystem())
243
+ })
244
+ }
245
+ if(typeof component !== "undefined") {
246
+ return this.system.components[component]
247
+ }
248
+
249
+ return this.system.components
250
+ }
251
+
252
+ getBoundSelectors(getState, getSystem) {
253
+ return objMap(this.getSelectors(), (obj, key) => {
254
+ let stateName = [key.slice(0, -9)] // selectors = 9 chars
255
+ const getNestedState = ()=> getState().getIn(stateName)
256
+
257
+ return objMap(obj, (fn) => {
258
+ return (...args) => {
259
+ let res = wrapWithTryCatch(fn, this.getSystem).apply(null, [getNestedState(), ...args])
260
+
261
+ // If a selector returns a function, give it the system - for advanced usage
262
+ if(typeof(res) === "function")
263
+ res = wrapWithTryCatch(res, this.getSystem)(getSystem())
264
+
265
+ return res
266
+ }
267
+ })
268
+ })
269
+ }
270
+
271
+ getBoundActions(dispatch) {
272
+
273
+ dispatch = dispatch || this.getStore().dispatch
274
+
275
+ const actions = this.getActions()
276
+
277
+ const process = creator =>{
278
+ if( typeof( creator ) !== "function" ) {
279
+ return objMap(creator, prop => process(prop))
280
+ }
281
+
282
+ return ( ...args )=>{
283
+ var action = null
284
+ try{
285
+ action = creator( ...args )
286
+ }
287
+ catch( e ){
288
+ action = {type: NEW_THROWN_ERR, error: true, payload: serializeError(e) }
289
+ }
290
+ finally{
291
+ return action // eslint-disable-line no-unsafe-finally
292
+ }
293
+ }
294
+
295
+ }
296
+ return objMap(actions, actionCreator => bindActionCreators( process( actionCreator ), dispatch ) )
297
+ }
298
+
299
+ getMapStateToProps() {
300
+ return () => {
301
+ return Object.assign({}, this.getSystem())
302
+ }
303
+ }
304
+
305
+ getMapDispatchToProps(extras) {
306
+ return (dispatch) => {
307
+ return deepExtend({}, this.getWrappedAndBoundActions(dispatch), this.getFn(), extras)
308
+ }
309
+ }
310
+
311
+ }
312
+
313
+ function combinePlugins(plugins, toolbox) {
314
+ if(isObject(plugins) && !isArray(plugins)) {
315
+ return merge({}, plugins)
316
+ }
317
+
318
+ if(isFunc(plugins)) {
319
+ return combinePlugins(plugins(toolbox), toolbox)
320
+ }
321
+
322
+ if(isArray(plugins)) {
323
+ return plugins
324
+ .map(plugin => combinePlugins(plugin, toolbox))
325
+ .reduce(systemExtend, { components: toolbox.getComponents() })
326
+ }
327
+
328
+ return {}
329
+ }
330
+
331
+ function callAfterLoad(plugins, system, { hasLoaded } = {}) {
332
+ let calledSomething = hasLoaded
333
+ if(isObject(plugins) && !isArray(plugins)) {
334
+ if(typeof plugins.afterLoad === "function") {
335
+ calledSomething = true
336
+ wrapWithTryCatch(plugins.afterLoad, system.getSystem).call(this, system)
337
+ }
338
+ }
339
+
340
+ if(isFunc(plugins))
341
+ return callAfterLoad.call(this, plugins(system), system, { hasLoaded: calledSomething })
342
+
343
+ if(isArray(plugins)) {
344
+ return plugins.map(plugin => callAfterLoad.call(this, plugin, system, { hasLoaded: calledSomething }))
345
+ }
346
+
347
+ return calledSomething
348
+ }
349
+
350
+ // Wraps deepExtend, to account for certain fields, being wrappers.
351
+ // Ie: we need to convert some fields into arrays, and append to them.
352
+ // Rather than overwrite
353
+ function systemExtend(dest={}, src={}) {
354
+
355
+ if(!isObject(dest)) {
356
+ return {}
357
+ }
358
+ if(!isObject(src)) {
359
+ return dest
360
+ }
361
+
362
+ // Wrap components
363
+ // Parses existing components in the system, and prepares them for wrapping via getComponents
364
+ if(src.wrapComponents) {
365
+ objMap(src.wrapComponents, (wrapperFn, key) => {
366
+ const ori = dest.components && dest.components[key]
367
+ if(ori && Array.isArray(ori)) {
368
+ dest.components[key] = ori.concat([wrapperFn])
369
+ delete src.wrapComponents[key]
370
+ } else if(ori) {
371
+ dest.components[key] = [ori, wrapperFn]
372
+ delete src.wrapComponents[key]
373
+ }
374
+ })
375
+
376
+ if(!Object.keys(src.wrapComponents).length) {
377
+ // only delete wrapComponents if we've matched all of our wrappers to components
378
+ // this handles cases where the component to wrap may be out of our scope,
379
+ // but a higher recursive `combinePlugins` call will be able to handle it.
380
+ delete src.wrapComponents
381
+ }
382
+ }
383
+
384
+
385
+ // Account for wrapActions, make it an array and append to it
386
+ // Modifies `src`
387
+ // 80% of this code is just safe traversal. We need to address that ( ie: use a lib )
388
+ const { statePlugins } = dest
389
+ if(isObject(statePlugins)) {
390
+ for(let namespace in statePlugins) {
391
+ const namespaceObj = statePlugins[namespace]
392
+ if(!isObject(namespaceObj)) {
393
+ continue
394
+ }
395
+
396
+ const { wrapActions, wrapSelectors } = namespaceObj
397
+
398
+ // process action wrapping
399
+ if (isObject(wrapActions)) {
400
+ for(let actionName in wrapActions) {
401
+ let action = wrapActions[actionName]
402
+
403
+ // This should only happen if dest is the first plugin, since invocations after that will ensure its an array
404
+ if(!Array.isArray(action)) {
405
+ action = [action]
406
+ wrapActions[actionName] = action // Put the value inside an array
407
+ }
408
+
409
+ if(src && src.statePlugins && src.statePlugins[namespace] && src.statePlugins[namespace].wrapActions && src.statePlugins[namespace].wrapActions[actionName]) {
410
+ src.statePlugins[namespace].wrapActions[actionName] = wrapActions[actionName].concat(src.statePlugins[namespace].wrapActions[actionName])
411
+ }
412
+
413
+ }
414
+ }
415
+
416
+ // process selector wrapping
417
+ if (isObject(wrapSelectors)) {
418
+ for(let selectorName in wrapSelectors) {
419
+ let selector = wrapSelectors[selectorName]
420
+
421
+ // This should only happen if dest is the first plugin, since invocations after that will ensure its an array
422
+ if(!Array.isArray(selector)) {
423
+ selector = [selector]
424
+ wrapSelectors[selectorName] = selector // Put the value inside an array
425
+ }
426
+
427
+ if(src && src.statePlugins && src.statePlugins[namespace] && src.statePlugins[namespace].wrapSelectors && src.statePlugins[namespace].wrapSelectors[selectorName]) {
428
+ src.statePlugins[namespace].wrapSelectors[selectorName] = wrapSelectors[selectorName].concat(src.statePlugins[namespace].wrapSelectors[selectorName])
429
+ }
430
+
431
+ }
432
+ }
433
+ }
434
+ }
435
+
436
+ return deepExtend(dest, src)
437
+ }
438
+
439
+ function buildReducer(states, getSystem) {
440
+ let reducerObj = objMap(states, (val) => {
441
+ return val.reducers
442
+ })
443
+ return allReducers(reducerObj, getSystem)
444
+ }
445
+
446
+ function allReducers(reducerSystem, getSystem) {
447
+ let reducers = Object.keys(reducerSystem).reduce((obj, key) => {
448
+ obj[key] = makeReducer(reducerSystem[key], getSystem)
449
+ return obj
450
+ },{})
451
+
452
+ if(!Object.keys(reducers).length) {
453
+ return idFn
454
+ }
455
+
456
+ return combineReducers(reducers)
457
+ }
458
+
459
+ function makeReducer(reducerObj, getSystem) {
460
+ return (state = new Map(), action) => {
461
+ if(!reducerObj)
462
+ return state
463
+
464
+ let redFn = (reducerObj[action.type])
465
+ if(redFn) {
466
+ const res = wrapWithTryCatch(redFn, getSystem)(state, action)
467
+ // If the try/catch wrapper kicks in, we'll get null back...
468
+ // in that case, we want to avoid making any changes to state
469
+ return res === null ? state : res
470
+ }
471
+ return state
472
+ }
473
+ }
474
+
475
+ function wrapWithTryCatch(fn, getSystem, {
476
+ logErrors = true
477
+ } = {}) {
478
+ if(typeof fn !== "function") {
479
+ return fn
480
+ }
481
+
482
+ return function(...args) {
483
+ try {
484
+ return fn.call(this, ...args)
485
+ } catch(error) {
486
+ if(logErrors) {
487
+ const { uncaughtExceptionHandler} = getSystem().getConfigs()
488
+ if (typeof uncaughtExceptionHandler === "function") {
489
+ uncaughtExceptionHandler(error)
490
+ } else {
491
+ console.error(error)
492
+ }
493
+ }
494
+ return null
495
+ }
496
+ }
497
+ }
498
+
499
+ function configureStore(rootReducer, initialState, getSystem) {
500
+ const store = createStoreWithMiddleware(rootReducer, initialState, getSystem)
501
+
502
+ // if (module.hot) {
503
+ // // Enable Webpack hot module replacement for reducers
504
+ // module.hot.accept("reducers/index", () => {
505
+ // const nextRootReducer = require("reducers/index")
506
+ // store.replaceReducer(nextRootReducer)
507
+ // })
508
+ // }
509
+
510
+ return store
511
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Replace invalid characters from a string to create an html-ready ID
3
+ *
4
+ * @param {string} id A string that may contain invalid characters for the HTML ID attribute
5
+ * @param {string} [replacement=_] The string to replace invalid characters with; "_" by default
6
+ * @return {string} Information about the parameter schema
7
+ */
8
+ export default function createHtmlReadyId(id, replacement = "_") {
9
+ return id.replace(/[^\w-]/g, replacement)
10
+ }