@kubed.io/cdn 0.0.4 → 0.0.6
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/README.md +11 -0
- package/dist/chunks/1c-Cg7z75RR.js +94 -0
- package/dist/chunks/1c-Cg7z75RR.js.map +1 -0
- package/dist/chunks/abnf-DjOFdYyB.js +59 -0
- package/dist/chunks/abnf-DjOFdYyB.js.map +1 -0
- package/dist/chunks/accesslog-CT59MCIO.js +72 -0
- package/dist/chunks/accesslog-CT59MCIO.js.map +1 -0
- package/dist/chunks/actionscript-BF7IWfId.js +85 -0
- package/dist/chunks/actionscript-BF7IWfId.js.map +1 -0
- package/dist/chunks/ada-BW8u8CRX.js +107 -0
- package/dist/chunks/ada-BW8u8CRX.js.map +1 -0
- package/dist/chunks/angelscript-2l-XM2Vw.js +91 -0
- package/dist/chunks/angelscript-2l-XM2Vw.js.map +1 -0
- package/dist/chunks/apache-ClDRwhlj.js +87 -0
- package/dist/chunks/apache-ClDRwhlj.js.map +1 -0
- package/dist/chunks/applescript-BnCdU8ml.js +57 -0
- package/dist/chunks/applescript-BnCdU8ml.js.map +1 -0
- package/dist/chunks/arcade-BtIJZuSq.js +157 -0
- package/dist/chunks/arcade-BtIJZuSq.js.map +1 -0
- package/dist/chunks/arduino-xB3NbW4M.js +272 -0
- package/dist/chunks/arduino-xB3NbW4M.js.map +1 -0
- package/dist/chunks/armasm-Dg5wPE4N.js +66 -0
- package/dist/chunks/armasm-Dg5wPE4N.js.map +1 -0
- package/dist/chunks/asciidoc-ZAddoC6x.js +178 -0
- package/dist/chunks/asciidoc-ZAddoC6x.js.map +1 -0
- package/dist/chunks/aspectj-Dfd0IA-3.js +126 -0
- package/dist/chunks/aspectj-Dfd0IA-3.js.map +1 -0
- package/dist/chunks/autohotkey-tKEhIrY9.js +55 -0
- package/dist/chunks/autohotkey-tKEhIrY9.js.map +1 -0
- package/dist/chunks/autoit-BPoYFiDT.js +123 -0
- package/dist/chunks/autoit-BPoYFiDT.js.map +1 -0
- package/dist/chunks/avrasm-DcwC__J5.js +47 -0
- package/dist/chunks/avrasm-DcwC__J5.js.map +1 -0
- package/dist/chunks/awk-B0eiS31p.js +56 -0
- package/dist/chunks/awk-B0eiS31p.js.map +1 -0
- package/dist/chunks/axapta-BZnaEvVa.js +65 -0
- package/dist/chunks/axapta-BZnaEvVa.js.map +1 -0
- package/dist/chunks/bash-SfqkqXwO.js +171 -0
- package/dist/chunks/bash-SfqkqXwO.js.map +1 -0
- package/dist/chunks/basic-hK9i76TR.js +44 -0
- package/dist/chunks/basic-hK9i76TR.js.map +1 -0
- package/dist/chunks/bnf-CT5PE87o.js +28 -0
- package/dist/chunks/bnf-CT5PE87o.js.map +1 -0
- package/dist/chunks/brainfuck-Cix81oQc.js +41 -0
- package/dist/chunks/brainfuck-Cix81oQc.js.map +1 -0
- package/dist/chunks/c-DqpMY-rp.js +189 -0
- package/dist/chunks/c-DqpMY-rp.js.map +1 -0
- package/dist/chunks/cal-C-xic9Tn.js +91 -0
- package/dist/chunks/cal-C-xic9Tn.js.map +1 -0
- package/dist/chunks/capnproto-Bte6wB8g.js +84 -0
- package/dist/chunks/capnproto-Bte6wB8g.js.map +1 -0
- package/dist/chunks/ceylon-B5xM3rkd.js +77 -0
- package/dist/chunks/ceylon-B5xM3rkd.js.map +1 -0
- package/dist/chunks/clean-58wPfVlT.js +24 -0
- package/dist/chunks/clean-58wPfVlT.js.map +1 -0
- package/dist/chunks/clojure-DnooNAlk.js +114 -0
- package/dist/chunks/clojure-DnooNAlk.js.map +1 -0
- package/dist/chunks/clojure-repl-BOwc5f8V.js +18 -0
- package/dist/chunks/clojure-repl-BOwc5f8V.js.map +1 -0
- package/dist/chunks/cmake-CmXecy9B.js +28 -0
- package/dist/chunks/cmake-CmXecy9B.js.map +1 -0
- package/dist/chunks/coffeescript-BxFWPVxK.js +199 -0
- package/dist/chunks/coffeescript-BxFWPVxK.js.map +1 -0
- package/dist/chunks/coq-q80xvjL8.js +26 -0
- package/dist/chunks/coq-q80xvjL8.js.map +1 -0
- package/dist/chunks/core-BSQzrNYA.js +853 -0
- package/dist/chunks/core-BSQzrNYA.js.map +1 -0
- package/dist/chunks/cos-DiRYB57M.js +78 -0
- package/dist/chunks/cos-DiRYB57M.js.map +1 -0
- package/dist/chunks/cpp-BvOt3G_R.js +238 -0
- package/dist/chunks/cpp-BvOt3G_R.js.map +1 -0
- package/dist/chunks/crmsh-h8TY8H79.js +80 -0
- package/dist/chunks/crmsh-h8TY8H79.js.map +1 -0
- package/dist/chunks/crystal-Cn8iNhTZ.js +247 -0
- package/dist/chunks/crystal-Cn8iNhTZ.js.map +1 -0
- package/dist/chunks/csharp-BUAiXZio.js +262 -0
- package/dist/chunks/csharp-BUAiXZio.js.map +1 -0
- package/dist/chunks/csp-BP06y0Ba.js +25 -0
- package/dist/chunks/csp-BP06y0Ba.js.map +1 -0
- package/dist/chunks/css-CuP2L3Vg.js +147 -0
- package/dist/chunks/css-CuP2L3Vg.js.map +1 -0
- package/dist/chunks/d-C0cOEHlZ.js +87 -0
- package/dist/chunks/d-C0cOEHlZ.js.map +1 -0
- package/dist/chunks/dart-DOyn4FWh.js +136 -0
- package/dist/chunks/dart-DOyn4FWh.js.map +1 -0
- package/dist/chunks/{define-XzEniRJH.js → define-DqUpowD9.js} +3 -3
- package/dist/chunks/{define-XzEniRJH.js.map → define-DqUpowD9.js.map} +1 -1
- package/dist/chunks/delphi-BL8QbVUL.js +95 -0
- package/dist/chunks/delphi-BL8QbVUL.js.map +1 -0
- package/dist/chunks/diff-DMbO7OaS.js +41 -0
- package/dist/chunks/diff-DMbO7OaS.js.map +1 -0
- package/dist/chunks/django-CnvXUSpm.js +44 -0
- package/dist/chunks/django-CnvXUSpm.js.map +1 -0
- package/dist/chunks/dns-DpaEqlb1.js +73 -0
- package/dist/chunks/dns-DpaEqlb1.js.map +1 -0
- package/dist/chunks/dockerfile-D9WngOli.js +36 -0
- package/dist/chunks/dockerfile-D9WngOli.js.map +1 -0
- package/dist/chunks/dos-w6Vxr4_L.js +59 -0
- package/dist/chunks/dos-w6Vxr4_L.js.map +1 -0
- package/dist/chunks/dsconfig-Dq_NzMQE.js +56 -0
- package/dist/chunks/dsconfig-Dq_NzMQE.js.map +1 -0
- package/dist/chunks/dts-CpWaLhGr.js +117 -0
- package/dist/chunks/dts-CpWaLhGr.js.map +1 -0
- package/dist/chunks/dust-C4uDg2L0.js +34 -0
- package/dist/chunks/dust-C4uDg2L0.js.map +1 -0
- package/dist/chunks/ebnf-ByjV7C32.js +41 -0
- package/dist/chunks/ebnf-ByjV7C32.js.map +1 -0
- package/dist/chunks/{element-ChNBLJ5X.js → element-CaN9ZVoe.js} +60 -60
- package/dist/chunks/element-CaN9ZVoe.js.map +1 -0
- package/dist/chunks/elixir-DkdYO0Vr.js +191 -0
- package/dist/chunks/elixir-DkdYO0Vr.js.map +1 -0
- package/dist/chunks/elm-Clms-iZw.js +101 -0
- package/dist/chunks/elm-Clms-iZw.js.map +1 -0
- package/dist/chunks/erb-BC3HNNgp.js +18 -0
- package/dist/chunks/erb-BC3HNNgp.js.map +1 -0
- package/dist/chunks/erlang-Cu0IlQov.js +220 -0
- package/dist/chunks/erlang-Cu0IlQov.js.map +1 -0
- package/dist/chunks/erlang-repl-5hCt0uhz.js +42 -0
- package/dist/chunks/erlang-repl-5hCt0uhz.js.map +1 -0
- package/dist/chunks/excel-BIDJpxSu.js +49 -0
- package/dist/chunks/excel-BIDJpxSu.js.map +1 -0
- package/dist/chunks/fix-C0h50qaq.js +31 -0
- package/dist/chunks/fix-C0h50qaq.js.map +1 -0
- package/dist/chunks/flix-BCyKzKuw.js +61 -0
- package/dist/chunks/flix-BCyKzKuw.js.map +1 -0
- package/dist/chunks/fortran-DJ9If3VL.js +55 -0
- package/dist/chunks/fortran-DJ9If3VL.js.map +1 -0
- package/dist/chunks/freedesktop-DY5X71dr.js +88 -0
- package/dist/chunks/freedesktop-DY5X71dr.js.map +1 -0
- package/dist/chunks/fsharp-B-zxwYyG.js +243 -0
- package/dist/chunks/fsharp-B-zxwYyG.js.map +1 -0
- package/dist/chunks/gams-Bk-CWpk3.js +128 -0
- package/dist/chunks/gams-Bk-CWpk3.js.map +1 -0
- package/dist/chunks/gauss-DoDOans8.js +154 -0
- package/dist/chunks/gauss-DoDOans8.js.map +1 -0
- package/dist/chunks/gcode-BUHWwtTe.js +123 -0
- package/dist/chunks/gcode-BUHWwtTe.js.map +1 -0
- package/dist/chunks/gherkin-Wzf9M781.js +70 -0
- package/dist/chunks/gherkin-Wzf9M781.js.map +1 -0
- package/dist/chunks/glsl-CUb3B_sB.js +27 -0
- package/dist/chunks/glsl-CUb3B_sB.js.map +1 -0
- package/dist/chunks/gml-BS5lKjIV.js +24 -0
- package/dist/chunks/gml-BS5lKjIV.js.map +1 -0
- package/dist/chunks/go-BUD6D8kx.js +146 -0
- package/dist/chunks/go-BUD6D8kx.js.map +1 -0
- package/dist/chunks/golo-CeWwUkIr.js +27 -0
- package/dist/chunks/golo-CeWwUkIr.js.map +1 -0
- package/dist/chunks/gradle-BoqM74sD.js +20 -0
- package/dist/chunks/gradle-BoqM74sD.js.map +1 -0
- package/dist/chunks/graphql-j3kf95P9.js +69 -0
- package/dist/chunks/graphql-j3kf95P9.js.map +1 -0
- package/dist/chunks/groovy-B3DHxrmD.js +129 -0
- package/dist/chunks/groovy-B3DHxrmD.js.map +1 -0
- package/dist/chunks/haml-CgF67t0s.js +98 -0
- package/dist/chunks/haml-CgF67t0s.js.map +1 -0
- package/dist/chunks/handlebars-Bp8_IuhA.js +146 -0
- package/dist/chunks/handlebars-Bp8_IuhA.js.map +1 -0
- package/dist/chunks/haskell-2oFXwht3.js +140 -0
- package/dist/chunks/haskell-2oFXwht3.js.map +1 -0
- package/dist/chunks/haxe-BWUFK1R1.js +144 -0
- package/dist/chunks/haxe-BWUFK1R1.js.map +1 -0
- package/dist/chunks/highlight-D54M45bZ.js +328 -0
- package/dist/chunks/highlight-D54M45bZ.js.map +1 -0
- package/dist/chunks/hsp-YaLnMBmw.js +47 -0
- package/dist/chunks/hsp-YaLnMBmw.js.map +1 -0
- package/dist/chunks/http-D1Jx4NCy.js +76 -0
- package/dist/chunks/http-D1Jx4NCy.js.map +1 -0
- package/dist/chunks/hy-W6RLRSst.js +75 -0
- package/dist/chunks/hy-W6RLRSst.js.map +1 -0
- package/dist/chunks/inform7-Cqmf6Xxi.js +45 -0
- package/dist/chunks/inform7-Cqmf6Xxi.js.map +1 -0
- package/dist/chunks/ini-C_A9yUHA.js +90 -0
- package/dist/chunks/ini-C_A9yUHA.js.map +1 -0
- package/dist/chunks/irpf90-CFKe0d2G.js +49 -0
- package/dist/chunks/irpf90-CFKe0d2G.js.map +1 -0
- package/dist/chunks/isbl-DRZZfDZN.js +98 -0
- package/dist/chunks/isbl-DRZZfDZN.js.map +1 -0
- package/dist/chunks/java-DH7DXQTB.js +176 -0
- package/dist/chunks/java-DH7DXQTB.js.map +1 -0
- package/dist/chunks/javascript-D-ispHLP.js +433 -0
- package/dist/chunks/javascript-D-ispHLP.js.map +1 -0
- package/dist/chunks/jboss-cli-DwoEMfEn.js +48 -0
- package/dist/chunks/jboss-cli-DwoEMfEn.js.map +1 -0
- package/dist/chunks/json-BrJhaXJI.js +44 -0
- package/dist/chunks/json-BrJhaXJI.js.map +1 -0
- package/dist/chunks/julia-DUM4uO0n.js +82 -0
- package/dist/chunks/julia-DUM4uO0n.js.map +1 -0
- package/dist/chunks/julia-repl-DkEOqH-L.js +20 -0
- package/dist/chunks/julia-repl-DkEOqH-L.js.map +1 -0
- package/dist/chunks/kd-B0BcpOG_.js +2662 -0
- package/dist/chunks/kd-B0BcpOG_.js.map +1 -0
- package/dist/chunks/kotlin-BvSvL3hH.js +208 -0
- package/dist/chunks/kotlin-BvSvL3hH.js.map +1 -0
- package/dist/chunks/lasso-BixBtX3R.js +122 -0
- package/dist/chunks/lasso-BixBtX3R.js.map +1 -0
- package/dist/chunks/latex-BNm-5qSt.js +188 -0
- package/dist/chunks/latex-BNm-5qSt.js.map +1 -0
- package/dist/chunks/ldif-D2VChYy1.js +26 -0
- package/dist/chunks/ldif-D2VChYy1.js.map +1 -0
- package/dist/chunks/leaf-DZ17MVc2.js +67 -0
- package/dist/chunks/leaf-DZ17MVc2.js.map +1 -0
- package/dist/chunks/less-Cj7NvTiz.js +198 -0
- package/dist/chunks/less-Cj7NvTiz.js.map +1 -0
- package/dist/chunks/lisp-0CHBhNkP.js +105 -0
- package/dist/chunks/lisp-0CHBhNkP.js.map +1 -0
- package/dist/chunks/livecodeserver-f04_o5o0.js +85 -0
- package/dist/chunks/livecodeserver-f04_o5o0.js.map +1 -0
- package/dist/chunks/livescript-DnaWcjJC.js +192 -0
- package/dist/chunks/livescript-DnaWcjJC.js.map +1 -0
- package/dist/chunks/llvm-CD_EQmwW.js +71 -0
- package/dist/chunks/llvm-CD_EQmwW.js.map +1 -0
- package/dist/chunks/lsl-BjbA45DV.js +56 -0
- package/dist/chunks/lsl-BjbA45DV.js.map +1 -0
- package/dist/chunks/lua-C8cmPpDf.js +48 -0
- package/dist/chunks/lua-C8cmPpDf.js.map +1 -0
- package/dist/chunks/makefile-vKf6Crs_.js +59 -0
- package/dist/chunks/makefile-vKf6Crs_.js.map +1 -0
- package/dist/chunks/markdown-D1MbcAo6.js +180 -0
- package/dist/chunks/markdown-D1MbcAo6.js.map +1 -0
- package/dist/chunks/marked.esm-BrPimSW6.js +1494 -0
- package/dist/chunks/marked.esm-BrPimSW6.js.map +1 -0
- package/dist/chunks/mathematica-BAI0dr8P.js +71 -0
- package/dist/chunks/mathematica-BAI0dr8P.js.map +1 -0
- package/dist/chunks/matlab-tHkexNRr.js +72 -0
- package/dist/chunks/matlab-tHkexNRr.js.map +1 -0
- package/dist/chunks/maxima-DBb1On73.js +40 -0
- package/dist/chunks/maxima-DBb1On73.js.map +1 -0
- package/dist/chunks/mel-DQ2XEeJZ.js +26 -0
- package/dist/chunks/mel-DQ2XEeJZ.js.map +1 -0
- package/dist/chunks/mercury-DB7FwEBk.js +57 -0
- package/dist/chunks/mercury-DB7FwEBk.js.map +1 -0
- package/dist/chunks/mipsasm-Bnw9lQ6-.js +55 -0
- package/dist/chunks/mipsasm-Bnw9lQ6-.js.map +1 -0
- package/dist/chunks/mizar-CKEtvqV9.js +12 -0
- package/dist/chunks/mizar-CKEtvqV9.js.map +1 -0
- package/dist/chunks/mojolicious-FvfVuUnD.js +29 -0
- package/dist/chunks/mojolicious-FvfVuUnD.js.map +1 -0
- package/dist/chunks/monkey-DaGzblyK.js +73 -0
- package/dist/chunks/monkey-DaGzblyK.js.map +1 -0
- package/dist/chunks/moonscript-B9xmaKDF.js +99 -0
- package/dist/chunks/moonscript-B9xmaKDF.js.map +1 -0
- package/dist/chunks/n1ql-h7HuiOG_.js +47 -0
- package/dist/chunks/n1ql-h7HuiOG_.js.map +1 -0
- package/dist/chunks/nestedtext-z3hOUdBb.js +67 -0
- package/dist/chunks/nestedtext-z3hOUdBb.js.map +1 -0
- package/dist/chunks/nginx-Cscn9g8k.js +126 -0
- package/dist/chunks/nginx-Cscn9g8k.js.map +1 -0
- package/dist/chunks/nim-DuEHXsfI.js +57 -0
- package/dist/chunks/nim-DuEHXsfI.js.map +1 -0
- package/dist/chunks/nix-CK-JoV_w.js +176 -0
- package/dist/chunks/nix-CK-JoV_w.js.map +1 -0
- package/dist/chunks/node-repl-YPgIlFR4.js +21 -0
- package/dist/chunks/node-repl-YPgIlFR4.js.map +1 -0
- package/dist/chunks/nsis-C2knGE1f.js +103 -0
- package/dist/chunks/nsis-C2knGE1f.js.map +1 -0
- package/dist/chunks/objectivec-CUvPbZB7.js +119 -0
- package/dist/chunks/objectivec-CUvPbZB7.js.map +1 -0
- package/dist/chunks/ocaml-CJnlG7MK.js +54 -0
- package/dist/chunks/ocaml-CJnlG7MK.js.map +1 -0
- package/dist/chunks/openscad-B7xqzB_t.js +61 -0
- package/dist/chunks/openscad-B7xqzB_t.js.map +1 -0
- package/dist/chunks/oxygene-y7G7cOvu.js +55 -0
- package/dist/chunks/oxygene-y7G7cOvu.js.map +1 -0
- package/dist/chunks/parser3-BO1P2QTe.js +42 -0
- package/dist/chunks/parser3-BO1P2QTe.js.map +1 -0
- package/dist/chunks/perl-CIZiAqA2.js +194 -0
- package/dist/chunks/perl-CIZiAqA2.js.map +1 -0
- package/dist/chunks/pf-DtIBAeXH.js +32 -0
- package/dist/chunks/pf-DtIBAeXH.js.map +1 -0
- package/dist/chunks/pgsql-DhvwSgY7.js +193 -0
- package/dist/chunks/pgsql-DhvwSgY7.js.map +1 -0
- package/dist/chunks/php-Df419x2P.js +302 -0
- package/dist/chunks/php-Df419x2P.js.map +1 -0
- package/dist/chunks/php-template-NGWDJ4ZL.js +45 -0
- package/dist/chunks/php-template-NGWDJ4ZL.js.map +1 -0
- package/dist/chunks/plaintext-DI9-6uUK.js +12 -0
- package/dist/chunks/plaintext-DI9-6uUK.js.map +1 -0
- package/dist/chunks/pony-DWRlzIm6.js +52 -0
- package/dist/chunks/pony-DWRlzIm6.js.map +1 -0
- package/dist/chunks/powershell-Bi81KJvX.js +190 -0
- package/dist/chunks/powershell-Bi81KJvX.js.map +1 -0
- package/dist/chunks/processing-NRILzl6W.js +100 -0
- package/dist/chunks/processing-NRILzl6W.js.map +1 -0
- package/dist/chunks/profile-C5HdUz2O.js +40 -0
- package/dist/chunks/profile-C5HdUz2O.js.map +1 -0
- package/dist/chunks/prolog-CSxvOOUl.js +56 -0
- package/dist/chunks/prolog-CSxvOOUl.js.map +1 -0
- package/dist/chunks/properties-DVff9GiD.js +40 -0
- package/dist/chunks/properties-DVff9GiD.js.map +1 -0
- package/dist/chunks/protobuf-CwPeazJT.js +63 -0
- package/dist/chunks/protobuf-CwPeazJT.js.map +1 -0
- package/dist/chunks/puppet-wWT6-WaD.js +84 -0
- package/dist/chunks/puppet-wWT6-WaD.js.map +1 -0
- package/dist/chunks/purebasic-HWZkxa8e.js +44 -0
- package/dist/chunks/purebasic-HWZkxa8e.js.map +1 -0
- package/dist/chunks/purify.es-C_X9UTsz.js +846 -0
- package/dist/chunks/purify.es-C_X9UTsz.js.map +1 -0
- package/dist/chunks/python-B3xOtrtl.js +240 -0
- package/dist/chunks/python-B3xOtrtl.js.map +1 -0
- package/dist/chunks/python-repl-DFMVj5e5.js +21 -0
- package/dist/chunks/python-repl-DFMVj5e5.js.map +1 -0
- package/dist/chunks/q-DOHmm85f.js +23 -0
- package/dist/chunks/q-DOHmm85f.js.map +1 -0
- package/dist/chunks/qml-LsukXoE-.js +129 -0
- package/dist/chunks/qml-LsukXoE-.js.map +1 -0
- package/dist/chunks/r-qBqOPbmv.js +142 -0
- package/dist/chunks/r-qBqOPbmv.js.map +1 -0
- package/dist/chunks/reasonml-D25FoGuQ.js +80 -0
- package/dist/chunks/reasonml-D25FoGuQ.js.map +1 -0
- package/dist/chunks/rib-C3T5JisO.js +18 -0
- package/dist/chunks/rib-C3T5JisO.js.map +1 -0
- package/dist/chunks/roboconf-Ckycnnun.js +55 -0
- package/dist/chunks/roboconf-Ckycnnun.js.map +1 -0
- package/dist/chunks/routeros-DIBiqeDi.js +104 -0
- package/dist/chunks/routeros-DIBiqeDi.js.map +1 -0
- package/dist/chunks/rsl-C2V3vKIN.js +61 -0
- package/dist/chunks/rsl-C2V3vKIN.js.map +1 -0
- package/dist/chunks/ruby-C7c-uCk8.js +264 -0
- package/dist/chunks/ruby-C7c-uCk8.js.map +1 -0
- package/dist/chunks/ruleslanguage-IlptjHhp.js +28 -0
- package/dist/chunks/ruleslanguage-IlptjHhp.js.map +1 -0
- package/dist/chunks/rust-D-q21Dm6.js +184 -0
- package/dist/chunks/rust-D-q21Dm6.js.map +1 -0
- package/dist/chunks/sas-ObguUuPf.js +80 -0
- package/dist/chunks/sas-ObguUuPf.js.map +1 -0
- package/dist/chunks/scala-DVAYHay6.js +164 -0
- package/dist/chunks/scala-DVAYHay6.js.map +1 -0
- package/dist/chunks/scheme-DIcGbflN.js +106 -0
- package/dist/chunks/scheme-DIcGbflN.js.map +1 -0
- package/dist/chunks/scilab-ilneDJJS.js +47 -0
- package/dist/chunks/scilab-ilneDJJS.js.map +1 -0
- package/dist/chunks/scss-BP8UD0nN.js +157 -0
- package/dist/chunks/scss-BP8UD0nN.js.map +1 -0
- package/dist/chunks/shell-DBkgOY0Y.js +19 -0
- package/dist/chunks/shell-DBkgOY0Y.js.map +1 -0
- package/dist/chunks/smali-De20QX07.js +85 -0
- package/dist/chunks/smali-De20QX07.js.map +1 -0
- package/dist/chunks/smalltalk-DWMPo-qT.js +59 -0
- package/dist/chunks/smalltalk-DWMPo-qT.js.map +1 -0
- package/dist/chunks/sml-yOrArwoc.js +51 -0
- package/dist/chunks/sml-yOrArwoc.js.map +1 -0
- package/dist/chunks/sqf-BCN5uwk_.js +78 -0
- package/dist/chunks/sqf-BCN5uwk_.js.map +1 -0
- package/dist/chunks/sql-CmVzGP4w.js +120 -0
- package/dist/chunks/sql-CmVzGP4w.js.map +1 -0
- package/dist/chunks/stan-BSt7sG8M.js +142 -0
- package/dist/chunks/stan-BSt7sG8M.js.map +1 -0
- package/dist/chunks/stata-sbG438-7.js +35 -0
- package/dist/chunks/stata-sbG438-7.js.map +1 -0
- package/dist/chunks/step21-Cfi2MQDZ.js +55 -0
- package/dist/chunks/step21-Cfi2MQDZ.js.map +1 -0
- package/dist/chunks/stylus-CiBDFhBN.js +185 -0
- package/dist/chunks/stylus-CiBDFhBN.js.map +1 -0
- package/dist/chunks/subunit-DWjzVCiA.js +36 -0
- package/dist/chunks/subunit-DWjzVCiA.js.map +1 -0
- package/dist/chunks/swift-Qo_eIir5.js +577 -0
- package/dist/chunks/swift-Qo_eIir5.js.map +1 -0
- package/dist/chunks/taggerscript-BvuLYKHz.js +39 -0
- package/dist/chunks/taggerscript-BvuLYKHz.js.map +1 -0
- package/dist/chunks/tap-uMi8uF_X.js +32 -0
- package/dist/chunks/tap-uMi8uF_X.js.map +1 -0
- package/dist/chunks/tcl-DMPG3T59.js +46 -0
- package/dist/chunks/tcl-DMPG3T59.js.map +1 -0
- package/dist/chunks/thrift-DAA8HOe8.js +67 -0
- package/dist/chunks/thrift-DAA8HOe8.js.map +1 -0
- package/dist/chunks/tp-46SXlDZT.js +87 -0
- package/dist/chunks/tp-46SXlDZT.js.map +1 -0
- package/dist/chunks/twig-Cf_tZ_wH.js +84 -0
- package/dist/chunks/twig-Cf_tZ_wH.js.map +1 -0
- package/dist/chunks/typescript-Dc6pBLOZ.js +518 -0
- package/dist/chunks/typescript-Dc6pBLOZ.js.map +1 -0
- package/dist/chunks/vala-C2GHqzgV.js +41 -0
- package/dist/chunks/vala-C2GHqzgV.js.map +1 -0
- package/dist/chunks/vbnet-DgQ7B7yi.js +71 -0
- package/dist/chunks/vbnet-DgQ7B7yi.js.map +1 -0
- package/dist/chunks/vbscript-Bid2w6kd.js +43 -0
- package/dist/chunks/vbscript-Bid2w6kd.js.map +1 -0
- package/dist/chunks/vbscript-html-DznzJpE3.js +16 -0
- package/dist/chunks/vbscript-html-DznzJpE3.js.map +1 -0
- package/dist/chunks/verilog-Cfn8vMNy.js +58 -0
- package/dist/chunks/verilog-Cfn8vMNy.js.map +1 -0
- package/dist/chunks/vhdl-DjBWCsn1.js +48 -0
- package/dist/chunks/vhdl-DjBWCsn1.js.map +1 -0
- package/dist/chunks/vim-DtRU07HQ.js +56 -0
- package/dist/chunks/vim-DtRU07HQ.js.map +1 -0
- package/dist/chunks/wasm-CavVFuAK.js +65 -0
- package/dist/chunks/wasm-CavVFuAK.js.map +1 -0
- package/dist/chunks/wren-BKTRrWxW.js +210 -0
- package/dist/chunks/wren-BKTRrWxW.js.map +1 -0
- package/dist/chunks/x86asm-D3FT8ZrX.js +66 -0
- package/dist/chunks/x86asm-D3FT8ZrX.js.map +1 -0
- package/dist/chunks/xl-O8DviBwg.js +85 -0
- package/dist/chunks/xl-O8DviBwg.js.map +1 -0
- package/dist/chunks/xml-UTtAqziF.js +164 -0
- package/dist/chunks/xml-UTtAqziF.js.map +1 -0
- package/dist/chunks/xquery-Ybt8-gzE.js +149 -0
- package/dist/chunks/xquery-Ybt8-gzE.js.map +1 -0
- package/dist/chunks/yaml-DT7UV549.js +146 -0
- package/dist/chunks/yaml-DT7UV549.js.map +1 -0
- package/dist/chunks/zephir-Dsfqs5td.js +72 -0
- package/dist/chunks/zephir-Dsfqs5td.js.map +1 -0
- package/dist/github/activity.d.ts +49 -0
- package/dist/github/hash.d.ts +8 -0
- package/dist/github/index.d.ts +10 -0
- package/dist/github/tree.d.ts +26 -0
- package/dist/github/urls.d.ts +34 -0
- package/dist/github.js +253 -0
- package/dist/github.js.map +1 -0
- package/dist/k8s.js +6 -6
- package/dist/k8s.js.map +1 -1
- package/dist/kd/elements/code.d.ts +53 -0
- package/dist/kd/elements/markdown.d.ts +55 -0
- package/dist/kd/feed.d.ts +31 -0
- package/dist/kd/files/explorer.d.ts +88 -0
- package/dist/kd/files/file.d.ts +84 -0
- package/dist/kd/files/index.d.ts +6 -0
- package/dist/kd/files/static.d.ts +12 -0
- package/dist/kd/files/types.d.ts +51 -0
- package/dist/kd/highlight.d.ts +26 -0
- package/dist/kd/index.d.ts +8 -0
- package/dist/kd.js +5 -5
- package/dist/n8n/config.d.ts +3 -2
- package/dist/n8n.js +4 -4
- package/dist/n8n.js.map +1 -1
- package/dist/openapi.js +4 -4
- package/dist/openapi.js.map +1 -1
- package/package.json +18 -3
- package/dist/chunks/element-ChNBLJ5X.js.map +0 -1
- package/dist/chunks/kd-Bbw0GeQ5.js +0 -1149
- package/dist/chunks/kd-Bbw0GeQ5.js.map +0 -1
package/dist/openapi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.js","names":["nothing","b","b","i","A","KdElement","applyTheme","define","VERSION","KEYWORDS","KNOWN","isObject","value","COMPONENTS","shortName","name","ref","pointer","at","document","part","key","refName","resolve","base","refs","parts","schema","seen","target","member","inner","r","merge","out","under","over","props","displayType","t","ap","Node","#document","#parent","parent","raw","#refs","role","required","keywords","other","up","#cycle","#properties","#items","items","#values","rootSchema","root","crdSchema","schemas","matches","k","spec","crd","versions","version","v","normalize","find","node","path","f","json","isEmptyObject","constraints","exMin","exMax","min","max","open","close","behaviours","listType","mapType","strategy","unions","named","u","brief","s","c","COMBINATORS","words","clip","text","safeUrl","url","KdSchema","changed","#fetch","#tree","#open","ticket","#fetching","response","omit","fields","#field","set","depth","event","head","#tags","body","#body","#isOpen","#toggle","b$1","description","#extras","cut","#each","tags","extras","label","branches","x","b$2","example","docs","rules"],"sources":["../src/openapi/model.ts","../src/openapi/describe.ts","../src/openapi/schema.ts"],"sourcesContent":["// The schema model: an OpenAPI v3 / JSON Schema document and a root, turned\n// into a tree of plain-data nodes the viewers (and later a data viewer and an\n// editor) draw from. No DOM here.\n\n/** A raw schema object, as it appears in the document. */\nexport type Schema = Record<string, unknown>;\n\n/** An OpenAPI v3 document, or any JSON document that holds schemas. */\nexport interface OpenApiDocument {\n components?: { schemas?: Record<string, Schema> };\n [key: string]: unknown;\n}\n\n/** One `x-kubernetes-validations` entry: a CEL rule. */\nexport interface Validation {\n rule: string;\n message?: string;\n messageExpression?: string;\n reason?: string;\n fieldPath?: string;\n optionalOldSelf?: boolean;\n}\n\n/** One `x-kubernetes-group-version-kind` entry. */\nexport interface GroupVersionKind {\n group: string;\n version: string;\n kind: string;\n}\n\n/** One `x-kubernetes-unions` entry. */\nexport interface Union {\n discriminator?: string;\n 'fields-to-discriminateBy'?: Record<string, string>;\n}\n\n/**\n * Every keyword the model knows, typed. Values are the document's own, after\n * `$ref` resolution and the `allOf` merge; nothing is rewritten. Kubernetes'\n * `x-kubernetes-*` extensions are OpenAPI extensions, so they are known here\n * like any other keyword.\n */\nexport interface Keywords {\n $ref?: string;\n type?: string | string[];\n title?: string;\n description?: string;\n format?: string;\n pattern?: string;\n default?: unknown;\n enum?: unknown[];\n const?: unknown;\n example?: unknown;\n examples?: unknown[];\n minimum?: number;\n maximum?: number;\n /** A boolean in OpenAPI 3.0, a number in JSON Schema 2019+. */\n exclusiveMinimum?: boolean | number;\n exclusiveMaximum?: boolean | number;\n multipleOf?: number;\n minLength?: number;\n maxLength?: number;\n minItems?: number;\n maxItems?: number;\n uniqueItems?: boolean;\n minProperties?: number;\n maxProperties?: number;\n nullable?: boolean;\n readOnly?: boolean;\n writeOnly?: boolean;\n deprecated?: boolean;\n externalDocs?: { url?: string; description?: string };\n required?: string[];\n properties?: Record<string, Schema>;\n items?: Schema | Schema[];\n additionalProperties?: boolean | Schema;\n allOf?: Schema[];\n anyOf?: Schema[];\n oneOf?: Schema[];\n not?: Schema;\n 'x-kubernetes-int-or-string'?: boolean;\n 'x-kubernetes-preserve-unknown-fields'?: boolean;\n 'x-kubernetes-embedded-resource'?: boolean;\n 'x-kubernetes-list-type'?: 'atomic' | 'set' | 'map' | string;\n 'x-kubernetes-list-map-keys'?: string[];\n 'x-kubernetes-map-type'?: 'atomic' | 'granular' | string;\n 'x-kubernetes-validations'?: Validation[];\n 'x-kubernetes-patch-strategy'?: string;\n 'x-kubernetes-patch-merge-key'?: string;\n 'x-kubernetes-unions'?: Union[];\n 'x-kubernetes-group-version-kind'?: GroupVersionKind[];\n}\n\n/** The names of every known keyword, in display order. */\nexport const KEYWORDS: readonly (keyof Keywords)[] = [\n '$ref', 'type', 'title', 'description', 'format', 'pattern', 'default', 'enum', 'const', 'example', 'examples',\n 'minimum', 'maximum', 'exclusiveMinimum', 'exclusiveMaximum', 'multipleOf', 'minLength', 'maxLength', 'minItems',\n 'maxItems', 'uniqueItems', 'minProperties', 'maxProperties', 'nullable', 'readOnly', 'writeOnly', 'deprecated',\n 'externalDocs', 'required', 'properties', 'items', 'additionalProperties', 'allOf', 'anyOf', 'oneOf', 'not',\n 'x-kubernetes-int-or-string', 'x-kubernetes-preserve-unknown-fields', 'x-kubernetes-embedded-resource',\n 'x-kubernetes-list-type', 'x-kubernetes-list-map-keys', 'x-kubernetes-map-type', 'x-kubernetes-validations',\n 'x-kubernetes-patch-strategy', 'x-kubernetes-patch-merge-key', 'x-kubernetes-unions',\n 'x-kubernetes-group-version-kind',\n];\nconst KNOWN = new Set<string>(KEYWORDS);\n\n/**\n * A node of the schema tree: a field, the root, or the item/value schema of a\n * list/map.\n *\n * Children (`properties`, `items`, `values`, `fields`) are computed when first\n * read and then kept, so normalizing a root costs one node and a viewer pays\n * only for what it opens. `parent` and `cycle` are getters, so a node\n * serialises as plain data without looping.\n *\n * Recursion is cut, never depth-limited: a node whose type is already open\n * above it has `cycle` set to that ancestor and no children.\n */\nexport interface SchemaNode {\n /** `root` (what normalize returns), `field` (a property), `item` (an array's items), `value` (a map's values). */\n readonly role: 'root' | 'field' | 'item' | 'value';\n /** The property name; `''` for the root, an item or a value. */\n readonly name: string;\n /** The path as kubectl explain spells it (`spec.template.spec.containers.name`); items and values share their owner's. */\n readonly path: string;\n /** Listed in the owning object's `required`. */\n readonly required: boolean;\n /** The display type in kubectl explain's spelling: `string`, `Object`, `[]Container`, `map[string]string`, `int-or-string`, `any`. */\n readonly type: string;\n /** The short name of the type it was referenced as (`PodSpec` for `io.k8s.api.core.v1.PodSpec`). */\n readonly typeName?: string;\n /** The full name of the schema `$ref`/`allOf` brought in (`io.k8s.api.core.v1.PodSpec`). */\n readonly ref?: string;\n /** The schema after `$ref` resolution and the `allOf` merge; the node's own keywords win. */\n readonly schema: Schema;\n /** The known keywords of `schema`. */\n readonly keywords: Keywords;\n /** Every keyword of `schema` the model does not know, raw. */\n readonly other: Record<string, unknown>;\n /** The node it belongs to; the root has none. */\n readonly parent: SchemaNode | undefined;\n /** When this node's type is open in an ancestor, that ancestor. Its children are listed there, not here. */\n readonly cycle: SchemaNode | undefined;\n /** The object's own properties, in document order. */\n readonly properties: readonly SchemaNode[];\n /** An array's item schema. */\n readonly items: SchemaNode | undefined;\n /** A map's value schema (an `additionalProperties` schema). */\n readonly values: SchemaNode | undefined;\n /** The children kubectl explain lists: the properties, else the items' fields, else the values' fields. */\n readonly fields: readonly SchemaNode[];\n /** Whether `fields` is non-empty. */\n readonly expandable: boolean;\n}\n\n/** A root: a component name (`X` or `#/components/schemas/X`, or a unique `.X` suffix), any `#/` pointer, a schema, a CRD version, or a CRD. */\nexport type Root = string | Schema;\n\nconst isObject = (value: unknown): value is Schema =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst COMPONENTS = '#/components/schemas/';\n\n/** The short name of a component, as kubectl explain shows it: `io.k8s.api.core.v1.PodSpec` -> `PodSpec`. */\nexport function shortName(ref: string): string {\n const name = ref.startsWith(COMPONENTS) ? ref.slice(COMPONENTS.length) : ref.slice(ref.lastIndexOf('/') + 1);\n return name.slice(name.lastIndexOf('.') + 1);\n}\n\nfunction pointer(document: unknown, ref: string): unknown {\n if (!ref.startsWith('#')) return undefined;\n let at: unknown = document;\n for (const part of ref.slice(1).split('/').slice(1)) {\n const key = decodeURIComponent(part).replace(/~1/g, '/').replace(/~0/g, '~');\n if (!isObject(at) && !Array.isArray(at)) return undefined;\n at = (at as Record<string, unknown>)[key];\n }\n return at;\n}\n\nfunction refName(ref: string): string {\n return ref.startsWith(COMPONENTS) ? ref.slice(COMPONENTS.length) : ref.replace(/^#\\/?/, '');\n}\n\ninterface Resolved {\n schema: Schema;\n /** Every schema name merged in, outermost first. */\n refs: string[];\n}\n\n// A {$ref} node becomes the schema it points at, its own keywords on top; every\n// allOf member is resolved and merged under the node's own keywords. Properties\n// that two members both define are merged lazily, as an allOf of the two.\nfunction resolve(document: unknown, schema: Schema, seen: string[] = []): Resolved {\n let base: Schema = {};\n const refs: string[] = [];\n const parts: Schema[] = [];\n const ref = schema.$ref;\n if (typeof ref === 'string') {\n const name = refName(ref);\n if (!seen.includes(name)) {\n refs.push(name);\n const target = pointer(document, ref);\n if (isObject(target)) parts.push(target);\n }\n }\n if (Array.isArray(schema.allOf)) for (const member of schema.allOf) if (isObject(member)) parts.push(member);\n if (!parts.length) return { schema, refs };\n for (const part of parts) {\n const inner = resolve(document, part, [...seen, ...refs]);\n refs.push(...inner.refs.filter((r) => !refs.includes(r)));\n base = merge(base, inner.schema);\n }\n return { schema: merge(base, schema), refs };\n}\n\nfunction merge(under: Schema, over: Schema): Schema {\n const out: Schema = { ...under, ...over };\n if (isObject(under.properties) && isObject(over.properties)) {\n const props: Record<string, unknown> = { ...under.properties };\n for (const [key, value] of Object.entries(over.properties)) {\n props[key] = key in props && isObject(value) && isObject(props[key]) ? { allOf: [props[key], value] } : value;\n }\n out.properties = props;\n }\n if (Array.isArray(under.required) && Array.isArray(over.required)) {\n out.required = [...new Set([...under.required, ...over.required])];\n }\n return out;\n}\n\n// A type that contains itself only through arrays and maps stops at its name.\nfunction displayType(document: unknown, schema: Schema, refs: string[], seen: string[] = []): string {\n if (refs.some((r) => seen.includes(r))) return shortName(refs[0]);\n const t = schema.type;\n if (t === 'array') {\n const inner = resolve(document, isObject(schema.items) ? schema.items : {});\n return '[]' + displayType(document, inner.schema, inner.refs, [...seen, ...refs]);\n }\n const ap = schema.additionalProperties;\n if ((t === 'object' || t === undefined) && isObject(ap) && !isObject(schema.properties)) {\n const inner = resolve(document, ap);\n return 'map[string]' + displayType(document, inner.schema, inner.refs, [...seen, ...refs]);\n }\n if (refs.length) return shortName(refs[0]);\n if (schema['x-kubernetes-int-or-string']) return 'int-or-string';\n if (t === 'object') return 'Object';\n if (typeof t === 'string') return t;\n if (Array.isArray(t)) return t.join(' | ');\n if (isObject(schema.properties)) return 'Object';\n return 'any';\n}\n\nclass Node implements SchemaNode {\n readonly role: SchemaNode['role'];\n readonly name: string;\n readonly path: string;\n readonly required: boolean;\n readonly type: string;\n readonly typeName?: string;\n readonly ref?: string;\n readonly schema: Schema;\n readonly keywords: Keywords;\n readonly other: Record<string, unknown>;\n\n readonly #document: unknown;\n readonly #parent: Node | undefined;\n readonly #refs: string[];\n readonly #cycle: Node | undefined;\n #properties?: Node[];\n #items?: Node | null;\n #values?: Node | null;\n\n constructor(document: unknown, raw: Schema, role: SchemaNode['role'], name: string, parent: Node | undefined, required: boolean) {\n this.#document = document;\n this.#parent = parent;\n const { schema, refs } = resolve(document, raw);\n this.#refs = refs;\n this.role = role;\n this.name = name;\n this.path = role === 'field' && parent?.path ? `${parent.path}.${name}` : role === 'field' ? name : (parent?.path ?? '');\n this.required = required;\n this.schema = schema;\n if (refs.length) {\n this.ref = refs[0];\n this.typeName = shortName(refs[0]);\n }\n this.type = displayType(document, schema, refs);\n const keywords: Record<string, unknown> = {};\n const other: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(schema)) (KNOWN.has(key) ? keywords : other)[key] = value;\n this.keywords = keywords as Keywords;\n this.other = other;\n for (let up = parent; up && !this.#cycle; up = up.#parent) {\n if (up.#refs.some((r) => refs.includes(r))) this.#cycle = up;\n }\n }\n\n get parent(): SchemaNode | undefined {\n return this.#parent;\n }\n\n get cycle(): SchemaNode | undefined {\n return this.#cycle;\n }\n\n get properties(): readonly SchemaNode[] {\n if (!this.#properties) {\n const props = this.schema.properties;\n const required = Array.isArray(this.schema.required) ? this.schema.required : [];\n this.#properties =\n this.#cycle || !isObject(props)\n ? []\n : Object.entries(props).map(\n ([key, value]) => new Node(this.#document, isObject(value) ? value : {}, 'field', key, this, required.includes(key)),\n );\n }\n return this.#properties;\n }\n\n get items(): SchemaNode | undefined {\n if (this.#items === undefined) {\n const items = this.schema.items;\n this.#items = !this.#cycle && this.schema.type === 'array' && isObject(items)\n ? new Node(this.#document, items, 'item', '', this, false)\n : null;\n }\n return this.#items ?? undefined;\n }\n\n get values(): SchemaNode | undefined {\n if (this.#values === undefined) {\n const ap = this.schema.additionalProperties;\n this.#values = !this.#cycle && isObject(ap) ? new Node(this.#document, ap, 'value', '', this, false) : null;\n }\n return this.#values ?? undefined;\n }\n\n get fields(): readonly SchemaNode[] {\n if (this.properties.length) return this.properties;\n return this.items?.fields ?? this.values?.fields ?? [];\n }\n\n get expandable(): boolean {\n return this.fields.length > 0;\n }\n\n toJSON(): Record<string, unknown> {\n const { role, name, path, required, type, typeName, ref, keywords, other } = this;\n return { role, name, path, required, type, typeName, ref, keywords, other, cycle: this.#cycle?.path };\n }\n}\n\nfunction rootSchema(document: unknown, root: Root | undefined): Schema {\n if (root === undefined) {\n if (isObject(document) && document.kind === 'CustomResourceDefinition') return crdSchema(document);\n return isObject(document) ? document : {};\n }\n if (typeof root === 'string') {\n if (root.startsWith('#')) return { $ref: root };\n const schemas = isObject(document) && isObject(document.components) ? document.components.schemas : undefined;\n if (isObject(schemas)) {\n if (root in schemas) return { $ref: COMPONENTS + root.replace(/~/g, '~0').replace(/\\//g, '~1') };\n const matches = Object.keys(schemas).filter((k) => k.endsWith('.' + root));\n if (matches.length === 1) return { $ref: COMPONENTS + matches[0] };\n }\n return {};\n }\n if (root.kind === 'CustomResourceDefinition') return crdSchema(root);\n if (isObject(root.schema) && isObject(root.schema.openAPIV3Schema)) return root.schema.openAPIV3Schema;\n if (isObject(root.openAPIV3Schema)) return root.openAPIV3Schema;\n return root;\n}\n\n// A CRD's storage version, or its first.\nfunction crdSchema(crd: Schema): Schema {\n const spec = isObject(crd.spec) ? crd.spec : {};\n const versions = Array.isArray(spec.versions) ? spec.versions.filter(isObject) : [];\n const version = versions.find((v) => v.storage) ?? versions[0];\n const schema = version && isObject(version.schema) ? version.schema.openAPIV3Schema : undefined;\n return isObject(schema) ? schema : {};\n}\n\n/**\n * The schema tree of `root` in `document`. Only the root is built; every other\n * node is built when its parent's children are first read.\n *\n * @param document an OpenAPI v3 document (its `components.schemas` resolve `$ref`), a CRD, or a bare schema\n * @param root a component name (`io.k8s.api.apps.v1.Deployment`, `#/components/schemas/...`, or a unique suffix\n * such as `apps.v1.Deployment`), a `#/` pointer, a schema object, a CRD version (`{schema: {openAPIV3Schema}}`)\n * or its `openAPIV3Schema`; omitted, the document itself (a CRD: its storage version)\n */\nexport function normalize(document: unknown, root?: Root): SchemaNode {\n const schema = rootSchema(document, root);\n return new Node(document, schema, 'root', '', undefined, false);\n}\n\n/** The node at a dotted field path below `node` (`spec.template.spec.containers.name`), or undefined. */\nexport function find(node: SchemaNode, path: string): SchemaNode | undefined {\n let at: SchemaNode | undefined = node;\n for (const name of path.split('.').filter(Boolean)) {\n at = at?.fields.find((f) => f.name === name);\n }\n return at;\n}\n","// Words for a schema node: the limits shown beside its type, and how\n// Kubernetes treats it. Pure functions over the model, shared by every viewer.\n\nimport { shortName, type Keywords, type Schema } from './model';\n\n/** A Kubernetes behaviour of a field: a short tag and the why behind it. */\nexport interface Behaviour {\n label: string;\n why: string;\n}\n\nconst json = (value: unknown): string => JSON.stringify(value) ?? String(value);\n\nconst isEmptyObject = (value: unknown): boolean =>\n typeof value === 'object' && value !== null && !Array.isArray(value) && Object.keys(value).length === 0;\n\n/**\n * The value limits, shown beside the type: `default`, `one of`, `format`,\n * `pattern`, `range`, `multiple of`, `length`, `items`, `unique items`, `keys`,\n * `nullable`. An empty-object default (Kubernetes puts `default: {}` on every\n * `allOf` wrapper) says nothing and is left out.\n */\nexport function constraints(k: Keywords): string[] {\n const out: string[] = [];\n if (k.default !== undefined && k.default !== null && !isEmptyObject(k.default)) out.push(`default ${json(k.default)}`);\n if (Array.isArray(k.enum)) out.push(`one of ${k.enum.map(json).join(' | ')}`);\n if (k.const !== undefined) out.push(`always ${json(k.const)}`);\n if (k.format) out.push(`format ${k.format}`);\n if (k.pattern) out.push(`pattern ${k.pattern}`);\n const exMin = typeof k.exclusiveMinimum === 'number' ? k.exclusiveMinimum : undefined;\n const exMax = typeof k.exclusiveMaximum === 'number' ? k.exclusiveMaximum : undefined;\n const min = exMin ?? k.minimum;\n const max = exMax ?? k.maximum;\n if (min != null || max != null) {\n const open = k.exclusiveMinimum === true || exMin !== undefined ? '(' : '';\n const close = k.exclusiveMaximum === true || exMax !== undefined ? ')' : '';\n out.push(`range ${open}${min ?? ''}..${max ?? ''}${close}`);\n }\n if (k.multipleOf != null) out.push(`multiple of ${k.multipleOf}`);\n if (k.minLength != null || k.maxLength != null) out.push(`length ${k.minLength ?? 0}..${k.maxLength ?? ''}`);\n if (k.minItems != null || k.maxItems != null) out.push(`items ${k.minItems ?? 0}..${k.maxItems ?? ''}`);\n if (k.uniqueItems) out.push('unique items');\n if (k.minProperties != null || k.maxProperties != null) out.push(`keys ${k.minProperties ?? 0}..${k.maxProperties ?? ''}`);\n if (k.nullable) out.push('nullable');\n if (k.readOnly) out.push('read-only');\n if (k.writeOnly) out.push('write-only');\n if (k.deprecated) out.push('deprecated');\n return out;\n}\n\n/**\n * How Kubernetes treats the field - server-side apply, strategic merge,\n * pruning, embedded objects - as tags with the why on hover.\n */\nexport function behaviours(k: Keywords): Behaviour[] {\n const out: Behaviour[] = [];\n const listType = k['x-kubernetes-list-type'];\n if (listType === 'map') {\n out.push({\n label: `keyed by ${(k['x-kubernetes-list-map-keys'] ?? []).join(', ')}`,\n why: 'list-type map: apply merges items that share these keys',\n });\n } else if (listType === 'set') {\n out.push({ label: 'set', why: 'list-type set: unique scalars, apply merges them' });\n } else if (listType) {\n out.push({ label: 'atomic list', why: 'list-type atomic: apply replaces the whole list' });\n }\n const mapType = k['x-kubernetes-map-type'];\n if (mapType === 'atomic') {\n out.push({ label: 'atomic', why: 'map-type atomic: apply replaces the whole object, never merges its fields' });\n } else if (mapType) {\n out.push({ label: 'granular', why: 'map-type granular: apply merges its fields one by one' });\n }\n const strategy = k['x-kubernetes-patch-strategy'];\n if (strategy) {\n const key = k['x-kubernetes-patch-merge-key'];\n out.push({\n label: `patch ${strategy.replace(/,/g, ' + ')}${key ? ` by ${key}` : ''}`,\n why: `strategic merge patch (kubectl apply without --server-side): ${strategy}${key ? `, items matched on ${key}` : ''}`,\n });\n }\n const unions = k['x-kubernetes-unions'];\n if (Array.isArray(unions) && unions.length) {\n const named = unions.map((u) => u.discriminator).filter(Boolean);\n out.push({ label: 'union', why: `set one of its fields${named.length ? `, named by ${named.join(', ')}` : ''}` });\n }\n if (k['x-kubernetes-int-or-string']) {\n out.push({ label: 'int or string', why: 'int-or-string: an integer or a string, e.g. 8080 or \"http\"' });\n }\n if (k['x-kubernetes-preserve-unknown-fields']) {\n out.push({ label: 'any fields', why: 'preserve-unknown-fields: fields the schema does not list are kept, not pruned' });\n }\n if (k['x-kubernetes-embedded-resource']) {\n out.push({\n label: 'embedded object',\n why: 'embedded-resource: a whole object - apiVersion, kind and metadata are validated',\n });\n }\n if (typeof k.additionalProperties === 'boolean') {\n out.push(\n k.additionalProperties\n ? { label: 'any keys', why: 'additionalProperties: keys beyond the listed ones are allowed' }\n : { label: 'no other keys', why: 'additionalProperties false: only the listed keys are allowed' },\n );\n }\n return out;\n}\n\n/** A combinator branch (`anyOf`, `oneOf`, `allOf`, `not`) in a few words. */\nexport function brief(schema: unknown): string {\n if (typeof schema !== 'object' || schema === null || Array.isArray(schema)) return json(schema);\n const s = schema as Schema & Keywords;\n if (typeof s.$ref === 'string') return shortName(s.$ref);\n if (s.type) {\n const c = constraints(s);\n return `${Array.isArray(s.type) ? s.type.join(' | ') : s.type}${c.length ? ` (${c.join(', ')})` : ''}`;\n }\n if (Array.isArray(s.required)) return `requires ${s.required.join(', ')}`;\n if (s.properties && typeof s.properties === 'object') return `fields ${Object.keys(s.properties).join(', ')}`;\n if (s.not !== undefined) return `not ${brief(s.not)}`;\n if (Array.isArray(s.enum)) return `one of ${s.enum.map(json).join(' | ')}`;\n return json(s).slice(0, 120);\n}\n","import { css, html, nothing, type PropertyValues, type TemplateResult } from 'lit';\n\nimport { define } from '../kd/define';\nimport { KdElement, base } from '../kd/element';\nimport { behaviours, brief, constraints } from './describe';\nimport { normalize, type Root, type SchemaNode } from './model';\n\nconst COMBINATORS = [\n ['anyOf', 'any of'],\n ['oneOf', 'exactly one of'],\n ['allOf', 'all of'],\n] as const;\n\nconst words = (value: string | undefined): string[] => (value ?? '').split(/\\s+/).filter(Boolean);\nconst clip = (value: unknown, max = 300): string => {\n const text = JSON.stringify(value) ?? String(value);\n return text.length > max ? `${text.slice(0, max)}…` : text;\n};\nconst safeUrl = (url: unknown): string | undefined =>\n typeof url === 'string' && /^https?:\\/\\//i.test(url) ? url : undefined;\n\n/**\n * An OpenAPI v3 / JSON Schema viewer, written the way the YAML is: a field per\n * line with its type, constraints and Kubernetes behaviours beside it, a\n * required marker, and the description, rules and fields when opened. A\n * subtree is rendered only when it is opened.\n *\n * Data in: `document` (an OpenAPI document, a CRD or a schema) and `root` (see\n * `normalize`) as properties, or `src`, a URL returning the document.\n *\n * Attributes: `root`, `src`, `expand` (top-level fields open at first, default\n * `spec status`), `omit` (top-level fields left out, e.g. `apiVersion kind metadata`).\n */\nexport class KdSchema extends KdElement {\n static override properties = {\n document: { attribute: false },\n root: { attribute: 'root' },\n src: { attribute: 'src' },\n expand: { attribute: 'expand' },\n omit: { attribute: 'omit' },\n error: { state: true },\n };\n\n declare document: unknown;\n declare root: Root | undefined;\n declare src: string | undefined;\n declare expand: string | undefined;\n declare omit: string | undefined;\n declare error: string | undefined;\n\n #tree: SchemaNode | undefined;\n #open = new Map<SchemaNode, boolean>();\n #fetching = 0;\n\n static override styles = [\n base,\n css`\n :host {\n font-size: 13px;\n }\n .none {\n color: var(--kd-text-2, inherit);\n font-style: italic;\n }\n .f {\n margin-left: 16px;\n }\n .tree > .f {\n margin-left: 0;\n }\n summary,\n .leaf {\n display: flex;\n align-items: baseline;\n gap: 8px;\n padding: 2px 0;\n min-width: 0;\n }\n summary {\n cursor: pointer;\n list-style: none;\n }\n summary::-webkit-details-marker {\n display: none;\n }\n summary::before,\n .leaf::before {\n content: '';\n width: 10px;\n flex: none;\n color: var(--kd-text-2, inherit);\n }\n summary::before {\n content: '▸';\n transition: transform 0.1s;\n }\n details[open] > summary::before {\n transform: rotate(90deg);\n }\n summary:focus-visible {\n outline: 1px solid var(--kd-primary, currentColor);\n outline-offset: 1px;\n }\n .k,\n .t,\n .c,\n .mono {\n font-family: var(--kd-font-mono, monospace);\n }\n .k {\n font-weight: 500;\n }\n .rq {\n color: var(--kd-error, inherit);\n font-family: var(--kd-font-mono, monospace);\n margin-left: -6px;\n }\n .t {\n font-size: 12px;\n color: var(--kd-link, inherit);\n white-space: nowrap;\n }\n .kt {\n font-size: 11px;\n line-height: 1.4;\n padding: 0 6px;\n border: 1px solid var(--kd-border-strong, currentColor);\n border-radius: var(--kd-radius, 2px);\n color: var(--kd-primary, inherit);\n white-space: nowrap;\n cursor: help;\n }\n .c {\n font-size: 11px;\n color: var(--kd-text-2, inherit);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 55%;\n flex: 0 1 auto;\n min-width: 0;\n }\n .ds {\n font-size: 12px;\n color: var(--kd-text-2, inherit);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n flex: 1;\n }\n details[open] > summary .ds {\n visibility: hidden;\n }\n .fb {\n margin: 2px 0 6px 18px;\n padding: 4px 10px;\n border-left: 2px solid var(--kd-border, currentColor);\n font-size: 12px;\n }\n .fb > div {\n margin: 2px 0;\n }\n .desc {\n white-space: pre-line;\n overflow-wrap: anywhere;\n }\n .dim,\n .sec {\n color: var(--kd-text-2, inherit);\n }\n .sec {\n margin: 10px 0 2px;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n }\n .mono {\n overflow-wrap: anywhere;\n }\n .tags {\n display: flex;\n flex-wrap: wrap;\n align-items: baseline;\n gap: 6px;\n }\n .tags .c {\n max-width: none;\n white-space: normal;\n }\n a {\n color: var(--kd-link, inherit);\n }\n `,\n ];\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('src') && this.src) void this.#fetch(this.src);\n if (changed.has('document') || changed.has('root')) {\n this.#tree = this.document === undefined ? undefined : normalize(this.document, this.root);\n this.#open = new Map();\n }\n }\n\n async #fetch(url: string): Promise<void> {\n const ticket = ++this.#fetching;\n try {\n const response = await fetch(url, { headers: { accept: 'application/json' } });\n if (!response.ok) throw new Error(`${response.status} ${response.statusText}`.trim());\n const document = await response.json();\n if (ticket !== this.#fetching) return;\n this.error = undefined;\n this.document = document;\n } catch (e) {\n if (ticket === this.#fetching) this.error = `Could not load the schema: ${(e as Error).message ?? e}`;\n }\n }\n\n override render(): TemplateResult {\n if (this.error) return html`<div class=\"none\">${this.error}</div>`;\n const omit = new Set(words(this.omit));\n const fields = (this.#tree?.fields ?? []).filter((f) => !omit.has(f.name));\n if (!fields.length) return html`<div class=\"none\">No schema</div>`;\n return html`<div class=\"tree\" part=\"tree\">${fields.map((f) => this.#field(f, 0))}</div>`;\n }\n\n #isOpen(node: SchemaNode, depth: number): boolean {\n const set = this.#open.get(node);\n if (set !== undefined) return set;\n return depth === 0 && words(this.expand ?? 'spec status').includes(node.name);\n }\n\n #toggle(node: SchemaNode, event: Event): void {\n const open = (event.currentTarget as HTMLDetailsElement).open;\n if (open === this.#open.get(node)) return;\n this.#open.set(node, open);\n this.requestUpdate();\n }\n\n #field(node: SchemaNode, depth: number): TemplateResult {\n const k = node.keywords;\n const c = constraints(k);\n const head = html`<span class=\"k\">${node.name}</span>${node.required\n ? html`<span class=\"rq\" title=\"required\">*</span>`\n : nothing}<span class=\"t\">${node.type}</span>${this.#tags(node)}${c.length\n ? html`<span class=\"c\" title=${c.join('\\n')}>${c.join(' · ')}</span>`\n : nothing}<span class=\"ds\">${(k.description ?? '').split('\\n')[0]}</span>`;\n const body = this.#body(node);\n if (!body.length && !node.expandable) return html`<div class=\"f leaf\" title=${node.path}>${head}</div>`;\n const open = this.#isOpen(node, depth);\n return html`<details class=\"f\" title=${node.path} ?open=${open} @toggle=${(e: Event) => this.#toggle(node, e)}>\n <summary>${head}</summary>\n ${open && body.length ? html`<div class=\"fb\">${body}</div>` : nothing}\n ${open && node.expandable ? html`<div class=\"fc\">${node.fields.map((f) => this.#field(f, depth + 1))}</div>` : nothing}\n </details>`;\n }\n\n #tags(node: SchemaNode): TemplateResult[] {\n return behaviours(node.keywords).map((b) => html`<span class=\"kt\" title=${b.why}>${b.label}</span>`);\n }\n\n // Everything shown under an opened field besides its fields. Built for every\n // visible field (cheap: one node and its item/value schema), because a field\n // with nothing to open is drawn as a plain line.\n #body(node: SchemaNode): TemplateResult[] {\n const out: TemplateResult[] = [];\n const description = node.keywords.description;\n if (description) out.push(html`<div class=\"desc\">${description}</div>`);\n out.push(...this.#extras(node));\n const cut = node.cycle ?? node.items?.cycle ?? node.values?.cycle;\n if (cut && cut.fields.length) {\n out.push(html`<div class=\"dim\">\n the same type as ${cut.path ? html`<span class=\"mono\">${cut.path}</span>` : 'the root'}, whose fields are listed there\n </div>`);\n }\n if (node.items) out.push(...this.#each('each item', node.items));\n if (node.values) out.push(...this.#each('each value', node.values));\n return out;\n }\n\n // What applies to each item of a list or each value of a map, besides its fields.\n #each(label: string, node: SchemaNode): TemplateResult[] {\n const c = constraints(node.keywords);\n const tags = this.#tags(node);\n const extras = this.#extras(node);\n if (!c.length && !tags.length && !extras.length) return [];\n return [\n html`<div class=\"sec\">${label}</div>`,\n ...(c.length || tags.length\n ? [html`<div class=\"tags\">${tags}${c.length ? html`<span class=\"c\">${c.join(' · ')}</span>` : nothing}</div>`]\n : []),\n ...extras,\n ];\n }\n\n // Combinators, title, examples, docs, CEL rules, and every unknown keyword.\n #extras(node: SchemaNode): TemplateResult[] {\n const k = node.keywords;\n const out: TemplateResult[] = [];\n for (const [key, label] of COMBINATORS) {\n const branches = k[key];\n if (!Array.isArray(branches) || !branches.length) continue;\n // Kubernetes wraps every $ref in a one-member allOf; that is the type, not a rule.\n if (key === 'allOf' && branches.length === 1 && Object.keys(branches[0]).every((x) => x === '$ref')) continue;\n out.push(html`<div>\n <span class=\"dim\">${label}:</span>\n ${branches.map((b, i) => html`${i ? html` <span class=\"dim\">|</span> ` : nothing}${brief(b)}`)}\n </div>`);\n }\n if (k.not !== undefined) out.push(html`<div><span class=\"dim\">must not be:</span> ${brief(k.not)}</div>`);\n if (k.title) out.push(html`<div><span class=\"dim\">title</span> ${k.title}</div>`);\n if (k.example !== undefined) {\n out.push(html`<div><span class=\"dim\">example</span> <span class=\"mono\">${clip(k.example)}</span></div>`);\n }\n if (Array.isArray(k.examples)) {\n for (const example of k.examples) {\n out.push(html`<div><span class=\"dim\">example</span> <span class=\"mono\">${clip(example)}</span></div>`);\n }\n }\n // Only an http(s) URL becomes a link; anything else is shown as text.\n const docs = k.externalDocs;\n const url = safeUrl(docs?.url);\n if (docs && (docs.url || docs.description)) {\n out.push(html`<div>\n <span class=\"dim\">docs</span>\n ${url\n ? html`<a href=${url} target=\"_blank\" rel=\"noopener\">${docs.description ?? url}</a>`\n : html`${docs.description ?? ''} <span class=\"mono\">${docs.url ?? ''}</span>`}\n </div>`);\n }\n const rules = k['x-kubernetes-validations'];\n if (Array.isArray(rules) && rules.length) {\n out.push(html`<div class=\"sec\">validation</div>`);\n for (const r of rules) {\n out.push(html`<div class=\"cel\">\n <span class=\"mono\">${r.rule ?? ''}</span>\n ${r.message\n ? html`<span class=\"dim\">- ${r.message}</span>`\n : r.messageExpression\n ? html`<span class=\"dim\">- message from</span> <span class=\"mono\">${r.messageExpression}</span>`\n : nothing}\n ${r.reason ? html`<span class=\"dim\">(${r.reason})</span>` : nothing}\n ${r.fieldPath ? html`<span class=\"dim\">at</span> <span class=\"mono\">${r.fieldPath}</span>` : nothing}\n ${r.optionalOldSelf ? html`<span class=\"dim\">(checked on create too)</span>` : nothing}\n </div>`);\n }\n }\n const other = Object.entries(node.other);\n if (other.length) {\n out.push(html`<div class=\"sec\">other</div>`);\n for (const [key, value] of other) {\n out.push(html`<div><span class=\"mono\">${key}</span>: <span class=\"mono\">${clip(value)}</span></div>`);\n }\n }\n return out;\n }\n}\n\ndefine('kd-schema', KdSchema);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kd-schema': KdSchema;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openapi.js","names":["nothing","b","b","applyTheme","A","KdElement","i","define","VERSION","KEYWORDS","KNOWN","isObject","value","COMPONENTS","shortName","name","ref","pointer","at","document","part","key","refName","resolve","base","refs","parts","schema","seen","target","member","inner","r","merge","out","under","over","props","displayType","t","ap","Node","#document","#parent","parent","raw","#refs","role","required","keywords","other","up","#cycle","#properties","#items","items","#values","rootSchema","root","crdSchema","schemas","matches","k","spec","crd","versions","version","v","normalize","find","node","path","f","json","isEmptyObject","constraints","exMin","exMax","min","max","open","close","behaviours","listType","mapType","strategy","unions","named","u","brief","s","c","COMBINATORS","words","clip","text","safeUrl","url","KdSchema","changed","#fetch","#tree","#open","ticket","#fetching","response","omit","fields","#field","set","depth","event","head","#tags","body","#body","#isOpen","#toggle","b$1","description","#extras","cut","#each","tags","extras","label","branches","x","b$2","example","docs","rules"],"sources":["../src/openapi/model.ts","../src/openapi/describe.ts","../src/openapi/schema.ts"],"sourcesContent":["// The schema model: an OpenAPI v3 / JSON Schema document and a root, turned\n// into a tree of plain-data nodes the viewers (and later a data viewer and an\n// editor) draw from. No DOM here.\n\n/** A raw schema object, as it appears in the document. */\nexport type Schema = Record<string, unknown>;\n\n/** An OpenAPI v3 document, or any JSON document that holds schemas. */\nexport interface OpenApiDocument {\n components?: { schemas?: Record<string, Schema> };\n [key: string]: unknown;\n}\n\n/** One `x-kubernetes-validations` entry: a CEL rule. */\nexport interface Validation {\n rule: string;\n message?: string;\n messageExpression?: string;\n reason?: string;\n fieldPath?: string;\n optionalOldSelf?: boolean;\n}\n\n/** One `x-kubernetes-group-version-kind` entry. */\nexport interface GroupVersionKind {\n group: string;\n version: string;\n kind: string;\n}\n\n/** One `x-kubernetes-unions` entry. */\nexport interface Union {\n discriminator?: string;\n 'fields-to-discriminateBy'?: Record<string, string>;\n}\n\n/**\n * Every keyword the model knows, typed. Values are the document's own, after\n * `$ref` resolution and the `allOf` merge; nothing is rewritten. Kubernetes'\n * `x-kubernetes-*` extensions are OpenAPI extensions, so they are known here\n * like any other keyword.\n */\nexport interface Keywords {\n $ref?: string;\n type?: string | string[];\n title?: string;\n description?: string;\n format?: string;\n pattern?: string;\n default?: unknown;\n enum?: unknown[];\n const?: unknown;\n example?: unknown;\n examples?: unknown[];\n minimum?: number;\n maximum?: number;\n /** A boolean in OpenAPI 3.0, a number in JSON Schema 2019+. */\n exclusiveMinimum?: boolean | number;\n exclusiveMaximum?: boolean | number;\n multipleOf?: number;\n minLength?: number;\n maxLength?: number;\n minItems?: number;\n maxItems?: number;\n uniqueItems?: boolean;\n minProperties?: number;\n maxProperties?: number;\n nullable?: boolean;\n readOnly?: boolean;\n writeOnly?: boolean;\n deprecated?: boolean;\n externalDocs?: { url?: string; description?: string };\n required?: string[];\n properties?: Record<string, Schema>;\n items?: Schema | Schema[];\n additionalProperties?: boolean | Schema;\n allOf?: Schema[];\n anyOf?: Schema[];\n oneOf?: Schema[];\n not?: Schema;\n 'x-kubernetes-int-or-string'?: boolean;\n 'x-kubernetes-preserve-unknown-fields'?: boolean;\n 'x-kubernetes-embedded-resource'?: boolean;\n 'x-kubernetes-list-type'?: 'atomic' | 'set' | 'map' | string;\n 'x-kubernetes-list-map-keys'?: string[];\n 'x-kubernetes-map-type'?: 'atomic' | 'granular' | string;\n 'x-kubernetes-validations'?: Validation[];\n 'x-kubernetes-patch-strategy'?: string;\n 'x-kubernetes-patch-merge-key'?: string;\n 'x-kubernetes-unions'?: Union[];\n 'x-kubernetes-group-version-kind'?: GroupVersionKind[];\n}\n\n/** The names of every known keyword, in display order. */\nexport const KEYWORDS: readonly (keyof Keywords)[] = [\n '$ref', 'type', 'title', 'description', 'format', 'pattern', 'default', 'enum', 'const', 'example', 'examples',\n 'minimum', 'maximum', 'exclusiveMinimum', 'exclusiveMaximum', 'multipleOf', 'minLength', 'maxLength', 'minItems',\n 'maxItems', 'uniqueItems', 'minProperties', 'maxProperties', 'nullable', 'readOnly', 'writeOnly', 'deprecated',\n 'externalDocs', 'required', 'properties', 'items', 'additionalProperties', 'allOf', 'anyOf', 'oneOf', 'not',\n 'x-kubernetes-int-or-string', 'x-kubernetes-preserve-unknown-fields', 'x-kubernetes-embedded-resource',\n 'x-kubernetes-list-type', 'x-kubernetes-list-map-keys', 'x-kubernetes-map-type', 'x-kubernetes-validations',\n 'x-kubernetes-patch-strategy', 'x-kubernetes-patch-merge-key', 'x-kubernetes-unions',\n 'x-kubernetes-group-version-kind',\n];\nconst KNOWN = new Set<string>(KEYWORDS);\n\n/**\n * A node of the schema tree: a field, the root, or the item/value schema of a\n * list/map.\n *\n * Children (`properties`, `items`, `values`, `fields`) are computed when first\n * read and then kept, so normalizing a root costs one node and a viewer pays\n * only for what it opens. `parent` and `cycle` are getters, so a node\n * serialises as plain data without looping.\n *\n * Recursion is cut, never depth-limited: a node whose type is already open\n * above it has `cycle` set to that ancestor and no children.\n */\nexport interface SchemaNode {\n /** `root` (what normalize returns), `field` (a property), `item` (an array's items), `value` (a map's values). */\n readonly role: 'root' | 'field' | 'item' | 'value';\n /** The property name; `''` for the root, an item or a value. */\n readonly name: string;\n /** The path as kubectl explain spells it (`spec.template.spec.containers.name`); items and values share their owner's. */\n readonly path: string;\n /** Listed in the owning object's `required`. */\n readonly required: boolean;\n /** The display type in kubectl explain's spelling: `string`, `Object`, `[]Container`, `map[string]string`, `int-or-string`, `any`. */\n readonly type: string;\n /** The short name of the type it was referenced as (`PodSpec` for `io.k8s.api.core.v1.PodSpec`). */\n readonly typeName?: string;\n /** The full name of the schema `$ref`/`allOf` brought in (`io.k8s.api.core.v1.PodSpec`). */\n readonly ref?: string;\n /** The schema after `$ref` resolution and the `allOf` merge; the node's own keywords win. */\n readonly schema: Schema;\n /** The known keywords of `schema`. */\n readonly keywords: Keywords;\n /** Every keyword of `schema` the model does not know, raw. */\n readonly other: Record<string, unknown>;\n /** The node it belongs to; the root has none. */\n readonly parent: SchemaNode | undefined;\n /** When this node's type is open in an ancestor, that ancestor. Its children are listed there, not here. */\n readonly cycle: SchemaNode | undefined;\n /** The object's own properties, in document order. */\n readonly properties: readonly SchemaNode[];\n /** An array's item schema. */\n readonly items: SchemaNode | undefined;\n /** A map's value schema (an `additionalProperties` schema). */\n readonly values: SchemaNode | undefined;\n /** The children kubectl explain lists: the properties, else the items' fields, else the values' fields. */\n readonly fields: readonly SchemaNode[];\n /** Whether `fields` is non-empty. */\n readonly expandable: boolean;\n}\n\n/** A root: a component name (`X` or `#/components/schemas/X`, or a unique `.X` suffix), any `#/` pointer, a schema, a CRD version, or a CRD. */\nexport type Root = string | Schema;\n\nconst isObject = (value: unknown): value is Schema =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst COMPONENTS = '#/components/schemas/';\n\n/** The short name of a component, as kubectl explain shows it: `io.k8s.api.core.v1.PodSpec` -> `PodSpec`. */\nexport function shortName(ref: string): string {\n const name = ref.startsWith(COMPONENTS) ? ref.slice(COMPONENTS.length) : ref.slice(ref.lastIndexOf('/') + 1);\n return name.slice(name.lastIndexOf('.') + 1);\n}\n\nfunction pointer(document: unknown, ref: string): unknown {\n if (!ref.startsWith('#')) return undefined;\n let at: unknown = document;\n for (const part of ref.slice(1).split('/').slice(1)) {\n const key = decodeURIComponent(part).replace(/~1/g, '/').replace(/~0/g, '~');\n if (!isObject(at) && !Array.isArray(at)) return undefined;\n at = (at as Record<string, unknown>)[key];\n }\n return at;\n}\n\nfunction refName(ref: string): string {\n return ref.startsWith(COMPONENTS) ? ref.slice(COMPONENTS.length) : ref.replace(/^#\\/?/, '');\n}\n\ninterface Resolved {\n schema: Schema;\n /** Every schema name merged in, outermost first. */\n refs: string[];\n}\n\n// A {$ref} node becomes the schema it points at, its own keywords on top; every\n// allOf member is resolved and merged under the node's own keywords. Properties\n// that two members both define are merged lazily, as an allOf of the two.\nfunction resolve(document: unknown, schema: Schema, seen: string[] = []): Resolved {\n let base: Schema = {};\n const refs: string[] = [];\n const parts: Schema[] = [];\n const ref = schema.$ref;\n if (typeof ref === 'string') {\n const name = refName(ref);\n if (!seen.includes(name)) {\n refs.push(name);\n const target = pointer(document, ref);\n if (isObject(target)) parts.push(target);\n }\n }\n if (Array.isArray(schema.allOf)) for (const member of schema.allOf) if (isObject(member)) parts.push(member);\n if (!parts.length) return { schema, refs };\n for (const part of parts) {\n const inner = resolve(document, part, [...seen, ...refs]);\n refs.push(...inner.refs.filter((r) => !refs.includes(r)));\n base = merge(base, inner.schema);\n }\n return { schema: merge(base, schema), refs };\n}\n\nfunction merge(under: Schema, over: Schema): Schema {\n const out: Schema = { ...under, ...over };\n if (isObject(under.properties) && isObject(over.properties)) {\n const props: Record<string, unknown> = { ...under.properties };\n for (const [key, value] of Object.entries(over.properties)) {\n props[key] = key in props && isObject(value) && isObject(props[key]) ? { allOf: [props[key], value] } : value;\n }\n out.properties = props;\n }\n if (Array.isArray(under.required) && Array.isArray(over.required)) {\n out.required = [...new Set([...under.required, ...over.required])];\n }\n return out;\n}\n\n// A type that contains itself only through arrays and maps stops at its name.\nfunction displayType(document: unknown, schema: Schema, refs: string[], seen: string[] = []): string {\n if (refs.some((r) => seen.includes(r))) return shortName(refs[0]);\n const t = schema.type;\n if (t === 'array') {\n const inner = resolve(document, isObject(schema.items) ? schema.items : {});\n return '[]' + displayType(document, inner.schema, inner.refs, [...seen, ...refs]);\n }\n const ap = schema.additionalProperties;\n if ((t === 'object' || t === undefined) && isObject(ap) && !isObject(schema.properties)) {\n const inner = resolve(document, ap);\n return 'map[string]' + displayType(document, inner.schema, inner.refs, [...seen, ...refs]);\n }\n if (refs.length) return shortName(refs[0]);\n if (schema['x-kubernetes-int-or-string']) return 'int-or-string';\n if (t === 'object') return 'Object';\n if (typeof t === 'string') return t;\n if (Array.isArray(t)) return t.join(' | ');\n if (isObject(schema.properties)) return 'Object';\n return 'any';\n}\n\nclass Node implements SchemaNode {\n readonly role: SchemaNode['role'];\n readonly name: string;\n readonly path: string;\n readonly required: boolean;\n readonly type: string;\n readonly typeName?: string;\n readonly ref?: string;\n readonly schema: Schema;\n readonly keywords: Keywords;\n readonly other: Record<string, unknown>;\n\n readonly #document: unknown;\n readonly #parent: Node | undefined;\n readonly #refs: string[];\n readonly #cycle: Node | undefined;\n #properties?: Node[];\n #items?: Node | null;\n #values?: Node | null;\n\n constructor(document: unknown, raw: Schema, role: SchemaNode['role'], name: string, parent: Node | undefined, required: boolean) {\n this.#document = document;\n this.#parent = parent;\n const { schema, refs } = resolve(document, raw);\n this.#refs = refs;\n this.role = role;\n this.name = name;\n this.path = role === 'field' && parent?.path ? `${parent.path}.${name}` : role === 'field' ? name : (parent?.path ?? '');\n this.required = required;\n this.schema = schema;\n if (refs.length) {\n this.ref = refs[0];\n this.typeName = shortName(refs[0]);\n }\n this.type = displayType(document, schema, refs);\n const keywords: Record<string, unknown> = {};\n const other: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(schema)) (KNOWN.has(key) ? keywords : other)[key] = value;\n this.keywords = keywords as Keywords;\n this.other = other;\n for (let up = parent; up && !this.#cycle; up = up.#parent) {\n if (up.#refs.some((r) => refs.includes(r))) this.#cycle = up;\n }\n }\n\n get parent(): SchemaNode | undefined {\n return this.#parent;\n }\n\n get cycle(): SchemaNode | undefined {\n return this.#cycle;\n }\n\n get properties(): readonly SchemaNode[] {\n if (!this.#properties) {\n const props = this.schema.properties;\n const required = Array.isArray(this.schema.required) ? this.schema.required : [];\n this.#properties =\n this.#cycle || !isObject(props)\n ? []\n : Object.entries(props).map(\n ([key, value]) => new Node(this.#document, isObject(value) ? value : {}, 'field', key, this, required.includes(key)),\n );\n }\n return this.#properties;\n }\n\n get items(): SchemaNode | undefined {\n if (this.#items === undefined) {\n const items = this.schema.items;\n this.#items = !this.#cycle && this.schema.type === 'array' && isObject(items)\n ? new Node(this.#document, items, 'item', '', this, false)\n : null;\n }\n return this.#items ?? undefined;\n }\n\n get values(): SchemaNode | undefined {\n if (this.#values === undefined) {\n const ap = this.schema.additionalProperties;\n this.#values = !this.#cycle && isObject(ap) ? new Node(this.#document, ap, 'value', '', this, false) : null;\n }\n return this.#values ?? undefined;\n }\n\n get fields(): readonly SchemaNode[] {\n if (this.properties.length) return this.properties;\n return this.items?.fields ?? this.values?.fields ?? [];\n }\n\n get expandable(): boolean {\n return this.fields.length > 0;\n }\n\n toJSON(): Record<string, unknown> {\n const { role, name, path, required, type, typeName, ref, keywords, other } = this;\n return { role, name, path, required, type, typeName, ref, keywords, other, cycle: this.#cycle?.path };\n }\n}\n\nfunction rootSchema(document: unknown, root: Root | undefined): Schema {\n if (root === undefined) {\n if (isObject(document) && document.kind === 'CustomResourceDefinition') return crdSchema(document);\n return isObject(document) ? document : {};\n }\n if (typeof root === 'string') {\n if (root.startsWith('#')) return { $ref: root };\n const schemas = isObject(document) && isObject(document.components) ? document.components.schemas : undefined;\n if (isObject(schemas)) {\n if (root in schemas) return { $ref: COMPONENTS + root.replace(/~/g, '~0').replace(/\\//g, '~1') };\n const matches = Object.keys(schemas).filter((k) => k.endsWith('.' + root));\n if (matches.length === 1) return { $ref: COMPONENTS + matches[0] };\n }\n return {};\n }\n if (root.kind === 'CustomResourceDefinition') return crdSchema(root);\n if (isObject(root.schema) && isObject(root.schema.openAPIV3Schema)) return root.schema.openAPIV3Schema;\n if (isObject(root.openAPIV3Schema)) return root.openAPIV3Schema;\n return root;\n}\n\n// A CRD's storage version, or its first.\nfunction crdSchema(crd: Schema): Schema {\n const spec = isObject(crd.spec) ? crd.spec : {};\n const versions = Array.isArray(spec.versions) ? spec.versions.filter(isObject) : [];\n const version = versions.find((v) => v.storage) ?? versions[0];\n const schema = version && isObject(version.schema) ? version.schema.openAPIV3Schema : undefined;\n return isObject(schema) ? schema : {};\n}\n\n/**\n * The schema tree of `root` in `document`. Only the root is built; every other\n * node is built when its parent's children are first read.\n *\n * @param document an OpenAPI v3 document (its `components.schemas` resolve `$ref`), a CRD, or a bare schema\n * @param root a component name (`io.k8s.api.apps.v1.Deployment`, `#/components/schemas/...`, or a unique suffix\n * such as `apps.v1.Deployment`), a `#/` pointer, a schema object, a CRD version (`{schema: {openAPIV3Schema}}`)\n * or its `openAPIV3Schema`; omitted, the document itself (a CRD: its storage version)\n */\nexport function normalize(document: unknown, root?: Root): SchemaNode {\n const schema = rootSchema(document, root);\n return new Node(document, schema, 'root', '', undefined, false);\n}\n\n/** The node at a dotted field path below `node` (`spec.template.spec.containers.name`), or undefined. */\nexport function find(node: SchemaNode, path: string): SchemaNode | undefined {\n let at: SchemaNode | undefined = node;\n for (const name of path.split('.').filter(Boolean)) {\n at = at?.fields.find((f) => f.name === name);\n }\n return at;\n}\n","// Words for a schema node: the limits shown beside its type, and how\n// Kubernetes treats it. Pure functions over the model, shared by every viewer.\n\nimport { shortName, type Keywords, type Schema } from './model';\n\n/** A Kubernetes behaviour of a field: a short tag and the why behind it. */\nexport interface Behaviour {\n label: string;\n why: string;\n}\n\nconst json = (value: unknown): string => JSON.stringify(value) ?? String(value);\n\nconst isEmptyObject = (value: unknown): boolean =>\n typeof value === 'object' && value !== null && !Array.isArray(value) && Object.keys(value).length === 0;\n\n/**\n * The value limits, shown beside the type: `default`, `one of`, `format`,\n * `pattern`, `range`, `multiple of`, `length`, `items`, `unique items`, `keys`,\n * `nullable`. An empty-object default (Kubernetes puts `default: {}` on every\n * `allOf` wrapper) says nothing and is left out.\n */\nexport function constraints(k: Keywords): string[] {\n const out: string[] = [];\n if (k.default !== undefined && k.default !== null && !isEmptyObject(k.default)) out.push(`default ${json(k.default)}`);\n if (Array.isArray(k.enum)) out.push(`one of ${k.enum.map(json).join(' | ')}`);\n if (k.const !== undefined) out.push(`always ${json(k.const)}`);\n if (k.format) out.push(`format ${k.format}`);\n if (k.pattern) out.push(`pattern ${k.pattern}`);\n const exMin = typeof k.exclusiveMinimum === 'number' ? k.exclusiveMinimum : undefined;\n const exMax = typeof k.exclusiveMaximum === 'number' ? k.exclusiveMaximum : undefined;\n const min = exMin ?? k.minimum;\n const max = exMax ?? k.maximum;\n if (min != null || max != null) {\n const open = k.exclusiveMinimum === true || exMin !== undefined ? '(' : '';\n const close = k.exclusiveMaximum === true || exMax !== undefined ? ')' : '';\n out.push(`range ${open}${min ?? ''}..${max ?? ''}${close}`);\n }\n if (k.multipleOf != null) out.push(`multiple of ${k.multipleOf}`);\n if (k.minLength != null || k.maxLength != null) out.push(`length ${k.minLength ?? 0}..${k.maxLength ?? ''}`);\n if (k.minItems != null || k.maxItems != null) out.push(`items ${k.minItems ?? 0}..${k.maxItems ?? ''}`);\n if (k.uniqueItems) out.push('unique items');\n if (k.minProperties != null || k.maxProperties != null) out.push(`keys ${k.minProperties ?? 0}..${k.maxProperties ?? ''}`);\n if (k.nullable) out.push('nullable');\n if (k.readOnly) out.push('read-only');\n if (k.writeOnly) out.push('write-only');\n if (k.deprecated) out.push('deprecated');\n return out;\n}\n\n/**\n * How Kubernetes treats the field - server-side apply, strategic merge,\n * pruning, embedded objects - as tags with the why on hover.\n */\nexport function behaviours(k: Keywords): Behaviour[] {\n const out: Behaviour[] = [];\n const listType = k['x-kubernetes-list-type'];\n if (listType === 'map') {\n out.push({\n label: `keyed by ${(k['x-kubernetes-list-map-keys'] ?? []).join(', ')}`,\n why: 'list-type map: apply merges items that share these keys',\n });\n } else if (listType === 'set') {\n out.push({ label: 'set', why: 'list-type set: unique scalars, apply merges them' });\n } else if (listType) {\n out.push({ label: 'atomic list', why: 'list-type atomic: apply replaces the whole list' });\n }\n const mapType = k['x-kubernetes-map-type'];\n if (mapType === 'atomic') {\n out.push({ label: 'atomic', why: 'map-type atomic: apply replaces the whole object, never merges its fields' });\n } else if (mapType) {\n out.push({ label: 'granular', why: 'map-type granular: apply merges its fields one by one' });\n }\n const strategy = k['x-kubernetes-patch-strategy'];\n if (strategy) {\n const key = k['x-kubernetes-patch-merge-key'];\n out.push({\n label: `patch ${strategy.replace(/,/g, ' + ')}${key ? ` by ${key}` : ''}`,\n why: `strategic merge patch (kubectl apply without --server-side): ${strategy}${key ? `, items matched on ${key}` : ''}`,\n });\n }\n const unions = k['x-kubernetes-unions'];\n if (Array.isArray(unions) && unions.length) {\n const named = unions.map((u) => u.discriminator).filter(Boolean);\n out.push({ label: 'union', why: `set one of its fields${named.length ? `, named by ${named.join(', ')}` : ''}` });\n }\n if (k['x-kubernetes-int-or-string']) {\n out.push({ label: 'int or string', why: 'int-or-string: an integer or a string, e.g. 8080 or \"http\"' });\n }\n if (k['x-kubernetes-preserve-unknown-fields']) {\n out.push({ label: 'any fields', why: 'preserve-unknown-fields: fields the schema does not list are kept, not pruned' });\n }\n if (k['x-kubernetes-embedded-resource']) {\n out.push({\n label: 'embedded object',\n why: 'embedded-resource: a whole object - apiVersion, kind and metadata are validated',\n });\n }\n if (typeof k.additionalProperties === 'boolean') {\n out.push(\n k.additionalProperties\n ? { label: 'any keys', why: 'additionalProperties: keys beyond the listed ones are allowed' }\n : { label: 'no other keys', why: 'additionalProperties false: only the listed keys are allowed' },\n );\n }\n return out;\n}\n\n/** A combinator branch (`anyOf`, `oneOf`, `allOf`, `not`) in a few words. */\nexport function brief(schema: unknown): string {\n if (typeof schema !== 'object' || schema === null || Array.isArray(schema)) return json(schema);\n const s = schema as Schema & Keywords;\n if (typeof s.$ref === 'string') return shortName(s.$ref);\n if (s.type) {\n const c = constraints(s);\n return `${Array.isArray(s.type) ? s.type.join(' | ') : s.type}${c.length ? ` (${c.join(', ')})` : ''}`;\n }\n if (Array.isArray(s.required)) return `requires ${s.required.join(', ')}`;\n if (s.properties && typeof s.properties === 'object') return `fields ${Object.keys(s.properties).join(', ')}`;\n if (s.not !== undefined) return `not ${brief(s.not)}`;\n if (Array.isArray(s.enum)) return `one of ${s.enum.map(json).join(' | ')}`;\n return json(s).slice(0, 120);\n}\n","import { css, html, nothing, type PropertyValues, type TemplateResult } from 'lit';\n\nimport { define } from '../kd/define';\nimport { KdElement, base } from '../kd/element';\nimport { behaviours, brief, constraints } from './describe';\nimport { normalize, type Root, type SchemaNode } from './model';\n\nconst COMBINATORS = [\n ['anyOf', 'any of'],\n ['oneOf', 'exactly one of'],\n ['allOf', 'all of'],\n] as const;\n\nconst words = (value: string | undefined): string[] => (value ?? '').split(/\\s+/).filter(Boolean);\nconst clip = (value: unknown, max = 300): string => {\n const text = JSON.stringify(value) ?? String(value);\n return text.length > max ? `${text.slice(0, max)}…` : text;\n};\nconst safeUrl = (url: unknown): string | undefined =>\n typeof url === 'string' && /^https?:\\/\\//i.test(url) ? url : undefined;\n\n/**\n * An OpenAPI v3 / JSON Schema viewer, written the way the YAML is: a field per\n * line with its type, constraints and Kubernetes behaviours beside it, a\n * required marker, and the description, rules and fields when opened. A\n * subtree is rendered only when it is opened.\n *\n * Data in: `document` (an OpenAPI document, a CRD or a schema) and `root` (see\n * `normalize`) as properties, or `src`, a URL returning the document.\n *\n * Attributes: `root`, `src`, `expand` (top-level fields open at first, default\n * `spec status`), `omit` (top-level fields left out, e.g. `apiVersion kind metadata`).\n */\nexport class KdSchema extends KdElement {\n static override properties = {\n document: { attribute: false },\n root: { attribute: 'root' },\n src: { attribute: 'src' },\n expand: { attribute: 'expand' },\n omit: { attribute: 'omit' },\n error: { state: true },\n };\n\n declare document: unknown;\n declare root: Root | undefined;\n declare src: string | undefined;\n declare expand: string | undefined;\n declare omit: string | undefined;\n declare error: string | undefined;\n\n #tree: SchemaNode | undefined;\n #open = new Map<SchemaNode, boolean>();\n #fetching = 0;\n\n static override styles = [\n base,\n css`\n :host {\n font-size: 13px;\n }\n .none {\n color: var(--kd-text-2, inherit);\n font-style: italic;\n }\n .f {\n margin-left: 16px;\n }\n .tree > .f {\n margin-left: 0;\n }\n summary,\n .leaf {\n display: flex;\n align-items: baseline;\n gap: 8px;\n padding: 2px 0;\n min-width: 0;\n }\n summary {\n cursor: pointer;\n list-style: none;\n }\n summary::-webkit-details-marker {\n display: none;\n }\n summary::before,\n .leaf::before {\n content: '';\n width: 10px;\n flex: none;\n color: var(--kd-text-2, inherit);\n }\n summary::before {\n content: '▸';\n transition: transform 0.1s;\n }\n details[open] > summary::before {\n transform: rotate(90deg);\n }\n summary:focus-visible {\n outline: 1px solid var(--kd-primary, currentColor);\n outline-offset: 1px;\n }\n .k,\n .t,\n .c,\n .mono {\n font-family: var(--kd-font-mono, monospace);\n }\n .k {\n font-weight: 500;\n }\n .rq {\n color: var(--kd-error, inherit);\n font-family: var(--kd-font-mono, monospace);\n margin-left: -6px;\n }\n .t {\n font-size: 12px;\n color: var(--kd-link, inherit);\n white-space: nowrap;\n }\n .kt {\n font-size: 11px;\n line-height: 1.4;\n padding: 0 6px;\n border: 1px solid var(--kd-border-strong, currentColor);\n border-radius: var(--kd-radius, 2px);\n color: var(--kd-primary, inherit);\n white-space: nowrap;\n cursor: help;\n }\n .c {\n font-size: 11px;\n color: var(--kd-text-2, inherit);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 55%;\n flex: 0 1 auto;\n min-width: 0;\n }\n .ds {\n font-size: 12px;\n color: var(--kd-text-2, inherit);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n flex: 1;\n }\n details[open] > summary .ds {\n visibility: hidden;\n }\n .fb {\n margin: 2px 0 6px 18px;\n padding: 4px 10px;\n border-left: 2px solid var(--kd-border, currentColor);\n font-size: 12px;\n }\n .fb > div {\n margin: 2px 0;\n }\n .desc {\n white-space: pre-line;\n overflow-wrap: anywhere;\n }\n .dim,\n .sec {\n color: var(--kd-text-2, inherit);\n }\n .sec {\n margin: 10px 0 2px;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n }\n .mono {\n overflow-wrap: anywhere;\n }\n .tags {\n display: flex;\n flex-wrap: wrap;\n align-items: baseline;\n gap: 6px;\n }\n .tags .c {\n max-width: none;\n white-space: normal;\n }\n a {\n color: var(--kd-link, inherit);\n }\n `,\n ];\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('src') && this.src) void this.#fetch(this.src);\n if (changed.has('document') || changed.has('root')) {\n this.#tree = this.document === undefined ? undefined : normalize(this.document, this.root);\n this.#open = new Map();\n }\n }\n\n async #fetch(url: string): Promise<void> {\n const ticket = ++this.#fetching;\n try {\n const response = await fetch(url, { headers: { accept: 'application/json' } });\n if (!response.ok) throw new Error(`${response.status} ${response.statusText}`.trim());\n const document = await response.json();\n if (ticket !== this.#fetching) return;\n this.error = undefined;\n this.document = document;\n } catch (e) {\n if (ticket === this.#fetching) this.error = `Could not load the schema: ${(e as Error).message ?? e}`;\n }\n }\n\n override render(): TemplateResult {\n if (this.error) return html`<div class=\"none\">${this.error}</div>`;\n const omit = new Set(words(this.omit));\n const fields = (this.#tree?.fields ?? []).filter((f) => !omit.has(f.name));\n if (!fields.length) return html`<div class=\"none\">No schema</div>`;\n return html`<div class=\"tree\" part=\"tree\">${fields.map((f) => this.#field(f, 0))}</div>`;\n }\n\n #isOpen(node: SchemaNode, depth: number): boolean {\n const set = this.#open.get(node);\n if (set !== undefined) return set;\n return depth === 0 && words(this.expand ?? 'spec status').includes(node.name);\n }\n\n #toggle(node: SchemaNode, event: Event): void {\n const open = (event.currentTarget as HTMLDetailsElement).open;\n if (open === this.#open.get(node)) return;\n this.#open.set(node, open);\n this.requestUpdate();\n }\n\n #field(node: SchemaNode, depth: number): TemplateResult {\n const k = node.keywords;\n const c = constraints(k);\n const head = html`<span class=\"k\">${node.name}</span>${node.required\n ? html`<span class=\"rq\" title=\"required\">*</span>`\n : nothing}<span class=\"t\">${node.type}</span>${this.#tags(node)}${c.length\n ? html`<span class=\"c\" title=${c.join('\\n')}>${c.join(' · ')}</span>`\n : nothing}<span class=\"ds\">${(k.description ?? '').split('\\n')[0]}</span>`;\n const body = this.#body(node);\n if (!body.length && !node.expandable) return html`<div class=\"f leaf\" title=${node.path}>${head}</div>`;\n const open = this.#isOpen(node, depth);\n return html`<details class=\"f\" title=${node.path} ?open=${open} @toggle=${(e: Event) => this.#toggle(node, e)}>\n <summary>${head}</summary>\n ${open && body.length ? html`<div class=\"fb\">${body}</div>` : nothing}\n ${open && node.expandable ? html`<div class=\"fc\">${node.fields.map((f) => this.#field(f, depth + 1))}</div>` : nothing}\n </details>`;\n }\n\n #tags(node: SchemaNode): TemplateResult[] {\n return behaviours(node.keywords).map((b) => html`<span class=\"kt\" title=${b.why}>${b.label}</span>`);\n }\n\n // Everything shown under an opened field besides its fields. Built for every\n // visible field (cheap: one node and its item/value schema), because a field\n // with nothing to open is drawn as a plain line.\n #body(node: SchemaNode): TemplateResult[] {\n const out: TemplateResult[] = [];\n const description = node.keywords.description;\n if (description) out.push(html`<div class=\"desc\">${description}</div>`);\n out.push(...this.#extras(node));\n const cut = node.cycle ?? node.items?.cycle ?? node.values?.cycle;\n if (cut && cut.fields.length) {\n out.push(html`<div class=\"dim\">\n the same type as ${cut.path ? html`<span class=\"mono\">${cut.path}</span>` : 'the root'}, whose fields are listed there\n </div>`);\n }\n if (node.items) out.push(...this.#each('each item', node.items));\n if (node.values) out.push(...this.#each('each value', node.values));\n return out;\n }\n\n // What applies to each item of a list or each value of a map, besides its fields.\n #each(label: string, node: SchemaNode): TemplateResult[] {\n const c = constraints(node.keywords);\n const tags = this.#tags(node);\n const extras = this.#extras(node);\n if (!c.length && !tags.length && !extras.length) return [];\n return [\n html`<div class=\"sec\">${label}</div>`,\n ...(c.length || tags.length\n ? [html`<div class=\"tags\">${tags}${c.length ? html`<span class=\"c\">${c.join(' · ')}</span>` : nothing}</div>`]\n : []),\n ...extras,\n ];\n }\n\n // Combinators, title, examples, docs, CEL rules, and every unknown keyword.\n #extras(node: SchemaNode): TemplateResult[] {\n const k = node.keywords;\n const out: TemplateResult[] = [];\n for (const [key, label] of COMBINATORS) {\n const branches = k[key];\n if (!Array.isArray(branches) || !branches.length) continue;\n // Kubernetes wraps every $ref in a one-member allOf; that is the type, not a rule.\n if (key === 'allOf' && branches.length === 1 && Object.keys(branches[0]).every((x) => x === '$ref')) continue;\n out.push(html`<div>\n <span class=\"dim\">${label}:</span>\n ${branches.map((b, i) => html`${i ? html` <span class=\"dim\">|</span> ` : nothing}${brief(b)}`)}\n </div>`);\n }\n if (k.not !== undefined) out.push(html`<div><span class=\"dim\">must not be:</span> ${brief(k.not)}</div>`);\n if (k.title) out.push(html`<div><span class=\"dim\">title</span> ${k.title}</div>`);\n if (k.example !== undefined) {\n out.push(html`<div><span class=\"dim\">example</span> <span class=\"mono\">${clip(k.example)}</span></div>`);\n }\n if (Array.isArray(k.examples)) {\n for (const example of k.examples) {\n out.push(html`<div><span class=\"dim\">example</span> <span class=\"mono\">${clip(example)}</span></div>`);\n }\n }\n // Only an http(s) URL becomes a link; anything else is shown as text.\n const docs = k.externalDocs;\n const url = safeUrl(docs?.url);\n if (docs && (docs.url || docs.description)) {\n out.push(html`<div>\n <span class=\"dim\">docs</span>\n ${url\n ? html`<a href=${url} target=\"_blank\" rel=\"noopener\">${docs.description ?? url}</a>`\n : html`${docs.description ?? ''} <span class=\"mono\">${docs.url ?? ''}</span>`}\n </div>`);\n }\n const rules = k['x-kubernetes-validations'];\n if (Array.isArray(rules) && rules.length) {\n out.push(html`<div class=\"sec\">validation</div>`);\n for (const r of rules) {\n out.push(html`<div class=\"cel\">\n <span class=\"mono\">${r.rule ?? ''}</span>\n ${r.message\n ? html`<span class=\"dim\">- ${r.message}</span>`\n : r.messageExpression\n ? html`<span class=\"dim\">- message from</span> <span class=\"mono\">${r.messageExpression}</span>`\n : nothing}\n ${r.reason ? html`<span class=\"dim\">(${r.reason})</span>` : nothing}\n ${r.fieldPath ? html`<span class=\"dim\">at</span> <span class=\"mono\">${r.fieldPath}</span>` : nothing}\n ${r.optionalOldSelf ? html`<span class=\"dim\">(checked on create too)</span>` : nothing}\n </div>`);\n }\n }\n const other = Object.entries(node.other);\n if (other.length) {\n out.push(html`<div class=\"sec\">other</div>`);\n for (const [key, value] of other) {\n out.push(html`<div><span class=\"mono\">${key}</span>: <span class=\"mono\">${clip(value)}</span></div>`);\n }\n }\n return out;\n }\n}\n\ndefine('kd-schema', KdSchema);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kd-schema': KdSchema;\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubed.io/cdn",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "A theme layer and web components for Grafana panels, loaded by URL from jsDelivr.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -30,7 +30,11 @@
|
|
|
30
30
|
"types": "./dist/n8n/index.d.ts",
|
|
31
31
|
"default": "./dist/n8n.js"
|
|
32
32
|
},
|
|
33
|
-
"./kd.css": "./dist/kd.css"
|
|
33
|
+
"./kd.css": "./dist/kd.css",
|
|
34
|
+
"./github.js": {
|
|
35
|
+
"types": "./dist/github/index.d.ts",
|
|
36
|
+
"default": "./dist/github.js"
|
|
37
|
+
}
|
|
34
38
|
},
|
|
35
39
|
"scripts": {
|
|
36
40
|
"build": "vite build && tsc -p tsconfig.build.json",
|
|
@@ -49,6 +53,17 @@
|
|
|
49
53
|
"vitest": "^5.0.3"
|
|
50
54
|
},
|
|
51
55
|
"dependencies": {
|
|
52
|
-
"
|
|
56
|
+
"dompurify": "3.4.16",
|
|
57
|
+
"highlight.js": "11.12.0",
|
|
58
|
+
"lit": "3.3.3",
|
|
59
|
+
"marked": "18.1.0"
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"@n8n/chat": "1.41.3"
|
|
63
|
+
},
|
|
64
|
+
"peerDependenciesMeta": {
|
|
65
|
+
"@n8n/chat": {
|
|
66
|
+
"optional": true
|
|
67
|
+
}
|
|
53
68
|
}
|
|
54
69
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"element-ChNBLJ5X.js","names":["t","e","s","o","n","r","i","S","c","i","e","h","r","o","n","a","c","l","p","d","u","f","b","y","t","s","i","s","o","t","e","r","LitElement","PROPERTIES","t","read","value","get","theme","applyTheme","element","name","child","SELF_THEMED","runtimes","runtime","found","win","rt","r","followTheme","subscription","event","t$1","e$2","s$2","o$3","n$2","o","e","s","r$2","i$3","S$1","n","c$2","i$2","e$1","h$1","r$1","o$2","n$1","a$1","c$1","l$1","p$1","d$1","u$1","i","f$1","b$1","y$1","h","i$1","s$1","o$1","l","c","a","u","d","f","v","_","m","p","g","$","y","b","E","A","C","P","V","N","x","S","I","L","z","H","M","R","k","Z","B","D","\"finalized\"","base","json","themedAncestor","node","unthemed","names","KdElement","ticket","#following","live","view","#stop","stop"],"sources":["../../src/kd/theme.ts","../../node_modules/@lit/reactive-element/css-tag.js","../../node_modules/@lit/reactive-element/reactive-element.js","../../node_modules/lit-html/lit-html.js","../../node_modules/lit-element/lit-element.js","../../src/kd/element.ts"],"sourcesContent":["// The theme layer: Grafana's live theme as `--kd-*` custom properties.\n// The property names are this package's public API and follow semver.\n\n/** The parts of a GrafanaTheme2 the theme layer reads. Any of them may be missing. */\nexport interface ThemeLike {\n isDark?: boolean;\n [key: string]: unknown;\n}\n\ntype Read = (theme: any) => unknown;\n\nconst PROPERTIES: [string, Read][] = [\n ['--kd-bg', (t) => t.colors.background.primary],\n ['--kd-bg-2', (t) => t.colors.background.secondary],\n ['--kd-canvas', (t) => t.colors.background.canvas],\n ['--kd-text', (t) => t.colors.text.primary],\n ['--kd-text-2', (t) => t.colors.text.secondary],\n ['--kd-text-dim', (t) => t.colors.text.disabled],\n ['--kd-link', (t) => t.colors.text.link],\n ['--kd-border', (t) => t.colors.border.weak],\n ['--kd-border-strong', (t) => t.colors.border.medium],\n ['--kd-primary', (t) => t.colors.primary.main],\n ['--kd-success', (t) => t.colors.success.main],\n ['--kd-warning', (t) => t.colors.warning.main],\n ['--kd-error', (t) => t.colors.error.main],\n ['--kd-info', (t) => t.colors.info.main],\n ['--kd-font', (t) => t.typography.fontFamily],\n ['--kd-font-mono', (t) => t.typography.fontFamilyMonospace],\n ['--kd-radius', (t) => t.shape.radius.default],\n ['--kd-space', (t) => t.spacing(1)],\n];\n\n// A theme from an older or newer Grafana may lack a field; that property is\n// skipped so the rest still apply, and CSS falls back to its own default.\nfunction read(theme: ThemeLike, get: Read): string | undefined {\n try {\n const value = get(theme);\n return typeof value === 'string' || typeof value === 'number' ? String(value) : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Sets the `--kd-*` properties and `data-theme` (\"dark\" or \"light\") on\n * `element` from a GrafanaTheme2. Idempotent, so it is safe in Business Text's\n * `afterRender`, which runs on every re-render.\n *\n * @param element the panel's own root, never `:root`\n * @param theme a GrafanaTheme2, e.g. `context.grafana.theme`\n */\nexport function applyTheme(element: HTMLElement | null | undefined, theme: ThemeLike | null | undefined): void {\n if (!element || !theme) return;\n for (const [name, get] of PROPERTIES) {\n const value = read(theme, get);\n if (value !== undefined) element.style.setProperty(name, value);\n }\n if (typeof theme.isDark === 'boolean') {\n element.setAttribute('data-theme', theme.isDark ? 'dark' : 'light');\n }\n // An element that upgraded before this root was themed may be theming itself\n // (see KdElement); now that the root carries the theme, it inherits instead.\n for (const child of element.querySelectorAll(`[${SELF_THEMED}]`)) {\n (child as Element & { kdInherit?: () => void }).kdInherit?.();\n }\n}\n\n/** Marks an element that is theming itself because nothing above it was. */\nexport const SELF_THEMED = 'data-kd-self-themed';\n\n/** The parts of `@grafana/runtime` that following the theme needs. */\ninterface Runtime {\n config: { theme2: ThemeLike };\n getAppEvents(): {\n subscribe(event: unknown, handler: (event: { payload?: ThemeLike }) => void): { unsubscribe(): void };\n };\n ThemeChangedEvent: unknown;\n}\n\ntype GrafanaWindow = Window & { System?: { import?(id: string): Promise<unknown> } };\n\nconst runtimes = new WeakMap<Window, Promise<Runtime | null>>();\n\n// Grafana loads plugins through SystemJS and shares its own packages there, so\n// the page's live config and event bus are one import away. Outside Grafana\n// there is no System and this resolves to null.\nfunction runtime(win: GrafanaWindow): Promise<Runtime | null> {\n let found = runtimes.get(win);\n if (!found) {\n found = Promise.resolve()\n .then(() => win.System?.import?.('@grafana/runtime'))\n .then((r) => {\n const rt = r as Partial<Runtime> | undefined;\n return rt?.config?.theme2 && rt.getAppEvents && rt.ThemeChangedEvent ? (rt as Runtime) : null;\n })\n .catch(() => null);\n runtimes.set(win, found);\n }\n return found;\n}\n\n/**\n * Themes `element` from Grafana's live theme without being handed one, and\n * keeps it themed across a live theme switch. For code that has no\n * `context.grafana.theme`. The `<body>` theme class is never used: it goes\n * stale on a live switch.\n *\n * @returns a function that stops following; a no-op outside Grafana\n */\nexport async function followTheme(element: HTMLElement): Promise<() => void> {\n const win = element.ownerDocument?.defaultView as GrafanaWindow | null;\n const rt = win ? await runtime(win) : null;\n if (!rt) return () => {};\n applyTheme(element, rt.config.theme2);\n const subscription = rt\n .getAppEvents()\n .subscribe(rt.ThemeChangedEvent, (event) => applyTheme(element, event?.payload ?? rt.config.theme2));\n return () => subscription.unsubscribe();\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1],t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h)){const i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:\".\"===e[1]?I:\"?\"===e[1]?L:\"@\"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M(this,t,i),a(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c()),this.O(c()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push(\"3.3.3\");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.2\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import { LitElement, css, type CSSResultGroup } from 'lit';\n\nimport { SELF_THEMED, followTheme } from './theme';\n\n/**\n * What every element's shadow stylesheet starts from. Colours, fonts, radii and\n * spacing come only from the theme's `--kd-*` properties; a fallback is never a\n * colour literal, so an element on a page nobody themed inherits instead.\n */\nexport const base = css`\n :host {\n display: block;\n box-sizing: border-box;\n color: var(--kd-text, inherit);\n font-family: var(--kd-font, inherit);\n line-height: 1.5;\n }\n :host([hidden]) {\n display: none;\n }\n *,\n *::before,\n *::after {\n box-sizing: inherit;\n }\n`;\n\n/** A JSON attribute, for markup produced by a query: `<kd-x data=\"{{kdjson rows}}\">`. */\nexport const json = {\n fromAttribute(value: string | null): unknown {\n if (value === null || value === '') return undefined;\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n },\n toAttribute(value: unknown): string {\n return JSON.stringify(value);\n },\n};\n\n/** The nearest ancestor carrying `data-theme`, looking through shadow roots. */\nexport function themedAncestor(element: Element): Element | null {\n let node: Node | null = element.parentNode;\n while (node) {\n if (node instanceof Element && node.hasAttribute('data-theme')) return node;\n node = node instanceof ShadowRoot ? node.host : node.parentNode;\n }\n return null;\n}\n\n// Drops the properties followTheme set on an element, so it inherits again.\nfunction unthemed(element: HTMLElement): void {\n const names = Array.from({ length: element.style.length }, (_, i) => element.style.item(i));\n for (const name of names.filter((n) => n.startsWith('--kd-'))) element.style.removeProperty(name);\n element.removeAttribute('data-theme');\n element.removeAttribute(SELF_THEMED);\n}\n\n/**\n * The base of every `kd-*` element. Elements are stateless renderers: they\n * draw from their properties, which the panel pushes in on every render, and\n * nothing lives only in an element (Business Text recreates them whenever the\n * panel's HTML changes).\n *\n * A top-level element with no themed ancestor themes itself from Grafana's\n * runtime and follows a live theme switch; under a panel root that `applyTheme`\n * already themed, or inside another element's shadow root, it simply inherits.\n */\nexport class KdElement extends LitElement {\n static override styles: CSSResultGroup = base;\n\n #following = 0;\n #stop: (() => void) | undefined;\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Inside another kd element's shadow root, the outer one carries the theme.\n if (this.getRootNode() instanceof ShadowRoot) return;\n // Elements upgrade while their module is still evaluating, before the\n // panel's afterRender has called applyTheme on the root - so wait a frame,\n // and stand down if a themed ancestor turns up in the meantime.\n const ticket = ++this.#following;\n const live = () => ticket === this.#following && this.isConnected && !themedAncestor(this);\n const view = this.ownerDocument.defaultView;\n const later = view?.requestAnimationFrame?.bind(view) ?? ((f: () => void) => setTimeout(f, 0));\n later(() => {\n if (!live()) return;\n void followTheme(this).then((stop) => {\n if (live()) {\n this.#stop = stop;\n this.setAttribute(SELF_THEMED, '');\n return;\n }\n stop();\n if (ticket === this.#following) unthemed(this);\n });\n });\n }\n\n /** Stops theming itself and inherits; applyTheme calls this on a newly themed root. */\n kdInherit(): void {\n this.#following++;\n this.#stop?.();\n this.#stop = undefined;\n unthemed(this);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#following++;\n this.#stop?.();\n this.#stop = undefined;\n }\n}\n"],"ignoreList":[1,2,3,4],"mappings":"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"}
|