@kuadrant/kuadrant-backstage-plugin-frontend 0.0.1-test.1-d62c1cdb → 0.0.1-test.1-464d7760
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.
- package/dist/components/ApiAccessCard/ApiAccessCard.esm.js +15 -10
- package/dist/components/ApiAccessCard/ApiAccessCard.esm.js.map +1 -1
- package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js +74 -29
- package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js.map +1 -1
- package/dist/components/ApprovalQueueCard/ApprovalQueueCard.esm.js +116 -74
- package/dist/components/ApprovalQueueCard/ApprovalQueueCard.esm.js.map +1 -1
- package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js +74 -47
- package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js.map +1 -1
- package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js +274 -0
- package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js.map +1 -0
- package/dist/components/KuadrantPage/KuadrantPage.esm.js +101 -41
- package/dist/components/KuadrantPage/KuadrantPage.esm.js.map +1 -1
- package/dist/components/MyApiKeysCard/MyApiKeysCard.esm.js +175 -0
- package/dist/components/MyApiKeysCard/MyApiKeysCard.esm.js.map +1 -0
- package/dist/components/PermissionGate/PermissionGate.esm.js +7 -16
- package/dist/components/PermissionGate/PermissionGate.esm.js.map +1 -1
- package/dist/index.d.ts +81 -1
- package/dist/index.esm.js +1 -0
- package/dist/index.esm.js.map +1 -1
- package/dist/permissions.esm.js +103 -0
- package/dist/permissions.esm.js.map +1 -0
- package/dist/utils/permissions.esm.js +19 -0
- package/dist/utils/permissions.esm.js.map +1 -0
- package/dist-scalprum/configSchema.json +1 -0
- package/dist-scalprum/internal.plugin-kuadrant.9baeefa3b735dde128c6.js +2 -0
- package/dist-scalprum/internal.plugin-kuadrant.9baeefa3b735dde128c6.js.map +1 -0
- package/dist-scalprum/plugin-manifest.json +11 -0
- package/dist-scalprum/static/1613.71f0fccd.chunk.js +3 -0
- package/dist-scalprum/static/1613.71f0fccd.chunk.js.LICENSE.txt +10 -0
- package/dist-scalprum/static/1613.71f0fccd.chunk.js.map +1 -0
- package/dist-scalprum/static/1836.b74b4c40.chunk.js +3 -0
- package/dist-scalprum/static/1836.b74b4c40.chunk.js.LICENSE.txt +10 -0
- package/dist-scalprum/static/1836.b74b4c40.chunk.js.map +1 -0
- package/dist-scalprum/static/2198.5905970e.chunk.js +2 -0
- package/dist-scalprum/static/2198.5905970e.chunk.js.map +1 -0
- package/dist-scalprum/static/3007.bffc9924.chunk.js +2 -0
- package/dist-scalprum/static/3007.bffc9924.chunk.js.map +1 -0
- package/dist-scalprum/static/3144.6f99ccee.chunk.js +3 -0
- package/dist-scalprum/static/3144.6f99ccee.chunk.js.LICENSE.txt +19 -0
- package/dist-scalprum/static/3144.6f99ccee.chunk.js.map +1 -0
- package/dist-scalprum/static/3483.2f14a8ca.chunk.js +3 -0
- package/dist-scalprum/static/3483.2f14a8ca.chunk.js.LICENSE.txt +5 -0
- package/dist-scalprum/static/3483.2f14a8ca.chunk.js.map +1 -0
- package/dist-scalprum/static/3647.b96f9b3e.chunk.js +2 -0
- package/dist-scalprum/static/3647.b96f9b3e.chunk.js.map +1 -0
- package/dist-scalprum/static/3657.59d45756.chunk.js +3 -0
- package/dist-scalprum/static/3657.59d45756.chunk.js.LICENSE.txt +10 -0
- package/dist-scalprum/static/3657.59d45756.chunk.js.map +1 -0
- package/dist-scalprum/static/4041.29923ad9.chunk.js +3 -0
- package/dist-scalprum/static/4041.29923ad9.chunk.js.LICENSE.txt +9 -0
- package/dist-scalprum/static/4041.29923ad9.chunk.js.map +1 -0
- package/dist-scalprum/static/4161.aa5fd28d.chunk.js +3 -0
- package/dist-scalprum/static/4161.aa5fd28d.chunk.js.LICENSE.txt +27 -0
- package/dist-scalprum/static/4161.aa5fd28d.chunk.js.map +1 -0
- package/dist-scalprum/static/428.0a290bc6.chunk.js +2 -0
- package/dist-scalprum/static/428.0a290bc6.chunk.js.map +1 -0
- package/dist-scalprum/static/4306.133aa342.chunk.js +2 -0
- package/dist-scalprum/static/4306.133aa342.chunk.js.map +1 -0
- package/dist-scalprum/static/441.8bd811bc.chunk.js +2 -0
- package/dist-scalprum/static/441.8bd811bc.chunk.js.map +1 -0
- package/dist-scalprum/static/4491.a2e0258f.chunk.js +2 -0
- package/dist-scalprum/static/4491.a2e0258f.chunk.js.map +1 -0
- package/dist-scalprum/static/4570.8b9f98d7.chunk.js +3 -0
- package/dist-scalprum/static/4570.8b9f98d7.chunk.js.LICENSE.txt +16 -0
- package/dist-scalprum/static/4570.8b9f98d7.chunk.js.map +1 -0
- package/dist-scalprum/static/5222.796292ca.chunk.js +2 -0
- package/dist-scalprum/static/5222.796292ca.chunk.js.map +1 -0
- package/dist-scalprum/static/5453.d8d305e9.chunk.js +2 -0
- package/dist-scalprum/static/5453.d8d305e9.chunk.js.map +1 -0
- package/dist-scalprum/static/5568.5dbce633.chunk.js +3 -0
- package/dist-scalprum/static/5568.5dbce633.chunk.js.LICENSE.txt +18 -0
- package/dist-scalprum/static/5568.5dbce633.chunk.js.map +1 -0
- package/dist-scalprum/static/5603.05d9ca7f.chunk.js +2 -0
- package/dist-scalprum/static/5603.05d9ca7f.chunk.js.map +1 -0
- package/dist-scalprum/static/5811.5c192eeb.chunk.js +2 -0
- package/dist-scalprum/static/5811.5c192eeb.chunk.js.map +1 -0
- package/dist-scalprum/static/6272.e49551fa.chunk.js +2 -0
- package/dist-scalprum/static/6272.e49551fa.chunk.js.map +1 -0
- package/dist-scalprum/static/6281.29f4549b.chunk.js +2 -0
- package/dist-scalprum/static/6281.29f4549b.chunk.js.map +1 -0
- package/dist-scalprum/static/6352.d48bba8c.chunk.js +2 -0
- package/dist-scalprum/static/6352.d48bba8c.chunk.js.map +1 -0
- package/dist-scalprum/static/6872.feed76d2.chunk.js +2 -0
- package/dist-scalprum/static/6872.feed76d2.chunk.js.map +1 -0
- package/dist-scalprum/static/7601.08d8ff3f.chunk.js +2 -0
- package/dist-scalprum/static/7601.08d8ff3f.chunk.js.map +1 -0
- package/dist-scalprum/static/7984.c8511b89.chunk.js +2 -0
- package/dist-scalprum/static/7984.c8511b89.chunk.js.map +1 -0
- package/dist-scalprum/static/8365.75ea3581.chunk.js +2 -0
- package/dist-scalprum/static/8365.75ea3581.chunk.js.map +1 -0
- package/dist-scalprum/static/8617.d1dc70a8.chunk.js +2 -0
- package/dist-scalprum/static/8617.d1dc70a8.chunk.js.map +1 -0
- package/dist-scalprum/static/9288.61b45746.chunk.js +3 -0
- package/dist-scalprum/static/9288.61b45746.chunk.js.LICENSE.txt +33 -0
- package/dist-scalprum/static/9288.61b45746.chunk.js.map +1 -0
- package/dist-scalprum/static/exposed-PluginRoot.8bc4d676.chunk.js +2 -0
- package/dist-scalprum/static/exposed-PluginRoot.8bc4d676.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter/lowlight-import.2bd53873.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter/lowlight-import.2bd53873.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_abnf.bb6a8626.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_abnf.bb6a8626.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_accesslog.bd112f1a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_accesslog.bd112f1a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_actionscript.78db0238.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_actionscript.78db0238.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ada.b0d90871.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ada.b0d90871.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_angelscript.f9816c44.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_angelscript.f9816c44.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_apache.aa86d495.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_apache.aa86d495.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_applescript.ddf703d6.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_applescript.ddf703d6.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arcade.70910623.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arcade.70910623.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arduino.9b9ce313.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arduino.9b9ce313.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_armasm.4bfb8996.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_armasm.4bfb8996.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_asciidoc.4b40a3f9.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_asciidoc.4b40a3f9.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_aspectj.35f221e8.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_aspectj.35f221e8.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autohotkey.614c5248.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autohotkey.614c5248.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autoit.a06c1c62.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autoit.a06c1c62.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_avrasm.6381890e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_avrasm.6381890e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_awk.dfc9b0b0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_awk.dfc9b0b0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_axapta.80d14346.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_axapta.80d14346.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bash.53f7c730.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bash.53f7c730.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_basic.ec232b8a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_basic.ec232b8a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bnf.84e0a497.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bnf.84e0a497.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_brainfuck.31bde7c5.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_brainfuck.31bde7c5.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_c.b43ce116.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_c.b43ce116.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cLike.f884fdc0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cLike.f884fdc0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cal.781cc6c6.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cal.781cc6c6.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_capnproto.79dfc31f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_capnproto.79dfc31f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ceylon.ab3b1c28.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ceylon.ab3b1c28.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clean.97b48014.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clean.97b48014.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojure.e3fcc98c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojure.e3fcc98c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojureRepl.e6dbc3b4.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojureRepl.e6dbc3b4.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cmake.cb9028b5.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cmake.cb9028b5.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coffeescript.3bc87b5b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coffeescript.3bc87b5b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coq.6b156852.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coq.6b156852.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cos.78d69dee.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cos.78d69dee.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cpp.ff6a8f78.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cpp.ff6a8f78.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crmsh.58c4cb07.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crmsh.58c4cb07.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crystal.3a36e63f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crystal.3a36e63f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csharp.ea98c6fb.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csharp.ea98c6fb.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csp.7fc6f9a3.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csp.7fc6f9a3.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_css.2cc312ae.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_css.2cc312ae.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_d.bf4f2b44.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_d.bf4f2b44.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dart.0a0b12af.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dart.0a0b12af.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_delphi.588e191d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_delphi.588e191d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_diff.a8373241.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_diff.a8373241.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_django.8fb85401.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_django.8fb85401.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dns.6d79126a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dns.6d79126a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dockerfile.2c5fdf55.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dockerfile.2c5fdf55.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dos.1ede6e37.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dos.1ede6e37.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dsconfig.c3457b50.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dsconfig.c3457b50.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dts.8fd3703c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dts.8fd3703c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dust.b30d0c38.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dust.b30d0c38.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ebnf.a34b6944.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ebnf.a34b6944.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elixir.1e79c9b9.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elixir.1e79c9b9.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elm.8a488b19.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elm.8a488b19.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erb.4ac917b8.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erb.4ac917b8.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlang.501777c7.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlang.501777c7.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlangRepl.0d7f4890.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlangRepl.0d7f4890.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_excel.2f5c76b9.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_excel.2f5c76b9.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fix.5ee62733.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fix.5ee62733.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_flix.972cc801.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_flix.972cc801.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fortran.38ec3d00.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fortran.38ec3d00.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fsharp.2ba37c00.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fsharp.2ba37c00.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gams.a45eb030.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gams.a45eb030.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gauss.cceeafb0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gauss.cceeafb0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gcode.378d3296.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gcode.378d3296.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gherkin.e740620a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gherkin.e740620a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_glsl.bb5b0086.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_glsl.bb5b0086.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gml.2347c999.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gml.2347c999.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_go.abc0a144.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_go.abc0a144.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_golo.eaa5e2bf.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_golo.eaa5e2bf.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gradle.72fdf84d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gradle.72fdf84d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_groovy.ecd68b19.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_groovy.ecd68b19.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haml.d698757b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haml.d698757b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_handlebars.75c0a89b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_handlebars.75c0a89b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haskell.bbd3c104.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haskell.bbd3c104.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haxe.e2543cc2.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haxe.e2543cc2.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hsp.5d714528.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hsp.5d714528.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_htmlbars.e57e3c89.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_htmlbars.e57e3c89.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_http.5859273c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_http.5859273c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hy.c60db034.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hy.c60db034.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_inform7.78be038f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_inform7.78be038f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ini.d9d4ed7e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ini.d9d4ed7e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_irpf90.25afcc29.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_irpf90.25afcc29.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_isbl.abe269c1.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_isbl.abe269c1.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_java.e04d1c07.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_java.e04d1c07.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_javascript.b0ad82d3.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_javascript.b0ad82d3.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_jbossCli.1ff533ef.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_jbossCli.1ff533ef.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_json.d934b52b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_json.d934b52b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_julia.f43a39d0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_julia.f43a39d0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_juliaRepl.e3bfcde8.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_juliaRepl.e3bfcde8.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_kotlin.c5eaa6f5.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_kotlin.c5eaa6f5.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lasso.8d4054e7.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lasso.8d4054e7.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_latex.b4bb9102.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_latex.b4bb9102.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ldif.74045e43.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ldif.74045e43.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_leaf.92519810.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_leaf.92519810.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_less.cc574d49.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_less.cc574d49.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lisp.1cb2f675.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lisp.1cb2f675.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livecodeserver.f624f22d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livecodeserver.f624f22d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livescript.3ece3068.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livescript.3ece3068.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_llvm.f32d41e6.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_llvm.f32d41e6.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lsl.b6519e02.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lsl.b6519e02.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lua.52f73c98.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lua.52f73c98.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_makefile.cad796c9.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_makefile.cad796c9.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_markdown.1489792c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_markdown.1489792c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mathematica.d8631b37.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mathematica.d8631b37.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_matlab.114e44eb.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_matlab.114e44eb.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_maxima.f1f17544.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_maxima.f1f17544.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mel.5251fe1a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mel.5251fe1a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mercury.fa8fdac0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mercury.fa8fdac0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mipsasm.f5bc5b04.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mipsasm.f5bc5b04.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mizar.9b39cf3b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mizar.9b39cf3b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mojolicious.0cf721ff.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mojolicious.0cf721ff.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_monkey.5f60f06d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_monkey.5f60f06d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_moonscript.443301b3.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_moonscript.443301b3.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_n1ql.c54b2c4a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_n1ql.c54b2c4a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nginx.630147e0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nginx.630147e0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nim.17afaed1.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nim.17afaed1.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nix.245f31b6.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nix.245f31b6.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nodeRepl.5b05cdf2.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nodeRepl.5b05cdf2.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nsis.4934a8e8.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nsis.4934a8e8.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_objectivec.2d204375.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_objectivec.2d204375.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ocaml.0e42541e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ocaml.0e42541e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oneC.362a3b0a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oneC.362a3b0a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_openscad.4a460eaf.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_openscad.4a460eaf.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oxygene.ea742315.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oxygene.ea742315.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_parser3.706a4bd6.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_parser3.706a4bd6.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_perl.ae8475a2.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_perl.ae8475a2.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pf.5052a768.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pf.5052a768.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pgsql.5b0d21b9.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pgsql.5b0d21b9.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_php.ade4c6c4.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_php.ade4c6c4.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_phpTemplate.2bd36dc7.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_phpTemplate.2bd36dc7.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_plaintext.25f8d292.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_plaintext.25f8d292.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pony.1961f69f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pony.1961f69f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_powershell.7bd31b3a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_powershell.7bd31b3a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_processing.8d1f48c5.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_processing.8d1f48c5.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_profile.615fa721.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_profile.615fa721.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_prolog.be0fdf0c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_prolog.be0fdf0c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_properties.60f97895.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_properties.60f97895.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_protobuf.0cd375bc.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_protobuf.0cd375bc.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_puppet.ee3f80da.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_puppet.ee3f80da.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_purebasic.08443005.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_purebasic.08443005.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_python.9e4100ae.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_python.9e4100ae.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pythonRepl.feb72aed.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pythonRepl.feb72aed.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_q.989943de.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_q.989943de.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_qml.8f3a0af6.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_qml.8f3a0af6.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_r.8540ccea.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_r.8540ccea.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_reasonml.a5a73a29.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_reasonml.a5a73a29.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rib.dc8afdf1.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rib.dc8afdf1.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_roboconf.47518214.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_roboconf.47518214.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_routeros.c0bcd6ce.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_routeros.c0bcd6ce.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rsl.909f2a27.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rsl.909f2a27.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruby.d84064e5.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruby.d84064e5.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruleslanguage.038504d0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruleslanguage.038504d0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rust.7e26e901.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rust.7e26e901.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sas.94075d6a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sas.94075d6a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scala.a4629d0a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scala.a4629d0a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scheme.508b5846.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scheme.508b5846.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scilab.bb9cc730.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scilab.bb9cc730.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scss.bec19089.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scss.bec19089.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_shell.9bbc16eb.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_shell.9bbc16eb.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smali.4fa5afdd.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smali.4fa5afdd.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smalltalk.53da57ca.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smalltalk.53da57ca.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sml.0e45c1cf.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sml.0e45c1cf.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqf.43421810.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqf.43421810.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sql.651dcc8d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sql.651dcc8d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqlMore.d69b1825.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqlMore.d69b1825.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stan.17155e77.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stan.17155e77.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stata.fe81a7fc.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stata.fe81a7fc.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_step21.a431b2db.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_step21.a431b2db.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stylus.cde06cf5.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stylus.cde06cf5.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_subunit.c5ac3a0a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_subunit.c5ac3a0a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_swift.7d33a4a9.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_swift.7d33a4a9.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_taggerscript.695a2547.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_taggerscript.695a2547.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tap.402e473f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tap.402e473f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tcl.79af288c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tcl.79af288c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_thrift.ecb04f2a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_thrift.ecb04f2a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tp.0f4ff415.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tp.0f4ff415.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_twig.5cb0fdfc.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_twig.5cb0fdfc.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_typescript.cf576f17.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_typescript.cf576f17.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vala.843d9bc4.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vala.843d9bc4.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbnet.21c190ed.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbnet.21c190ed.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscript.4703f4c5.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscript.4703f4c5.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.42eb54af.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.42eb54af.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_verilog.e32adbeb.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_verilog.e32adbeb.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vhdl.dea9db6c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vhdl.dea9db6c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vim.e82f126f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vim.e82f126f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_x86asm.217c56f0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_x86asm.217c56f0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xl.7cff3cbb.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xl.7cff3cbb.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xml.ee14d6a4.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xml.ee14d6a4.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xquery.353780d4.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xquery.353780d4.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_yaml.2aae489e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_yaml.2aae489e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_zephir.fc94a148.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_zephir.fc94a148.chunk.js.map +1 -0
- package/package.json +7 -3
- package/dist/hooks/useUserRole.esm.js +0 -49
- package/dist/hooks/useUserRole.esm.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/5568.5dbce633.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/../../node_modules/buffer/index.js","webpack://internal.plugin-kuadrant/../../node_modules/base64-js/index.js","webpack://internal.plugin-kuadrant/../../node_modules/react/jsx-runtime.js","webpack://internal.plugin-kuadrant/../../node_modules/ieee754/index.js","webpack://internal.plugin-kuadrant/../../node_modules/@backstage/errors/dist/errors/assertion.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@backstage/errors/dist/errors/CustomErrorBase.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@backstage/errors/dist/serialization/error.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@backstage/errors/dist/errors/common.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/serialize-error/index.js","webpack://internal.plugin-kuadrant/../../node_modules/react/cjs/react-jsx-runtime.production.min.js"],"sourcesContent":["/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","function isError(value) {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return false;\n }\n const maybe = value;\n if (typeof maybe.name !== \"string\" || maybe.name === \"\") {\n return false;\n }\n if (typeof maybe.message !== \"string\") {\n return false;\n }\n return true;\n}\nfunction assertError(value) {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new Error(`Encountered invalid error, not an object, got '${value}'`);\n }\n const maybe = value;\n if (typeof maybe.name !== \"string\" || maybe.name === \"\") {\n throw new Error(`Encountered error object without a name, got '${value}'`);\n }\n if (typeof maybe.message !== \"string\") {\n throw new Error(\n `Encountered error object without a message, got '${value}'`\n );\n }\n}\n\nexport { assertError, isError };\n//# sourceMappingURL=assertion.esm.js.map\n","import { stringifyError } from '../serialization/error.esm.js';\nimport { isError } from './assertion.esm.js';\n\nclass CustomErrorBase extends Error {\n /**\n * An inner error that caused this error to be thrown, if any.\n */\n cause;\n constructor(message, cause) {\n let fullMessage = message;\n if (cause !== void 0) {\n const causeStr = stringifyError(cause);\n if (fullMessage) {\n fullMessage += `; caused by ${causeStr}`;\n } else {\n fullMessage = `caused by ${causeStr}`;\n }\n }\n super(fullMessage);\n Error.captureStackTrace?.(this, this.constructor);\n if (!this.name || this.name === \"Error\") {\n const baseName = this.constructor.name;\n if (baseName !== \"Error\") {\n this.name = this.constructor.name;\n }\n }\n this.cause = isError(cause) ? cause : void 0;\n }\n}\n\nexport { CustomErrorBase };\n//# sourceMappingURL=CustomErrorBase.esm.js.map\n","import { serializeError as serializeError$1, deserializeError as deserializeError$1 } from 'serialize-error';\nimport { isError } from '../errors/assertion.esm.js';\n\nfunction serializeError(error, options) {\n const serialized = serializeError$1(error);\n const result = {\n name: \"Unknown\",\n message: \"<no reason given>\",\n ...serialized\n };\n if (!options?.includeStack) {\n delete result.stack;\n if (result.cause && typeof result.cause === \"object\" && \"stack\" in result.cause) {\n delete result.cause.stack;\n }\n }\n return result;\n}\nfunction deserializeError(data) {\n const result = deserializeError$1(data);\n if (!data.stack) {\n result.stack = void 0;\n }\n return result;\n}\nfunction stringifyError(error) {\n if (isError(error)) {\n const str = String(error);\n return str !== \"[object Object]\" ? str : `${error.name}: ${error.message}`;\n }\n return `unknown error '${error}'`;\n}\n\nexport { deserializeError, serializeError, stringifyError };\n//# sourceMappingURL=error.esm.js.map\n","import { isError } from './assertion.esm.js';\nimport { CustomErrorBase } from './CustomErrorBase.esm.js';\n\nclass InputError extends CustomErrorBase {\n name = \"InputError\";\n}\nclass AuthenticationError extends CustomErrorBase {\n name = \"AuthenticationError\";\n}\nclass NotAllowedError extends CustomErrorBase {\n name = \"NotAllowedError\";\n}\nclass NotFoundError extends CustomErrorBase {\n name = \"NotFoundError\";\n}\nclass ConflictError extends CustomErrorBase {\n name = \"ConflictError\";\n}\nclass NotModifiedError extends CustomErrorBase {\n name = \"NotModifiedError\";\n}\nclass NotImplementedError extends CustomErrorBase {\n name = \"NotImplementedError\";\n}\nclass ServiceUnavailableError extends CustomErrorBase {\n}\nclass ForwardedError extends CustomErrorBase {\n constructor(message, cause) {\n super(message, cause);\n this.name = isError(cause) ? cause.name : \"Error\";\n }\n}\n\nexport { AuthenticationError, ConflictError, ForwardedError, InputError, NotAllowedError, NotFoundError, NotImplementedError, NotModifiedError, ServiceUnavailableError };\n//# sourceMappingURL=common.esm.js.map\n","'use strict';\n\nclass NonError extends Error {\n\tconstructor(message) {\n\t\tsuper(NonError._prepareSuperMessage(message));\n\t\tObject.defineProperty(this, 'name', {\n\t\t\tvalue: 'NonError',\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t});\n\n\t\tif (Error.captureStackTrace) {\n\t\t\tError.captureStackTrace(this, NonError);\n\t\t}\n\t}\n\n\tstatic _prepareSuperMessage(message) {\n\t\ttry {\n\t\t\treturn JSON.stringify(message);\n\t\t} catch {\n\t\t\treturn String(message);\n\t\t}\n\t}\n}\n\nconst commonProperties = [\n\t{property: 'name', enumerable: false},\n\t{property: 'message', enumerable: false},\n\t{property: 'stack', enumerable: false},\n\t{property: 'code', enumerable: true}\n];\n\nconst isCalled = Symbol('.toJSON called');\n\nconst toJSON = from => {\n\tfrom[isCalled] = true;\n\tconst json = from.toJSON();\n\tdelete from[isCalled];\n\treturn json;\n};\n\nconst destroyCircular = ({\n\tfrom,\n\tseen,\n\tto_,\n\tforceEnumerable,\n\tmaxDepth,\n\tdepth\n}) => {\n\tconst to = to_ || (Array.isArray(from) ? [] : {});\n\n\tseen.push(from);\n\n\tif (depth >= maxDepth) {\n\t\treturn to;\n\t}\n\n\tif (typeof from.toJSON === 'function' && from[isCalled] !== true) {\n\t\treturn toJSON(from);\n\t}\n\n\tfor (const [key, value] of Object.entries(from)) {\n\t\tif (typeof Buffer === 'function' && Buffer.isBuffer(value)) {\n\t\t\tto[key] = '[object Buffer]';\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof value === 'function') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!value || typeof value !== 'object') {\n\t\t\tto[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!seen.includes(from[key])) {\n\t\t\tdepth++;\n\n\t\t\tto[key] = destroyCircular({\n\t\t\t\tfrom: from[key],\n\t\t\t\tseen: seen.slice(),\n\t\t\t\tforceEnumerable,\n\t\t\t\tmaxDepth,\n\t\t\t\tdepth\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\tto[key] = '[Circular]';\n\t}\n\n\tfor (const {property, enumerable} of commonProperties) {\n\t\tif (typeof from[property] === 'string') {\n\t\t\tObject.defineProperty(to, property, {\n\t\t\t\tvalue: from[property],\n\t\t\t\tenumerable: forceEnumerable ? true : enumerable,\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true\n\t\t\t});\n\t\t}\n\t}\n\n\treturn to;\n};\n\nconst serializeError = (value, options = {}) => {\n\tconst {maxDepth = Number.POSITIVE_INFINITY} = options;\n\n\tif (typeof value === 'object' && value !== null) {\n\t\treturn destroyCircular({\n\t\t\tfrom: value,\n\t\t\tseen: [],\n\t\t\tforceEnumerable: true,\n\t\t\tmaxDepth,\n\t\t\tdepth: 0\n\t\t});\n\t}\n\n\t// People sometimes throw things besides Error objects…\n\tif (typeof value === 'function') {\n\t\t// `JSON.stringify()` discards functions. We do too, unless a function is thrown directly.\n\t\treturn `[Function: ${(value.name || 'anonymous')}]`;\n\t}\n\n\treturn value;\n};\n\nconst deserializeError = (value, options = {}) => {\n\tconst {maxDepth = Number.POSITIVE_INFINITY} = options;\n\n\tif (value instanceof Error) {\n\t\treturn value;\n\t}\n\n\tif (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n\t\tconst newError = new Error(); // eslint-disable-line unicorn/error-message\n\t\tdestroyCircular({\n\t\t\tfrom: value,\n\t\t\tseen: [],\n\t\t\tto_: newError,\n\t\t\tmaxDepth,\n\t\t\tdepth: 0\n\t\t});\n\t\treturn newError;\n\t}\n\n\treturn new NonError(value);\n};\n\nmodule.exports = {\n\tserializeError,\n\tdeserializeError\n};\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n"],"names":["base64","ieee754","customInspectSymbol","Symbol","exports","Buffer","K_MAX_LENGTH","createBuffer","length","RangeError","buf","Uint8Array","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","string","encoding","isEncoding","byteLength","actual","write","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","b","obj","isBuffer","len","checked","undefined","numberIsNaN","type","Array","isArray","data","fromObject","toPrimitive","assertSize","size","array","i","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","val","dir","arrayIndexOf","indexOf","call","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","push","charCodeAt","asciiToBytes","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","e","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","alloc","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","Error","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","code","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","floor","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","abs","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","join","tripletToBase64","num","output","module","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","rt","isNaN","log","LN2","isError","maybe","cause","fullMessage","causeStr","stringifyError","captureStackTrace","NotImplementedError","ForwardedError","NonError","_prepareSuperMessage","JSON","stringify","commonProperties","property","isCalled","destroyCircular","seen","to_","forceEnumerable","maxDepth","depth","to","json","key","entries","serializeError","options","POSITIVE_INFINITY","deserializeError","newError","f","k","for","l","hasOwnProperty","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","ref","__self","__source","q","g","h","defaultProps","$$typeof","props","_owner","current","Fragment","jsx","jsxs"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[5603,7984],{65603:(e,t,n)=>{n.r(t),n.d(t,{createVersionedContext:()=>u,createVersionedContextForTesting:()=>l,createVersionedValueMap:()=>s,getOrCreateGlobalSingleton:()=>o,useVersionedContext:()=>c});const r="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:Function("return this")(),a=e=>`__@backstage/${e}__`;function o(e,t){const n=a(e);let o=r[n];return o||(o=t(),r[n]=o,o)}var i=n(95478);function s(e){Object.freeze(e);const t={atVersion:t=>e[t]};return Object.defineProperty(t,"$map",{configurable:!0,enumerable:!0,get:()=>e}),t}function u(e){return o(e,()=>(0,i.createContext)(void 0))}function c(e){return(0,i.useContext)(u(e))}function l(e){return{set(t){globalThis[`__@backstage/${e}__`]=(0,i.createContext)(s(t))},reset(){delete globalThis[`__@backstage/${e}__`]}}}}}]);
|
|
2
|
+
//# sourceMappingURL=5603.05d9ca7f.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/5603.05d9ca7f.chunk.js","mappings":"uTASA,MAAMA,EARkB,oBAAXC,QAA0BA,OAAOC,OAASA,KAC5CD,OAEW,oBAATE,MAAwBA,KAAKD,OAASA,KACxCC,KAEFC,SAAS,cAATA,GAGHC,EAAWC,GAAO,gBAAgBA,MACxC,SAASC,EAA2BD,EAAIE,GACtC,MAAMC,EAAMJ,EAAQC,GACpB,IAAII,EAAQV,EAAaS,GACzB,OAAIC,IAGJA,EAAQF,IACRR,EAAaS,GAAOC,EACbA,EACT,C,eCpBA,SAASC,EAAwBC,GAC/BC,OAAOC,OAAOF,GACd,MAAMG,EAAiB,CACrBC,UAAUC,GACDL,EAASK,IAUpB,OAPAJ,OAAOK,eAAeH,EAAgB,OAAQ,CAC5CI,cAAc,EACdC,YAAY,EACZC,IAAG,IACMT,IAGJG,CACT,CCXA,SAASO,EAAuBb,GAC9B,OAAOF,EACLE,EACA,KAAM,IAAAc,oBAAc,GAExB,CACA,SAASC,EAAoBf,GAC3B,OAAO,IAAAgB,YAAWH,EAAuBb,GAC3C,CACA,SAASiB,EAAiCjB,GACxC,MAAO,CACL,GAAAkB,CAAIf,GACFgB,WAAW,gBAAgBnB,QAAW,IAAAc,eACpCZ,EAAwBC,GAE5B,EACA,KAAAiB,UACSD,WAAW,gBAAgBnB,MACpC,EAEJ,C","sources":["webpack://internal.plugin-kuadrant/../../node_modules/@backstage/version-bridge/dist/lib/globalObject.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@backstage/version-bridge/dist/lib/VersionedValue.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@backstage/version-bridge/dist/lib/VersionedContext.esm.js"],"sourcesContent":["function getGlobalObject() {\n if (typeof window !== \"undefined\" && window.Math === Math) {\n return window;\n }\n if (typeof self !== \"undefined\" && self.Math === Math) {\n return self;\n }\n return Function(\"return this\")();\n}\nconst globalObject = getGlobalObject();\nconst makeKey = (id) => `__@backstage/${id}__`;\nfunction getOrCreateGlobalSingleton(id, supplier) {\n const key = makeKey(id);\n let value = globalObject[key];\n if (value) {\n return value;\n }\n value = supplier();\n globalObject[key] = value;\n return value;\n}\n\nexport { getOrCreateGlobalSingleton };\n//# sourceMappingURL=globalObject.esm.js.map\n","function createVersionedValueMap(versions) {\n Object.freeze(versions);\n const versionedValue = {\n atVersion(version) {\n return versions[version];\n }\n };\n Object.defineProperty(versionedValue, \"$map\", {\n configurable: true,\n enumerable: true,\n get() {\n return versions;\n }\n });\n return versionedValue;\n}\n\nexport { createVersionedValueMap };\n//# sourceMappingURL=VersionedValue.esm.js.map\n","import { createContext, useContext } from 'react';\nimport { getOrCreateGlobalSingleton } from './globalObject.esm.js';\nimport { createVersionedValueMap } from './VersionedValue.esm.js';\n\nfunction createVersionedContext(key) {\n return getOrCreateGlobalSingleton(\n key,\n () => createContext(void 0)\n );\n}\nfunction useVersionedContext(key) {\n return useContext(createVersionedContext(key));\n}\nfunction createVersionedContextForTesting(key) {\n return {\n set(versions) {\n globalThis[`__@backstage/${key}__`] = createContext(\n createVersionedValueMap(versions)\n );\n },\n reset() {\n delete globalThis[`__@backstage/${key}__`];\n }\n };\n}\n\nexport { createVersionedContext, createVersionedContextForTesting, useVersionedContext };\n//# sourceMappingURL=VersionedContext.esm.js.map\n"],"names":["globalObject","window","Math","self","Function","makeKey","id","getOrCreateGlobalSingleton","supplier","key","value","createVersionedValueMap","versions","Object","freeze","versionedValue","atVersion","version","defineProperty","configurable","enumerable","get","createVersionedContext","createContext","useVersionedContext","useContext","createVersionedContextForTesting","set","globalThis","reset"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[5811],{5811:(e,a,t)=>{t.r(a),t.d(a,{KuadrantPage:()=>J});var l=t(31085),r=t(95478),s=t(67720),n=t(10394),i=t(29365),o=t(72501),d=t(42899),c=t(64947),u=t(76891),p=t(61477),m=t(46805),h=t(59461),x=t(93453),A=t(18466),v=t(39590),g=t(75625),j=t(37725),f=t(25010),y=t(289),b=t(55639),S=t(45210),P=t(46681),k=t(86687),C=t(42367),w=t(96040),T=t(91638),I=t(22097),R=t(16281),W=t(71677),D=t(31653),N=t(38605),$=t(32269),E=t(61524);const L=()=>{const e=(0,I.useApi)(I.configApiRef),a=(0,I.useApi)(I.fetchApiRef),t=(0,I.useApi)(I.identityApiRef),d=e.getString("backend.baseUrl"),[c,u]=(0,r.useState)(0),[,p]=(0,r.useState)(""),[m,h]=(0,r.useState)(new Set);(0,T.A)(async()=>{const e=await t.getBackstageIdentity();p(e.userEntityRef.split("/")[1]||"guest")},[t]);const{value:x,loading:A,error:v}=(0,T.A)(async()=>{const e=await a.fetch(`${d}/api/kuadrant/requests/my`);if(!e.ok)throw new Error("failed to fetch requests");return(await e.json()).items||[]},[d,a]);if(A)return(0,l.jsx)(w.n,{title:"My API Keys",children:(0,l.jsx)(o.A,{children:"Loading..."})});if(v)return(0,l.jsx)(w.n,{title:"My API Keys",children:(0,l.jsxs)(o.A,{color:"error",children:["Error loading API keys: ",v.message]})});const g=x||[],y=g.filter(e=>{var a;return"Approved"===(null===(a=e.status)||void 0===a?void 0:a.phase)}),b=g.filter(e=>{var a;return!(null===(a=e.status)||void 0===a?void 0:a.phase)||"Pending"===e.status.phase}),S=g.filter(e=>{var a;return"Rejected"===(null===(a=e.status)||void 0===a?void 0:a.phase)}),P=[{title:"API Product",field:"spec.apiName",render:e=>(0,l.jsx)(j.N_,{to:`/catalog/default/api/${e.spec.apiName}/api-keys`,children:(0,l.jsx)("strong",{children:e.spec.apiName})})},{title:"Plan",field:"spec.planTier",render:e=>{const a="gold"===e.spec.planTier?"primary":"silver"===e.spec.planTier?"default":"secondary";return(0,l.jsx)(s.A,{label:e.spec.planTier,color:a,size:"small"})}},{title:"Use Case",field:"spec.useCase",render:e=>(0,l.jsx)(o.A,{variant:"body2",children:e.spec.useCase||"-"})},{title:"Status",field:"status.phase",render:e=>{var a;const t=(null===(a=e.status)||void 0===a?void 0:a.phase)||"Pending",r="Approved"===t?"primary":"Rejected"===t?"secondary":"default";return(0,l.jsx)(s.A,{label:t,color:r,size:"small"})}},{title:"Reason",render:e=>{var a;return"Rejected"===(null===(a=e.status)||void 0===a?void 0:a.phase)&&e.status.reason?(0,l.jsx)(o.A,{variant:"body2",color:"error",children:e.status.reason}):(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",children:"-"})}},{title:"Reviewed By",render:e=>{var a,t;if(("Approved"===(null===(a=e.status)||void 0===a?void 0:a.phase)||"Rejected"===(null===(t=e.status)||void 0===t?void 0:t.phase))&&e.status.reviewedBy){const a=e.status.reviewedAt?new Date(e.status.reviewedAt).toLocaleDateString():"";return(0,l.jsxs)(n.A,{children:[(0,l.jsx)(o.A,{variant:"body2",children:e.status.reviewedBy}),a&&(0,l.jsx)(o.A,{variant:"caption",color:"textSecondary",children:a})]})}return(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",children:"-"})}},{title:"API Key",render:e=>{var a;if("Approved"===(null===(a=e.status)||void 0===a?void 0:a.phase)&&e.status.apiKey){const a=m.has(e.metadata.name);return(0,l.jsxs)(n.A,{display:"flex",alignItems:"center",style:{gap:8},children:[(0,l.jsx)(n.A,{fontFamily:"monospace",fontSize:"0.875rem",children:a?e.status.apiKey:"•".repeat(20)+"..."}),(0,l.jsx)(W.Ay,{title:a?"hide key":"show key",children:(0,l.jsx)(i.A,{size:"small",onClick:()=>{return a=e.metadata.name,void h(e=>{const t=new Set(e);return t.has(a)?t.delete(a):t.add(a),t});var a},children:a?(0,l.jsx)(E.A,{fontSize:"small"}):(0,l.jsx)($.A,{fontSize:"small"})})})]})}return(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",children:"-"})}},{title:"Requested",field:"metadata.creationTimestamp",render:e=>new Date(e.metadata.creationTimestamp).toLocaleDateString()}],k=(()=>{switch(c){case 0:return y;case 1:return b;case 2:return S;default:return g}})();return(0,l.jsxs)(w.n,{title:"My API Keys",subheader:`${y.length} active, ${b.length} pending`,children:[(0,l.jsx)(n.A,{mb:2,children:(0,l.jsxs)(D.A,{value:c,onChange:(e,a)=>u(a),indicatorColor:"primary",textColor:"primary",children:[(0,l.jsx)(N.A,{label:`Active (${y.length})`}),(0,l.jsx)(N.A,{label:`Pending (${b.length})`}),(0,l.jsx)(N.A,{label:`Rejected (${S.length})`})]})}),0===k.length?(0,l.jsx)(n.A,{p:3,textAlign:"center",children:(0,l.jsxs)(o.A,{variant:"body1",color:"textSecondary",children:[0===c&&"No active API keys. Request access to an API to get started.",1===c&&"No pending requests.",2===c&&"No rejected requests."]})}):(0,l.jsx)(f.X,{options:{paging:k.length>10,pageSize:10,search:!1,toolbar:!1},columns:P,data:k})]})};var z=t(46205);const q=({children:e,permission:a,fallback:t,errorMessage:r})=>{const{allowed:s,loading:i,error:d}=(0,z.l)(a);return i?(0,l.jsx)(k.k,{}):d?(0,l.jsxs)(n.A,{p:4,children:[(0,l.jsxs)(o.A,{color:"error",children:["Unable to check permissions: ",d.message]}),(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",children:"Please try again or contact your administrator"})]}):s?(0,l.jsx)(l.Fragment,{children:e}):t?(0,l.jsx)(l.Fragment,{children:t}):(0,l.jsxs)(n.A,{p:4,children:[(0,l.jsx)(o.A,{color:"textSecondary",children:r||"You don't have permission to view this page"}),(0,l.jsx)(n.A,{mt:1,children:(0,l.jsxs)(o.A,{variant:"caption",color:"textSecondary",children:["Required permission: ",a.name]})})]})};var M=t(58837),K=t(16249),U=t(26343),B=t(84441);const H=(0,M.A)({asterisk:{color:"#f44336"}}),_=({open:e,onClose:a,onSuccess:t})=>{const i=H(),h=(0,I.useApi)(I.configApiRef),A=(0,I.useApi)(I.fetchApiRef),v=h.getString("backend.baseUrl"),[g,j]=(0,r.useState)(""),[f,y]=(0,r.useState)(""),[b,S]=(0,r.useState)(""),[P,k]=(0,r.useState)("v1"),[C,w]=(0,r.useState)("manual"),[R,W]=(0,r.useState)("Published"),[D,N]=(0,r.useState)([]),[$,E]=(0,r.useState)(""),[L,z]=(0,r.useState)(""),[q,M]=(0,r.useState)(""),[_,V]=(0,r.useState)(""),[F,O]=(0,r.useState)(""),[Y,J]=(0,r.useState)(""),[X,G]=(0,r.useState)(""),[Q,Z]=(0,r.useState)(!1),{value:ee,loading:ae}=(0,T.A)(async()=>{const e=await A.fetch(`${v}/api/kuadrant/httproutes`);return((await e.json()).items||[]).filter(e=>{var a;return"true"===(null===(a=e.metadata.annotations)||void 0===a?void 0:a["backstage.io/expose"])})},[v,A,e]),te=()=>{$.trim()&&!D.includes($.trim())&&(N([...D,$.trim()]),E(""))},le=()=>{j(""),y(""),S(""),k("v1"),w("manual"),W("Published"),N([]),E(""),z(""),M(""),V(""),O(""),J(""),G(""),a()};return(0,l.jsxs)(u.A,{open:e,onClose:le,maxWidth:"md",fullWidth:!0,children:[(0,l.jsx)(p.A,{children:"Create API Product"}),(0,l.jsxs)(m.A,{children:[X&&(0,l.jsx)(B.A,{severity:"error",style:{marginBottom:16},children:X}),(0,l.jsxs)(d.A,{container:!0,spacing:2,children:[(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Name",value:g,onChange:e=>j(e.target.value),placeholder:"my-api",helperText:"Kubernetes resource name (lowercase, hyphens)",margin:"normal",required:!0,InputLabelProps:{classes:{asterisk:i.asterisk}}})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Display Name",value:f,onChange:e=>y(e.target.value),placeholder:"My API",margin:"normal",required:!0,InputLabelProps:{classes:{asterisk:i.asterisk}}})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Version",value:P,onChange:e=>k(e.target.value),placeholder:"v1",margin:"normal"})}),(0,l.jsx)(d.A,{item:!0,xs:12,children:(0,l.jsxs)(K.A,{fullWidth:!0,select:!0,label:"Approval Mode",value:C,onChange:e=>w(e.target.value),margin:"normal",helperText:"Automatic: keys are created immediately. Manual: requires approval.",children:[(0,l.jsx)(U.A,{value:"manual",children:"Manual"}),(0,l.jsx)(U.A,{value:"automatic",children:"Automatic"})]})}),(0,l.jsx)(d.A,{item:!0,xs:12,children:(0,l.jsxs)(K.A,{fullWidth:!0,select:!0,label:"Publish Status",value:R,onChange:e=>W(e.target.value),margin:"normal",helperText:"Draft: hidden from catalog. Published: visible to consumers.",children:[(0,l.jsx)(U.A,{value:"Draft",children:"Draft"}),(0,l.jsx)(U.A,{value:"Published",children:"Published"})]})}),(0,l.jsx)(d.A,{item:!0,xs:12,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Description",value:b,onChange:e=>S(e.target.value),placeholder:"API description",margin:"normal",multiline:!0,rows:2,required:!0,InputLabelProps:{classes:{asterisk:i.asterisk}}})}),(0,l.jsxs)(d.A,{item:!0,xs:12,children:[(0,l.jsx)(o.A,{variant:"subtitle2",gutterBottom:!0,style:{marginTop:16},children:"Tags"}),(0,l.jsx)(n.A,{display:"flex",flexWrap:"wrap",marginBottom:1,style:{gap:8},children:D.map(e=>(0,l.jsx)(s.A,{label:e,onDelete:()=>{return a=e,void N(D.filter(e=>e!==a));var a},size:"small"},e))}),(0,l.jsxs)(n.A,{display:"flex",style:{gap:8},children:[(0,l.jsx)(K.A,{fullWidth:!0,size:"small",value:$,onChange:e=>E(e.target.value),onKeyPress:e=>"Enter"===e.key&&te(),placeholder:"Add tag"}),(0,l.jsx)(c.A,{onClick:te,variant:"outlined",size:"small",children:"Add"})]})]}),(0,l.jsx)(d.A,{item:!0,xs:12,children:(0,l.jsxs)(K.A,{fullWidth:!0,select:!0,label:"HTTPRoute",value:L,onChange:e=>z(e.target.value),margin:"normal",required:!0,helperText:"Select an HTTPRoute (backstage.io/expose: true). APIProduct will be created in the same namespace.",disabled:ae,InputLabelProps:{classes:{asterisk:i.asterisk}},children:[ae&&(0,l.jsx)(U.A,{value:"",children:"Loading..."}),!ae&&ee&&0===ee.length&&(0,l.jsx)(U.A,{value:"",children:"No HTTPRoutes available"}),!ae&&ee&&ee.map(e=>(0,l.jsxs)(U.A,{value:`${e.metadata.namespace}/${e.metadata.name}`,children:[e.metadata.name," (",e.metadata.namespace,")"]},`${e.metadata.namespace}/${e.metadata.name}`))]})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Contact Email",value:q,onChange:e=>M(e.target.value),placeholder:"api-team@example.com",margin:"normal"})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Contact Team",value:_,onChange:e=>V(e.target.value),placeholder:"platform-team",margin:"normal"})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Docs URL",value:F,onChange:e=>O(e.target.value),placeholder:"https://api.example.com/docs",margin:"normal"})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"OpenAPI Spec URL",value:Y,onChange:e=>J(e.target.value),placeholder:"https://api.example.com/openapi.json",margin:"normal"})})]})]}),(0,l.jsxs)(x.A,{children:[(0,l.jsx)(c.A,{onClick:le,children:"Cancel"}),(0,l.jsx)(c.A,{onClick:async()=>{G(""),Z(!0);try{if(!L)throw new Error("Please select an HTTPRoute");const[e,a]=L.split("/"),l={apiVersion:"extensions.kuadrant.io/v1alpha1",kind:"APIProduct",metadata:{name:g,namespace:e},spec:{displayName:f,description:b,version:P,approvalMode:C,publishStatus:R,tags:D,targetRef:{group:"gateway.networking.k8s.io",kind:"HTTPRoute",name:a,namespace:e},...q||_?{contact:{...q&&{email:q},..._&&{team:_}}}:{},...F||Y?{documentation:{...F&&{docsURL:F},...Y&&{openAPISpec:Y}}}:{}}},r=await A.fetch(`${v}/api/kuadrant/apiproducts`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!r.ok){const e=await r.json();throw new Error(e.error||"failed to create apiproduct")}t(),le()}catch(e){G(e instanceof Error?e.message:String(e))}finally{Z(!1)}},color:"primary",variant:"contained",disabled:Q||!g||!f||!b||!L,children:Q?"Creating...":"Create"})]})]})};var V=t(34955);const F=(0,M.A)({asterisk:{color:"#f44336"}}),O=({open:e,onClose:a,onSuccess:t,namespace:i,name:h})=>{const A=F(),v=(0,I.useApi)(I.configApiRef),g=(0,I.useApi)(I.fetchApiRef),j=v.getString("backend.baseUrl"),[f,y]=(0,r.useState)(!1),[b,S]=(0,r.useState)(""),[P,C]=(0,r.useState)(""),[w,T]=(0,r.useState)("v1"),[R,W]=(0,r.useState)("Draft"),[D,N]=(0,r.useState)("manual"),[$,E]=(0,r.useState)([]),[L,z]=(0,r.useState)(null),[q,M]=(0,r.useState)(""),[H,_]=(0,r.useState)(""),[V,O]=(0,r.useState)(""),[Y,J]=(0,r.useState)(""),[X,G]=(0,r.useState)(""),[Q,Z]=(0,r.useState)(""),[ee,ae]=(0,r.useState)(!1);(0,r.useEffect)(()=>{e&&i&&h&&(y(!0),Z(""),g.fetch(`${j}/api/kuadrant/apiproducts/${i}/${h}`).then(e=>e.json()).then(e=>{var a,t,l,r;S(e.spec.displayName||""),C(e.spec.description||""),T(e.spec.version||"v1"),W(e.spec.publishStatus||"Draft"),N(e.spec.approvalMode||"manual"),E(e.spec.tags||[]),z(e.spec.targetRef||null),_((null===(a=e.spec.contact)||void 0===a?void 0:a.email)||""),O((null===(t=e.spec.contact)||void 0===t?void 0:t.team)||""),J((null===(l=e.spec.documentation)||void 0===l?void 0:l.docsURL)||""),G((null===(r=e.spec.documentation)||void 0===r?void 0:r.openAPISpec)||""),y(!1)}).catch(e=>{Z(e.message||"Failed to load API Product"),y(!1)}))},[e,i,h,j,g]);const te=()=>{q.trim()&&!$.includes(q.trim())&&(E([...$,q.trim()]),M(""))};return(0,l.jsxs)(u.A,{open:e,onClose:a,maxWidth:"md",fullWidth:!0,children:[(0,l.jsx)(p.A,{children:"Edit API Product"}),(0,l.jsxs)(m.A,{children:[Q&&(0,l.jsx)(B.A,{severity:"error",style:{marginBottom:16},children:Q}),f?(0,l.jsx)(k.k,{}):(0,l.jsxs)(d.A,{container:!0,spacing:2,children:[(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Name",value:h,disabled:!0,helperText:"Kubernetes resource name (immutable)",margin:"normal"})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Namespace",value:i,disabled:!0,helperText:"Derived from HTTPRoute (immutable)",margin:"normal"})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Display Name",value:b,onChange:e=>S(e.target.value),placeholder:"My API",margin:"normal",required:!0,InputLabelProps:{classes:{asterisk:A.asterisk}}})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Version",value:w,onChange:e=>T(e.target.value),placeholder:"v1",margin:"normal"})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsxs)(K.A,{fullWidth:!0,select:!0,label:"Publish Status",value:R,onChange:e=>W(e.target.value),margin:"normal",helperText:"Draft: Hidden from catalog. Published: Visible in catalog.",children:[(0,l.jsx)(U.A,{value:"Draft",children:"Draft (Hidden)"}),(0,l.jsx)(U.A,{value:"Published",children:"Published (Visible)"})]})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsxs)(K.A,{fullWidth:!0,select:!0,label:"Approval Mode",value:D,onChange:e=>N(e.target.value),margin:"normal",helperText:"Automatic: keys created immediately. Manual: requires approval.",children:[(0,l.jsx)(U.A,{value:"manual",children:"Manual"}),(0,l.jsx)(U.A,{value:"automatic",children:"Automatic"})]})}),(0,l.jsx)(d.A,{item:!0,xs:12,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Description",value:P,onChange:e=>C(e.target.value),placeholder:"API description",margin:"normal",multiline:!0,rows:2,required:!0,InputLabelProps:{classes:{asterisk:A.asterisk}}})}),(0,l.jsxs)(d.A,{item:!0,xs:12,children:[(0,l.jsx)(o.A,{variant:"subtitle2",gutterBottom:!0,style:{marginTop:16},children:"Tags"}),(0,l.jsx)(n.A,{display:"flex",flexWrap:"wrap",marginBottom:1,style:{gap:8},children:$.map(e=>(0,l.jsx)(s.A,{label:e,onDelete:()=>{return a=e,void E($.filter(e=>e!==a));var a},size:"small"},e))}),(0,l.jsxs)(n.A,{display:"flex",style:{gap:8},children:[(0,l.jsx)(K.A,{fullWidth:!0,size:"small",value:q,onChange:e=>M(e.target.value),onKeyPress:e=>"Enter"===e.key&&te(),placeholder:"Add tag"}),(0,l.jsx)(c.A,{onClick:te,variant:"outlined",size:"small",children:"Add"})]})]}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Contact Email",value:H,onChange:e=>_(e.target.value),placeholder:"api-team@example.com",margin:"normal"})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Contact Team",value:V,onChange:e=>O(e.target.value),placeholder:"platform-team",margin:"normal"})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"Docs URL",value:Y,onChange:e=>J(e.target.value),placeholder:"https://api.example.com/docs",margin:"normal"})}),(0,l.jsx)(d.A,{item:!0,xs:6,children:(0,l.jsx)(K.A,{fullWidth:!0,label:"OpenAPI Spec URL",value:X,onChange:e=>G(e.target.value),placeholder:"https://api.example.com/openapi.json",margin:"normal"})})]})]}),(0,l.jsxs)(x.A,{children:[(0,l.jsx)(c.A,{onClick:a,children:"Cancel"}),(0,l.jsx)(c.A,{onClick:async()=>{Z(""),ae(!0);try{const e={spec:{displayName:b,description:P,version:w,publishStatus:R,approvalMode:D,tags:$,targetRef:L,...H||V?{contact:{...H&&{email:H},...V&&{team:V}}}:{},...Y||X?{documentation:{...Y&&{docsURL:Y},...X&&{openAPISpec:X}}}:{}}},l=await g.fetch(`${j}/api/kuadrant/apiproducts/${i}/${h}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!l.ok){const e=await l.json();throw new Error(e.error||"failed to update apiproduct")}t(),a()}catch(e){Z(e instanceof Error?e.message:String(e))}finally{ae(!1)}},color:"primary",variant:"contained",disabled:ee||f||!b||!P,children:ee?"Saving...":"Save"})]})]})},Y=()=>{const e=(0,I.useApi)(I.configApiRef),a=(0,I.useApi)(I.fetchApiRef),t=e.getString("backend.baseUrl"),[W,D]=(0,r.useState)(!1),[N,$]=(0,r.useState)(!1),[E,q]=(0,r.useState)(0),[M,K]=(0,r.useState)(!1),[U,B]=(0,r.useState)(null),[H,F]=(0,r.useState)(null),[Y,J]=(0,r.useState)(!1),{allowed:X,loading:G,error:Q}=(0,z.l)(V.FL),{allowed:Z,loading:ee,error:ae}=(0,z.l)(V.TE),{allowed:te,loading:le,error:re}=(0,z.l)(V.qC),{allowed:se}=(0,z.l)(V.ib),{allowed:ne,loading:ie,error:oe}=(0,z.l)(V.J),{value:de,loading:ce,error:ue}=(0,T.A)(async()=>{const e=await a.fetch(`${t}/api/kuadrant/apiproducts`);return await e.json()},[t,a,E]),{value:pe,loading:me,error:he}=(0,T.A)(async()=>{const e=await a.fetch(`${t}/api/kuadrant/planpolicies`);return await e.json()},[t,a,E]),xe=ce||me||G||ee||le||ie,Ae=ue||he,ve=Q||ae||re||oe,ge=()=>{K(!1),B(null)},je=[{title:"Name",field:"name",render:e=>{var a;return(0,l.jsx)(j.N_,{to:`/catalog/default/api/${e.metadata.name}/api-product`,children:(0,l.jsx)("strong",{children:(null===(a=e.spec)||void 0===a?void 0:a.displayName)||e.metadata.name})})}},{title:"Resource Name",field:"metadata.name"},{title:"Version",field:"spec.version",render:e=>{var a;return(null===(a=e.spec)||void 0===a?void 0:a.version)||"-"}},{title:"HTTPRoute",field:"spec.targetRef.name",render:e=>{var a,t;return(null===(t=e.spec)||void 0===t||null===(a=t.targetRef)||void 0===a?void 0:a.name)||"-"}},{title:"Publish Status",field:"spec.publishStatus",render:e=>{var a;const t=(null===(a=e.spec)||void 0===a?void 0:a.publishStatus)||"Draft";return(0,l.jsx)(s.A,{label:t,size:"small",color:"Published"===t?"primary":"default"})}},{title:"Namespace",field:"metadata.namespace"},{title:"Created",field:"metadata.creationTimestamp",render:e=>{return a=e.metadata.creationTimestamp,new Date(a).toLocaleDateString("en-GB",{year:"numeric",month:"short",day:"numeric"});var a}},{title:"Actions",field:"actions",render:e=>(0,l.jsxs)(n.A,{display:"flex",style:{gap:4},children:[se&&(0,l.jsx)(i.A,{size:"small",onClick:()=>{return a=e.metadata.namespace,t=e.metadata.name,F({namespace:a,name:t}),void $(!0);var a,t},title:"Edit API Product",children:(0,l.jsx)(g.A,{fontSize:"small"})}),te&&(0,l.jsx)(i.A,{size:"small",onClick:()=>{return a=e.metadata.namespace,t=e.metadata.name,B({namespace:a,name:t}),void K(!0);var a,t},title:"Delete API Product",children:(0,l.jsx)(v.A,{fontSize:"small"})})]})}],fe=[{title:"Name",field:"metadata.name",render:e=>(0,l.jsx)(j.N_,{to:`/kuadrant/planpolicy/${e.metadata.namespace}/${e.metadata.name}`,children:(0,l.jsx)("strong",{children:e.metadata.name})})},{title:"Namespace",field:"metadata.namespace"}];return(0,l.jsxs)(y.Y,{themeId:"tool",children:[(0,l.jsx)(b.Y,{title:"Kuadrant",subtitle:"API management for Kubernetes",children:(0,l.jsx)(S.Y,{children:"Manage API products and access requests"})}),(0,l.jsxs)(P.U,{children:[xe&&(0,l.jsx)(k.k,{}),Ae&&(0,l.jsx)(C._,{error:Ae}),ve&&(0,l.jsxs)(n.A,{p:2,children:[(0,l.jsxs)(o.A,{color:"error",children:["unable to check permissions: ",ve.message]}),(0,l.jsxs)(o.A,{variant:"body2",color:"textSecondary",children:["permission: ",Q?"kuadrant.apiproduct.create":re?"kuadrant.apiproduct.delete":ae?"kuadrant.apikeyrequest.read.all":oe?"kuadrant.planpolicy.list":"unknown"]}),(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",children:"please try again or contact your administrator"})]}),!xe&&!Ae&&!ve&&(0,l.jsxs)(d.A,{container:!0,spacing:3,direction:"column",children:[(0,l.jsx)(d.A,{item:!0,children:(0,l.jsx)(L,{})}),(0,l.jsx)(d.A,{item:!0,children:(0,l.jsx)(w.n,{title:"API Products",action:X?(0,l.jsx)(n.A,{display:"flex",alignItems:"center",height:"100%",mt:1,children:(0,l.jsx)(c.A,{variant:"contained",color:"primary",size:"small",startIcon:(0,l.jsx)(A.A,{}),onClick:()=>D(!0),children:"Create API Product"})}):void 0,children:(ye=null==de?void 0:de.items,ye&&0!==ye.length?(0,l.jsx)(f.X,{options:{paging:!1,search:!1,toolbar:!1},columns:je,data:ye}):(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",children:"No API products found"}))})}),ne&&(0,l.jsx)(d.A,{item:!0,children:(0,l.jsx)(w.n,{title:"Plan Policies",children:(e=>e&&0!==e.length?(0,l.jsx)(f.X,{options:{paging:!1,search:!1,toolbar:!1},columns:fe,data:e}):(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",children:"No plan policies found"}))(null==pe?void 0:pe.items)})}),Z&&(0,l.jsx)(d.A,{item:!0,children:(0,l.jsx)(R.d,{})})]}),(0,l.jsx)(_,{open:W,onClose:()=>D(!1),onSuccess:()=>{q(e=>e+1)}}),(0,l.jsx)(O,{open:N,onClose:()=>$(!1),onSuccess:()=>{q(e=>e+1)},namespace:(null==H?void 0:H.namespace)||"",name:(null==H?void 0:H.name)||""}),(0,l.jsxs)(u.A,{open:M,onClose:ge,children:[(0,l.jsx)(p.A,{children:"Delete API Product"}),(0,l.jsx)(m.A,{children:(0,l.jsxs)(h.A,{children:["Are you sure you want to delete ",null==U?void 0:U.name," from namespace ",null==U?void 0:U.namespace,"? This will permanently remove the API Product from Kubernetes."]})}),(0,l.jsxs)(x.A,{children:[(0,l.jsx)(c.A,{onClick:ge,color:"primary",children:"Cancel"}),(0,l.jsx)(c.A,{onClick:async()=>{if(U){J(!0);try{if(!(await a.fetch(`${t}/api/kuadrant/apiproducts/${U.namespace}/${U.name}`,{method:"DELETE"})).ok)throw new Error("failed to delete apiproduct");q(e=>e+1)}catch(e){console.error("error deleting apiproduct:",e)}finally{J(!1),K(!1),B(null)}}},color:"secondary",disabled:Y,children:Y?"Deleting...":"Delete"})]})]})]})]});var ye},J=()=>(0,l.jsx)(q,{permission:V.vs,errorMessage:"you don't have permission to view the Kuadrant page",children:(0,l.jsx)(Y,{})})}}]);
|
|
2
|
+
//# sourceMappingURL=5811.5c192eeb.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/5811.5c192eeb.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/./src/components/MyApiKeysCard/MyApiKeysCard.tsx","webpack://internal.plugin-kuadrant/./src/components/PermissionGate/PermissionGate.tsx","webpack://internal.plugin-kuadrant/./src/components/CreateAPIProductDialog/CreateAPIProductDialog.tsx","webpack://internal.plugin-kuadrant/./src/components/EditAPIProductDialog/EditAPIProductDialog.tsx","webpack://internal.plugin-kuadrant/./src/components/KuadrantPage/KuadrantPage.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { InfoCard, Table, TableColumn, Link } from '@backstage/core-components';\nimport { useApi, configApiRef, fetchApiRef, identityApiRef } from '@backstage/core-plugin-api';\nimport useAsync from 'react-use/lib/useAsync';\nimport { Box, Chip, Typography, Tabs, Tab, IconButton, Tooltip } from '@material-ui/core';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport VisibilityOffIcon from '@material-ui/icons/VisibilityOff';\n\ninterface APIKeyRequest {\n metadata: {\n name: string;\n namespace: string;\n creationTimestamp: string;\n };\n spec: {\n apiName: string;\n apiNamespace: string;\n planTier: string;\n useCase?: string;\n requestedBy: {\n userId: string;\n email?: string;\n };\n };\n status?: {\n phase: 'Pending' | 'Approved' | 'Rejected';\n apiKey?: string;\n apiHostname?: string;\n reason?: string;\n reviewedBy?: string;\n reviewedAt?: string;\n };\n}\n\nexport const MyApiKeysCard = () => {\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const identityApi = useApi(identityApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n const [selectedTab, setSelectedTab] = useState(0);\n const [, setUserId] = useState<string>('');\n const [visibleKeys, setVisibleKeys] = useState<Set<string>>(new Set());\n\n useAsync(async () => {\n const identity = await identityApi.getBackstageIdentity();\n setUserId(identity.userEntityRef.split('/')[1] || 'guest');\n }, [identityApi]);\n\n const { value: requests, loading, error } = useAsync(async () => {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/requests/my`\n );\n if (!response.ok) {\n throw new Error('failed to fetch requests');\n }\n const data = await response.json();\n return data.items || [];\n }, [backendUrl, fetchApi]);\n\n if (loading) {\n return (\n <InfoCard title=\"My API Keys\">\n <Typography>Loading...</Typography>\n </InfoCard>\n );\n }\n\n if (error) {\n return (\n <InfoCard title=\"My API Keys\">\n <Typography color=\"error\">Error loading API keys: {error.message}</Typography>\n </InfoCard>\n );\n }\n\n const allRequests = requests || [];\n const approvedRequests = allRequests.filter((r: APIKeyRequest) => r.status?.phase === 'Approved');\n const pendingRequests = allRequests.filter((r: APIKeyRequest) => !r.status?.phase || r.status.phase === 'Pending');\n const rejectedRequests = allRequests.filter((r: APIKeyRequest) => r.status?.phase === 'Rejected');\n\n const toggleKeyVisibility = (keyName: string) => {\n setVisibleKeys(prev => {\n const newSet = new Set(prev);\n if (newSet.has(keyName)) {\n newSet.delete(keyName);\n } else {\n newSet.add(keyName);\n }\n return newSet;\n });\n };\n\n const columns: TableColumn<APIKeyRequest>[] = [\n {\n title: 'API Product',\n field: 'spec.apiName',\n render: (row: APIKeyRequest) => (\n <Link to={`/catalog/default/api/${row.spec.apiName}/api-keys`}>\n <strong>{row.spec.apiName}</strong>\n </Link>\n ),\n },\n {\n title: 'Plan',\n field: 'spec.planTier',\n render: (row: APIKeyRequest) => {\n const color = row.spec.planTier === 'gold' ? 'primary' :\n row.spec.planTier === 'silver' ? 'default' : 'secondary';\n return <Chip label={row.spec.planTier} color={color} size=\"small\" />;\n },\n },\n {\n title: 'Use Case',\n field: 'spec.useCase',\n render: (row: APIKeyRequest) => {\n return (\n <Typography variant=\"body2\">\n {row.spec.useCase || '-'}\n </Typography>\n );\n },\n },\n {\n title: 'Status',\n field: 'status.phase',\n render: (row: APIKeyRequest) => {\n const phase = row.status?.phase || 'Pending';\n const color = phase === 'Approved' ? 'primary' :\n phase === 'Rejected' ? 'secondary' : 'default';\n return <Chip label={phase} color={color} size=\"small\" />;\n },\n },\n {\n title: 'Reason',\n render: (row: APIKeyRequest) => {\n if (row.status?.phase === 'Rejected' && row.status.reason) {\n return (\n <Typography variant=\"body2\" color=\"error\">\n {row.status.reason}\n </Typography>\n );\n }\n return <Typography variant=\"body2\" color=\"textSecondary\">-</Typography>;\n },\n },\n {\n title: 'Reviewed By',\n render: (row: APIKeyRequest) => {\n if ((row.status?.phase === 'Approved' || row.status?.phase === 'Rejected') && row.status.reviewedBy) {\n const reviewedDate = row.status.reviewedAt ? new Date(row.status.reviewedAt).toLocaleDateString() : '';\n return (\n <Box>\n <Typography variant=\"body2\">{row.status.reviewedBy}</Typography>\n {reviewedDate && (\n <Typography variant=\"caption\" color=\"textSecondary\">\n {reviewedDate}\n </Typography>\n )}\n </Box>\n );\n }\n return <Typography variant=\"body2\" color=\"textSecondary\">-</Typography>;\n },\n },\n {\n title: 'API Key',\n render: (row: APIKeyRequest) => {\n if (row.status?.phase === 'Approved' && row.status.apiKey) {\n const isVisible = visibleKeys.has(row.metadata.name);\n return (\n <Box display=\"flex\" alignItems=\"center\" style={{ gap: 8 }}>\n <Box fontFamily=\"monospace\" fontSize=\"0.875rem\">\n {isVisible ? row.status.apiKey : '•'.repeat(20) + '...'}\n </Box>\n <Tooltip title={isVisible ? 'hide key' : 'show key'}>\n <IconButton\n size=\"small\"\n onClick={() => toggleKeyVisibility(row.metadata.name)}\n >\n {isVisible ? <VisibilityOffIcon fontSize=\"small\" /> : <VisibilityIcon fontSize=\"small\" />}\n </IconButton>\n </Tooltip>\n </Box>\n );\n }\n return <Typography variant=\"body2\" color=\"textSecondary\">-</Typography>;\n },\n },\n {\n title: 'Requested',\n field: 'metadata.creationTimestamp',\n render: (row: APIKeyRequest) => {\n const date = new Date(row.metadata.creationTimestamp);\n return date.toLocaleDateString();\n },\n },\n ];\n\n const getTabData = () => {\n switch (selectedTab) {\n case 0:\n return approvedRequests;\n case 1:\n return pendingRequests;\n case 2:\n return rejectedRequests;\n default:\n return allRequests;\n }\n };\n\n const tabData = getTabData();\n\n return (\n <InfoCard\n title=\"My API Keys\"\n subheader={`${approvedRequests.length} active, ${pendingRequests.length} pending`}\n >\n <Box mb={2}>\n <Tabs\n value={selectedTab}\n onChange={(_, newValue) => setSelectedTab(newValue)}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n <Tab label={`Active (${approvedRequests.length})`} />\n <Tab label={`Pending (${pendingRequests.length})`} />\n <Tab label={`Rejected (${rejectedRequests.length})`} />\n </Tabs>\n </Box>\n {tabData.length === 0 ? (\n <Box p={3} textAlign=\"center\">\n <Typography variant=\"body1\" color=\"textSecondary\">\n {selectedTab === 0 && 'No active API keys. Request access to an API to get started.'}\n {selectedTab === 1 && 'No pending requests.'}\n {selectedTab === 2 && 'No rejected requests.'}\n </Typography>\n </Box>\n ) : (\n <Table\n options={{\n paging: tabData.length > 10,\n pageSize: 10,\n search: false,\n toolbar: false,\n }}\n columns={columns}\n data={tabData}\n />\n )}\n </InfoCard>\n );\n};\n","import React from 'react';\nimport { Typography, Box } from '@material-ui/core';\nimport { Progress } from '@backstage/core-components';\nimport { Permission } from '@backstage/plugin-permission-common';\nimport { useKuadrantPermission } from '../../utils/permissions';\n\ninterface PermissionGateProps {\n children: React.ReactNode;\n permission: Permission;\n fallback?: React.ReactNode;\n errorMessage?: string;\n}\n\nexport const PermissionGate = ({ children, permission, fallback, errorMessage }: PermissionGateProps) => {\n const { allowed, loading, error } = useKuadrantPermission(permission);\n\n if (loading) {\n return <Progress />;\n }\n\n if (error) {\n return (\n <Box p={4}>\n <Typography color=\"error\">\n Unable to check permissions: {error.message}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n Please try again or contact your administrator\n </Typography>\n </Box>\n );\n }\n\n if (!allowed) {\n if (fallback) {\n return <>{fallback}</>;\n }\n return (\n <Box p={4}>\n <Typography color=\"textSecondary\">\n {errorMessage || 'You don\\'t have permission to view this page'}\n </Typography>\n <Box mt={1}>\n <Typography variant=\"caption\" color=\"textSecondary\">\n Required permission: {permission.name}\n </Typography>\n </Box>\n </Box>\n );\n }\n\n return <>{children}</>;\n};\n","import React, { useState } from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n TextField,\n Box,\n Typography,\n Chip,\n Grid,\n MenuItem,\n makeStyles,\n} from '@material-ui/core';\nimport { useApi, configApiRef, fetchApiRef } from '@backstage/core-plugin-api';\nimport { Alert } from '@material-ui/lab';\nimport useAsync from 'react-use/lib/useAsync';\n\nconst useStyles = makeStyles({\n asterisk: {\n color: '#f44336',\n },\n});\n\ninterface CreateAPIProductDialogProps {\n open: boolean;\n onClose: () => void;\n onSuccess: () => void;\n}\n\nexport const CreateAPIProductDialog = ({ open, onClose, onSuccess }: CreateAPIProductDialogProps) => {\n const classes = useStyles();\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n\n const [name, setName] = useState('');\n const [displayName, setDisplayName] = useState('');\n const [description, setDescription] = useState('');\n const [version, setVersion] = useState('v1');\n const [approvalMode, setApprovalMode] = useState<'automatic' | 'manual'>('manual');\n const [publishStatus, setPublishStatus] = useState<'Draft' | 'Published'>('Published');\n const [tags, setTags] = useState<string[]>([]);\n const [tagInput, setTagInput] = useState('');\n const [selectedHTTPRoute, setSelectedHTTPRoute] = useState('');\n const [contactEmail, setContactEmail] = useState('');\n const [contactTeam, setContactTeam] = useState('');\n const [docsURL, setDocsURL] = useState('');\n const [openAPISpec, setOpenAPISpec] = useState('');\n const [error, setError] = useState('');\n const [creating, setCreating] = useState(false);\n\n const { value: httpRoutes, loading: httpRoutesLoading } = useAsync(async () => {\n const response = await fetchApi.fetch(`${backendUrl}/api/kuadrant/httproutes`);\n const data = await response.json();\n // filter to only show httproutes annotated for backstage exposure\n return (data.items || []).filter((route: any) =>\n route.metadata.annotations?.['backstage.io/expose'] === 'true'\n );\n }, [backendUrl, fetchApi, open]);\n\n const handleAddTag = () => {\n if (tagInput.trim() && !tags.includes(tagInput.trim())) {\n setTags([...tags, tagInput.trim()]);\n setTagInput('');\n }\n };\n\n const handleDeleteTag = (tagToDelete: string) => {\n setTags(tags.filter(tag => tag !== tagToDelete));\n };\n\n const handleCreate = async () => {\n setError('');\n setCreating(true);\n\n try {\n if (!selectedHTTPRoute) {\n throw new Error('Please select an HTTPRoute');\n }\n\n const [selectedRouteNamespace, selectedRouteName] = selectedHTTPRoute.split('/');\n\n // derive namespace from selected httproute\n const namespace = selectedRouteNamespace;\n\n const apiProduct = {\n apiVersion: 'extensions.kuadrant.io/v1alpha1',\n kind: 'APIProduct',\n metadata: {\n name,\n namespace,\n },\n spec: {\n displayName,\n description,\n version,\n approvalMode,\n publishStatus,\n tags,\n targetRef: {\n group: 'gateway.networking.k8s.io',\n kind: 'HTTPRoute',\n name: selectedRouteName,\n namespace: selectedRouteNamespace,\n },\n ...(contactEmail || contactTeam ? {\n contact: {\n ...(contactEmail && { email: contactEmail }),\n ...(contactTeam && { team: contactTeam }),\n },\n } : {}),\n ...(docsURL || openAPISpec ? {\n documentation: {\n ...(docsURL && { docsURL }),\n ...(openAPISpec && { openAPISpec }),\n },\n } : {}),\n },\n };\n\n const response = await fetchApi.fetch(`${backendUrl}/api/kuadrant/apiproducts`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(apiProduct),\n });\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || 'failed to create apiproduct');\n }\n\n onSuccess();\n handleClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n } finally {\n setCreating(false);\n }\n };\n\n const handleClose = () => {\n setName('');\n setDisplayName('');\n setDescription('');\n setVersion('v1');\n setApprovalMode('manual');\n setPublishStatus('Published');\n setTags([]);\n setTagInput('');\n setSelectedHTTPRoute('');\n setContactEmail('');\n setContactTeam('');\n setDocsURL('');\n setOpenAPISpec('');\n setError('');\n onClose();\n };\n\n return (\n <Dialog open={open} onClose={handleClose} maxWidth=\"md\" fullWidth>\n <DialogTitle>Create API Product</DialogTitle>\n <DialogContent>\n {error && (\n <Alert severity=\"error\" style={{ marginBottom: 16 }}>\n {error}\n </Alert>\n )}\n\n <Grid container spacing={2}>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Name\"\n value={name}\n onChange={e => setName(e.target.value)}\n placeholder=\"my-api\"\n helperText=\"Kubernetes resource name (lowercase, hyphens)\"\n margin=\"normal\"\n required\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Display Name\"\n value={displayName}\n onChange={e => setDisplayName(e.target.value)}\n placeholder=\"My API\"\n margin=\"normal\"\n required\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Version\"\n value={version}\n onChange={e => setVersion(e.target.value)}\n placeholder=\"v1\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={12}>\n <TextField\n fullWidth\n select\n label=\"Approval Mode\"\n value={approvalMode}\n onChange={e => setApprovalMode(e.target.value as 'automatic' | 'manual')}\n margin=\"normal\"\n helperText=\"Automatic: keys are created immediately. Manual: requires approval.\"\n >\n <MenuItem value=\"manual\">Manual</MenuItem>\n <MenuItem value=\"automatic\">Automatic</MenuItem>\n </TextField>\n </Grid>\n <Grid item xs={12}>\n <TextField\n fullWidth\n select\n label=\"Publish Status\"\n value={publishStatus}\n onChange={e => setPublishStatus(e.target.value as 'Draft' | 'Published')}\n margin=\"normal\"\n helperText=\"Draft: hidden from catalog. Published: visible to consumers.\"\n >\n <MenuItem value=\"Draft\">Draft</MenuItem>\n <MenuItem value=\"Published\">Published</MenuItem>\n </TextField>\n </Grid>\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"Description\"\n value={description}\n onChange={e => setDescription(e.target.value)}\n placeholder=\"API description\"\n margin=\"normal\"\n multiline\n rows={2}\n required\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n\n <Grid item xs={12}>\n <Typography variant=\"subtitle2\" gutterBottom style={{ marginTop: 16 }}>\n Tags\n </Typography>\n <Box display=\"flex\" flexWrap=\"wrap\" marginBottom={1} style={{ gap: 8 }}>\n {tags.map(tag => (\n <Chip\n key={tag}\n label={tag}\n onDelete={() => handleDeleteTag(tag)}\n size=\"small\"\n />\n ))}\n </Box>\n <Box display=\"flex\" style={{ gap: 8 }}>\n <TextField\n fullWidth\n size=\"small\"\n value={tagInput}\n onChange={e => setTagInput(e.target.value)}\n onKeyPress={e => e.key === 'Enter' && handleAddTag()}\n placeholder=\"Add tag\"\n />\n <Button onClick={handleAddTag} variant=\"outlined\" size=\"small\">\n Add\n </Button>\n </Box>\n </Grid>\n\n <Grid item xs={12}>\n <TextField\n fullWidth\n select\n label=\"HTTPRoute\"\n value={selectedHTTPRoute}\n onChange={e => setSelectedHTTPRoute(e.target.value)}\n margin=\"normal\"\n required\n helperText=\"Select an HTTPRoute (backstage.io/expose: true). APIProduct will be created in the same namespace.\"\n disabled={httpRoutesLoading}\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n >\n {httpRoutesLoading && (\n <MenuItem value=\"\">Loading...</MenuItem>\n )}\n {!httpRoutesLoading && httpRoutes && httpRoutes.length === 0 && (\n <MenuItem value=\"\">No HTTPRoutes available</MenuItem>\n )}\n {!httpRoutesLoading && httpRoutes && httpRoutes.map((route: any) => (\n <MenuItem\n key={`${route.metadata.namespace}/${route.metadata.name}`}\n value={`${route.metadata.namespace}/${route.metadata.name}`}\n >\n {route.metadata.name} ({route.metadata.namespace})\n </MenuItem>\n ))}\n </TextField>\n </Grid>\n\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Contact Email\"\n value={contactEmail}\n onChange={e => setContactEmail(e.target.value)}\n placeholder=\"api-team@example.com\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Contact Team\"\n value={contactTeam}\n onChange={e => setContactTeam(e.target.value)}\n placeholder=\"platform-team\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Docs URL\"\n value={docsURL}\n onChange={e => setDocsURL(e.target.value)}\n placeholder=\"https://api.example.com/docs\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"OpenAPI Spec URL\"\n value={openAPISpec}\n onChange={e => setOpenAPISpec(e.target.value)}\n placeholder=\"https://api.example.com/openapi.json\"\n margin=\"normal\"\n />\n </Grid>\n </Grid>\n </DialogContent>\n <DialogActions>\n <Button onClick={handleClose}>Cancel</Button>\n <Button\n onClick={handleCreate}\n color=\"primary\"\n variant=\"contained\"\n disabled={creating || !name || !displayName || !description || !selectedHTTPRoute}\n >\n {creating ? 'Creating...' : 'Create'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n TextField,\n Box,\n Typography,\n Chip,\n Grid,\n MenuItem,\n makeStyles,\n} from '@material-ui/core';\nimport { useApi, configApiRef, fetchApiRef } from '@backstage/core-plugin-api';\nimport { Alert } from '@material-ui/lab';\nimport { Progress } from '@backstage/core-components';\n\nconst useStyles = makeStyles({\n asterisk: {\n color: '#f44336',\n },\n});\n\ninterface EditAPIProductDialogProps {\n open: boolean;\n onClose: () => void;\n onSuccess: () => void;\n namespace: string;\n name: string;\n}\n\nexport const EditAPIProductDialog = ({open, onClose, onSuccess, namespace, name}: EditAPIProductDialogProps) => {\n const classes = useStyles();\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n const [loading, setLoading] = useState(false);\n const [displayName, setDisplayName] = useState('');\n const [description, setDescription] = useState('');\n const [version, setVersion] = useState('v1');\n const [publishStatus, setPublishStatus] = useState<'Draft' | 'Published'>('Draft');\n const [approvalMode, setApprovalMode] = useState<'automatic' | 'manual'>('manual');\n const [tags, setTags] = useState<string[]>([]);\n const [targetRef, setTargetRef] = useState<any>(null);\n const [tagInput, setTagInput] = useState('');\n const [contactEmail, setContactEmail] = useState('');\n const [contactTeam, setContactTeam] = useState('');\n const [docsURL, setDocsURL] = useState('');\n const [openAPISpec, setOpenAPISpec] = useState('');\n const [error, setError] = useState('');\n const [saving, setSaving] = useState(false);\n\n // Load APIProduct data when dialog opens\n useEffect(() => {\n if (open && namespace && name) {\n setLoading(true);\n setError('');\n\n fetchApi.fetch(`${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`)\n .then(res => res.json())\n .then(data => {\n setDisplayName(data.spec.displayName || '');\n setDescription(data.spec.description || '');\n setVersion(data.spec.version || 'v1');\n setPublishStatus(data.spec.publishStatus || 'Draft');\n setApprovalMode(data.spec.approvalMode || 'manual');\n setTags(data.spec.tags || []);\n setTargetRef(data.spec.targetRef || null);\n setContactEmail(data.spec.contact?.email || '');\n setContactTeam(data.spec.contact?.team || '');\n setDocsURL(data.spec.documentation?.docsURL || '');\n setOpenAPISpec(data.spec.documentation?.openAPISpec || '');\n setLoading(false);\n })\n .catch(err => {\n setError(err.message || 'Failed to load API Product');\n setLoading(false);\n });\n }\n }, [open, namespace, name, backendUrl, fetchApi]);\n\n const handleAddTag = () => {\n if (tagInput.trim() && !tags.includes(tagInput.trim())) {\n setTags([...tags, tagInput.trim()]);\n setTagInput('');\n }\n };\n\n const handleDeleteTag = (tagToDelete: string) => {\n setTags(tags.filter(tag => tag !== tagToDelete));\n };\n\n const handleSave = async () => {\n setError('');\n setSaving(true);\n\n try {\n const patch = {\n spec: {\n displayName,\n description,\n version,\n publishStatus,\n approvalMode,\n tags,\n targetRef,\n ...(contactEmail || contactTeam ? {\n contact: {\n ...(contactEmail && { email: contactEmail }),\n ...(contactTeam && { team: contactTeam }),\n },\n } : {}),\n ...(docsURL || openAPISpec ? {\n documentation: {\n ...(docsURL && { docsURL }),\n ...(openAPISpec && { openAPISpec }),\n },\n } : {}),\n },\n };\n\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(patch),\n }\n );\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || 'failed to update apiproduct');\n }\n\n onSuccess();\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n } finally {\n setSaving(false);\n }\n };\n\n return (\n <Dialog open={open} onClose={onClose} maxWidth=\"md\" fullWidth>\n <DialogTitle>Edit API Product</DialogTitle>\n <DialogContent>\n {error && (\n <Alert severity=\"error\" style={{ marginBottom: 16 }}>\n {error}\n </Alert>\n )}\n\n {loading ? (\n <Progress />\n ) : (\n <Grid container spacing={2}>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Name\"\n value={name}\n disabled\n helperText=\"Kubernetes resource name (immutable)\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Namespace\"\n value={namespace}\n disabled\n helperText=\"Derived from HTTPRoute (immutable)\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Display Name\"\n value={displayName}\n onChange={e => setDisplayName(e.target.value)}\n placeholder=\"My API\"\n margin=\"normal\"\n required\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Version\"\n value={version}\n onChange={e => setVersion(e.target.value)}\n placeholder=\"v1\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n select\n label=\"Publish Status\"\n value={publishStatus}\n onChange={e => setPublishStatus(e.target.value as 'Draft' | 'Published')}\n margin=\"normal\"\n helperText=\"Draft: Hidden from catalog. Published: Visible in catalog.\"\n >\n <MenuItem value=\"Draft\">Draft (Hidden)</MenuItem>\n <MenuItem value=\"Published\">Published (Visible)</MenuItem>\n </TextField>\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n select\n label=\"Approval Mode\"\n value={approvalMode}\n onChange={e => setApprovalMode(e.target.value as 'automatic' | 'manual')}\n margin=\"normal\"\n helperText=\"Automatic: keys created immediately. Manual: requires approval.\"\n >\n <MenuItem value=\"manual\">Manual</MenuItem>\n <MenuItem value=\"automatic\">Automatic</MenuItem>\n </TextField>\n </Grid>\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"Description\"\n value={description}\n onChange={e => setDescription(e.target.value)}\n placeholder=\"API description\"\n margin=\"normal\"\n multiline\n rows={2}\n required\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n\n <Grid item xs={12}>\n <Typography variant=\"subtitle2\" gutterBottom style={{ marginTop: 16 }}>\n Tags\n </Typography>\n <Box display=\"flex\" flexWrap=\"wrap\" marginBottom={1} style={{ gap: 8 }}>\n {tags.map(tag => (\n <Chip\n key={tag}\n label={tag}\n onDelete={() => handleDeleteTag(tag)}\n size=\"small\"\n />\n ))}\n </Box>\n <Box display=\"flex\" style={{ gap: 8 }}>\n <TextField\n fullWidth\n size=\"small\"\n value={tagInput}\n onChange={e => setTagInput(e.target.value)}\n onKeyPress={e => e.key === 'Enter' && handleAddTag()}\n placeholder=\"Add tag\"\n />\n <Button onClick={handleAddTag} variant=\"outlined\" size=\"small\">\n Add\n </Button>\n </Box>\n </Grid>\n\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Contact Email\"\n value={contactEmail}\n onChange={e => setContactEmail(e.target.value)}\n placeholder=\"api-team@example.com\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Contact Team\"\n value={contactTeam}\n onChange={e => setContactTeam(e.target.value)}\n placeholder=\"platform-team\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Docs URL\"\n value={docsURL}\n onChange={e => setDocsURL(e.target.value)}\n placeholder=\"https://api.example.com/docs\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"OpenAPI Spec URL\"\n value={openAPISpec}\n onChange={e => setOpenAPISpec(e.target.value)}\n placeholder=\"https://api.example.com/openapi.json\"\n margin=\"normal\"\n />\n </Grid>\n </Grid>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose}>Cancel</Button>\n <Button\n onClick={handleSave}\n color=\"primary\"\n variant=\"contained\"\n disabled={saving || loading || !displayName || !description}\n >\n {saving ? 'Saving...' : 'Save'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n","import React, { useState } from 'react';\nimport { Typography, Grid, Box, Chip, Button, IconButton, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions } from '@material-ui/core';\nimport AddIcon from '@material-ui/icons/Add';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\nimport {\n InfoCard,\n Header,\n Page,\n Content,\n SupportButton,\n Progress,\n ResponseErrorPanel,\n Link,\n Table,\n TableColumn,\n} from '@backstage/core-components';\nimport useAsync from 'react-use/lib/useAsync';\nimport { useApi, configApiRef, fetchApiRef } from '@backstage/core-plugin-api';\nimport { ApprovalQueueCard } from '../ApprovalQueueCard';\nimport { MyApiKeysCard } from '../MyApiKeysCard';\nimport { PermissionGate } from '../PermissionGate';\nimport { CreateAPIProductDialog } from '../CreateAPIProductDialog';\nimport {\n kuadrantApiProductCreatePermission,\n kuadrantApiProductDeletePermission,\n kuadrantApiProductUpdatePermission,\n kuadrantApiProductListPermission,\n kuadrantApiKeyRequestReadAllPermission,\n kuadrantPlanPolicyListPermission,\n} from '../../permissions';\nimport { useKuadrantPermission } from '../../utils/permissions';\nimport { EditAPIProductDialog } from '../EditAPIProductDialog';\n\ntype KuadrantResource = {\n metadata: {\n name: string;\n namespace: string;\n creationTimestamp: string;\n };\n spec?: any;\n};\n\ntype KuadrantList = {\n items: KuadrantResource[];\n};\n\nexport const ResourceList = () => {\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n const [createDialogOpen, setCreateDialogOpen] = useState(false);\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const [refreshTrigger, setRefreshTrigger] = useState(0);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const [apiProductToDelete, setApiProductToDelete] = useState<{ namespace: string; name: string } | null>(null);\n const [apiProductToEdit, setApiProductToEdit] = useState<{ namespace: string; name: string } | null>(null);\n const [deleting, setDeleting] = useState(false);\n\n const {\n allowed: canCreateApiProduct,\n loading: createPermissionLoading,\n error: createPermissionError,\n } = useKuadrantPermission(kuadrantApiProductCreatePermission);\n\n const {\n allowed: canViewApprovalQueue,\n loading: approvalQueuePermissionLoading,\n error: approvalQueuePermissionError,\n } = useKuadrantPermission(kuadrantApiKeyRequestReadAllPermission);\n\n const {\n allowed: canDeleteApiProduct,\n loading: deletePermissionLoading,\n error: deletePermissionError,\n } = useKuadrantPermission(kuadrantApiProductDeletePermission);\n\n const {\n allowed: canUpdateApiProduct,\n } = useKuadrantPermission(kuadrantApiProductUpdatePermission);\n\n const {\n allowed: canListPlanPolicies,\n loading: planPolicyPermissionLoading,\n error: planPolicyPermissionError,\n } = useKuadrantPermission(kuadrantPlanPolicyListPermission);\n\n const { value: apiProducts, loading: apiProductsLoading, error: apiProductsError } = useAsync(async (): Promise<KuadrantList> => {\n const response = await fetchApi.fetch(`${backendUrl}/api/kuadrant/apiproducts`);\n return await response.json();\n }, [backendUrl, fetchApi, refreshTrigger]);\n\n const { value: planPolicies, loading: planPoliciesLoading, error: planPoliciesError } = useAsync(async (): Promise<KuadrantList> => {\n const response = await fetchApi.fetch(`${backendUrl}/api/kuadrant/planpolicies`);\n return await response.json();\n }, [backendUrl, fetchApi, refreshTrigger]);\n\n const loading = apiProductsLoading || planPoliciesLoading || createPermissionLoading || approvalQueuePermissionLoading || deletePermissionLoading || planPolicyPermissionLoading;\n const error = apiProductsError || planPoliciesError;\n const permissionError = createPermissionError || approvalQueuePermissionError || deletePermissionError || planPolicyPermissionError;\n\n const handleCreateSuccess = () => {\n setRefreshTrigger(prev => prev + 1);\n };\n\n const handleEditClick = (namespace: string, name: string) => {\n setApiProductToEdit({ namespace, name });\n setEditDialogOpen(true);\n };\n\n const handleEditSuccess = () => {\n setRefreshTrigger(prev => prev + 1);\n };\n\n const handleDeleteClick = (namespace: string, name: string) => {\n setApiProductToDelete({ namespace, name });\n setDeleteDialogOpen(true);\n };\n\n const handleDeleteConfirm = async () => {\n if (!apiProductToDelete) return;\n\n setDeleting(true);\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${apiProductToDelete.namespace}/${apiProductToDelete.name}`,\n { method: 'DELETE' }\n );\n\n if (!response.ok) {\n throw new Error('failed to delete apiproduct');\n }\n\n setRefreshTrigger(prev => prev + 1);\n } catch (err) {\n console.error('error deleting apiproduct:', err);\n } finally {\n setDeleting(false);\n setDeleteDialogOpen(false);\n setApiProductToDelete(null);\n }\n };\n\n const handleDeleteCancel = () => {\n setDeleteDialogOpen(false);\n setApiProductToDelete(null);\n };\n\n const formatDate = (dateString: string) => {\n const date = new Date(dateString);\n return date.toLocaleDateString('en-GB', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n };\n\n const columns: TableColumn[] = [\n {\n title: 'Name',\n field: 'name',\n render: (row: any) => (\n <Link to={`/catalog/default/api/${row.metadata.name}/api-product`}>\n <strong>{row.spec?.displayName || row.metadata.name}</strong>\n </Link>\n ),\n },\n {\n title: 'Resource Name',\n field: 'metadata.name',\n },\n {\n title: 'Version',\n field: 'spec.version',\n render: (row: any) => row.spec?.version || '-',\n },\n {\n title: 'HTTPRoute',\n field: 'spec.targetRef.name',\n render: (row: any) => row.spec?.targetRef?.name || '-',\n },\n {\n title: 'Publish Status',\n field: 'spec.publishStatus',\n render: (row: any) => {\n const status = row.spec?.publishStatus || 'Draft';\n return (\n <Chip \n label={status} \n size=\"small\" \n color={status === 'Published' ? 'primary' : 'default'}\n />\n );\n },\n },\n {\n title: 'Namespace',\n field: 'metadata.namespace',\n },\n {\n title: 'Created',\n field: 'metadata.creationTimestamp',\n render: (row: any) => formatDate(row.metadata.creationTimestamp),\n },\n {\n title: 'Actions',\n field: 'actions',\n render: (row: any) => (\n <Box display=\"flex\" style={{ gap: 4 }}>\n {canUpdateApiProduct && (\n <IconButton\n size=\"small\"\n onClick={() => handleEditClick(row.metadata.namespace, row.metadata.name)}\n title=\"Edit API Product\"\n >\n <EditIcon fontSize=\"small\" />\n </IconButton>\n )}\n \n {canDeleteApiProduct && (\n <IconButton\n size=\"small\"\n onClick={() => handleDeleteClick(row.metadata.namespace, row.metadata.name)}\n title=\"Delete API Product\"\n >\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n ),\n },\n ];\n\n const planPolicyColumns: TableColumn[] = [\n {\n title: 'Name',\n field: 'metadata.name',\n render: (row: any) => (\n <Link to={`/kuadrant/planpolicy/${row.metadata.namespace}/${row.metadata.name}`}>\n <strong>{row.metadata.name}</strong>\n </Link>\n ),\n },\n {\n title: 'Namespace',\n field: 'metadata.namespace',\n },\n ];\n\n const renderResources = (resources: KuadrantResource[] | undefined) => {\n if (!resources || resources.length === 0) {\n return <Typography variant=\"body2\" color=\"textSecondary\">No API products found</Typography>;\n }\n return (\n <Table\n options={{ paging: false, search: false, toolbar: false }}\n columns={columns}\n data={resources}\n />\n );\n };\n\n const renderPlanPolicies = (resources: KuadrantResource[] | undefined) => {\n if (!resources || resources.length === 0) {\n return <Typography variant=\"body2\" color=\"textSecondary\">No plan policies found</Typography>;\n }\n return (\n <Table\n options={{ paging: false, search: false, toolbar: false }}\n columns={planPolicyColumns}\n data={resources}\n />\n );\n };\n\n return (\n <Page themeId=\"tool\">\n <Header title=\"Kuadrant\" subtitle=\"API management for Kubernetes\">\n <SupportButton>Manage API products and access requests</SupportButton>\n </Header>\n <Content>\n {loading && <Progress />}\n {error && <ResponseErrorPanel error={error} />}\n {permissionError && (\n <Box p={2}>\n <Typography color=\"error\">\n unable to check permissions: {permissionError.message}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n permission: {createPermissionError ? 'kuadrant.apiproduct.create' :\n deletePermissionError ? 'kuadrant.apiproduct.delete' :\n approvalQueuePermissionError ? 'kuadrant.apikeyrequest.read.all' :\n planPolicyPermissionError ? 'kuadrant.planpolicy.list' : 'unknown'}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n please try again or contact your administrator\n </Typography>\n </Box>\n )}\n {!loading && !error && !permissionError && (\n <Grid container spacing={3} direction=\"column\">\n <Grid item>\n <MyApiKeysCard />\n </Grid>\n\n <Grid item>\n <InfoCard\n title=\"API Products\"\n action={\n canCreateApiProduct ? (\n <Box display=\"flex\" alignItems=\"center\" height=\"100%\" mt={1}>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n startIcon={<AddIcon />}\n onClick={() => setCreateDialogOpen(true)}\n >\n Create API Product\n </Button>\n </Box>\n ) : undefined\n }\n >\n {renderResources(apiProducts?.items)}\n </InfoCard>\n </Grid>\n\n {canListPlanPolicies && (\n <Grid item>\n <InfoCard title=\"Plan Policies\">\n {renderPlanPolicies(planPolicies?.items)}\n </InfoCard>\n </Grid>\n )}\n\n {canViewApprovalQueue && (\n <Grid item>\n <ApprovalQueueCard />\n </Grid>\n )}\n </Grid>\n )}\n <CreateAPIProductDialog\n open={createDialogOpen}\n onClose={() => setCreateDialogOpen(false)}\n onSuccess={handleCreateSuccess}\n />\n <EditAPIProductDialog\n open={editDialogOpen}\n onClose={() => setEditDialogOpen(false)}\n onSuccess={handleEditSuccess}\n namespace={apiProductToEdit?.namespace || ''}\n name={apiProductToEdit?.name || ''}\n />\n <Dialog open={deleteDialogOpen} onClose={handleDeleteCancel}>\n <DialogTitle>Delete API Product</DialogTitle>\n <DialogContent>\n <DialogContentText>\n Are you sure you want to delete {apiProductToDelete?.name} from namespace {apiProductToDelete?.namespace}?\n This will permanently remove the API Product from Kubernetes.\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button onClick={handleDeleteCancel} color=\"primary\">\n Cancel\n </Button>\n <Button onClick={handleDeleteConfirm} color=\"secondary\" disabled={deleting}>\n {deleting ? 'Deleting...' : 'Delete'}\n </Button>\n </DialogActions>\n </Dialog>\n </Content>\n </Page>\n );\n};\n\nexport const KuadrantPage = () => {\n return (\n <PermissionGate\n permission={kuadrantApiProductListPermission}\n errorMessage=\"you don't have permission to view the Kuadrant page\"\n >\n <ResourceList />\n </PermissionGate>\n );\n};\n"],"names":["MyApiKeysCard","config","useApi","configApiRef","fetchApi","fetchApiRef","identityApi","identityApiRef","backendUrl","getString","selectedTab","setSelectedTab","useState","setUserId","visibleKeys","setVisibleKeys","Set","useAsync","async","identity","getBackstageIdentity","userEntityRef","split","value","requests","loading","error","response","fetch","ok","Error","json","items","InfoCard","title","Typography","color","message","allRequests","approvedRequests","filter","r","status","phase","pendingRequests","rejectedRequests","columns","field","render","row","Link","to","spec","apiName","strong","planTier","Chip","label","size","variant","useCase","reason","reviewedBy","reviewedDate","reviewedAt","Date","toLocaleDateString","Box","apiKey","isVisible","has","metadata","name","display","alignItems","style","gap","fontFamily","fontSize","repeat","Tooltip","IconButton","onClick","toggleKeyVisibility","keyName","prev","newSet","delete","add","VisibilityOffIcon","VisibilityIcon","creationTimestamp","tabData","getTabData","subheader","length","mb","Tabs","onChange","_","newValue","indicatorColor","textColor","Tab","p","textAlign","Table","options","paging","pageSize","search","toolbar","data","PermissionGate","children","permission","fallback","errorMessage","allowed","useKuadrantPermission","Progress","mt","useStyles","makeStyles","asterisk","CreateAPIProductDialog","open","onClose","onSuccess","classes","setName","displayName","setDisplayName","description","setDescription","version","setVersion","approvalMode","setApprovalMode","publishStatus","setPublishStatus","tags","setTags","tagInput","setTagInput","selectedHTTPRoute","setSelectedHTTPRoute","contactEmail","setContactEmail","contactTeam","setContactTeam","docsURL","setDocsURL","openAPISpec","setOpenAPISpec","setError","creating","setCreating","httpRoutes","httpRoutesLoading","route","annotations","handleAddTag","trim","includes","handleClose","Dialog","maxWidth","fullWidth","DialogTitle","DialogContent","Alert","severity","marginBottom","Grid","container","spacing","item","xs","TextField","e","target","placeholder","helperText","margin","required","InputLabelProps","select","MenuItem","multiline","rows","gutterBottom","marginTop","flexWrap","map","tag","onDelete","handleDeleteTag","tagToDelete","onKeyPress","key","Button","disabled","namespace","DialogActions","selectedRouteNamespace","selectedRouteName","apiProduct","apiVersion","kind","targetRef","group","contact","email","team","documentation","method","headers","body","JSON","stringify","errorData","err","String","EditAPIProductDialog","setLoading","setTargetRef","saving","setSaving","useEffect","then","res","catch","patch","ResourceList","createDialogOpen","setCreateDialogOpen","editDialogOpen","setEditDialogOpen","refreshTrigger","setRefreshTrigger","deleteDialogOpen","setDeleteDialogOpen","apiProductToDelete","setApiProductToDelete","apiProductToEdit","setApiProductToEdit","deleting","setDeleting","canCreateApiProduct","createPermissionLoading","createPermissionError","kuadrantApiProductCreatePermission","canViewApprovalQueue","approvalQueuePermissionLoading","approvalQueuePermissionError","kuadrantApiKeyRequestReadAllPermission","canDeleteApiProduct","deletePermissionLoading","deletePermissionError","kuadrantApiProductDeletePermission","canUpdateApiProduct","kuadrantApiProductUpdatePermission","canListPlanPolicies","planPolicyPermissionLoading","planPolicyPermissionError","kuadrantPlanPolicyListPermission","apiProducts","apiProductsLoading","apiProductsError","planPolicies","planPoliciesLoading","planPoliciesError","permissionError","handleDeleteCancel","formatDate","dateString","year","month","day","handleEditClick","EditIcon","handleDeleteClick","DeleteIcon","planPolicyColumns","Page","themeId","Header","subtitle","SupportButton","Content","ResponseErrorPanel","direction","action","height","startIcon","AddIcon","undefined","resources","renderPlanPolicies","ApprovalQueueCard","DialogContentText","console","KuadrantPage","kuadrantApiProductListPermission"],"sourceRoot":""}
|