@selvajs/selva 4.3.4 → 4.3.5
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/build/client/_app/immutable/chunks/{D5ozKYdL.js → Bg5E8RaK.js} +1 -1
- package/build/client/_app/immutable/chunks/Bg5E8RaK.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bg5E8RaK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{5QwkwjrQ.js → CEKDr1yG.js} +1 -1
- package/build/client/_app/immutable/chunks/CEKDr1yG.js.br +0 -0
- package/build/client/_app/immutable/chunks/CEKDr1yG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{C9JkBeMh.js → CEmcKzrr.js} +1 -1
- package/build/client/_app/immutable/chunks/CEmcKzrr.js.br +0 -0
- package/build/client/_app/immutable/chunks/CEmcKzrr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CV7cHKxn.js → CqKeVIM6.js} +1 -1
- package/build/client/_app/immutable/chunks/CqKeVIM6.js.br +0 -0
- package/build/client/_app/immutable/chunks/CqKeVIM6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DoPqAbzy.js +3 -0
- package/build/client/_app/immutable/chunks/DoPqAbzy.js.br +0 -0
- package/build/client/_app/immutable/chunks/DoPqAbzy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{NAqgbR3C.js → cFjfoNla.js} +1 -1
- package/build/client/_app/immutable/chunks/cFjfoNla.js.br +0 -0
- package/build/client/_app/immutable/chunks/cFjfoNla.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CeItJQZm.js → wRsUbPEe.js} +1 -1
- package/build/client/_app/immutable/chunks/wRsUbPEe.js.br +0 -0
- package/build/client/_app/immutable/chunks/wRsUbPEe.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.CAm9P09D.js → app.09tvh6Se.js} +2 -2
- package/build/client/_app/immutable/entry/app.09tvh6Se.js.br +0 -0
- package/build/client/_app/immutable/entry/app.09tvh6Se.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CdsoeaJo.js +1 -0
- package/build/client/_app/immutable/entry/start.CdsoeaJo.js.br +2 -0
- package/build/client/_app/immutable/entry/start.CdsoeaJo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.alumYP7m.js → 1.BinGQMTR.js} +1 -1
- package/build/client/_app/immutable/nodes/1.BinGQMTR.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.BinGQMTR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.POFPfhZF.js → 11.B3nd7eqm.js} +1 -1
- package/build/client/_app/immutable/nodes/11.B3nd7eqm.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.B3nd7eqm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{13.CDMqsLf1.js → 13.BhyPMdJg.js} +1 -1
- package/build/client/_app/immutable/nodes/13.BhyPMdJg.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.BhyPMdJg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{14.CE8ivMm3.js → 14.BCskMTTX.js} +1 -1
- package/build/client/_app/immutable/nodes/14.BCskMTTX.js.br +0 -0
- package/build/client/_app/immutable/nodes/{14.CE8ivMm3.js.gz → 14.BCskMTTX.js.gz} +0 -0
- package/build/client/_app/immutable/nodes/15.DFduRu8X.js +13 -0
- package/build/client/_app/immutable/nodes/15.DFduRu8X.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.DFduRu8X.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{16.DcwpEBj_.js → 16.k2eOyLft.js} +1 -1
- package/build/client/_app/immutable/nodes/16.k2eOyLft.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.k2eOyLft.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{17.CyW4vJzM.js → 17.UOq3rPnW.js} +1 -1
- package/build/client/_app/immutable/nodes/17.UOq3rPnW.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.UOq3rPnW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{19.BZ_xsVtL.js → 19.BfnNfjHd.js} +1 -1
- package/build/client/_app/immutable/nodes/19.BfnNfjHd.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.BfnNfjHd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.DEAwFDdd.js → 2.BVRyhmlu.js} +1 -1
- package/build/client/_app/immutable/nodes/2.BVRyhmlu.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BVRyhmlu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{20.BTFKcsqG.js → 20.BwMu_6dK.js} +1 -1
- package/build/client/_app/immutable/nodes/20.BwMu_6dK.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.BwMu_6dK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{21.DZU8uW6y.js → 21.BlFRuNYB.js} +1 -1
- package/build/client/_app/immutable/nodes/21.BlFRuNYB.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.BlFRuNYB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{23.CC7_PfIW.js → 23.lhoyDlwS.js} +1 -1
- package/build/client/_app/immutable/nodes/23.lhoyDlwS.js.br +0 -0
- package/build/client/_app/immutable/nodes/{23.CC7_PfIW.js.gz → 23.lhoyDlwS.js.gz} +0 -0
- package/build/client/_app/immutable/nodes/{24.Byv4-bTY.js → 24.BHPSI0Zf.js} +1 -1
- package/build/client/_app/immutable/nodes/24.BHPSI0Zf.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.BHPSI0Zf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{27.CTug4-fG.js → 27.C1icpz7z.js} +1 -1
- package/build/client/_app/immutable/nodes/27.C1icpz7z.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.C1icpz7z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{28.CAQGi4kQ.js → 28.BJgC5M9K.js} +1 -1
- package/build/client/_app/immutable/nodes/28.BJgC5M9K.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.BJgC5M9K.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{29.CqjUz5IE.js → 29.D1pyBnax.js} +1 -1
- package/build/client/_app/immutable/nodes/29.D1pyBnax.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.D1pyBnax.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.BoxyynqN.js → 3.CUC4G9Nh.js} +1 -1
- package/build/client/_app/immutable/nodes/3.CUC4G9Nh.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CUC4G9Nh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{30.BNNkvutv.js → 30.D0ffyv91.js} +1 -1
- package/build/client/_app/immutable/nodes/30.D0ffyv91.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.D0ffyv91.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.Cd4MCA1q.js → 5.Ch3zJDwF.js} +1 -1
- package/build/client/_app/immutable/nodes/5.Ch3zJDwF.js.br +2 -0
- package/build/client/_app/immutable/nodes/5.Ch3zJDwF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.YxA0mFAY.js → 6.BMl8cugB.js} +1 -1
- package/build/client/_app/immutable/nodes/6.BMl8cugB.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BMl8cugB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.mlQRIDGT.js → 7.DKBYaDzG.js} +1 -1
- package/build/client/_app/immutable/nodes/7.DKBYaDzG.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DKBYaDzG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.BUuEFCdN.js → 8.oeqwCIb7.js} +1 -1
- package/build/client/_app/immutable/nodes/8.oeqwCIb7.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.oeqwCIb7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.ChO_G0OZ.js → 9.JvVEXEt0.js} +1 -1
- package/build/client/_app/immutable/nodes/9.JvVEXEt0.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.JvVEXEt0.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{1-4eUBrx0x.js → 1-Bd5_Ktti.js} +2 -2
- package/build/server/chunks/{1-4eUBrx0x.js.map → 1-Bd5_Ktti.js.map} +1 -1
- package/build/server/chunks/{11-DHok25iQ.js → 11-B8XsWabi.js} +2 -2
- package/build/server/chunks/{11-DHok25iQ.js.map → 11-B8XsWabi.js.map} +1 -1
- package/build/server/chunks/{13-aJNjRfno.js → 13-Dty8h7LU.js} +2 -2
- package/build/server/chunks/{13-aJNjRfno.js.map → 13-Dty8h7LU.js.map} +1 -1
- package/build/server/chunks/{14-YfnFhQ6D.js → 14-CcmFTDWx.js} +2 -2
- package/build/server/chunks/{14-YfnFhQ6D.js.map → 14-CcmFTDWx.js.map} +1 -1
- package/build/server/chunks/{15-D-QAWfAg.js → 15-BCheyPjA.js} +4 -4
- package/build/server/chunks/{15-D-QAWfAg.js.map → 15-BCheyPjA.js.map} +1 -1
- package/build/server/chunks/{16-Dfo-3meu.js → 16-lCMAMYzW.js} +2 -2
- package/build/server/chunks/{16-Dfo-3meu.js.map → 16-lCMAMYzW.js.map} +1 -1
- package/build/server/chunks/{17-DEWS6epq.js → 17-Buj0oOA7.js} +2 -2
- package/build/server/chunks/{17-DEWS6epq.js.map → 17-Buj0oOA7.js.map} +1 -1
- package/build/server/chunks/{19-C_uYTPBT.js → 19-BHix_hIK.js} +2 -2
- package/build/server/chunks/{19-C_uYTPBT.js.map → 19-BHix_hIK.js.map} +1 -1
- package/build/server/chunks/{2-DDaFykPH.js → 2-D8n52e0g.js} +2 -2
- package/build/server/chunks/{2-DDaFykPH.js.map → 2-D8n52e0g.js.map} +1 -1
- package/build/server/chunks/{20-By9qcmuB.js → 20-BZTRaWqF.js} +2 -2
- package/build/server/chunks/{20-By9qcmuB.js.map → 20-BZTRaWqF.js.map} +1 -1
- package/build/server/chunks/{21-BLJKguad.js → 21-WEKNoho-.js} +2 -2
- package/build/server/chunks/{21-BLJKguad.js.map → 21-WEKNoho-.js.map} +1 -1
- package/build/server/chunks/{23-4STwQ9za.js → 23-q81fbwUe.js} +2 -2
- package/build/server/chunks/{23-4STwQ9za.js.map → 23-q81fbwUe.js.map} +1 -1
- package/build/server/chunks/{24-BHh-STmc.js → 24-CLAHERAA.js} +2 -2
- package/build/server/chunks/{24-BHh-STmc.js.map → 24-CLAHERAA.js.map} +1 -1
- package/build/server/chunks/{27-DFWp-27Q.js → 27-14n2oeiY.js} +2 -2
- package/build/server/chunks/{27-DFWp-27Q.js.map → 27-14n2oeiY.js.map} +1 -1
- package/build/server/chunks/{28-Cd6_JUTd.js → 28-BYTHjf77.js} +2 -2
- package/build/server/chunks/{28-Cd6_JUTd.js.map → 28-BYTHjf77.js.map} +1 -1
- package/build/server/chunks/{29-BRexBuNA.js → 29-Uu9LAkQF.js} +2 -2
- package/build/server/chunks/{29-BRexBuNA.js.map → 29-Uu9LAkQF.js.map} +1 -1
- package/build/server/chunks/{3-B-gJmChG.js → 3-Czbm8V7y.js} +2 -2
- package/build/server/chunks/{3-B-gJmChG.js.map → 3-Czbm8V7y.js.map} +1 -1
- package/build/server/chunks/{30-Bx8Em-LY.js → 30-BBBNNzbB.js} +2 -2
- package/build/server/chunks/{30-Bx8Em-LY.js.map → 30-BBBNNzbB.js.map} +1 -1
- package/build/server/chunks/{5-NxMK2sra.js → 5-DHnM6DGt.js} +2 -2
- package/build/server/chunks/{5-NxMK2sra.js.map → 5-DHnM6DGt.js.map} +1 -1
- package/build/server/chunks/{6-K_puLxs9.js → 6-C4Vpgjrj.js} +2 -2
- package/build/server/chunks/{6-K_puLxs9.js.map → 6-C4Vpgjrj.js.map} +1 -1
- package/build/server/chunks/{7-D5pMTZYx.js → 7-ZQ9mLTB2.js} +2 -2
- package/build/server/chunks/{7-D5pMTZYx.js.map → 7-ZQ9mLTB2.js.map} +1 -1
- package/build/server/chunks/{8-DRkbOfHx.js → 8-BS2o-Nbt.js} +2 -2
- package/build/server/chunks/{8-DRkbOfHx.js.map → 8-BS2o-Nbt.js.map} +1 -1
- package/build/server/chunks/{9-BbTfqtpG.js → 9-Cjc4QJfo.js} +3 -3
- package/build/server/chunks/{9-BbTfqtpG.js.map → 9-Cjc4QJfo.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BX0FQQwV.js → _page.svelte-BEuBbeea.js} +12 -4
- package/build/server/chunks/_page.svelte-BEuBbeea.js.map +1 -0
- package/build/server/chunks/{package-CG2dCFrE.js → package-CpyjZQq6.js} +2 -2
- package/build/server/chunks/{package-CG2dCFrE.js.map → package-CpyjZQq6.js.map} +1 -1
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +24 -24
- package/build/server/manifest.js.map +1 -1
- package/package.json +4 -4
- package/build/client/_app/immutable/chunks/5QwkwjrQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/5QwkwjrQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C9JkBeMh.js.br +0 -0
- package/build/client/_app/immutable/chunks/C9JkBeMh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CV7cHKxn.js.br +0 -0
- package/build/client/_app/immutable/chunks/CV7cHKxn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CeItJQZm.js.br +0 -0
- package/build/client/_app/immutable/chunks/CeItJQZm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-MqyWHl.js +0 -3
- package/build/client/_app/immutable/chunks/D-MqyWHl.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-MqyWHl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5ozKYdL.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5ozKYdL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/NAqgbR3C.js.br +0 -0
- package/build/client/_app/immutable/chunks/NAqgbR3C.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CAm9P09D.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CAm9P09D.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.D82mTtm4.js +0 -1
- package/build/client/_app/immutable/entry/start.D82mTtm4.js.br +0 -2
- package/build/client/_app/immutable/entry/start.D82mTtm4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.alumYP7m.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.alumYP7m.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.POFPfhZF.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.POFPfhZF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.CDMqsLf1.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CDMqsLf1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.CE8ivMm3.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.Vvu6yjkA.js +0 -13
- package/build/client/_app/immutable/nodes/15.Vvu6yjkA.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.Vvu6yjkA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.DcwpEBj_.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.DcwpEBj_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.CyW4vJzM.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.CyW4vJzM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.BZ_xsVtL.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.BZ_xsVtL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DEAwFDdd.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DEAwFDdd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.BTFKcsqG.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.BTFKcsqG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.DZU8uW6y.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.DZU8uW6y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.CC7_PfIW.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.Byv4-bTY.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.Byv4-bTY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.CTug4-fG.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.CTug4-fG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.CAQGi4kQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.CAQGi4kQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.CqjUz5IE.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.CqjUz5IE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.BoxyynqN.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BoxyynqN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.BNNkvutv.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.BNNkvutv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.Cd4MCA1q.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.Cd4MCA1q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.YxA0mFAY.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.YxA0mFAY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.mlQRIDGT.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.mlQRIDGT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BUuEFCdN.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BUuEFCdN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.ChO_G0OZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.ChO_G0OZ.js.gz +0 -0
- package/build/server/chunks/_page.svelte-BX0FQQwV.js.map +0 -1
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as ze,s as Ut}from"./CsdWDH4Y.js";import{w as Ce}from"./T-Nslbso.js";import{ba as P,af as N,a_ as j,bf as ue,b5 as Lt}from"./DEk358l3.js";class ve{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class De{constructor(t,n){try{new Headers({location:n})}catch{throw new Error(`Invalid redirect location ${JSON.stringify(n)}: this string contains characters that cannot be used in HTTP headers`)}this.status=t,this.location=n}}class Be extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function Pt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function Nt(e){return e.split("%25").map(decodeURI).join("%25")}function jt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function Se({href:e}){return e.split("#")[0]}function C(){}function Ot(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;const xt=new TextDecoder;function $t(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const Ct=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&Z.delete(Me(e)),Ct(e,t));const Z=new Map;function Dt(e,t){const n=Me(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:a,...s}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&Z.set(n,{body:a,init:s,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(a=$t(a)),Promise.resolve(new Response(a,s))}return window.fetch(e,t)}function Bt(e,t,n){if(Z.size>0){const r=Me(e,n),a=Z.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(a.body,a.init);Z.delete(r)}}return window.fetch(t,n)}function Me(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${Ot(...a)}"]`}return r}const Mt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Ft(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${qt(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(s)return t.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const o=r.split(/\[(.+?)\](?!\])/);return"/"+o.map((i,l)=>{if(l%2){if(i.startsWith("x+"))return Ie(String.fromCharCode(parseInt(i.slice(2),16)));if(i.startsWith("u+"))return Ie(String.fromCharCode(...i.slice(2).split("-").map(m=>parseInt(m,16))));const u=Mt.exec(i),[,d,p,h,f]=u;return t.push({name:h,matcher:f,optional:!!d,rest:!!p,chained:p?l===1&&o[0]==="":!1}),p?"([^]*?)":d?"([^/]*)?":"([^/]+?)"}return Ie(i)}).join("")}).join("")}/?$`),params:t}}function Vt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function qt(e){return e.slice(1).split("/").filter(Vt)}function Yt(e,t,n){const r={},a=e.slice(1),s=a.filter(c=>c!==void 0);let o=0;for(let c=0;c<t.length;c+=1){const i=t[c];let l=a[c-o];if(i.chained&&i.rest&&o&&(l=a.slice(c-o,c+1).filter(u=>u).join("/"),o=0),l===void 0)if(i.rest)l="";else continue;if(!i.matcher||n[i.matcher](l)){r[i.name]=l;const u=t[c+1],d=a[c+1];u&&!u.rest&&u.optional&&d&&i.chained&&(o=0),!u&&!d&&Object.keys(r).length===s.length&&(o=0);continue}if(i.optional&&i.chained){o++;continue}return}if(!o)return r}function Ie(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Gt({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([c,[i,l,u]])=>{const{pattern:d,params:p}=Ft(c),h={id:c,exec:f=>{const m=d.exec(f);if(m)return Yt(m,p,r)},errors:[1,...u||[]].map(f=>e[f]),layouts:[0,...l||[]].map(o),leaf:s(i)};return h.errors.length=h.layouts.length=Math.max(h.errors.length,h.layouts.length),h});function s(c){const i=c<0;return i&&(c=~c),[i,e[c]]}function o(c){return c===void 0?c:[a.has(c),e[c]]}}function st(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Ze(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const L=globalThis.__sveltekit_18do7kg?.base??"",Ht=globalThis.__sveltekit_18do7kg?.assets??L??"",Kt="1780497521645",it="sveltekit:snapshot",ct="sveltekit:scroll",lt="sveltekit:states",Wt="sveltekit:pageurl",Y="sveltekit:history",te="sveltekit:navigation",F={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ie=location.origin;function Fe(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function V(){return{x:pageXOffset,y:pageYOffset}}function q(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Qe={...F,"":F.hover};function ft(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function ut(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=ft(e)}}function Pe(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const c=location.hash.split("#")[1]||"/";r.hash=`#${c}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,s=!r||!!a||be(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=r?.origin===ie&&e.hasAttribute("download");return{url:r,external:s,target:a,download:o}}function de(e){let t=null,n=null,r=null,a=null,s=null,o=null,c=e;for(;c&&c!==document.documentElement;)r===null&&(r=q(c,"preload-code")),a===null&&(a=q(c,"preload-data")),t===null&&(t=q(c,"keepfocus")),n===null&&(n=q(c,"noscroll")),s===null&&(s=q(c,"reload")),o===null&&(o=q(c,"replacestate")),c=ft(c);function i(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Qe[r??"off"],preload_data:Qe[a??"off"],keepfocus:i(t),noscroll:i(n),reload:i(s),replace_state:i(o)}}function et(e){const t=Ce(e);let n=!0;function r(){n=!0,t.update(o=>o)}function a(o){n=!1,t.set(o)}function s(o){let c;return t.subscribe(i=>{(c===void 0||n&&i!==c)&&o(c=i)})}return{notify:r,set:a,subscribe:s}}const dt={v:C};function Jt(){const{set:e,subscribe:t}=Ce(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Ht}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const o=(await a.json()).version!==Kt;return o&&(e(!0),dt.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:t,check:r}}function be(e,t,n){return e.origin!==ie||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Bn(e){}const Xt=-1,zt=-2,Zt=-3,Qt=-4,en=-5,tn=-6,nn=-7,ht=2**32-1,Ne=ht-1;function rn(e){return!(!Number.isInteger(e)||e<0||e>Ne)}function an(e){return!(!Number.isInteger(e)||e<0||e>ht)}function on(e){return Uint8Array.fromBase64(e).buffer}function sn(e){return Uint8Array.from(Buffer.from(e,"base64")).buffer}function cn(e){const t=atob(e),n=t.length,r=new Uint8Array(n);for(let a=0;a<n;a++)r[a]=t.charCodeAt(a);return r.buffer}const ln=typeof Uint8Array.fromBase64=="function",fn=typeof process=="object"&&process.versions?.node!==void 0,un=ln?on:fn?sn:cn;function Mn(e,t){return pt(JSON.parse(e),t)}function pt(e,t){if(typeof e=="number")return s(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const n=e,r=Array(n.length);let a=null;function s(o,c=!1){if(o===Xt)return;if(o===Zt)return NaN;if(o===Qt)return 1/0;if(o===en)return-1/0;if(o===tn)return-0;if(c||typeof o!="number")throw new Error("Invalid input");if(o in r)return r[o];const i=n[o];if(!i||typeof i!="object")r[o]=i;else if(Array.isArray(i))if(typeof i[0]=="string"){const l=i[0],u=t&&Object.hasOwn(t,l)?t[l]:void 0;if(u){let d=i[1];if(typeof d!="number"&&(d=n.push(i[1])-1),a??=new Set,a.has(d))throw new Error("Invalid circular reference");return a.add(d),r[o]=u(s(d)),a.delete(d),r[o]}switch(l){case"Date":r[o]=new Date(i[1]);break;case"Set":const d=new Set;r[o]=d;for(let f=1;f<i.length;f+=1)d.add(s(i[f]));break;case"Map":const p=new Map;r[o]=p;for(let f=1;f<i.length;f+=2)p.set(s(i[f]),s(i[f+1]));break;case"RegExp":r[o]=new RegExp(i[1],i[2]);break;case"Object":{const f=i[1];if(typeof n[f]=="object"&&n[f][0]!=="BigInt")throw new Error("Invalid input");r[o]=Object(s(f));break}case"BigInt":r[o]=BigInt(i[1]);break;case"null":const h=Object.create(null);r[o]=h;for(let f=1;f<i.length;f+=2){if(i[f]==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");h[i[f]]=s(i[f+1])}break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Float16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":case"DataView":{if(n[i[1]][0]!=="ArrayBuffer")throw new Error("Invalid data");const f=globalThis[l],m=s(i[1]);r[o]=i[2]!==void 0?new f(m,i[2],i[3]):new f(m);break}case"ArrayBuffer":{const f=i[1];if(typeof f!="string")throw new Error("Invalid ArrayBuffer encoding");const m=un(f);r[o]=m;break}case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":{const f=l.slice(9);r[o]=Temporal[f].from(i[1]);break}case"URL":{const f=new URL(i[1]);r[o]=f;break}case"URLSearchParams":{const f=new URLSearchParams(i[1]);r[o]=f;break}default:throw new Error(`Unknown type ${l}`)}}else if(i[0]===nn){const l=i[1];if(!an(l))throw new Error("Invalid input");const u=[];r[o]=u,u[Ne]=void 0,delete u[Ne];for(let d=2;d<i.length;d+=2){const p=i[d];if(!rn(p)||p>=l)throw new Error("Invalid input");u[p]=s(i[d+1])}u.length=l}else{const l=new Array(i.length);r[o]=l;for(let u=0;u<i.length;u+=1){const d=i[u];d!==zt&&(l[u]=s(d))}}else{const l={};r[o]=l;for(const u of Object.keys(i)){if(u==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");const d=i[u];l[u]=s(d)}}return r[o]}return s(0)}const _t=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[..._t];const dn=new Set([..._t]);[...dn];function hn(e){return e.filter(t=>t!=null)}const pn="x-sveltekit-invalidated",_n="x-sveltekit-trailing-slash";function he(e){return e instanceof ve||e instanceof Be?e.status:500}function gn(e){return e instanceof Be?e.text:"Internal Error"}let k,ne,Te;const mn=ze.toString().includes("$$")||/function \w+\(\) \{\}/.test(ze.toString()),tt="a:";mn?(k={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(tt)},ne={current:null},Te={current:!1}):(k=new class{#e=P({});get data(){return N(this.#e)}set data(t){j(this.#e,t)}#t=P(null);get form(){return N(this.#t)}set form(t){j(this.#t,t)}#n=P(null);get error(){return N(this.#n)}set error(t){j(this.#n,t)}#r=P({});get params(){return N(this.#r)}set params(t){j(this.#r,t)}#a=P({id:null});get route(){return N(this.#a)}set route(t){j(this.#a,t)}#o=P({});get state(){return N(this.#o)}set state(t){j(this.#o,t)}#s=P(-1);get status(){return N(this.#s)}set status(t){j(this.#s,t)}#i=P(new URL(tt));get url(){return N(this.#i)}set url(t){j(this.#i,t)}},ne=new class{#e=P(null);get current(){return N(this.#e)}set current(t){j(this.#e,t)}},Te=new class{#e=P(!1);get current(){return N(this.#e)}set current(t){j(this.#e,t)}},dt.v=()=>Te.current=!0);function Ve(e){Object.assign(k,e)}const wn="/__data.json",yn=".html__data.json";function vn(e){return e.endsWith(".html")?e.replace(/\.html$/,yn):e.replace(/\/$/,"")+wn}const{tick:gt}=Ut,bn=new Set(["icon","shortcut icon","apple-touch-icon"]);let X=null;const B=st(ct)??{},re=st(it)??{},D={url:et({}),page:et({}),navigating:Ce(null),updated:Jt()};function qe(e){B[e]=V()}function kn(e,t){let n=e+1;for(;B[n];)delete B[n],n+=1;for(n=t+1;re[n];)delete re[n],n+=1}function K(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(C)}async function mt(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(L||"/");e&&await e.update()}}let Ye,je,pe,x,Oe,E;const _e=[],ge=[];let T=null;function ae(){T?.fork?.then(e=>e?.discard()),T=null}const fe=new Map,wt=new Set,En=new Set,Q=new Set;let _={branch:[],error:null,url:null,nav:null},Ge=!1,me=!1,nt=!0,oe=!1,z=!1,yt=!1,ce=!1,W,S,U,$;const ee=new Set;let Ue;const we=new Map;async function Yn(e,t,n){globalThis.__sveltekit_18do7kg&&(globalThis.__sveltekit_18do7kg.query,globalThis.__sveltekit_18do7kg.prerender),document.URL!==location.href&&(location.href=location.href),E=e,await e.hooks.init?.(),Ye=Gt(e),x=document.documentElement,Oe=t,je=e.nodes[0],pe=e.nodes[1],je(),pe(),S=history.state?.[Y],U=history.state?.[te],S||(S=U=Date.now(),history.replaceState({...history.state,[Y]:S,[te]:U},""));const r=B[S];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await On(Oe,n)):(await G({type:"enter",url:Fe(E.hash?xn(new URL(location.href)):location.href),replace_state:!0}),a()),jn()}async function An(e=!0,t=!0){if(await(Ue||=Promise.resolve()),!Ue)return;Ue=null;const n=$={},r=await le(_.url,!0);if(ae(),ce&&we.forEach(a=>{a.forEach(({resource:s})=>{s.refresh?.()})}),e){const a=k.state,s=r&&await We(r);if(!s||n!==$)return;if(s.type==="redirect")return ke(new URL(s.location,_.url).href,{replaceState:!0},1,n);t||(s.props.page.state=a),Ve(s.props.page),_={...s.state,nav:_.nav},xe(),W.$set(s.props)}else xe();await Promise.all([...we.values()].flatMap(a=>[...a.values()].map(({resource:s})=>s))).catch(C)}function xe(){_e.length=0,ce=!1}function vt(e){ge.some(t=>t?.snapshot)&&(re[e]=ge.map(t=>t?.snapshot?.capture()))}function bt(e){re[e]?.forEach((t,n)=>{ge[n]?.snapshot?.restore(t)})}function rt(){qe(S),Ze(ct,B),vt(U),Ze(it,re)}async function ke(e,t,n,r){let a;t.invalidateAll&&ae(),await G({type:"goto",url:Fe(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(ce=!0,a=[],we.forEach((s,o)=>{for(const c of s.keys())a.push(o+"/"+c)})),t.invalidate&&t.invalidate.forEach(Pn)}}),t.invalidateAll&&ue().then(ue).then(()=>{we.forEach((s,o)=>{s.forEach(({resource:c},i)=>{a?.includes(o+"/"+i)&&c.refresh?.()})})})}async function Rn(e){if(e.id!==T?.id){ae();const t={};ee.add(t),T={id:e.id,token:t,promise:We({...e,preload:t}).then(n=>(ee.delete(t),n.type==="loaded"&&n.state.error&&ae(),n)),fork:null}}return T.promise}async function Le(e){const t=(await le(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(n=>n[1]()))}async function kt(e,t,n){const r={params:_.params,route:{id:_.route?.id??null},url:new URL(location.href)};_={...e.state,nav:r};const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(k,e.props.page),W=new E.root({target:t,props:{...e.props,stores:D,components:ge},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),bt(U),n){const s={from:null,to:{...r,scroll:B[S]??V()},willUnload:!1,type:"enter",complete:Promise.resolve()};Q.forEach(o=>o(s))}me=!0}async function se({url:e,params:t,branch:n,errors:r,status:a,error:s,route:o,form:c}){let i="never";if(L&&(e.pathname===L||e.pathname===L+"/"))i="always";else for(const f of n)f?.slash!==void 0&&(i=f.slash);e.pathname=Pt(e.pathname,i),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:n,error:s,route:o},props:{constructors:hn(n).map(f=>f.node.component),page:Ae(k)}};c!==void 0&&(l.props.form=c);let u={},d=!k,p=0;for(let f=0;f<Math.max(n.length,_.branch.length);f+=1){const m=n[f],b=_.branch[f];m?.data!==b?.data&&(d=!0),m&&(u={...u,...m.data},d&&(l.props[`data_${p}`]=u),p+=1)}return(!_.url||e.href!==_.url.href||_.error!==s||c!==void 0&&c!==k.form||d)&&(l.props.page={error:s,params:t,route:{id:o?.id??null},state:{},status:a,url:new URL(e),form:c??null,data:d?u:k.data}),l}async function He({loader:e,parent:t,url:n,params:r,route:a,server_data_node:s}){let o=null;const c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},i=await e();return{node:i,loader:e,server:s,universal:i.universal?.load?{type:"data",data:o,uses:c}:null,data:o??s?.data??null,slash:i.universal?.trailingSlash??s?.slash}}function Sn(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const s=me?Bt(r,a.href,t):Dt(r,t);return{resolved:a,promise:s}}function at(e,t,n,r,a,s){if(ce)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const o of a.search_params)if(r.has(o))return!0;for(const o of a.params)if(s[o]!==_.params[o])return!0;for(const o of a.dependencies)if(_e.some(c=>c(new URL(o))))return!0;return!1}function Ke(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function In(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),s=t.searchParams.getAll(r);a.every(o=>s.includes(o))&&s.every(o=>a.includes(o))&&n.delete(r)}return n}function ot({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Ae(k),constructors:[]}}}async function We({id:e,invalidating:t,url:n,params:r,route:a,preload:s}){if(T?.id===e)return ee.delete(T.token),T.promise;const{errors:o,layouts:c,leaf:i}=a,l=[...c,i];o.forEach(w=>w?.().catch(C)),l.forEach(w=>w?.[1]().catch(C));let u=null;const d=_.url?e!==ye(_.url):!1,p=_.route?a.id!==_.route.id:!1,h=In(_.url,n);let f=!1;{const w=l.map((y,A)=>{const R=_.branch[A],v=!!y?.[0]&&(R?.loader!==y[1]||at(f,p,d,h,R.server?.uses,r));return v&&(f=!0),v});if(w.some(Boolean)){try{u=await St(n,w)}catch(y){const A=await H(y,{url:n,params:r,route:{id:e}});return ee.has(s)?ot({error:A,url:n,params:r,route:a}):Ee({status:he(y),error:A,url:n,route:a})}if(u.type==="redirect")return u}}const m=u?.nodes;let b=!1;const g=l.map(async(w,y)=>{if(!w)return;const A=_.branch[y],R=m?.[y];if((!R||R.type==="skip")&&w[1]===A?.loader&&!at(b,p,d,h,A.universal?.uses,r))return A;if(b=!0,R?.type==="error")throw R;return He({loader:w[1],url:n,params:r,route:a,parent:async()=>{const O={};for(let M=0;M<y;M+=1)Object.assign(O,(await g[M])?.data);return O},server_data_node:Ke(R===void 0&&w[0]?{type:"skip"}:R??null,w[0]?A?.server:void 0)})});for(const w of g)w.catch(C);const I=[];for(let w=0;w<l.length;w+=1)if(l[w])try{I.push(await g[w])}catch(y){if(y instanceof De)return{type:"redirect",location:y.location};if(ee.has(s))return ot({error:await H(y,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let A=he(y),R;if(m?.includes(y))A=y.status??A,R=y.error;else if(y instanceof ve)R=y.body;else{if(await D.updated.check())return await mt(),await K(n);R=await H(y,{params:r,url:n,route:{id:a.id}})}const v=await Et(w,I,o);return v?se({url:n,params:r,branch:I.slice(0,v.idx).concat(v.node),errors:o,status:A,error:R,route:a}):await Rt(n,{id:a.id},R,A)}else I.push(void 0);return se({url:n,params:r,branch:I,errors:o,status:200,error:null,route:a,form:t?void 0:null})}async function Et(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Ee({status:e,error:t,url:n,route:r}){const a={};let s=null;if(E.server_loads[0]===0)try{const c=await St(n,[!0]);if(c.type!=="data"||c.nodes[0]&&c.nodes[0].type!=="data")throw 0;s=c.nodes[0]??null}catch{(n.origin!==ie||n.pathname!==location.pathname||Ge)&&await K(n)}try{const o=await He({loader:je,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Ke(s)}),c={node:await pe(),loader:pe,universal:null,server:null,data:null};return se({url:n,params:a,branch:[o,c],status:e,error:t,errors:[],route:null})}catch(o){if(o instanceof De)return ke(new URL(o.location,location.href),{},0);throw o}}async function Tn(e){const t=e.href;if(fe.has(t))return fe.get(t);let n;try{const r=(async()=>{let a=await E.hooks.reroute({url:new URL(e),fetch:async(s,o)=>Sn(s,o,e).promise})??e;if(typeof a=="string"){const s=new URL(e);E.hash?s.hash=a:s.pathname=a,a=s}return a})();fe.set(t,r),n=await r}catch{fe.delete(t);return}return n}async function le(e,t){if(e&&!be(e,L,E.hash)){const n=await Tn(e);if(!n)return;const r=Un(n);for(const a of Ye){const s=a.exec(r);if(s)return{id:ye(e),invalidating:t,route:a,params:jt(s),url:e}}}}function Un(e){return Nt(E.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(L.length))||"/"}function ye(e){return(E.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function At({url:e,type:t,intent:n,delta:r,event:a,scroll:s}){let o=!1;const c=Xe(_,n,e,t,s??null);r!==void 0&&(c.navigation.delta=r),a!==void 0&&(c.navigation.event=a);const i={...c.navigation,cancel:()=>{o=!0,c.reject(new Error("navigation cancelled"))}};return oe||wt.forEach(l=>l(i)),o?null:c}async function G({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:o={},redirect_count:c=0,nav_token:i={},accept:l=C,block:u=C,event:d}){const p=$;$=i;const h=await le(t,!1),f=e==="enter"?Xe(_,h,t,e):At({url:t,type:e,delta:n?.delta,intent:h,scroll:n?.scroll,event:d});if(!f){u(),$===i&&($=p);return}const m=S,b=U;l(),oe=!0,me&&f.navigation.type!=="enter"&&D.navigating.set(ne.current=f.navigation);let g=h&&await We(h);if(!g){if(be(t,L,E.hash))return await K(t,s);g=await Rt(t,{id:null},await H(new Be(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,s)}if(t=h?.url||t,$!==i)return f.reject(new Error("navigation aborted")),!1;if(g.type==="redirect"){if(c<20){await G({type:e,url:new URL(g.location,t),popped:n,keepfocus:r,noscroll:a,replace_state:s,state:o,redirect_count:c+1,nav_token:i}),f.fulfil(void 0);return}g=await Ee({status:500,error:await H(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else g.props.page.status>=400&&await D.updated.check()&&(await mt(),await K(t,s));if(xe(),qe(m),vt(b),g.props.page.url.pathname!==t.pathname&&(t.pathname=g.props.page.url.pathname),o=n?n.state:o,!n){const v=s?0:1,O={[Y]:S+=v,[te]:U+=v,[lt]:o};(s?history.replaceState:history.pushState).call(history,O,"",t),s||kn(S,U)}const I=h&&T?.id===h.id?T.fork:null;T?.fork&&!I&&ae(),T=null,g.props.page.state=o;let w;if(me){const v=(await Promise.all(Array.from(En,J=>J(f.navigation)))).filter(J=>typeof J=="function");if(v.length>0){let J=function(){v.forEach(Re=>{Q.delete(Re)})};v.push(J),v.forEach(Re=>{Q.add(Re)})}const O=f.navigation.to;_={...g.state,nav:{params:O.params,route:O.route,url:O.url}},g.props.page&&(g.props.page.url=t);const M=I&&await I;M?w=M.commit():(X=null,W.$set(g.props),X&&Object.assign(g.props.page,X),Ve(g.props.page),w=Lt?.()),yt=!0}else await kt(g,Oe,!1);const{activeElement:y}=document;await w,await ue(),await ue();let A=null;if(nt){const v=n?n.scroll:a?V():null;v?scrollTo(v.x,v.y):(A=t.hash&&document.getElementById(Tt(t)))?A.scrollIntoView():scrollTo(0,0)}const R=document.activeElement!==y&&document.activeElement!==document.body;!r&&!R&&Je(t,!A),nt=!0,g.props.page&&(X&&Object.assign(g.props.page,X),Object.assign(k,g.props.page)),oe=!1,e==="popstate"&&bt(U),f.fulfil(void 0),f.navigation.to&&(f.navigation.to.scroll=V()),Q.forEach(v=>v(f.navigation)),D.navigating.set(ne.current=null)}async function Rt(e,t,n,r,a){return e.origin===ie&&e.pathname===location.pathname&&!Ge?await Ee({status:r,error:n,url:e,route:t}):await K(e,a)}function Ln(){let e,t={element:void 0,href:void 0},n;x.addEventListener("mousemove",c=>{const i=c.target;clearTimeout(e),e=setTimeout(()=>{s(i,F.hover)},20)});function r(c){c.defaultPrevented||s(c.composedPath()[0],F.tap)}x.addEventListener("mousedown",r),x.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(c=>{for(const i of c)i.isIntersecting&&(Le(new URL(i.target.href)),a.unobserve(i.target))},{threshold:0});async function s(c,i){const l=ut(c,x),u=l===t.element&&l?.href===t.href&&i>=n;if(!l||u)return;const{url:d,external:p,download:h}=Pe(l,L,E.hash);if(p||h)return;const f=de(l),m=d&&ye(_.url)===ye(d);if(!(f.reload||m))if(i<=f.preload_data){t={element:l,href:l.href},n=F.tap;const b=await le(d,!1);if(!b)return;Rn(b)}else i<=f.preload_code&&(t={element:l,href:l.href},n=i,Le(d))}function o(){a.disconnect();for(const c of x.querySelectorAll("a")){const{url:i,external:l,download:u}=Pe(c,L,E.hash);if(l||u)continue;const d=de(c);d.reload||(d.preload_code===F.viewport&&a.observe(c),d.preload_code===F.eager&&Le(i))}}Q.add(o),o()}function H(e,t){if(e instanceof ve)return e.body;const n=he(e),r=gn(e);return E.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Gn(e,t={}){return e=new URL(Fe(e)),e.origin!==ie?Promise.reject(new Error("goto: invalid URL")):ke(e,t,0)}function Pn(e){if(typeof e=="function")_e.push(e);else{const{href:t}=new URL(e,location.href);_e.push(n=>n.href===t)}}function Hn(){return ce=!0,An()}async function Kn(e){e.type==="error"?await Nn(e.error,e.status):e.type==="redirect"?await ke(e.location,{invalidateAll:!0},0):(k.form=e.data,k.status=e.status,W.$set({form:null,page:Ae(k)}),await gt(),W.$set({form:e.data}),e.type==="success"&&Je(k.url))}async function Nn(e,t=500){const n=new URL(location.href),{branch:r,route:a}=_;if(!a)return;const s=await Et(_.branch.length,r,a.errors);if(s){const o=await se({url:n,params:_.params,branch:r.slice(0,s.idx).concat(s.node),status:t,error:e,route:a});_={...o.state,nav:_.nav},W.$set(o.props),Ve(o.props.page),gt().then(()=>Je(_.url))}}function jn(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(rt(),!oe){const r=Xe(_,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};wt.forEach(s=>s(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&rt()}),navigator.connection?.saveData||Ln(),x.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=ut(t.composedPath()[0],x);if(!n)return;const{url:r,external:a,target:s,download:o}=Pe(n,L,E.hash);if(!r)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const c=de(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||o)return;const[l,u]=(E.hash?r.hash.replace(/^#/,""):r.href).split("#"),d=l===Se(location);if(a||c.reload&&(!d||!u)){At({url:r,type:"link",event:t})?oe=!0:t.preventDefault();return}if(u!==void 0&&d){const[,p]=_.url.href.split("#");if(p===u){if(t.preventDefault(),u===""||u==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const h=n.ownerDocument.getElementById(decodeURIComponent(u));h&&(h.scrollIntoView(),h.focus())}return}if(z=!0,qe(S),e(r),!c.replace_state)return;z=!1}t.preventDefault(),await new Promise(p=>{requestAnimationFrame(()=>{setTimeout(p,0)}),setTimeout(p,100)}),await G({type:"link",url:r,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??r.href===location.href,event:t})}),x.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const o=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(be(o,L,!1))return;const c=t.target,i=de(c);if(i.reload)return;t.preventDefault(),t.stopPropagation();const l=new FormData(c,r);o.search=new URLSearchParams(l).toString(),G({type:"form",url:o,keepfocus:i.keepfocus,noscroll:i.noscroll,replace_state:i.replace_state??o.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!$e){if(t.state?.[Y]){const n=t.state[Y];if($={},n===S)return;const r=B[n],a=t.state[lt]??{},s=new URL(t.state[Wt]??location.href),o=t.state[te],c=_.url?Se(location)===Se(_.url):!1;if(o===U&&(yt||c)){a!==k.state&&(k.state=a),e(s),B[S]=V(),r&&scrollTo(r.x,r.y),S=n;return}const l=n-S;await G({type:"popstate",url:s,popped:{state:a,scroll:r,delta:l},accept:()=>{S=n,U=o},block:()=>{history.go(-l)},nav_token:$,event:t})}else if(!z){const n=new URL(location.href);e(n),E.hash&&location.reload()}}}),addEventListener("hashchange",()=>{z&&(z=!1,history.replaceState({...history.state,[Y]:++S,[te]:U},"",location.href))});for(const t of document.querySelectorAll("link"))bn.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&D.navigating.set(ne.current=null)});function e(t){_.url=k.url=t,D.page.set(Ae(k)),D.page.notify()}}async function On(e,{status:t=200,error:n,node_ids:r,params:a,route:s,server_route:o,data:c,form:i}){Ge=!0;const l=new URL(location.href);let u;({params:a={},route:s={id:null}}=await le(l,!1)||{}),u=Ye.find(({id:h})=>h===s.id);let d,p=!0;try{const h=r.map(async(m,b)=>{const g=c[b];return g?.uses&&(g.uses=It(g.uses)),He({loader:E.nodes[m],url:l,params:a,route:s,parent:async()=>{const I={};for(let w=0;w<b;w+=1)Object.assign(I,(await h[w]).data);return I},server_data_node:Ke(g)})}),f=await Promise.all(h);if(u){const m=u.layouts;for(let b=0;b<m.length;b++)m[b]||f.splice(b,0,void 0)}d=await se({url:l,params:a,branch:f,status:t,error:n,errors:u?.errors,form:i,route:u??null})}catch(h){if(h instanceof De){await K(new URL(h.location,location.href));return}d=await Ee({status:he(h),error:await H(h,{url:l,params:a,route:s}),url:l,route:s}),e.textContent="",p=!1}d.props.page&&(d.props.page.state={}),await kt(d,e,p)}async function St(e,t){const n=new URL(e);n.pathname=vn(e.pathname),e.pathname.endsWith("/")&&n.searchParams.append(_n,"1"),n.searchParams.append(pn,t.map(s=>s?"1":"0").join(""));const r=window.fetch,a=await r(n.href,{});if(!a.ok){let s;throw a.headers.get("content-type")?.includes("application/json")?s=await a.json():a.status===404?s="Not Found":a.status===500&&(s="Internal Error"),new ve(a.status,s)}return new Promise(async s=>{const o=new Map,c=a.body.getReader();function i(u){return pt(u,{...E.decoders,Promise:d=>new Promise((p,h)=>{o.set(d,{fulfil:p,reject:h})})})}let l="";for(;;){const{done:u,value:d}=await c.read();if(u&&!l)break;for(l+=!d&&l?`
|
|
2
|
+
`:xt.decode(d,{stream:!0});;){const p=l.indexOf(`
|
|
3
|
+
`);if(p===-1)break;const h=JSON.parse(l.slice(0,p));if(l=l.slice(p+1),h.type==="redirect")return s(h);if(h.type==="data")h.nodes?.forEach(f=>{f?.type==="data"&&(f.uses=It(f.uses),f.data=i(f.data))}),s(h);else if(h.type==="chunk"){const{id:f,data:m,error:b}=h,g=o.get(f);o.delete(f),b?g.reject(i(b)):g.fulfil(i(m))}}}})}function It(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let $e=!1;function Je(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=Tt(e);if(r&&document.getElementById(r)){const{x:s,y:o}=V();setTimeout(()=>{const c=history.state;$e=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(c,"",e),t&&scrollTo(s,o),$e=!1})}else{const s=document.body,o=s.getAttribute("tabindex");s.tabIndex=-1,s.focus({preventScroll:!0,focusVisible:!1}),o!==null?s.setAttribute("tabindex",o):s.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const s=[];for(let o=0;o<a.rangeCount;o+=1)s.push(a.getRangeAt(o));setTimeout(()=>{if(a.rangeCount===s.length){for(let o=0;o<a.rangeCount;o+=1){const c=s[o],i=a.getRangeAt(o);if(c.commonAncestorContainer!==i.commonAncestorContainer||c.startContainer!==i.startContainer||c.endContainer!==i.endContainer||c.startOffset!==i.startOffset||c.endOffset!==i.endOffset)return}a.removeAllRanges()}})}}}function Xe(e,t,n,r,a=null){let s,o;const c=new Promise((l,u)=>{s=l,o=u});return c.catch(C),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:V()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:a},willUnload:!t,type:r,complete:c},fulfil:s,reject:o}}function Ae(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function xn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Tt(e){let t;if(E.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{E as a,Kn as b,Mn as c,D as d,Gn as g,Hn as i,Bn as l,C as n,k as p,Yn as s};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as t,p as r}from"./
|
|
1
|
+
import{d as t,p as r}from"./DoPqAbzy.js";const e={get data(){return r.data},get error(){return r.error},get status(){return r.status},get url(){return r.url}};t.updated.check;const s=e;export{s as p};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./DsnmJJEf.js";import{aQ as Y,ac as M,V as A,af as e,b7 as $,aW as x,be as te,bk as r,aN as H,a as X,a_ as j,ba as G,aJ as ve}from"./DEk358l3.js";import{c as T,a as m,f as E,t as pe}from"./DS1KfRtl.js";import{s as Z}from"./9DES--UJ.js";import{i as W}from"./BnZOgasr.js";import{a as re,r as ae,c as ne,p as I,b as _e}from"./DCBLBrrW.js";import{p as B}from"./
|
|
1
|
+
import"./DsnmJJEf.js";import{aQ as Y,ac as M,V as A,af as e,b7 as $,aW as x,be as te,bk as r,aN as H,a as X,a_ as j,ba as G,aJ as ve}from"./DEk358l3.js";import{c as T,a as m,f as E,t as pe}from"./DS1KfRtl.js";import{s as Z}from"./9DES--UJ.js";import{i as W}from"./BnZOgasr.js";import{a as re,r as ae,c as ne,p as I,b as _e}from"./DCBLBrrW.js";import{p as B}from"./cFjfoNla.js";import{s as V,d as xe,f as ee,e as be}from"./T-Nslbso.js";import{e as se,c as we,g as oe,j as ie}from"./6CzuHfQM.js";import{I as ce}from"./CE_gxD9G.js";import{a as ye,U as Pe}from"./CEmcKzrr.js";import{B as me}from"./CGKZc1Kf.js";import{S as Ne}from"./Diyh8RG-.js";import{U as Ae}from"./BihI7LuH.js";import{S as Me}from"./De-Sjn1V.js";function ke(h,t){let d=ae(t,["$$slots","$$events","$$legacy"]);const u=[["path",{d:"M15 6a9 9 0 0 0-9 9V3"}],["circle",{cx:"18",cy:"6",r:"3"}],["circle",{cx:"6",cy:"18",r:"3"}]];ce(h,re({name:"git-branch"},()=>d,{get iconNode(){return u}}))}function Se(h,t){let d=ae(t,["$$slots","$$events","$$legacy"]);const u=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1"}]];ce(h,re({name:"layout-grid"},()=>d,{get iconNode(){return u}}))}var je=E("<a><!> </a>");function Ie(h,t){Y(t,!0);const d=r(()=>B.data.ctx),u=r(()=>(e(d)?.platformPermissions??[]).includes("instance_admin")||(e(d)?.orgPermissions??[]).some(s=>s==="manage_definitions"||s==="manage_projects")),o=r(()=>[{href:"/library",label:"Library",icon:Se,match:"prefix",show:!0},{href:"/projects",label:"Projects",icon:ke,match:"prefix",show:e(u)}].filter(s=>s.show));function b(s){const l=B.url.pathname;return s.match==="prefix"?l.startsWith(s.href):l===s.href}var i=T(),w=M(i);se(w,17,()=>e(o),s=>s.href,(s,l)=>{const k=r(()=>b(e(l))),U=r(()=>e(l).icon);var v=je(),C=A(v);ne(C,()=>e(U),(c,f)=>{f(c,{class:"h-3.5 w-3.5"})});var p=$(C);x(v),te(c=>{oe(v,"href",e(l).href),ie(v,1,c),V(p,` ${e(l).label??""}`)},[()=>we(["flex h-8 items-center gap-1.5 rounded-md px-2.5 text-sm font-medium transition-colors",e(k)?"bg-accent text-accent-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"].join(" "))]),m(s,v)}),m(h,i),H()}var $e=E('<a role="menuitem"><!> <div class="min-w-0 flex-1"><p class="leading-tight font-medium"> </p> <p class="text-muted-foreground mt-0.5 text-xs leading-snug"> </p></div></a>'),Ee=E('<div role="menu" class="border-border bg-popover text-popover-foreground absolute top-full right-0 z-50 mt-1.5 w-64 overflow-hidden rounded-md border shadow-md"><div class="p-1"></div></div>'),Ue=E('<div class="relative"><!> <!></div>');function Ce(h,t){Y(t,!0);let d=I(t,"platformPermissions",19,()=>[]),u=I(t,"orgPermissions",19,()=>[]),o=G(!1),b=G(null),i=G(null);const w=r(()=>d().includes("instance_admin")),s=["instance_admin","manage_compute","manage_instance_users","manage_updates"],l=["manage_org_members","manage_org_compute","manage_definitions","manage_projects"],k=r(()=>e(w)||s.some(a=>d().includes(a))),U=r(()=>e(w)||l.some(a=>u().includes(a))),v=r(()=>[{href:"/team",label:"Team",description:"Members, projects, and org-wide settings",icon:Ae,show:e(U),match:"prefix"},{href:"/admin",label:"Admin",description:"Platform configuration and instance settings",icon:Me,show:e(k),match:"prefix"}].filter(a=>a.show)),C=r(()=>e(v).length>0);function p(a){return B.url.pathname.startsWith(a)}function c(a){if(!e(o))return;const n=a.target;e(b)?.contains(n)||e(i)?.contains(n)||j(o,!1)}function f(a){a.key==="Escape"&&e(o)&&j(o,!1)}var _=T();ee("click",X,c),ee("keydown",X,f);var y=M(_);{var D=a=>{var n=Ue(),g=A(n);me(g,{onclick:()=>j(o,!e(o)),variant:"outline",size:"icon","aria-label":"Settings",get"aria-expanded"(){return e(o)},"aria-haspopup":"menu",get ref(){return e(b)},set ref(N){j(b,N,!0)},children:(N,z)=>{Ne(N,{class:"h-[1.2rem] w-[1.2rem]"})},$$slots:{default:!0}});var P=$(g,2);{var R=N=>{var z=Ee(),J=A(z);se(J,21,()=>e(v),L=>L.href,(L,O)=>{const de=r(()=>e(O).icon),le=r(()=>p(e(O).href));var S=$e(),K=A(S);ne(K,()=>e(de),(he,ue)=>{ue(he,{class:"mt-0.5 h-3.5 w-3.5 shrink-0 opacity-70"})});var Q=$(K,2),F=A(Q),fe=A(F,!0);x(F);var q=$(F,2),ge=A(q,!0);x(q),x(Q),x(S),te(()=>{oe(S,"href",e(O).href),ie(S,1,`flex items-start gap-2.5 rounded-sm px-2.5 py-2 text-sm transition-colors ${e(le)?"bg-accent text-accent-foreground":"text-foreground hover:bg-muted/60"}`),V(fe,e(O).label),V(ge,e(O).description)}),be("click",S,()=>j(o,!1)),m(L,S)}),x(J),x(z),_e(z,L=>j(i,L),()=>e(i)),m(N,z)};W(P,N=>{e(o)&&N(R)})}x(n),m(a,n)};W(y,a=>{e(C)&&a(D)})}m(h,_),H()}xe(["click"]);var Re=E("<!> <!>",1),ze=E("<!> <!>",1);function Xe(h,t){Y(t,!0);let d=I(t,"homeUrl",3,"/library"),u=I(t,"title",3,void 0),o=I(t,"mode",3,"scroll"),b=I(t,"showMainNav",3,!0);const i=r(()=>B.data),w=r(()=>!!e(i).user),s=r(()=>e(i).user?.platformPermissions??[]),l=r(()=>e(i).ctx?.orgPermissions??[]),k=r(()=>e(i).branding?.name??"Selva"),U=r(()=>e(i).branding?.copyrightName??e(k));ye(h,{get homeUrl(){return d()},get title(){return u()},get mode(){return o()},get sidenav(){return t.sidenav},get brandName(){return e(k)},get copyrightName(){return e(U)},showFooter:!0,navItems:p=>{var c=T(),f=M(c);{var _=y=>{Ie(y,{})};W(f,y=>{e(w)&&b()&&y(_)})}m(p,c)},rightContent:p=>{var c=ze(),f=M(c);{var _=n=>{var g=T(),P=M(g);Z(P,()=>t.rightExtras),m(n,g)};W(f,n=>{t.rightExtras&&n(_)})}var y=$(f,2);{var D=n=>{var g=Re(),P=M(g);Pe(P,{});var R=$(P,2);Ce(R,{get platformPermissions(){return e(s)},get orgPermissions(){return e(l)}}),m(n,g)},a=n=>{me(n,{href:"/login",size:"sm",children:(g,P)=>{ve();var R=pe("Sign in");m(g,R)},$$slots:{default:!0}})};W(y,n=>{e(w)?n(D):n(a,-1)})}m(p,c)},children:(p,c)=>{var f=T(),_=M(f);Z(_,()=>t.children),m(p,f)},$$slots:{navItems:!0,rightContent:!0,default:!0}}),H()}export{Xe as A};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.Dr3zOYh5.js","../chunks/DsnmJJEf.js","../chunks/DEk358l3.js","../chunks/DS1KfRtl.js","../chunks/9DES--UJ.js","../chunks/CvUP44VI.js","../chunks/DfVTcmam.js","../chunks/6CzuHfQM.js","../chunks/T-Nslbso.js","../chunks/Buy2icyP.js","../chunks/DRNG0pfi.js","../chunks/CsdWDH4Y.js","../chunks/BnZOgasr.js","../chunks/DCBLBrrW.js","../chunks/BJTJCSLB.js","../chunks/BfHBnYuG.js","../assets/0.-MS0dTYb.css","../nodes/1.
|
|
2
|
-
import{a as r}from"../chunks/jO1WSR3P.js";import{a_ as T,L as $,af as s,ae as tt,a3 as rt,aI as et,aQ as at,bm as ot,bl as _t,bf as it,ac as f,b7 as mt,aN as st,ba as k,bk as L,V as nt,aW as ut,be as ct}from"../chunks/DEk358l3.js";import{h as dt,m as lt,u as vt,s as ft}from"../chunks/T-Nslbso.js";import"../chunks/DsnmJJEf.js";import{a as Et}from"../chunks/CsdWDH4Y.js";import{i as V}from"../chunks/BnZOgasr.js";import{a as c,c as g,f as G,t as pt}from"../chunks/DS1KfRtl.js";import{p as D,c as A,b as I}from"../chunks/DCBLBrrW.js";function gt(_){return class extends ht{constructor(t){super({component:_,...t})}}}class ht{#r;#t;constructor(t){var o=new Map,n=(a,e)=>{var u=et(e,!1,!1);return o.set(a,u),u};const m=new Proxy({...t.props||{},$$events:{}},{get(a,e){return s(o.get(e)??n(e,Reflect.get(a,e)))},has(a,e){return e===$?!0:(s(o.get(e)??n(e,Reflect.get(a,e))),Reflect.has(a,e))},set(a,e,u){return T(o.get(e)??n(e,u),u),Reflect.set(a,e,u)}});this.#t=(t.hydrate?dt:lt)(t.component,{target:t.target,anchor:t.anchor,props:m,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&tt(),this.#r=m.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||rt(this,a,{get(){return this.#t[a]},set(e){this.#t[a]=e},enumerable:!0});this.#t.$set=a=>{Object.assign(m,a)},this.#t.$destroy=()=>{vt(this.#t)}}$set(t){this.#t.$set(t)}$on(t,o){this.#r[t]=this.#r[t]||[];const n=(...m)=>o.call(this,...m);return this.#r[t].push(n),()=>{this.#r[t]=this.#r[t].filter(m=>m!==n)}}$destroy(){this.#t.$destroy()}}const wt={};var Pt=G('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),Ot=G("<!> <!>",1);function Rt(_,t){at(t,!0);let o=D(t,"components",23,()=>[]),n=D(t,"data_0",3,null),m=D(t,"data_1",3,null),a=D(t,"data_2",3,null);ot(()=>t.stores.page.set(t.page)),_t(()=>{t.stores,t.page,t.constructors,o(),t.form,n(),m(),a(),t.stores.page.notify()});let e=k(!1),u=k(!1),w=k(null);Et(()=>{const i=t.stores.page.subscribe(()=>{s(e)&&(T(u,!0),it().then(()=>{T(w,document.title||"untitled page",!0)}))});return T(e,!0),i});const Q=L(()=>t.constructors[2]);var C=Ot(),S=f(C);{var W=i=>{const d=L(()=>t.constructors[0]);var l=g(),h=f(l);A(h,()=>s(d),(v,E)=>{I(E(v,{get data(){return n()},get form(){return t.form},get params(){return t.page.params},children:(P,At)=>{var M=g(),F=f(M);{var H=p=>{const b=L(()=>t.constructors[1]);var O=g(),y=f(O);A(y,()=>s(b),(j,x)=>{I(x(j,{get data(){return m()},get form(){return t.form},get params(){return t.page.params},children:(R,It)=>{var z=g(),K=f(z);A(K,()=>s(Q),(U,X)=>{I(X(U,{get data(){return a()},get form(){return t.form},get params(){return t.page.params}}),Z=>o()[2]=Z,()=>o()?.[2])}),c(R,z)},$$slots:{default:!0}}),R=>o()[1]=R,()=>o()?.[1])}),c(p,O)},J=p=>{const b=L(()=>t.constructors[1]);var O=g(),y=f(O);A(y,()=>s(b),(j,x)=>{I(x(j,{get data(){return m()},get form(){return t.form},get params(){return t.page.params}}),R=>o()[1]=R,()=>o()?.[1])}),c(p,O)};V(F,p=>{t.constructors[2]?p(H):p(J,-1)})}c(P,M)},$$slots:{default:!0}}),P=>o()[0]=P,()=>o()?.[0])}),c(i,l)},Y=i=>{const d=L(()=>t.constructors[0]);var l=g(),h=f(l);A(h,()=>s(d),(v,E)=>{I(E(v,{get data(){return n()},get form(){return t.form},get params(){return t.page.params}}),P=>o()[0]=P,()=>o()?.[0])}),c(i,l)};V(S,i=>{t.constructors[1]?i(W):i(Y,-1)})}var q=mt(S,2);{var B=i=>{var d=Pt(),l=nt(d);{var h=v=>{var E=pt();ct(()=>ft(E,s(w))),c(v,E)};V(l,v=>{s(u)&&v(h)})}ut(d),c(i,d)};V(q,i=>{s(e)&&i(B)})}c(_,C),st()}const Ct=gt(Rt),St=[()=>r(()=>import("../nodes/0.Dr3zOYh5.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]),import.meta.url),()=>r(()=>import("../nodes/1.
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.Dr3zOYh5.js","../chunks/DsnmJJEf.js","../chunks/DEk358l3.js","../chunks/DS1KfRtl.js","../chunks/9DES--UJ.js","../chunks/CvUP44VI.js","../chunks/DfVTcmam.js","../chunks/6CzuHfQM.js","../chunks/T-Nslbso.js","../chunks/Buy2icyP.js","../chunks/DRNG0pfi.js","../chunks/CsdWDH4Y.js","../chunks/BnZOgasr.js","../chunks/DCBLBrrW.js","../chunks/BJTJCSLB.js","../chunks/BfHBnYuG.js","../assets/0.-MS0dTYb.css","../nodes/1.BinGQMTR.js","../chunks/cFjfoNla.js","../chunks/DoPqAbzy.js","../chunks/B21bldal.js","../chunks/CGKZc1Kf.js","../chunks/BIIXkPqf.js","../chunks/vyYztzrZ.js","../chunks/CnXIg_dO.js","../chunks/D1xkoVpc.js","../chunks/CeS0GhtF.js","../chunks/B1z9if9B.js","../nodes/2.BVRyhmlu.js","../chunks/wRsUbPEe.js","../chunks/CE_gxD9G.js","../chunks/CEmcKzrr.js","../chunks/CzCTTv8Q.js","../chunks/D-3pI9hp.js","../chunks/BTm-dDt9.js","../chunks/xQ1SsCxk.js","../chunks/CYyqq9B1.js","../chunks/jO1WSR3P.js","../chunks/BM8Ok6pJ.js","../chunks/Diyh8RG-.js","../chunks/BihI7LuH.js","../chunks/De-Sjn1V.js","../chunks/Bg5E8RaK.js","../chunks/C3WxOOC9.js","../chunks/Dn_lJm0y.js","../chunks/DeMiewtM.js","../chunks/BHhjUaik.js","../nodes/3.CUC4G9Nh.js","../nodes/4.CieI7_Lb.js","../nodes/5.Ch3zJDwF.js","../nodes/6.BMl8cugB.js","../chunks/CEKDr1yG.js","../chunks/BLZ195WY.js","../chunks/D_gPt7DB.js","../chunks/CumXBEVX.js","../chunks/DfbumCTS.js","../nodes/7.DKBYaDzG.js","../nodes/8.oeqwCIb7.js","../chunks/DYfK6Plb.js","../chunks/B6_AR4oL.js","../chunks/Uv0-HWHq.js","../chunks/CDmA5ezP.js","../chunks/C46MGZre.js","../nodes/9.JvVEXEt0.js","../chunks/BGIAOk5X.js","../chunks/BX0gN9mF.js","../chunks/BiG82jCv.js","../nodes/10.lZeHcKpq.js","../chunks/BnzoF81W.js","../chunks/Dl_x4ktn.js","../chunks/DZM0bVcB.js","../assets/index.CV-KWLNP.css","../chunks/Dr-qnmvi.js","../chunks/Bma65zV8.js","../chunks/CIHhLSqA.js","../chunks/Q9Y439fs.js","../nodes/11.B3nd7eqm.js","../chunks/C33A5aSj.js","../chunks/BnIDUuJL.js","../chunks/BOsr6E_d.js","../chunks/DtFVCiwY.js","../chunks/snZK0J5H.js","../chunks/DqK2lhM-.js","../chunks/Cbu9Tg11.js","../chunks/BEFa4rcT.js","../nodes/12.C3AQ8jKc.js","../chunks/DkpwXYYZ.js","../nodes/13.BhyPMdJg.js","../nodes/14.BCskMTTX.js","../chunks/BpQqe39G.js","../chunks/BsKtJj5h.js","../nodes/15.DFduRu8X.js","../chunks/DRpLcVdK.js","../chunks/CNC_mCsM.js","../chunks/D-Fls4-N.js","../nodes/16.k2eOyLft.js","../chunks/DkVLFJC2.js","../chunks/KIV0kKdR.js","../chunks/BtugGMaj.js","../nodes/17.UOq3rPnW.js","../nodes/18.Cl9SXwAF.js","../nodes/19.BfnNfjHd.js","../chunks/3Ah3Y6N9.js","../chunks/Bwn5lHBl.js","../nodes/20.BwMu_6dK.js","../chunks/CqKeVIM6.js","../chunks/Cqb2-zYs.js","../assets/20.Bne67Vgr.css","../nodes/21.BlFRuNYB.js","../nodes/23.lhoyDlwS.js","../chunks/B-Kuf-9K.js","../chunks/BaMCSMGs.js","../chunks/DdEmEaOR.js","../nodes/24.BHPSI0Zf.js","../nodes/25.Boy7QQiW.js","../nodes/26.JTwwV2O8.js","../nodes/27.C1icpz7z.js","../nodes/28.BJgC5M9K.js","../nodes/29.D1pyBnax.js","../nodes/30.D0ffyv91.js","../nodes/31.SiZTd523.js","../nodes/32.9Ta_FSIA.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as r}from"../chunks/jO1WSR3P.js";import{a_ as T,L as $,af as s,ae as tt,a3 as rt,aI as et,aQ as at,bm as ot,bl as _t,bf as it,ac as f,b7 as mt,aN as st,ba as k,bk as L,V as nt,aW as ut,be as ct}from"../chunks/DEk358l3.js";import{h as dt,m as lt,u as vt,s as ft}from"../chunks/T-Nslbso.js";import"../chunks/DsnmJJEf.js";import{a as Et}from"../chunks/CsdWDH4Y.js";import{i as V}from"../chunks/BnZOgasr.js";import{a as c,c as g,f as G,t as pt}from"../chunks/DS1KfRtl.js";import{p as D,c as A,b as I}from"../chunks/DCBLBrrW.js";function gt(_){return class extends ht{constructor(t){super({component:_,...t})}}}class ht{#r;#t;constructor(t){var o=new Map,n=(a,e)=>{var u=et(e,!1,!1);return o.set(a,u),u};const m=new Proxy({...t.props||{},$$events:{}},{get(a,e){return s(o.get(e)??n(e,Reflect.get(a,e)))},has(a,e){return e===$?!0:(s(o.get(e)??n(e,Reflect.get(a,e))),Reflect.has(a,e))},set(a,e,u){return T(o.get(e)??n(e,u),u),Reflect.set(a,e,u)}});this.#t=(t.hydrate?dt:lt)(t.component,{target:t.target,anchor:t.anchor,props:m,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&tt(),this.#r=m.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||rt(this,a,{get(){return this.#t[a]},set(e){this.#t[a]=e},enumerable:!0});this.#t.$set=a=>{Object.assign(m,a)},this.#t.$destroy=()=>{vt(this.#t)}}$set(t){this.#t.$set(t)}$on(t,o){this.#r[t]=this.#r[t]||[];const n=(...m)=>o.call(this,...m);return this.#r[t].push(n),()=>{this.#r[t]=this.#r[t].filter(m=>m!==n)}}$destroy(){this.#t.$destroy()}}const wt={};var Pt=G('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),Ot=G("<!> <!>",1);function Rt(_,t){at(t,!0);let o=D(t,"components",23,()=>[]),n=D(t,"data_0",3,null),m=D(t,"data_1",3,null),a=D(t,"data_2",3,null);ot(()=>t.stores.page.set(t.page)),_t(()=>{t.stores,t.page,t.constructors,o(),t.form,n(),m(),a(),t.stores.page.notify()});let e=k(!1),u=k(!1),w=k(null);Et(()=>{const i=t.stores.page.subscribe(()=>{s(e)&&(T(u,!0),it().then(()=>{T(w,document.title||"untitled page",!0)}))});return T(e,!0),i});const Q=L(()=>t.constructors[2]);var C=Ot(),S=f(C);{var W=i=>{const d=L(()=>t.constructors[0]);var l=g(),h=f(l);A(h,()=>s(d),(v,E)=>{I(E(v,{get data(){return n()},get form(){return t.form},get params(){return t.page.params},children:(P,At)=>{var M=g(),F=f(M);{var H=p=>{const b=L(()=>t.constructors[1]);var O=g(),y=f(O);A(y,()=>s(b),(j,x)=>{I(x(j,{get data(){return m()},get form(){return t.form},get params(){return t.page.params},children:(R,It)=>{var z=g(),K=f(z);A(K,()=>s(Q),(U,X)=>{I(X(U,{get data(){return a()},get form(){return t.form},get params(){return t.page.params}}),Z=>o()[2]=Z,()=>o()?.[2])}),c(R,z)},$$slots:{default:!0}}),R=>o()[1]=R,()=>o()?.[1])}),c(p,O)},J=p=>{const b=L(()=>t.constructors[1]);var O=g(),y=f(O);A(y,()=>s(b),(j,x)=>{I(x(j,{get data(){return m()},get form(){return t.form},get params(){return t.page.params}}),R=>o()[1]=R,()=>o()?.[1])}),c(p,O)};V(F,p=>{t.constructors[2]?p(H):p(J,-1)})}c(P,M)},$$slots:{default:!0}}),P=>o()[0]=P,()=>o()?.[0])}),c(i,l)},Y=i=>{const d=L(()=>t.constructors[0]);var l=g(),h=f(l);A(h,()=>s(d),(v,E)=>{I(E(v,{get data(){return n()},get form(){return t.form},get params(){return t.page.params}}),P=>o()[0]=P,()=>o()?.[0])}),c(i,l)};V(S,i=>{t.constructors[1]?i(W):i(Y,-1)})}var q=mt(S,2);{var B=i=>{var d=Pt(),l=nt(d);{var h=v=>{var E=pt();ct(()=>ft(E,s(w))),c(v,E)};V(l,v=>{s(u)&&v(h)})}ut(d),c(i,d)};V(q,i=>{s(e)&&i(B)})}c(_,C),st()}const Ct=gt(Rt),St=[()=>r(()=>import("../nodes/0.Dr3zOYh5.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]),import.meta.url),()=>r(()=>import("../nodes/1.BinGQMTR.js"),__vite__mapDeps([17,1,2,18,19,11,8,3,20,12,5,13,7,21,22,23,4,24,25,26,27]),import.meta.url),()=>r(()=>import("../nodes/2.BVRyhmlu.js"),__vite__mapDeps([28,1,2,3,4,5,29,12,13,8,18,19,11,7,30,22,31,9,10,21,23,26,32,33,34,35,36,37,25,38,39,40,41,42,43,44,45,46]),import.meta.url),()=>r(()=>import("../nodes/3.CUC4G9Nh.js"),__vite__mapDeps([47,1,2,3,18,19,11,8,20,12,5,13,7,21,22,23,4,24,25,26,27]),import.meta.url),()=>r(()=>import("../nodes/4.CieI7_Lb.js"),__vite__mapDeps([48,1,2,3,4,5]),import.meta.url),()=>r(()=>import("../nodes/5.Ch3zJDwF.js"),__vite__mapDeps([49,1,2,3,4,5,29,12,13,8,18,19,11,7,30,22,31,9,10,21,23,26,32,33,34,35,36,37,25,38,39,40,41]),import.meta.url),()=>r(()=>import("../nodes/6.BMl8cugB.js"),__vite__mapDeps([50,1,2,13,5,8,3,4,12,51,19,11,29,18,7,30,22,31,9,10,21,23,26,32,33,34,35,36,37,25,38,39,40,41,42,52,53,54,55,45]),import.meta.url),()=>r(()=>import("../nodes/7.DKBYaDzG.js"),__vite__mapDeps([56,1,2,8,3,12,5,6,18,19,11,29,4,13,7,30,22,31,9,10,21,23,26,32,33,34,35,36,37,25,38,39,40,41]),import.meta.url),()=>r(()=>import("../nodes/8.oeqwCIb7.js"),__vite__mapDeps([57,1,2,8,3,12,5,13,6,7,18,19,11,21,22,23,4,58,30,59,60,34,61,62]),import.meta.url),()=>r(()=>import("../nodes/9.JvVEXEt0.js"),__vite__mapDeps([63,1,2,8,3,7,13,5,6,18,19,11,64,27,4,22,65,30,66,12,24,40,43,45]),import.meta.url),()=>r(()=>import("../nodes/10.lZeHcKpq.js"),__vite__mapDeps([67,1,2,8,3,12,5,7,13,6,66,4,27,22,68,30,60,34,69,35,70,26,38,36,10,11,62,71,61,21,23,72,24,46,73,74,75]),import.meta.url),()=>r(()=>import("../nodes/11.B3nd7eqm.js"),__vite__mapDeps([76,1,11,2,8,3,12,5,7,13,6,19,77,66,4,27,22,78,45,30,79,21,23,61,62,80,81,82,83,84,15,74]),import.meta.url),()=>r(()=>import("../nodes/12.C3AQ8jKc.js"),__vite__mapDeps([85,1,2,8,3,12,5,13,6,66,4,7,27,22,78,43,30,86]),import.meta.url),()=>r(()=>import("../nodes/13.BhyPMdJg.js"),__vite__mapDeps([87,1,2,8,3,12,5,7,13,6,19,11,66,4,21,22,23,79,30,27,78,44,86,60,34,61,62,15]),import.meta.url),()=>r(()=>import("../nodes/14.BCskMTTX.js"),__vite__mapDeps([88,1,2,8,3,12,5,7,13,6,62,19,11,89,30,4,22,66,90,34,35,10,41,39,27,21,23,79,60,61,82,78,86,15,72]),import.meta.url),()=>r(()=>import("../nodes/15.DFduRu8X.js"),__vite__mapDeps([91,1,2,8,3,12,5,7,13,6,24,4,22,92,27,21,23,81,30,93,33,34,35,36,10,94,66]),import.meta.url),()=>r(()=>import("../nodes/16.k2eOyLft.js"),__vite__mapDeps([95,1,2,8,3,12,5,7,13,6,19,11,96,30,4,22,97,21,23,82,74,75,66,27,61,62,15,72,78,68,79,24,92,98]),import.meta.url),()=>r(()=>import("../nodes/17.UOq3rPnW.js"),__vite__mapDeps([99,1,2,3,13,5,8,6,18,19,11,98,30,4,7,22,59,23]),import.meta.url),()=>r(()=>import("../nodes/18.Cl9SXwAF.js"),__vite__mapDeps([100,1,2,6]),import.meta.url),()=>r(()=>import("../nodes/19.BfnNfjHd.js"),__vite__mapDeps([101,1,2,8,3,12,5,7,19,11,102,4,62,13,22,103,26,32,33,34,35,36,10,84,30,65,29,18,31,9,21,23,37,25,38,39,40,41,66,72,78,15]),import.meta.url),()=>r(()=>import("../nodes/20.BwMu_6dK.js"),__vite__mapDeps([104,1,2,3,12,5,31,4,7,8,13,9,10,21,22,23,26,32,33,34,35,36,37,25,38,18,19,11,30,45,105,62,77,103,70,69,71,14,90,27,24,92,60,61,83,106,107]),import.meta.url),()=>r(()=>import("../nodes/21.BlFRuNYB.js"),__vite__mapDeps([108,1,2,8,3,12,5,7,13,6,18,19,11,58,30,4,22,59,23,21,60,34,61,62]),import.meta.url),()=>r(()=>import("../chunks/jO1WSR3P.js").then(_=>_._),[],import.meta.url),()=>r(()=>import("../nodes/23.lhoyDlwS.js"),__vite__mapDeps([109,1,2,13,5,8,3,12,36,35,4,34,7,10,6,19,11,51,110,62,22,38,26,103,70,111,30,32,33,60,61,90,21,23,106,73,72,15,79,97,40,82,78,112,102,84,65,93,96,94,55,80,89,66,39]),import.meta.url),()=>r(()=>import("../nodes/24.BHPSI0Zf.js"),__vite__mapDeps([113,1,2,8,3,12,5,7,13,6,18,19,11,58,30,4,22,59,23,21,60,34,61,62]),import.meta.url),()=>r(()=>import("../nodes/25.Boy7QQiW.js"),__vite__mapDeps([114,1,2,8,3,12,5,7,13,6,64,27,4,22,65,30,66,24,43,40,52]),import.meta.url),()=>r(()=>import("../nodes/26.JTwwV2O8.js"),__vite__mapDeps([115,1,2,3,13,5,8,6,66,4,12,7,27,22,68,30,24,54]),import.meta.url),()=>r(()=>import("../nodes/27.C1icpz7z.js"),__vite__mapDeps([116,1,2,8,3,12,5,7,13,6,18,19,11,66,4,21,22,23,15,24,92,27,110,62,38,26,103,70,78,45,30,73,79,61,82,83,84]),import.meta.url),()=>r(()=>import("../nodes/28.BJgC5M9K.js"),__vite__mapDeps([117,1,2,8,3,12,5,7,13,6,19,11,96,30,4,22,66,21,23,98,24,92,27,78,112,15,61,62,72,82]),import.meta.url),()=>r(()=>import("../nodes/29.D1pyBnax.js"),__vite__mapDeps([118,1,2,8,3,12,5,7,13,6,19,11,66,4,27,22,78,52,30,86,93,33,34,35,36,10,21,23,82,15,79,61,62]),import.meta.url),()=>r(()=>import("../nodes/30.D0ffyv91.js"),__vite__mapDeps([119,1,2,8,3,12,5,13,6,7,19,11,66,4,27,22,78,111,30,86,93,33,34,35,36,10,21,23,53,15]),import.meta.url),()=>r(()=>import("../nodes/31.SiZTd523.js"),__vite__mapDeps([120,1,2,8,3,12,5,13,6,66,4,7,24,22,92,27,30,82]),import.meta.url),()=>r(()=>import("../nodes/32.9Ta_FSIA.js"),__vite__mapDeps([121,1,2,3,13,5,8,6,66,4,12,7,27,22,68,30,24,55]),import.meta.url)],Mt=[0,2,5,6],zt={"/":[-8],"/accept-invite":[-9],"/admin":[-10,[2],[3]],"/admin/audit":[-11,[2],[3]],"/admin/compute":[-12,[2],[3]],"/admin/organizations":[-13,[2],[3]],"/admin/projects":[-14,[2],[3]],"/admin/projects/[id]":[-15,[2],[3]],"/admin/system":[-16,[2],[3]],"/admin/users":[-17,[2],[3]],"/auth/email/sent":[17],"/auth/email/start":[-19],"/library":[-20,[4]],"/library/[guid]":[-21,[4]],"/login":[-22],"/logout":[22],"/projects":[-24,[5]],"/setup":[-25],"/team":[-26,[6]],"/team/activity":[26,[6]],"/team/compute":[-28,[6]],"/team/members":[-29,[6]],"/team/projects":[-30,[6]],"/team/reclaim":[-31,[6]],"/team/settings":[-32,[6]],"/team/shares":[-33,[6]]},N={handleError:(({error:_})=>{console.error(_)}),reroute:(()=>{}),transport:{}},Lt=Object.fromEntries(Object.entries(N.transport).map(([_,t])=>[_,t.decode])),Gt=Object.fromEntries(Object.entries(N.transport).map(([_,t])=>[_,t.encode])),Nt=!1,Qt=(_,t)=>Lt[_](t);export{Qt as decode,Lt as decoders,zt as dictionary,Gt as encoders,Nt as hash,N as hooks,wt as matchers,St as nodes,Ct as root,Mt as server_loads};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as o,s as r}from"../chunks/DoPqAbzy.js";export{o as load_css,r as start};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as i,aN as n,af as e,bk as t}from"../chunks/DEk358l3.js";import{p as r}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as i,aN as n,af as e,bk as t}from"../chunks/DEk358l3.js";import{p as r}from"../chunks/cFjfoNla.js";import{E as m}from"../chunks/B21bldal.js";function l(o,s){i(s,!0);{let a=t(()=>r.error?.message),p=t(()=>r.error&&typeof r.error=="object"&&"details"in r.error?r.error.details:void 0);m(o,{get status(){return r.status},get message(){return e(a)},get details(){return e(p)}})}n()}export{l as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{o as dt}from"../chunks/CsdWDH4Y.js";import{ba as ge,aP as xe,af as t,a_ as h,aQ as ut,bl as Le,bh as ct,aN as vt,a8 as pt,V as n,$ as ft,b7 as o,ac as ee,aJ as fe,aW as s,aK as Pe,be as j,bk as y,bg as mt}from"../chunks/DEk358l3.js";import{d as ht,e as Y,s as W}from"../chunks/T-Nslbso.js";import{i as k}from"../chunks/BnZOgasr.js";import{e as Ne,j as we,r as gt,h as xt}from"../chunks/6CzuHfQM.js";import{a as d,f as p,c as Ve,t as Re}from"../chunks/DS1KfRtl.js";import{a as _t,r as bt,c as He}from"../chunks/DCBLBrrW.js";import{h as yt}from"../chunks/DfVTcmam.js";import{i as kt}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{o as dt}from"../chunks/CsdWDH4Y.js";import{ba as ge,aP as xe,af as t,a_ as h,aQ as ut,bl as Le,bh as ct,aN as vt,a8 as pt,V as n,$ as ft,b7 as o,ac as ee,aJ as fe,aW as s,aK as Pe,be as j,bk as y,bg as mt}from"../chunks/DEk358l3.js";import{d as ht,e as Y,s as W}from"../chunks/T-Nslbso.js";import{i as k}from"../chunks/BnZOgasr.js";import{e as Ne,j as we,r as gt,h as xt}from"../chunks/6CzuHfQM.js";import{a as d,f as p,c as Ve,t as Re}from"../chunks/DS1KfRtl.js";import{a as _t,r as bt,c as He}from"../chunks/DCBLBrrW.js";import{h as yt}from"../chunks/DfVTcmam.js";import{i as kt}from"../chunks/DoPqAbzy.js";import{S as wt}from"../chunks/C33A5aSj.js";import{S as Ct}from"../chunks/BiG82jCv.js";import{a as St,C as Kt}from"../chunks/B1z9if9B.js";import{E as $t}from"../chunks/BnIDUuJL.js";import{S as Mt}from"../chunks/DeMiewtM.js";import{P as Ye}from"../chunks/BOsr6E_d.js";import{B as me}from"../chunks/CGKZc1Kf.js";import{I as he}from"../chunks/CDmA5ezP.js";import{C as At}from"../chunks/DtFVCiwY.js";import{R as It}from"../chunks/snZK0J5H.js";import{T as Wt}from"../chunks/DqK2lhM-.js";import{r as Pt}from"../chunks/Cbu9Tg11.js";import{S as Nt}from"../chunks/BEFa4rcT.js";import{t as Te}from"../chunks/BfHBnYuG.js";import{I as Vt}from"../chunks/CE_gxD9G.js";import{C as Be}from"../chunks/CIHhLSqA.js";function Fe(ie,u){let P=bt(u,["$$slots","$$events","$$legacy"]);const te=[["path",{d:"m18 15-6-6-6 6"}]];Vt(ie,_t({name:"chevron-up"},()=>P,{get iconNode(){return te}}))}const Rt=6e4,Tt=5e3;function Ot(ie){let u=ge(xe({state:"idle",reachable:!1,rhinoVersion:null,computeVersion:null,selvaInstalled:!1,selvaVersion:null,plugins:{}})),P=null,te=0,_=!1;async function Ce(){if(_)return!1;try{const V=await fetch(`/admin/api/compute/status?serverId=${ie()}`);if(_)return!1;if(!V.ok)return h(u,{...t(u),reachable:!1},!0),!1;const w=await V.json();return h(u,{reachable:w.reachable,rhinoVersion:w.rhinoVersion,computeVersion:w.computeVersion,selvaInstalled:w.selvaInstalled,selvaVersion:w.selvaVersion,plugins:w.plugins??{},state:w.reachable?w.selvaInstalled?"ok":"warning":"error"},!0),w.reachable}catch{return _||h(u,{...t(u),reachable:!1},!0),!1}}async function f(){const V=await Ce();_||V||(Date.now()<te?(h(u,{...t(u),state:"checking"},!0),P=setTimeout(f,Tt)):h(u,{...t(u),state:"error",reachable:!1},!0))}function K(){_||(P!==null&&(clearTimeout(P),P=null),te=Date.now()+Rt,h(u,{...t(u),state:"checking"},!0),f())}function Q(){_=!0,P!==null&&(clearTimeout(P),P=null)}return{get state(){return t(u)},check:K,stop:Q}}var Ut=p('<button class="text-muted-foreground hover:text-foreground ml-auto flex items-center gap-1 text-xs"> <!></button>'),Et=p('<p class="text-muted-foreground text-xs">No organizations exist yet.</p>'),jt=p('<label class="hover:bg-muted/40 flex items-center gap-2 rounded px-2 py-1 text-xs"><input type="checkbox" class="h-3.5 w-3.5"/> <span class="truncate"> </span> <span class="text-muted-foreground ml-auto font-mono text-[10px]"> </span></label>'),zt=p('<div class="grid gap-1 sm:grid-cols-2"></div>'),Dt=p(`<p class="text-muted-foreground text-xs">This server is the global default — it stays visible to every org regardless of the
|
|
2
2
|
allowlist.</p>`),Lt=p('<p class="text-muted-foreground text-xs">No orgs selected — this server is dormant (admin-only).</p>'),Ht=p('<div class="space-y-2"><div class="flex items-center gap-3"><p class="text-muted-foreground text-xs">Available to</p> <div class="bg-muted inline-flex rounded-md p-0.5"><button>All orgs</button> <button>Specific orgs</button></div> <!></div> <!> <!></div>'),Yt=p('<span class="flex items-center gap-1 rounded-full bg-green-100 px-2 py-0.5 text-xs font-medium text-green-800 dark:bg-green-900/30 dark:text-green-400"><!> default</span>'),Bt=p('<button class="text-muted-foreground hover:text-foreground text-xs underline-offset-2 hover:underline">set as default</button>'),Ft=p("<!> ",1),Gt=p("<!> <!>",1),Jt=p('<span class="text-red-600 dark:text-red-400">Not installed</span>'),qt=p('<div class="grid grid-cols-3 gap-2"><div class="bg-muted/40 rounded-md px-3 py-2"><p class="text-muted-foreground text-xs">Rhino</p> <p class="mt-0.5 text-xs font-medium"> </p></div> <div class="bg-muted/40 rounded-md px-3 py-2"><p class="text-muted-foreground text-xs">Compute</p> <p class="mt-0.5 text-xs font-medium"> </p></div> <div class="bg-muted/40 rounded-md px-3 py-2"><p class="text-muted-foreground text-xs">Selva Plugin</p> <p class="mt-0.5 text-xs font-medium"><!></p></div></div>'),Qt=p('<button class="text-muted-foreground hover:text-destructive shrink-0 text-xs underline-offset-2 hover:underline">Clear</button>'),Xt=p('<button class="text-muted-foreground hover:text-foreground shrink-0 text-xs underline-offset-2 hover:underline">Undo</button>'),Zt=p('<div class="bg-muted/40 flex items-center justify-between rounded-md px-3 py-1.5"><span class="text-xs font-medium"> </span> <span class="text-muted-foreground text-xs"> </span></div>'),ea=p('<div class="mt-2 grid gap-1.5 sm:grid-cols-2 lg:grid-cols-3"></div>'),ta=p('<div><button class="text-muted-foreground hover:text-foreground flex items-center gap-1 text-xs"><!> </button> <!></div>'),aa=p('<div><div class="flex items-center justify-between"><div class="flex items-center gap-2"><!> <!></div> <div class="flex items-center gap-3"><div class="flex items-center gap-1.5"><!> <span> </span></div> <!> <!> <!></div></div> <!> <div class="grid gap-2 sm:grid-cols-2"><div class="space-y-1"><p class="text-muted-foreground text-xs">Server URL</p> <!></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">API Key (optional)</p> <div class="flex gap-1.5"><!> <!></div></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">Timeout (ms)</p> <!></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">Retries</p> <!></div></div> <!> <!></div>'),ra=p("<!> Add server",1),oa=p('<!> <button type="button" class="border-muted-foreground/30 text-muted-foreground hover:border-foreground/50 hover:text-foreground hover:bg-muted/30 flex w-full items-center justify-center gap-2 rounded-lg border border-dashed py-4 text-sm font-medium transition-colors"><!> Add another server</button>',1),sa=p('<div class="space-y-6"><!> <!></div>');function Pa(ie,u){ut(u,!0);const P=(a,e=Pe)=>{const l=y(()=>e().sharedWith==="all"),v=y(()=>t(l)?new Set:new Set(e().sharedWith)),x=y(()=>e().id===t(K));var b=Ht(),I=n(b),B=o(n(I),2),R=n(B),X=o(R,2);s(B);var F=o(B,2);{var ae=c=>{var g=Ut(),$=n(g),U=o($);{var J=S=>{Fe(S,{class:"h-3 w-3"})},E=S=>{Be(S,{class:"h-3 w-3"})};k(U,S=>{_e[e().id]?S(J):S(E,-1)})}s(g),j(()=>W($,`${t(v).size??""}/${u.data.orgs.length??""} selected `)),Y("click",g,()=>_e[e().id]=!_e[e().id]),d(c,g)};k(F,c=>{!t(l)&&u.data.orgs.length>0&&c(ae)})}s(I);var re=o(I,2);{var le=c=>{var g=Ve(),$=ee(g);{var U=E=>{var S=Et();d(E,S)},J=E=>{var S=zt();Ne(S,21,()=>u.data.orgs,oe=>oe.id,(oe,se)=>{var Z=jt(),q=n(Z);gt(q);var de=o(q,2),ue=n(de,!0);s(de);var ce=o(de,2),be=n(ce,!0);s(ce),s(Z),j($e=>{xt(q,$e),W(ue,t(se).name),W(be,t(se).slug)},[()=>t(v).has(t(se).id)]),Y("change",q,()=>qe(e(),t(se).id)),d(oe,Z)}),s(S),d(E,S)};k($,E=>{u.data.orgs.length===0?E(U):E(J,-1)})}d(c,g)};k(re,c=>{!t(l)&&_e[e().id]&&c(le)})}var T=o(re,2);{var G=c=>{var g=Dt();d(c,g)},O=c=>{var g=Lt();d(c,g)};k(T,c=>{!t(l)&&t(x)?c(G):!t(l)&&t(v).size===0&&c(O,1)})}s(b),j(()=>{we(R,1,`rounded px-2 py-0.5 text-xs ${t(l)?"bg-background shadow-sm":"text-muted-foreground hover:text-foreground"}`),we(X,1,`rounded px-2 py-0.5 text-xs ${t(l)?"text-muted-foreground hover:text-foreground":"bg-background shadow-sm"}`)}),Y("click",R,()=>Ue(e(),!0)),Y("click",X,()=>Ue(e(),!1)),d(a,b)},te=(a,e=Pe,l=Pe)=>{const v=y(()=>t(C)[e().id]?.state),x=y(()=>Ce[t(v)?.state??"idle"]),b=y(()=>t(v)?.state==="checking"),I=y(()=>Object.entries(t(v)?.plugins??{})),B=y(()=>V.has(e().id));var R=aa(),X=n(R),F=n(X),ae=n(F);he(ae,{placeholder:"label",get value(){return e().label},oninput:r=>{const i=r.target;e().label=i.value.toLowerCase().replace(/[^a-z0-9_-]/g,""),i.value=e().label,N(e().id)},class:"h-7 w-32 font-mono text-xs"});var re=o(ae,2);{var le=r=>{var i=Yt(),m=n(i);Nt(m,{class:"h-3 w-3"}),fe(),s(i),d(r,i)},T=r=>{var i=Bt();Y("click",i,()=>{h(K,e().id,!0),N(e().id)}),d(r,i)};k(re,r=>{e().id===t(K)?r(le):r(T,-1)})}s(F);var G=o(F,2),O=n(G),c=n(O);At(c,{get class(){return`h-2.5 w-2.5 shrink-0 fill-current ${t(x).color??""}`}});var g=o(c,2),$=n(g,!0);s(g),s(O);var U=o(O,2);me(U,{variant:"outline",size:"sm",onclick:()=>t(C)[e().id]?.check(),get disabled(){return t(b)},class:"h-7",title:"Probe this server's availability (retries for up to 1 min)",children:(r,i)=>{var m=Ft(),M=ee(m);{let D=y(()=>t(b)?"animate-spin":"");It(M,{get class(){return`mr-1.5 h-3.5 w-3.5 ${t(D)??""}`}})}var z=o(M);j(()=>W(z,` ${t(b)?"Checking…":"Check"}`)),d(r,m)},$$slots:{default:!0}});var J=o(U,2);{var E=r=>{var i=Gt(),m=ee(i);me(m,{variant:"ghost",size:"sm",onclick:()=>Ge(e().id),get disabled(){return t(Q)},class:"text-muted-foreground hover:text-foreground h-7",children:(z,D)=>{fe();var L=Re("Discard");d(z,L)},$$slots:{default:!0}});var M=o(m,2);me(M,{size:"sm",onclick:Qe,get disabled(){return t(Q)},class:"h-7",children:(z,D)=>{fe();var L=Re();j(()=>W(L,t(Q)?"Saving…":"Save changes")),d(z,L)},$$slots:{default:!0}}),d(r,i)};k(J,r=>{t(B)&&r(E)})}var S=o(J,2);{let r=y(()=>e().id===t(K)),i=y(()=>e().id===t(K)?"Set another server as default before deleting":void 0);me(S,{variant:"ghost",size:"sm",onclick:()=>Je(l()),get disabled(){return t(r)},get title(){return t(i)},class:"text-destructive hover:text-destructive h-7 w-7 p-0",children:(m,M)=>{Wt(m,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}})}s(G),s(X);var oe=o(X,2);{var se=r=>{var i=qt(),m=n(i),M=o(n(m),2),z=n(M,!0);s(M),s(m);var D=o(m,2),L=o(n(D),2),Ae=n(L,!0);s(L),s(D);var ye=o(D,2),A=o(n(ye),2),ve=n(A);{var pe=H=>{var ne=Re();j(()=>W(ne,t(v).selvaVersion)),d(H,ne)},ke=H=>{var ne=Jt();d(H,ne)};k(ve,H=>{t(v).selvaInstalled?H(pe):H(ke,-1)})}s(A),s(ye),s(i),j(()=>{W(z,t(v).rhinoVersion??"-"),W(Ae,t(v).computeVersion??"-")}),d(r,i)};k(oe,r=>{t(v)?.reachable&&r(se)})}var Z=o(oe,2),q=n(Z),de=o(n(q),2);he(de,{placeholder:"http://localhost:5000",oninput:()=>N(e().id),class:"font-mono text-xs",get value(){return e().serverUrl},set value(r){e().serverUrl=r}}),s(q);var ue=o(q,2),ce=o(n(ue),2),be=n(ce);{let r=y(()=>e().hasApiKey&&e().apiKey!==_&&!e().apiKey?"Key set - enter new value to replace":e().apiKey===_?"Key will be cleared on save":""),i=y(()=>e().apiKey===_?"":e().apiKey),m=y(()=>e().apiKey===_);he(be,{type:"password",get placeholder(){return t(r)},get value(){return t(i)},get disabled(){return t(m)},oninput:M=>{e().apiKey=M.target.value,N(e().id)},class:"font-mono text-xs"})}var $e=o(be,2);{var Ze=r=>{var i=Qt();Y("click",i,()=>{e().apiKey=_,N(e().id)}),d(r,i)},et=r=>{var i=Xt();Y("click",i,()=>e().apiKey=""),d(r,i)};k($e,r=>{e().hasApiKey&&e().apiKey!==_&&!e().apiKey?r(Ze):e().apiKey===_&&r(et,1)})}s(ce),s(ue);var Me=o(ue,2),tt=o(n(Me),2);he(tt,{type:"number",placeholder:"30000",oninput:()=>N(e().id),onblur:()=>{e().timeoutMs=Math.min(3e5,Math.max(1e3,Number(e().timeoutMs)||3e4))},class:"text-xs",get value(){return e().timeoutMs},set value(r){e().timeoutMs=r}}),s(Me);var je=o(Me,2),at=o(n(je),2);he(at,{type:"number",placeholder:"0",oninput:()=>N(e().id),onblur:()=>{e().retryCount=Math.min(5,Math.max(0,Number(e().retryCount)||0))},class:"text-xs",get value(){return e().retryCount},set value(r){e().retryCount=r}}),s(je),s(Z);var ze=o(Z,2);{var rt=r=>{P(r,e)};k(ze,r=>{u.data.tenancy!=="single"&&r(rt)})}var ot=o(ze,2);{var st=r=>{var i=ta(),m=n(i),M=n(m);{var z=A=>{Fe(A,{class:"h-3 w-3"})},D=A=>{Be(A,{class:"h-3 w-3"})};k(M,A=>{w[e().id]?A(z):A(D,-1)})}var L=o(M);s(m);var Ae=o(m,2);{var ye=A=>{var ve=ea();Ne(ve,21,()=>t(I),([pe,ke])=>pe,(pe,ke)=>{var H=y(()=>mt(t(ke),2));let ne=()=>t(H)[0],nt=()=>t(H)[1];var Ie=Zt(),We=n(Ie),it=n(We,!0);s(We);var De=o(We,2),lt=n(De,!0);s(De),s(Ie),j(()=>{W(it,ne()),W(lt,nt())}),d(pe,Ie)}),s(ve),d(A,ve)};k(Ae,A=>{w[e().id]&&A(ye)})}s(i),j(()=>W(L,` ${t(I).length??""} Grasshopper plugin${t(I).length===1?"":"s"}`)),Y("click",m,()=>w[e().id]=!w[e().id]),d(r,i)};k(ot,r=>{t(v)?.reachable&&t(I).length>0&&r(st)})}s(R),j(()=>{we(R,1,`space-y-3 rounded-lg border p-4 transition-colors ${t(B)?"border-amber-400/60 bg-amber-50/30 dark:border-amber-500/40 dark:bg-amber-950/10":"bg-muted/30"}`),we(g,1,`text-xs font-medium ${t(x).color??""}`),W($,t(x).label)}),d(a,R)},_="__clear__",Ce={idle:{label:"Not checked",color:"text-muted-foreground"},ok:{label:"Online",color:"text-green-600 dark:text-green-400"},warning:{label:"Warning",color:"text-yellow-600 dark:text-yellow-400"},error:{label:"Offline",color:"text-red-600 dark:text-red-400"},checking:{label:"Checking…",color:"text-blue-600 dark:text-blue-400"}};let f=ge(xe([])),K=ge(""),Q=ge(!1);const V=new wt;let w=xe({}),_e=xe({});function N(a){V.add(a)}function Ge(a){V.delete(a);const e=u.data.servers.find(v=>v.id===a),l=t(f).findIndex(v=>v.id===a);if(!(l<0)){if(!e){t(C)[a]?.stop();const{[a]:v,...x}=t(C);h(C,x,!0),h(f,t(f).filter(b=>b.id!==a),!0);return}t(f)[l]={id:e.id,label:e.label,serverUrl:e.serverUrl,sharedWith:e.sharedWith==="all"?"all":[...e.sharedWith],timeoutMs:e.timeoutMs??3e4,retryCount:e.retryCount??0,apiKey:"",hasApiKey:e.hasApiKey},h(K,u.data.defaultServerId,!0)}}let C=ge(xe({}));function Se(a){return t(C)[a]||(t(C)[a]=Ot(()=>a)),t(C)[a]}Le(()=>{V.size===0&&(h(f,u.data.servers.map(a=>({id:a.id,label:a.label,serverUrl:a.serverUrl,sharedWith:a.sharedWith==="all"?"all":[...a.sharedWith],timeoutMs:a.timeoutMs??3e4,retryCount:a.retryCount??0,apiKey:"",hasApiKey:a.hasApiKey})),!0),h(K,u.data.defaultServerId,!0))}),Le(()=>{const a=u.data.servers.map(e=>e.id);ct(()=>{for(const e of a)Se(e)})}),dt(()=>{for(const a of Object.values(t(C)))a.stop()});function Oe(){const a=Pt();t(f).length===0&&h(K,a,!0),h(f,[...t(f),{id:a,label:"new-server",serverUrl:"http://localhost:5000",sharedWith:"all",apiKey:"",hasApiKey:!1,timeoutMs:3e4,retryCount:0}],!0),Se(a),N(a)}function Je(a){const e=t(f)[a];t(C)[e.id]?.stop();const{[e.id]:l,...v}=t(C);h(C,v,!0),h(f,t(f).filter((x,b)=>b!==a),!0),t(K)===e.id&&t(f)[0]&&h(K,t(f)[0].id,!0);for(const x of t(f))N(x.id)}function Ue(a,e){a.sharedWith=e?"all":[],N(a.id)}function qe(a,e){a.sharedWith!=="all"&&(a.sharedWith=a.sharedWith.includes(e)?a.sharedWith.filter(l=>l!==e):[...a.sharedWith,e],N(a.id))}async function Qe(){h(Q,!0);try{const a={defaultServerId:t(K),servers:t(f).map(({apiKey:l,hasApiKey:v,retryCount:x,timeoutMs:b,...I})=>({...I,timeoutMs:Math.min(3e5,Math.max(1e3,Number(b)||3e4)),...l===_?{apiKey:null}:l?{apiKey:l}:{},...Number(x)?{retryCount:Math.min(5,Math.max(0,Number(x)))}:{}}))},e=await fetch("/admin/api/compute",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(e.ok){Te.success("Compute config saved"),await kt(),V.clear();for(const l of Object.values(t(C)))l.stop();h(C,{},!0);for(const l of t(f))Se(l.id)}else{const l=await e.json().catch(()=>({error:"Unknown error"}));Te.error(l.message||l.error||`Failed to save (${e.status})`)}}catch{Te.error("Failed to save compute config")}finally{h(Q,!1)}}var Ke=sa();yt("1h8e46q",a=>{pt(()=>{ft.title="Admin · Compute"})});var Ee=n(Ke);Ct(Ee,{eyebrow:"Admin",title:"Compute",description:"Manage compute servers. Share servers with specific orgs to expose them in pickers. When ALLOW_ORG_COMPUTE_OVERRIDE is on, org owners can configure their own servers."});var Xe=o(Ee,2);He(Xe,()=>Kt,(a,e)=>{e(a,{children:(l,v)=>{var x=Ve(),b=ee(x);He(b,()=>St,(I,B)=>{B(I,{class:"space-y-3 pt-6",children:(R,X)=>{var F=Ve(),ae=ee(F);{var re=T=>{$t(T,{get icon(){return Mt},title:"No servers configured",actions:O=>{me(O,{variant:"outline",size:"sm",onclick:Oe,children:(c,g)=>{var $=ra(),U=ee($);Ye(U,{class:"mr-1.5 h-3.5 w-3.5"}),fe(),d(c,$)},$$slots:{default:!0}})},$$slots:{actions:!0}})},le=T=>{var G=oa(),O=ee(G);Ne(O,19,()=>t(f),$=>$.id,($,U,J)=>{te($,()=>t(U),()=>t(J))});var c=o(O,2),g=n(c);Ye(g,{class:"h-4 w-4"}),fe(),s(c),Y("click",c,Oe),d(T,G)};k(ae,T=>{t(f).length===0?T(re):T(le,-1)})}d(R,F)},$$slots:{default:!0}})}),d(l,x)},$$slots:{default:!0}})}),s(Ke),d(ie,Ke),vt()}ht(["click","change"]);export{Pa as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as pt,bl as ut,af as a,a_ as l,aN as vt,ba as S,a8 as ft,ac as _,V as d,$ as _t,aJ as g,b7 as o,aK as gt,aW as i,be as V}from"../chunks/DEk358l3.js";import{s as b}from"../chunks/T-Nslbso.js";import{a as s,f as D,c as B,t as k}from"../chunks/DS1KfRtl.js";import{i as rt}from"../chunks/BnZOgasr.js";import{g as ht,e as $t,b as wt}from"../chunks/6CzuHfQM.js";import{c as F}from"../chunks/DCBLBrrW.js";import{h as xt}from"../chunks/DfVTcmam.js";import{i as bt,g as yt}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as pt,bl as ut,af as a,a_ as l,aN as vt,ba as S,a8 as ft,ac as _,V as d,$ as _t,aJ as g,b7 as o,aK as gt,aW as i,be as V}from"../chunks/DEk358l3.js";import{s as b}from"../chunks/T-Nslbso.js";import{a as s,f as D,c as B,t as k}from"../chunks/DS1KfRtl.js";import{i as rt}from"../chunks/BnZOgasr.js";import{g as ht,e as $t,b as wt}from"../chunks/6CzuHfQM.js";import{c as F}from"../chunks/DCBLBrrW.js";import{h as xt}from"../chunks/DfVTcmam.js";import{i as bt,g as yt}from"../chunks/DoPqAbzy.js";import{S as Pt}from"../chunks/BiG82jCv.js";import{B as W}from"../chunks/CGKZc1Kf.js";import{P as jt}from"../chunks/BOsr6E_d.js";import{a as st,C as ot}from"../chunks/B1z9if9B.js";import{E as Ct}from"../chunks/BnIDUuJL.js";import{F as Nt}from"../chunks/Dn_lJm0y.js";import{D as Ot}from"../chunks/DkpwXYYZ.js";import{L as R}from"../chunks/Uv0-HWHq.js";import{I as it}from"../chunks/CDmA5ezP.js";import{t as U}from"../chunks/BfHBnYuG.js";var St=D("<!> New project",1),kt=D("<option> </option>"),Dt=D(`<div class="space-y-1.5"><!> <!></div> <div class="space-y-1.5"><!> <!></div> <div class="space-y-1.5"><!> <select id="new-org" class="border-input bg-background h-10 w-full rounded-md border px-3 text-sm"></select> <p class="text-muted-foreground text-xs">Storage and compute use this org. Membership in this org does NOT grant access —
|
|
2
2
|
visibility = platform overrides.</p></div> <div class="flex justify-end gap-2 pt-2"><!> <!></div>`,1),Tt=D('<a class="min-w-0 hover:underline"><p class="truncate text-sm font-medium"> </p> <p class="text-muted-foreground truncate font-mono text-xs"> </p></a> <span class="truncate text-sm"> </span> <span class="text-muted-foreground text-right text-xs"> </span>',1),zt=D('<div class="space-y-6"><!> <!> <!></div>');function Zt(nt,h){pt(h,!0);let y=S(!1),T=S(!1),P=S(""),z=S(""),j=S("");ut(()=>{a(y)&&!a(j)&&h.data.orgOptions.length>0&&l(j,h.data.orgOptions[0].id,!0)});async function lt(){if(!a(P).trim()){U.error("Name is required");return}l(T,!0);try{const r=await fetch("/admin/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a(P).trim(),description:a(z).trim()||void 0,orgId:a(j)||void 0})});if(!r.ok){const u=await r.json().catch(()=>({}));throw new Error(u.message??`HTTP ${r.status}`)}const m=await r.json();U.success(`Created “${m.name}”`),l(y,!1),l(P,""),l(z,""),await bt(),yt(`/admin/projects/${m.id}`)}catch(r){U.error(r.message)}finally{l(T,!1)}}var J=zt();xt("1bzxaev",r=>{ft(()=>{_t.title="Admin · Platform projects"})});var X=d(J);Pt(X,{eyebrow:"Admin",title:"Platform projects",description:"Projects owned by platform admins. Grant orgs or individual users view/solve access without project membership.",actions:m=>{W(m,{size:"sm",onclick:()=>l(y,!0),class:"gap-1.5",children:(u,K)=>{var v=St(),C=_(v);jt(C,{class:"h-3.5 w-3.5"}),g(),s(u,v)},$$slots:{default:!0}})},$$slots:{actions:!0}});var Y=o(X,2);{var dt=r=>{var m=B(),u=_(m);F(u,()=>ot,(K,v)=>{v(K,{children:(C,Z)=>{var A=B(),q=_(A);F(q,()=>st,(tt,H)=>{H(tt,{class:"space-y-4 pt-6",children:(G,et)=>{var I=Dt(),c=_(I),M=d(c);R(M,{for:"new-name",children:(t,n)=>{g();var e=k("Name");s(t,e)},$$slots:{default:!0}});var N=o(M,2);it(N,{id:"new-name",placeholder:"Shared templates",get value(){return a(P)},set value(t){l(P,t,!0)}}),i(c);var p=o(c,2),O=d(p);R(O,{for:"new-desc",children:(t,n)=>{g();var e=k("Description (optional)");s(t,e)},$$slots:{default:!0}});var $=o(O,2);it($,{id:"new-desc",get value(){return a(z)},set value(t){l(z,t,!0)}}),i(p);var f=o(p,2),E=d(f);R(E,{for:"new-org",children:(t,n)=>{g();var e=k("Host organization");s(t,e)},$$slots:{default:!0}});var w=o(E,2);$t(w,21,()=>h.data.orgOptions,t=>t.id,(t,n)=>{var e=kt(),mt=d(e);i(e);var at={};V(()=>{b(mt,`${a(n).name??""} (${a(n).slug??""})`),at!==(at=a(n).id)&&(e.value=(e.__value=a(n).id)??"")}),s(t,e)}),i(w),g(2),i(f);var L=o(f,2),x=d(L);W(x,{variant:"outline",size:"sm",onclick:()=>l(y,!1),children:(t,n)=>{g();var e=k("Cancel");s(t,e)},$$slots:{default:!0}});var Q=o(x,2);W(Q,{size:"sm",get disabled(){return a(T)},onclick:lt,children:(t,n)=>{g();var e=k();V(()=>b(e,a(T)?"Creating…":"Create")),s(t,e)},$$slots:{default:!0}}),i(L),wt(w,()=>a(j),t=>l(j,t)),s(G,I)},$$slots:{default:!0}})}),s(C,A)},$$slots:{default:!0}})}),s(r,m)};rt(Y,r=>{a(y)&&r(dt)})}var ct=o(Y,2);F(ct,()=>ot,(r,m)=>{m(r,{children:(u,K)=>{var v=B(),C=_(v);F(C,()=>st,(Z,A)=>{A(Z,{class:"pt-6",children:(q,tt)=>{var H=B(),G=_(H);{var et=c=>{Ct(c,{get icon(){return Nt},title:"No platform projects",description:"Click “New project” to create one. Platform projects are managed by instance admins and granted to orgs or individual users."})},I=c=>{Ot(c,{get rows(){return h.data.projects},getKey:N=>N.id,columns:[{label:"Project"},{label:"Host org",width:"200px"},{label:"Created",width:"140px",align:"right"}],row:(N,p=gt)=>{var O=Tt(),$=_(O),f=d($),E=d(f,!0);i(f);var w=o(f,2),L=d(w,!0);i(w),i($);var x=o($,2),Q=d(x,!0);i(x);var t=o(x,2),n=d(t,!0);i(t),V(e=>{ht($,"href",`/admin/projects/${p().id}`),b(E,p().name),b(L,p().slug),b(Q,p().hostOrgName),b(n,e)},[()=>new Date(p().createdAt).toLocaleDateString()]),s(N,O)},$$slots:{row:!0}})};rt(G,c=>{h.data.projects.length===0?c(et):c(I,-1)})}s(q,H)},$$slots:{default:!0}})}),s(u,v)},$$slots:{default:!0}})}),i(J),s(nt,J),vt()}export{Zt as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as rt,ba as I,aP as Me,bl as Ve,a_ as c,af as t,aN as st,bk as ae,a2 as ot,V as o,b7 as a,$ as nt,aJ as x,aW as s,ac as f,be as O,aK as Je}from"../chunks/DEk358l3.js";import{s as _}from"../chunks/T-Nslbso.js";import{a as r,f as g,c as ce,t as G}from"../chunks/DS1KfRtl.js";import{i as he}from"../chunks/BnZOgasr.js";import{e as it,r as lt,b as dt,g as ct}from"../chunks/6CzuHfQM.js";import{a as vt,r as ut,c as b}from"../chunks/DCBLBrrW.js";import{h as pt}from"../chunks/DfVTcmam.js";import{b as mt}from"../chunks/C46MGZre.js";import{g as Ke,i as ke}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as rt,ba as I,aP as Me,bl as Ve,a_ as c,af as t,aN as st,bk as ae,a2 as ot,V as o,b7 as a,$ as nt,aJ as x,aW as s,ac as f,be as O,aK as Je}from"../chunks/DEk358l3.js";import{s as _}from"../chunks/T-Nslbso.js";import{a as r,f as g,c as ce,t as G}from"../chunks/DS1KfRtl.js";import{i as he}from"../chunks/BnZOgasr.js";import{e as it,r as lt,b as dt,g as ct}from"../chunks/6CzuHfQM.js";import{a as vt,r as ut,c as b}from"../chunks/DCBLBrrW.js";import{h as pt}from"../chunks/DfVTcmam.js";import{b as mt}from"../chunks/C46MGZre.js";import{g as Ke,i as ke}from"../chunks/DoPqAbzy.js";import{A as ft}from"../chunks/BpQqe39G.js";import{S as gt}from"../chunks/BiG82jCv.js";import{b as _t,c as ze,a as Ae,d as ht,T as $t}from"../chunks/BsKtJj5h.js";import{S as Ue}from"../chunks/De-Sjn1V.js";import{I as xt}from"../chunks/CE_gxD9G.js";import{S as bt}from"../chunks/Diyh8RG-.js";import{C as Ne,a as De}from"../chunks/B1z9if9B.js";import{B as C}from"../chunks/CGKZc1Kf.js";import{P as wt}from"../chunks/BOsr6E_d.js";import{L as $e}from"../chunks/Uv0-HWHq.js";import{I as yt}from"../chunks/CDmA5ezP.js";import{T as jt}from"../chunks/DqK2lhM-.js";import{E as Be}from"../chunks/BnIDUuJL.js";import{D as qe}from"../chunks/DkpwXYYZ.js";import{t as H}from"../chunks/BfHBnYuG.js";import{X as Pt}from"../chunks/Dr-qnmvi.js";function Fe(xe,n){let Q=ut(n,["$$slots","$$events","$$legacy"]);const re=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5"}],["path",{d:"M10 9H8"}],["path",{d:"M16 13H8"}],["path",{d:"M16 17H8"}]];xt(xe,vt({name:"file-text"},()=>Q,{get iconNode(){return re}}))}var Tt=g('<!> Grants <span class="text-muted-foreground ml-1 font-mono text-[11px]"> </span>',1),St=g('<!> Definitions <span class="text-muted-foreground ml-1 font-mono text-[11px]"> </span>',1),kt=g("<!> Settings",1),zt=g("<!> <!> <!>",1),At=g("<!> Add grant",1),Nt=g("<option> </option>"),Dt=g('<div class="bg-muted/30 space-y-3 rounded-lg border p-4"><div class="space-y-1.5"><!> <div class="flex gap-2"><!> <!></div></div> <div class="space-y-1.5"><!> <select id="grantee-id" class="border-input bg-background h-10 w-full rounded-md border px-3 text-sm"></select></div> <label class="flex items-center gap-2 text-sm"><input type="checkbox"/> Allow solving (uncheck for view-only)</label> <div class="flex justify-end gap-2"><!> <!></div></div>'),Et=g('<p class="text-muted-foreground truncate text-xs"> </p>'),It=g('<div class="min-w-0"><p class="truncate text-sm font-medium"> </p> <!></div> <span class="text-xs capitalize"> </span> <span class="text-xs"> </span> <div class="text-right"><!></div>',1),Ot=g(`<div class="flex items-center justify-between"><div><p class="text-sm font-medium">Access grants</p> <p class="text-muted-foreground text-xs">Orgs or users you've granted view/solve access. Instance admins always have full
|
|
2
2
|
access.</p></div> <!></div> <!> <!>`,1),Gt=g('<a class="min-w-0 hover:underline"><p class="truncate text-sm font-medium"> </p> <p class="text-muted-foreground truncate font-mono text-xs"> </p></a> <span class="text-xs capitalize"> </span> <span class="text-muted-foreground text-right text-xs"> </span>',1),Ht=g('<div class="flex items-center justify-between"><div><p class="text-sm font-medium">Definitions</p> <p class="text-muted-foreground text-xs">Upload and edit definitions through the standard project view.</p></div> <!></div> <!>',1),Ct=g("<!> ",1),Lt=g('<div class="space-y-1.5"><!> <!></div> <div class="space-y-1.5"><!> <!></div> <div class="flex items-center justify-between pt-2"><!> <!></div>',1),Mt=g("<!> <!> <!> <!>",1),Vt=g('<div class="space-y-6"><div><a href="/admin/projects" class="text-muted-foreground hover:text-foreground inline-flex items-center gap-1 text-xs"><!> Platform projects</a></div> <!> <!></div>');function fa(xe,n){rt(n,!0);let Q=I(Me(n.data.project.name)),re=I(Me(n.data.project.description??"")),ue=I(!1),pe=I(!1);Ve(()=>{c(Q,n.data.project.name,!0),c(re,n.data.project.description??"",!0)});async function Qe(){if(!t(Q).trim()){H.error("Name is required");return}c(ue,!0);try{const e=await fetch(`/admin/api/projects/${n.data.project.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t(Q).trim(),description:t(re).trim()||null})});if(!e.ok){const w=await e.json().catch(()=>({}));throw new Error(w.message??`HTTP ${e.status}`)}H.success("Saved"),await ke()}catch(e){H.error(e.message)}finally{c(ue,!1)}}async function We(){if(confirm(`Delete “${n.data.project.name}”? This cannot be undone.`)){c(pe,!0);try{const e=await fetch(`/admin/api/projects/${n.data.project.id}`,{method:"DELETE"});if(!e.ok){const w=await e.json().catch(()=>({}));throw new Error(w.message??`HTTP ${e.status}`)}H.success("Project deleted"),Ke("/admin/projects")}catch(e){H.error(e.message),c(pe,!1)}}}let ve=I(!1),L=I("org"),M=I(""),me=I(!0),fe=I(!1),be=I(null);const we=ae(()=>t(L)==="org"?n.data.orgOptions.map(e=>({id:e.id,label:e.name,sub:e.slug})):n.data.userOptions.map(e=>({id:e.id,label:e.displayName??e.email??e.id,sub:e.displayName&&e.email?e.email:void 0}))),ye=ae(()=>new Set(n.data.grants.filter(e=>e.granteeType===t(L)).map(e=>e.granteeId)));Ve(()=>{t(we).find(e=>e.id===t(M))||c(M,t(we).find(e=>!t(ye).has(e.id))?.id??"",!0)});async function Xe(){if(!t(M)){H.error("Pick a grantee");return}c(fe,!0);try{const e=await fetch(`/admin/api/projects/${n.data.project.id}/grants`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({granteeType:t(L),granteeId:t(M),canSolve:t(me)})});if(!e.ok){const w=await e.json().catch(()=>({}));throw new Error(w.message??`HTTP ${e.status}`)}H.success("Grant added"),c(ve,!1),c(M,""),c(me,!0),await ke()}catch(e){H.error(e.message)}finally{c(fe,!1)}}async function Re(e){c(be,e,!0);try{const w=await fetch(`/admin/api/projects/${n.data.project.id}/grants/${e}`,{method:"DELETE"});if(!w.ok){const Te=await w.json().catch(()=>({}));throw new Error(Te.message??`HTTP ${w.status}`)}H.success("Grant revoked"),await ke()}catch(w){H.error(w.message)}finally{c(be,null)}}var je=Vt();pt("t02vfz",e=>{ot(()=>{nt.title=`Admin · ${n.data.project.name??""}`})});var Pe=o(je),Ee=o(Pe),Ye=o(Ee);ft(Ye,{class:"h-3 w-3"}),x(),s(Ee),s(Pe);var Ie=a(Pe,2);{let e=ae(()=>n.data.project.description??void 0);gt(Ie,{eyebrow:"Platform project",get title(){return n.data.project.name},get description(){return t(e)}})}var Ze=a(Ie,2);b(Ze,()=>$t,(e,w)=>{w(e,{value:"grants",children:(Te,Jt)=>{var Oe=Mt(),Ge=f(Oe);b(Ge,()=>_t,(W,X)=>{X(W,{children:(R,Se)=>{var T=zt(),V=f(T);b(V,()=>ze,(S,K)=>{K(S,{value:"grants",class:"gap-1.5",children:(h,U)=>{var $=Tt(),y=f($);Ue(y,{class:"h-3.5 w-3.5"});var k=a(y,2),se=o(k,!0);s(k),O(()=>_(se,n.data.grants.length)),r(h,$)},$$slots:{default:!0}})});var J=a(V,2);b(J,()=>ze,(S,K)=>{K(S,{value:"definitions",class:"gap-1.5",children:(h,U)=>{var $=St(),y=f($);Fe(y,{class:"h-3.5 w-3.5"});var k=a(y,2),se=o(k,!0);s(k),O(()=>_(se,n.data.definitions.length)),r(h,$)},$$slots:{default:!0}})});var Y=a(J,2);b(Y,()=>ze,(S,K)=>{K(S,{value:"settings",class:"gap-1.5",children:(h,U)=>{var $=kt(),y=f($);bt(y,{class:"h-3.5 w-3.5"}),x(),r(h,$)},$$slots:{default:!0}})}),r(R,T)},$$slots:{default:!0}})});var He=a(Ge,2);b(He,()=>Ae,(W,X)=>{X(W,{value:"grants",class:"mt-4 space-y-4",children:(R,Se)=>{var T=ce(),V=f(T);b(V,()=>Ne,(J,Y)=>{Y(J,{children:(S,K)=>{var h=ce(),U=f(h);b(U,()=>De,($,y)=>{y($,{class:"space-y-4 pt-6",children:(k,se)=>{var B=Ot(),z=f(B),oe=a(o(z),2);C(oe,{size:"sm",onclick:()=>c(ve,!t(ve)),class:"gap-1.5",children:(v,j)=>{var i=At(),u=f(i);wt(u,{class:"h-3.5 w-3.5"}),x(),r(v,i)},$$slots:{default:!0}}),s(z);var ne=a(z,2);{var Z=v=>{var j=Dt(),i=o(j),u=o(i);$e(u,{children:(p,l)=>{x();var d=G("Grantee type");r(p,d)},$$slots:{default:!0}});var m=a(u,2),A=o(m);{let p=ae(()=>t(L)==="org"?"default":"outline");C(A,{get variant(){return t(p)},size:"sm",onclick:()=>c(L,"org"),children:(l,d)=>{x();var N=G("Organization");r(l,N)},$$slots:{default:!0}})}var D=a(A,2);{let p=ae(()=>t(L)==="user"?"default":"outline");C(D,{get variant(){return t(p)},size:"sm",onclick:()=>c(L,"user"),children:(l,d)=>{x();var N=G("Individual user");r(l,N)},$$slots:{default:!0}})}s(m),s(i);var ee=a(i,2),q=o(ee);$e(q,{for:"grantee-id",children:(p,l)=>{x();var d=G();O(()=>_(d,t(L)==="org"?"Organization":"User")),r(p,d)},$$slots:{default:!0}});var te=a(q,2);it(te,21,()=>t(we),p=>p.id,(p,l)=>{var d=Nt(),N=o(d);s(d);var Le={};O((tt,at)=>{d.disabled=tt,_(N,`${t(l).label??""}${t(l).sub?` — ${t(l).sub}`:""}${at??""}`),Le!==(Le=t(l).id)&&(d.value=(d.__value=t(l).id)??"")},[()=>t(ye).has(t(l).id),()=>t(ye).has(t(l).id)?" (already granted)":""]),r(p,d)}),s(te),s(ee);var E=a(ee,2),de=o(E);lt(de),x(),s(E);var F=a(E,2),ge=o(F);C(ge,{variant:"outline",size:"sm",onclick:()=>c(ve,!1),children:(p,l)=>{x();var d=G("Cancel");r(p,d)},$$slots:{default:!0}});var _e=a(ge,2);{let p=ae(()=>t(fe)||!t(M));C(_e,{size:"sm",get disabled(){return t(p)},onclick:Xe,children:(l,d)=>{x();var N=G();O(()=>_(N,t(fe)?"Adding…":"Add grant")),r(l,N)},$$slots:{default:!0}})}s(F),s(j),dt(te,()=>t(M),p=>c(M,p)),mt(de,()=>t(me),p=>c(me,p)),r(v,j)};he(ne,v=>{t(ve)&&v(Z)})}var ie=a(ne,2);{var P=v=>{Be(v,{size:"sm",get icon(){return Ue},title:"No grants yet",description:"Add a grant to share this project with an org or specific user."})},le=v=>{qe(v,{get rows(){return n.data.grants},getKey:i=>i.id,columns:[{label:"Grantee"},{label:"Type",width:"120px"},{label:"Access",width:"120px"},{label:"",width:"40px",align:"right"}],row:(i,u=Je)=>{var m=It(),A=f(m),D=o(A),ee=o(D,!0);s(D);var q=a(D,2);{var te=l=>{var d=Et(),N=o(d,!0);s(d),O(()=>_(N,u().granteeSubtitle)),r(l,d)};he(q,l=>{u().granteeSubtitle&&l(te)})}s(A);var E=a(A,2),de=o(E,!0);s(E);var F=a(E,2),ge=o(F,!0);s(F);var _e=a(F,2),p=o(_e);{let l=ae(()=>t(be)===u().id);C(p,{variant:"ghost",size:"sm",class:"text-destructive hover:text-destructive h-7 w-7 p-0",get disabled(){return t(l)},onclick:()=>Re(u().id),children:(d,N)=>{Pt(d,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}})}s(_e),O(()=>{_(ee,u().granteeName),_(de,u().granteeType),_(ge,u().canSolve?"View + solve":"View only")}),r(i,m)},$$slots:{row:!0}})};he(ie,v=>{n.data.grants.length===0?v(P):v(le,-1)})}r(k,B)},$$slots:{default:!0}})}),r(S,h)},$$slots:{default:!0}})}),r(R,T)},$$slots:{default:!0}})});var Ce=a(He,2);b(Ce,()=>Ae,(W,X)=>{X(W,{value:"definitions",class:"mt-4 space-y-4",children:(R,Se)=>{var T=ce(),V=f(T);b(V,()=>Ne,(J,Y)=>{Y(J,{children:(S,K)=>{var h=ce(),U=f(h);b(U,()=>De,($,y)=>{y($,{class:"space-y-4 pt-6",children:(k,se)=>{var B=Ht(),z=f(B),oe=a(o(z),2);C(oe,{size:"sm",variant:"outline",onclick:()=>Ke(`/projects?project=${n.data.project.slug}`),children:(P,le)=>{x();var v=G("Open in projects");r(P,v)},$$slots:{default:!0}}),s(z);var ne=a(z,2);{var Z=P=>{Be(P,{size:"sm",get icon(){return Fe},title:"No definitions yet",description:"Open this project in the projects view to upload .gh files."})},ie=P=>{qe(P,{get rows(){return n.data.definitions},getKey:v=>v.guid,columns:[{label:"Definition"},{label:"Status",width:"120px"},{label:"Updated",width:"140px",align:"right"}],row:(v,j=Je)=>{var i=Gt(),u=f(i),m=o(u),A=o(m,!0);s(m);var D=a(m,2),ee=o(D,!0);s(D),s(u);var q=a(u,2),te=o(q,!0);s(q);var E=a(q,2),de=o(E,!0);s(E),O(F=>{ct(u,"href",`/library/${j().guid}`),_(A,j().displayName),_(ee,j().guid),_(te,j().status),_(de,F)},[()=>new Date(j().updatedAt).toLocaleDateString()]),r(v,i)},$$slots:{row:!0}})};he(ne,P=>{n.data.definitions.length===0?P(Z):P(ie,-1)})}r(k,B)},$$slots:{default:!0}})}),r(S,h)},$$slots:{default:!0}})}),r(R,T)},$$slots:{default:!0}})});var et=a(Ce,2);b(et,()=>Ae,(W,X)=>{X(W,{value:"settings",class:"mt-4 space-y-4",children:(R,Se)=>{var T=ce(),V=f(T);b(V,()=>Ne,(J,Y)=>{Y(J,{children:(S,K)=>{var h=ce(),U=f(h);b(U,()=>De,($,y)=>{y($,{class:"space-y-4 pt-6",children:(k,se)=>{var B=Lt(),z=f(B),oe=o(z);$e(oe,{for:"proj-name",children:(i,u)=>{x();var m=G("Name");r(i,m)},$$slots:{default:!0}});var ne=a(oe,2);yt(ne,{id:"proj-name",get value(){return t(Q)},set value(i){c(Q,i,!0)}}),s(z);var Z=a(z,2),ie=o(Z);$e(ie,{for:"proj-desc",children:(i,u)=>{x();var m=G("Description");r(i,m)},$$slots:{default:!0}});var P=a(ie,2);ht(P,{id:"proj-desc",rows:3,get value(){return t(re)},set value(i){c(re,i,!0)}}),s(Z);var le=a(Z,2),v=o(le);C(v,{onclick:We,variant:"ghost",size:"sm",get disabled(){return t(pe)},class:"text-destructive hover:text-destructive gap-1.5 px-2",children:(i,u)=>{var m=Ct(),A=f(m);jt(A,{class:"h-3.5 w-3.5"});var D=a(A);O(()=>_(D,` ${t(pe)?"Deleting…":"Delete project"}`)),r(i,m)},$$slots:{default:!0}});var j=a(v,2);C(j,{size:"sm",get disabled(){return t(ue)},onclick:Qe,children:(i,u)=>{x();var m=G();O(()=>_(m,t(ue)?"Saving…":"Save")),r(i,m)},$$slots:{default:!0}}),s(le),r(k,B)},$$slots:{default:!0}})}),r(S,h)},$$slots:{default:!0}})}),r(R,T)},$$slots:{default:!0}})}),r(Te,Oe)},$$slots:{default:!0}})}),s(je),r(xe,je),st()}export{fa as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as Re,bl as We,af as e,ac as H,V as d,aJ as Y,b7 as i,aW as l,be as B,a_ as n,aN as Ae,ba as ne,bk as ae,a8 as He,$ as De,bg as Fe}from"../chunks/DEk358l3.js";import{s as L}from"../chunks/T-Nslbso.js";import{t as Q,a as o,c as Ue,f}from"../chunks/DS1KfRtl.js";import{i as J}from"../chunks/BnZOgasr.js";import{j as fe,g as Ee,e as Se}from"../chunks/6CzuHfQM.js";import{a as me,r as he,p as pe,c as $,b as qe}from"../chunks/DCBLBrrW.js";import{h as Be}from"../chunks/DfVTcmam.js";import{C as Pe,a as Ce}from"../chunks/CnXIg_dO.js";import{C as Ne}from"../chunks/DRpLcVdK.js";import{a as Oe,C as Te}from"../chunks/B1z9if9B.js";import{B as je}from"../chunks/CGKZc1Kf.js";import{R as we}from"../chunks/snZK0J5H.js";import{I as _e}from"../chunks/CE_gxD9G.js";import{b as Ge,e as Je,f as Ye,c as ze,d as Ke,a as Qe,A as Xe,R as Ze}from"../chunks/CNC_mCsM.js";import{T as Me}from"../chunks/D-Fls4-N.js";import{S as et}from"../chunks/BiG82jCv.js";function tt(u,r){let a=he(r,["$$slots","$$events","$$legacy"]);const t=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"m16 12-4-4-4 4"}],["path",{d:"M12 16V8"}]];_e(u,me({name:"circle-arrow-up"},()=>a,{get iconNode(){return t}}))}function Ie(u,r){let a=he(r,["$$slots","$$events","$$legacy"]);const t=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"m9 12 2 2 4-4"}]];_e(u,me({name:"circle-check"},()=>a,{get iconNode(){return t}}))}function ke(u,r){let a=he(r,["$$slots","$$events","$$legacy"]);const t=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"m15 9-6 6"}],["path",{d:"m9 9 6 6"}]];_e(u,me({name:"circle-x"},()=>a,{get iconNode(){return t}}))}function rt(u,r){let a=he(r,["$$slots","$$events","$$legacy"]);const t=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 16v-4"}],["path",{d:"M12 8h.01"}]];_e(u,me({name:"info"},()=>a,{get iconNode(){return t}}))}function at(u,r){let a=he(r,["$$slots","$$events","$$legacy"]);const t=[["path",{d:"M5 12h14"}]];_e(u,me({name:"minus"},()=>a,{get iconNode(){return t}}))}function nt(u,r){let a=he(r,["$$slots","$$events","$$legacy"]);const t=[["path",{d:"M11 2v2"}],["path",{d:"M5 2v2"}],["path",{d:"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1"}],["path",{d:"M8 15a6 6 0 0 0 12 0v-3"}],["circle",{cx:"20",cy:"10",r:"2"}]];_e(u,me({name:"stethoscope"},()=>a,{get iconNode(){return t}}))}function Le(u,r){const a=r.exec(u);return a?a[1]:void 0}function st(u){const r=/Available:\s*(\d+\.\d+\.\d+[^\s]*)\s*(?:→|->)\s*(\d+\.\d+\.\d+[^\s]*)/.exec(u);if(r)return{from:r[1],to:r[2]};const a=Le(u,/Current @selvajs\/selva:\s*v?(\d+\.\d+\.\d+[^\s]*)/),t=Le(u,/New @selvajs\/selva:\s*v?(\d+\.\d+\.\d+[^\s]*)/);return{from:a,to:t}}function ve(u,r){return u.includes(r)}function ot(u,r){const{from:a,to:t}=st(r);return u===null?{severity:"pending",title:"Update in progress…"}:u===6||ve(r,"Manual recovery required")||ve(r,"manual intervention required")?{severity:"critical",title:"Update failed AND rollback failed — the app may be OFFLINE",detail:"Both the new version and the rollback failed their health check. SSH into the server and run: `pm2 logs selva-compute`, then `pm2 start ecosystem.config.cjs` from the deployment directory.",from:a,to:t}:u===-2?{severity:"critical",title:"App did not come back online within 5 minutes",detail:"The update may still be finishing in the background, or the new process is crash-looping. Check `pm2 logs selva-compute`. Do not re-run the update until you have confirmed the current state.",from:a,to:t}:u===5||ve(r,"Rolled back")?{severity:"warning",title:`Update failed — safely rolled back${a?` to ${a}`:""}. The app is online.`,detail:"The new version failed its health check, so the previous version was restored and is serving normally. Review the log below for why the new version failed before retrying.",from:a,to:t}:ve(r,"npm cache may be stale")||ve(r,"No version change")?{severity:"warning",title:"No version change — npm installed the same version.",detail:"Your npm cache may be stale. On the server: `npm cache clean --force`, remove node_modules + package-lock.json, then `npm install --prefer-online`.",from:a,to:t}:u===0?ve(r,"Already on the latest version")||ve(r,"Nothing to do")?{severity:"info",title:`Already up to date${a?` (${a})`:""} — nothing to install.`,detail:"No changes were made and the app was not restarted.",from:a,to:t}:a&&t&&a!==t?{severity:"success",title:`Updated ${a} → ${t}. The app is back online.`,from:a,to:t}:t?{severity:"success",title:`Update complete — now on ${t}. The app is back online.`,from:a,to:t}:{severity:"success",title:"Update completed and the app is back online.",from:a,to:t}:{severity:"critical",title:`Update failed (exit code ${u}).`,detail:"The update did not complete cleanly. Review the log below, and check `pm2 logs selva-compute` to confirm whether the app is currently online.",from:a,to:t}}var it=f('<span title="Currently installed @selvajs/selva version"> </span>'),lt=f('<div class="flex items-start justify-between gap-3"><!> <!></div> <!>',1),dt=f('<div class="border-warning/40 bg-warning/10 text-warning flex items-center gap-2 rounded-md border px-3 py-2 text-sm" role="status"><!> <span>Update available — <span class="font-mono"> </span> → <span class="font-mono"> </span></span></div>'),ct=f(`<p class="text-muted-foreground text-sm">You're on the latest release (<span class="font-mono"> </span>).</p>`),ut=f("<!> ",1),vt=f('<div class="border-border bg-muted/50 text-muted-foreground flex items-center gap-2 rounded-md border px-3 py-2 text-sm"><!> <span>PM2 is restarting the app — waiting for the new process to come online…</span></div>'),pt=f('<p class="text-muted-foreground font-mono text-xs"> </p>'),ft=f('<p class="text-muted-foreground text-xs whitespace-pre-line"> </p>'),mt=f('<div><!> <div class="min-w-0 space-y-1"><p> </p> <!> <!></div></div>'),ht=f('<div class="space-y-2"><h4 class="text-sm font-medium">Update Logs</h4> <pre class="bg-muted text-foreground max-h-96 overflow-auto rounded-md p-4 font-mono text-xs"> </pre></div>'),_t=f("<!> <!> <!> <!> <!>",1),gt=f("<!> <!>",1),xt=f("<!> <!>",1),$t=f("<!> <!>",1),bt=f("<!> <!>",1),yt=f("<!> <!>",1);function wt(u,r){Re(r,!0);let a=pe(r,"latestVersion",3,null),t=pe(r,"updateAvailable",3,!1),m=pe(r,"isRunning",3,!1),S=pe(r,"isRestarting",3,!1),G=pe(r,"logs",3,""),X=pe(r,"exitCode",3,null),Z=ne(void 0),I=ne(!1),M=ae(()=>X()===null?null:ot(X(),G()));const oe={success:{text:"text-success",border:"border-success/40",bg:"bg-success/10",icon:Ie},info:{text:"text-foreground",border:"border-border",bg:"bg-muted/50",icon:rt},warning:{text:"text-warning",border:"border-warning/40",bg:"bg-warning/10",icon:Me},critical:{text:"text-destructive",border:"border-destructive/40",bg:"bg-destructive/10",icon:ke},pending:{text:"text-muted-foreground",border:"border-border",bg:"bg-muted/50",icon:we}};We(()=>{G()&&e(Z)&&(e(Z).scrollTop=e(Z).scrollHeight)});function xe(){return S()?"Restarting & verifying…":m()?"Running…":"Run Update"}function se(){n(I,!0)}function ie(){n(I,!1),r.onRun?.()}var le=yt(),ee=H(le);$(ee,()=>Te,(te,ce)=>{ce(te,{children:(s,D)=>{var R=gt(),U=H(R);$(U,()=>Pe,(C,b)=>{b(C,{children:(g,w)=>{var x=lt(),T=H(x),A=d(T);$(A,()=>Ce,(k,h)=>{h(k,{children:(y,_)=>{Y();var O=Q("Application Update");o(y,O)},$$slots:{default:!0}})});var E=i(A,2);{var N=k=>{var h=it(),y=d(h);l(h),B(()=>{fe(h,1,`rounded-full border px-2 py-0.5 font-mono text-xs ${t()?"border-warning/40 bg-warning/10 text-warning":"border-border bg-muted text-muted-foreground"}`),L(y,`v${r.currentVersion??""}`)}),o(k,h)};J(E,k=>{r.currentVersion&&k(N)})}l(T);var V=i(T,2);$(V,()=>Ne,(k,h)=>{h(k,{children:(y,_)=>{Y();var O=Q("Update @selvajs/* to the latest published release and restart");o(y,O)},$$slots:{default:!0}})}),o(g,x)},$$slots:{default:!0}})});var j=i(U,2);$(j,()=>Oe,(C,b)=>{b(C,{class:"space-y-4",children:(g,w)=>{var x=_t(),T=H(x);{var A=v=>{var c=dt(),p=d(c);tt(p,{class:"h-4 w-4 shrink-0"});var P=i(p,2),W=i(d(P)),K=d(W);l(W);var F=i(W,2),ue=d(F);l(F),l(P),l(c),B(()=>{L(K,`v${r.currentVersion??""}`),L(ue,`v${a()??""}`)}),o(v,c)},E=v=>{var c=ct(),p=i(d(c)),P=d(p);l(p),Y(),l(c),B(()=>L(P,`v${r.currentVersion??""}`)),o(v,c)};J(T,v=>{t()&&a()?v(A):r.currentVersion&&a()&&v(E,1)})}var N=i(T,2);je(N,{onclick:se,get disabled(){return m()},variant:"destructive",children:(v,c)=>{var p=ut(),P=H(p);{var W=F=>{we(F,{class:"mr-2 h-4 w-4 animate-spin"})};J(P,F=>{S()&&F(W)})}var K=i(P);B(F=>L(K,` ${F??""}`),[()=>xe()]),o(v,p)},$$slots:{default:!0}});var V=i(N,2);{var k=v=>{var c=vt(),p=d(c);we(p,{class:"h-4 w-4 animate-spin"}),Y(2),l(c),o(v,c)};J(V,v=>{S()&&X()===null&&v(k)})}var h=i(V,2);{var y=v=>{const c=ae(()=>oe[e(M).severity]),p=ae(()=>e(c).icon);var P=mt(),W=d(P);$(W,()=>e(p),(z,q)=>{q(z,{get class(){return`mt-0.5 h-5 w-5 shrink-0 ${e(c).text??""}`}})});var K=i(W,2),F=d(K),ue=d(F,!0);l(F);var $e=i(F,2);{var ge=z=>{var q=pt(),re=d(q);l(q),B(()=>L(re,`${e(M).from??""} → ${e(M).to??""}`)),o(z,q)};J($e,z=>{e(M).from&&e(M).to&&e(M).from!==e(M).to&&z(ge)})}var be=i($e,2);{var ye=z=>{var q=ft(),re=d(q,!0);l(q),B(()=>L(re,e(M).detail)),o(z,q)};J(be,z=>{e(M).detail&&z(ye)})}l(K),l(P),B(()=>{fe(P,1,`flex items-start gap-3 rounded-md border px-3 py-3 ${e(c).border??""} ${e(c).bg??""}`),Ee(P,"role",e(M).severity==="critical"?"alert":"status"),Ee(P,"aria-live",e(M).severity==="critical"?"assertive":"polite"),fe(F,1,`text-sm font-medium ${e(c).text??""}`),L(ue,e(M).title)}),o(v,P)};J(h,v=>{e(M)&&v(y)})}var _=i(h,2);{var O=v=>{var c=ht(),p=i(d(c),2),P=d(p,!0);l(p),qe(p,W=>n(Z,W),()=>e(Z)),l(c),B(()=>L(P,G())),o(v,c)};J(_,v=>{G()&&v(O)})}o(g,x)},$$slots:{default:!0}})}),o(s,R)},$$slots:{default:!0}})});var de=i(ee,2);$(de,()=>Ze,(te,ce)=>{ce(te,{get open(){return e(I)},onOpenChange:s=>n(I,s,!0),children:(s,D)=>{var R=Ue(),U=H(R);$(U,()=>Ge,(j,C)=>{C(j,{children:(b,g)=>{var w=bt(),x=H(w);$(x,()=>Je,(A,E)=>{E(A,{children:(N,V)=>{var k=xt(),h=H(k);$(h,()=>Ye,(_,O)=>{O(_,{children:(v,c)=>{Y();var p=Q("Run Update?");o(v,p)},$$slots:{default:!0}})});var y=i(h,2);$(y,()=>ze,(_,O)=>{O(_,{children:(v,c)=>{Y();var p=Q(`This will update @selvajs/* to the latest published release and restart the application. The
|
|
2
|
+
service will be temporarily unavailable.`);o(v,p)},$$slots:{default:!0}})}),o(N,k)},$$slots:{default:!0}})});var T=i(x,2);$(T,()=>Ke,(A,E)=>{E(A,{children:(N,V)=>{var k=$t(),h=H(k);$(h,()=>Qe,(_,O)=>{O(_,{children:(v,c)=>{Y();var p=Q("Cancel");o(v,p)},$$slots:{default:!0}})});var y=i(h,2);$(y,()=>Xe,(_,O)=>{O(_,{onclick:ie,get disabled(){return m()},children:(v,c)=>{Y();var p=Q();B(()=>L(p,S()?"Restarting…":"Continue")),o(v,p)},$$slots:{default:!0}})}),o(N,k)},$$slots:{default:!0}})}),o(b,w)},$$slots:{default:!0}})}),o(s,R)},$$slots:{default:!0}})}),o(u,le),Ae()}var kt=f("<!> <!>",1),Rt=f("<!> ",1),At=f('<div class="border-destructive/40 bg-destructive/10 text-destructive flex items-start gap-2 rounded-md border px-3 py-2 text-sm" role="alert"><!> <span> </span></div>'),Pt=f('<p class="text-foreground text-xs"> </p>'),Ct=f('<div class="flex items-start gap-3 px-4 py-3"><!> <div class="min-w-0 flex-1 space-y-1"><div class="flex items-center justify-between gap-2"><span class="text-sm font-medium"> </span> <span> </span></div> <p class="text-muted-foreground text-xs"> </p> <!></div></div>'),Nt=f('<div class="space-y-3"><div><!> <span> </span> <span class="text-muted-foreground ml-auto text-xs font-normal"> </span></div> <div class="divide-y rounded-lg border"></div></div>'),Ot=f("<!> <!> <!>",1),Tt=f("<!> <!>",1);function Et(u,r){Re(r,!0);let a=ne(!1),t=ne(null),m=ne(null);const S={ok:{text:"text-success",icon:Ie,label:"OK"},degraded:{text:"text-warning",icon:Me,label:"Degraded"},error:{text:"text-destructive",icon:ke,label:"Error"},not_applicable:{text:"text-muted-foreground",icon:at,label:"N/A"}};async function G(){n(a,!0),n(m,null);try{const I=await fetch("/admin/api/system/health",{cache:"no-store"});if(!I.ok){n(m,`Health check request failed (HTTP ${I.status}).`),n(t,null);return}n(t,await I.json(),!0)}catch(I){n(m,I instanceof Error?I.message:"Health check request failed.",!0),n(t,null)}finally{n(a,!1)}}var X=Ue(),Z=H(X);$(Z,()=>Te,(I,M)=>{M(I,{children:(oe,xe)=>{var se=Tt(),ie=H(se);$(ie,()=>Pe,(ee,de)=>{de(ee,{children:(te,ce)=>{var s=kt(),D=H(s);$(D,()=>Ce,(U,j)=>{j(U,{class:"text-sm font-medium",children:(C,b)=>{Y();var g=Q("System health");o(C,g)},$$slots:{default:!0}})});var R=i(D,2);$(R,()=>Ne,(U,j)=>{j(U,{children:(C,b)=>{Y();var g=Q(`Re-runs runtime integrity checks live (not the cached boot snapshot), so results reflect the
|
|
3
|
+
current state after any fix.`);o(C,g)},$$slots:{default:!0}})}),o(te,s)},$$slots:{default:!0}})});var le=i(ie,2);$(le,()=>Oe,(ee,de)=>{de(ee,{class:"space-y-4",children:(te,ce)=>{var s=Ot(),D=H(s);je(D,{onclick:G,get disabled(){return e(a)},variant:"outline",children:(b,g)=>{var w=Rt(),x=H(w);{let A=ae(()=>e(a)?"animate-pulse":"");nt(x,{get class(){return`mr-2 h-4 w-4 ${e(A)??""}`}})}var T=i(x);B(()=>L(T,` ${e(a)?"Checking…":"Run health check"}`)),o(b,w)},$$slots:{default:!0}});var R=i(D,2);{var U=b=>{var g=At(),w=d(g);ke(w,{class:"mt-0.5 h-4 w-4 shrink-0"});var x=i(w,2),T=d(x,!0);l(x),l(g),B(()=>L(T,e(m))),o(b,g)};J(R,b=>{e(m)&&b(U)})}var j=i(R,2);{var C=b=>{const g=ae(()=>S[e(t).overall]),w=ae(()=>e(g).icon);var x=Nt(),T=d(x),A=d(T);$(A,()=>e(w),(y,_)=>{_(y,{class:"h-5 w-5"})});var E=i(A,2),N=d(E,!0);l(E);var V=i(E,2),k=d(V,!0);l(V),l(T);var h=i(T,2);Se(h,21,()=>e(t).checks,y=>y.id,(y,_)=>{const O=ae(()=>S[e(_).status]),v=ae(()=>e(O).icon);var c=Ct(),p=d(c);$(p,()=>e(v),(q,re)=>{re(q,{get class(){return`mt-0.5 h-4 w-4 shrink-0 ${e(O).text??""}`}})});var P=i(p,2),W=d(P),K=d(W),F=d(K,!0);l(K);var ue=i(K,2),$e=d(ue,!0);l(ue),l(W);var ge=i(W,2),be=d(ge,!0);l(ge);var ye=i(ge,2);{var z=q=>{var re=Pt(),Ve=d(re,!0);l(re),B(()=>L(Ve,e(_).remediation)),o(q,re)};J(ye,q=>{e(_).remediation&&q(z)})}l(P),l(c),B(()=>{L(F,e(_).label),fe(ue,1,`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${e(O).text??""}`),L($e,e(O).label),L(be,e(_).summary)}),o(y,c)}),l(h),l(x),B(y=>{fe(T,1,`flex items-center gap-2 text-sm font-medium ${e(g).text??""}`),L(N,e(t).overall==="ok"?"All checks passed":e(t).overall==="degraded"?"Attention needed":e(t).overall==="error"?"Check failed to run":"No applicable checks"),L(k,y)},[()=>new Date(e(t).checkedAt).toLocaleTimeString()]),o(b,x)};J(j,b=>{e(t)&&b(C)})}o(te,s)},$$slots:{default:!0}})}),o(oe,se)},$$slots:{default:!0}})}),o(u,X),Ae()}var Lt=f("<!> <!>",1),Ut=f('<div class="flex items-start justify-between gap-4 px-4 py-3"><div class="min-w-0 flex-1"><code class="text-foreground font-mono text-xs"> </code> <p class="text-muted-foreground mt-1 text-xs"> </p></div> <span> </span></div>'),St=f('<div class="divide-y rounded-lg border"></div>'),jt=f("<!> <!>",1),Mt=f('<div class="space-y-6"><!> <!> <!> <!></div>');function tr(u,r){Re(r,!0);const a={ALLOW_CROSS_ORG_PUBLIC:"When on, projects can be made visible to every authenticated user on the instance, not just their own org.",ALLOW_ORG_COMPUTE_OVERRIDE:"When on, individual orgs can configure their own Rhino.Compute server instead of the instance pool.",ALLOW_ORG_CREATION:'When on, signed-in users see a "Create organization" action. Off by default in self-hosted instances.',ENABLE_PLATFORM_PROJECTS:"When on, the Admin → Projects surface is reachable: instance admins can create platform-owned projects and grant view/solve access to orgs or individual users. When off, the surface 404s and platform-visibility projects are hidden everywhere — existing rows are preserved.",ENABLE_SHARING:"When on, editors can mint per-definition share links that grant anonymous external access. When off, the mint/list/revoke routes return 404 and any previously-minted tokens stop resolving."};let t=ne(!1),m=ne(""),S=ne(null),G=ne(!1);async function X(){try{const s=await fetch("/api/health",{cache:"no-store"});return s.ok?await s.json():null}catch{return null}}async function Z(){try{return(await fetch("/admin/api/system/health",{cache:"no-store"})).ok}catch{return!1}}async function I(){try{const s=await fetch("/admin/api/system/update",{cache:"no-store"});return s.ok?await s.text():null}catch{return null}}function M(s){return/\bManual recovery required\b/.test(s)?6:/\bRolled back to .* — previous version is online\b/.test(s)?5:/New process failed health check/.test(s)&&!/Rolled back/.test(s)?3:/\[FATAL\]/.test(s)&&!/\[DONE\]/.test(s)?1:/\[DONE\]/.test(s)?0:null}async function oe(s){n(m,e(m)+`
|
|
4
|
+
Waiting for app to come back online…
|
|
5
|
+
`),await new Promise(U=>setTimeout(U,2e3));const D=150;for(let U=0;U<D;U++){const[j,C,b]=await Promise.all([X(),I(),Z()]);C&&C.trim().length>0&&n(m,C,!0);const g=!!j?.instanceId&&j.instanceId!==s&&b,w=M(e(m));if(g){n(S,w??0,!0),n(t,!1),n(G,!1);return}if(!s&&j&&b&&w!==null){n(S,w,!0),n(t,!1),n(G,!1);return}await new Promise(x=>setTimeout(x,2e3))}const R=await I();R&&R.trim().length>0&&n(m,R,!0),n(m,e(m)+`
|
|
6
|
+
⚠ App did not come back within 5 minutes — check PM2 logs.
|
|
7
|
+
`),n(S,-2),n(t,!1),n(G,!1)}async function xe(){n(t,!0),n(G,!1),n(m,""),n(S,null);const D=(await X())?.instanceId??null;try{const R=await fetch("/admin/api/system/update",{method:"POST"});if(!R.ok){n(m,"Failed to start update process"),n(S,R.status,!0),n(t,!1);return}const U=R.body?.getReader(),j=new TextDecoder;if(!U){n(m,"Failed to read response"),n(S,-1),n(t,!1);return}let C="",b=!1,g=!1,w=null;for(;;){const{done:x,value:T}=await U.read();if(x)break;C+=j.decode(T,{stream:!0});const A=C.split(`
|
|
8
|
+
|
|
9
|
+
`);C=A.pop();for(const E of A)if(E.startsWith("data: "))try{const N=JSON.parse(E.slice(6));N.type==="log"?n(m,e(m)+(N.data+`
|
|
10
|
+
`)):N.type==="restarting"?(n(m,e(m)+(N.data+`
|
|
11
|
+
`)),n(G,!0),b=!0):N.type==="exit"&&(g=!0,w=N.code)}catch{}}b?await oe(D):g&&w===0?(n(S,0),n(t,!1)):g?(n(S,w??-1,!0),n(t,!1)):await oe(D)}catch(R){e(G)?await oe(D):(n(m,e(m)+(`
|
|
12
|
+
Error: `+(R instanceof Error?R.message:"Unknown error"))),n(S,-1),n(t,!1))}}var se=Mt();Be("1uq49ma",s=>{He(()=>{De.title="Admin · System"})});var ie=d(se);et(ie,{eyebrow:"Admin",title:"System settings",description:"Instance-wide configuration, platform flags, and the update runner. To change platform flags, edit SELVA_FLAG_* in your .env and restart the app."});var le=i(ie,2);$(le,()=>Te,(s,D)=>{D(s,{children:(R,U)=>{var j=jt(),C=H(j);$(C,()=>Pe,(g,w)=>{w(g,{children:(x,T)=>{var A=Lt(),E=H(A);$(E,()=>Ce,(V,k)=>{k(V,{class:"text-sm font-medium",children:(h,y)=>{Y();var _=Q("Platform flags");o(h,_)},$$slots:{default:!0}})});var N=i(E,2);$(N,()=>Ne,(V,k)=>{k(V,{children:(h,y)=>{Y();var _=Q(`Resolved state of the env-driven flags that control instance behavior. To change a flag,
|
|
13
|
+
edit your environment configuration and restart the app.`);o(h,_)},$$slots:{default:!0}})}),o(x,A)},$$slots:{default:!0}})});var b=i(C,2);$(b,()=>Oe,(g,w)=>{w(g,{children:(x,T)=>{var A=St();Se(A,21,()=>Object.entries(r.data.flags),([E,N])=>E,(E,N)=>{var V=ae(()=>Fe(e(N),2));let k=()=>e(V)[0],h=()=>e(V)[1];var y=Ut(),_=d(y),O=d(_),v=d(O,!0);l(O);var c=i(O,2),p=d(c,!0);l(c),l(_);var P=i(_,2),W=d(P,!0);l(P),l(y),B(()=>{L(v,k()),L(p,a[k()]),fe(P,1,`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${h()?"border-success/40 bg-success/10 text-success":"border-border text-muted-foreground"}`),L(W,h()?"On":"Off")}),o(E,y)}),l(A),o(x,A)},$$slots:{default:!0}})}),o(R,j)},$$slots:{default:!0}})});var ee=i(le,2);{var de=s=>{Et(s,{})};J(ee,s=>{r.data.isInstanceAdmin&&s(de)})}var te=i(ee,2);{var ce=s=>{wt(s,{get currentVersion(){return r.data.version},get latestVersion(){return r.data.update.latest},get updateAvailable(){return r.data.update.updateAvailable},get isRunning(){return e(t)},get isRestarting(){return e(G)},get logs(){return e(m)},get exitCode(){return e(S)},onRun:xe})};J(te,s=>{r.data.canManageUpdates&&s(ce)})}l(se),o(u,se),Ae()}export{tr as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as st,V as o,aW as r,b7 as n,af as e,be as M,aN as nt,bk as f,aJ as W,ba as D,aP as et,a8 as lt,ac as $,$ as ct,a_ as l}from"../chunks/DEk358l3.js";import{d as ot,s as k,e as Te}from"../chunks/T-Nslbso.js";import{a as i,f as m,c as Ke,t as we}from"../chunks/DS1KfRtl.js";import{i as R}from"../chunks/BnZOgasr.js";import{j as pe,g as De,e as le,r as Fe,h as ze,b as mt}from"../chunks/6CzuHfQM.js";import{c as _e}from"../chunks/DCBLBrrW.js";import{h as ut}from"../chunks/DfVTcmam.js";import{i as ke}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as st,V as o,aW as r,b7 as n,af as e,be as M,aN as nt,bk as f,aJ as W,ba as D,aP as et,a8 as lt,ac as $,$ as ct,a_ as l}from"../chunks/DEk358l3.js";import{d as ot,s as k,e as Te}from"../chunks/T-Nslbso.js";import{a as i,f as m,c as Ke,t as we}from"../chunks/DS1KfRtl.js";import{i as R}from"../chunks/BnZOgasr.js";import{j as pe,g as De,e as le,r as Fe,h as ze,b as mt}from"../chunks/6CzuHfQM.js";import{c as _e}from"../chunks/DCBLBrrW.js";import{h as ut}from"../chunks/DfVTcmam.js";import{i as ke}from"../chunks/DoPqAbzy.js";import{a as Le,O as $e,A as Se,C as vt}from"../chunks/DkVLFJC2.js";import{U as gt}from"../chunks/KIV0kKdR.js";import{B as ee}from"../chunks/CGKZc1Kf.js";import{T as it}from"../chunks/DqK2lhM-.js";import{C as ft}from"../chunks/CIHhLSqA.js";import{C as _t}from"../chunks/Q9Y439fs.js";import{S as pt}from"../chunks/BiG82jCv.js";import{a as tt,C as at}from"../chunks/B1z9if9B.js";import{I as Ze}from"../chunks/CDmA5ezP.js";import{t as L}from"../chunks/BfHBnYuG.js";import{X as xt}from"../chunks/Dr-qnmvi.js";import{E as rt}from"../chunks/BnIDUuJL.js";import{S as ht}from"../chunks/BnzoF81W.js";import{P as bt}from"../chunks/BOsr6E_d.js";import{C as yt,a as wt}from"../chunks/CnXIg_dO.js";import{C as kt}from"../chunks/DRpLcVdK.js";import{M as Pt}from"../chunks/BtugGMaj.js";var At=m("<span> </span>"),Ct=m('<span class="border-border bg-muted text-muted-foreground rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">disabled</span>'),It=m('<span class="rounded-full border border-amber-500/40 bg-amber-500/5 px-2 py-0.5 font-mono text-[10px] tracking-wide text-amber-600 uppercase dark:text-amber-400" title="Provisioned but has never signed in. Permissions take effect on first login.">invited</span>'),Ot=m("<span> </span>"),Et=m('<div class="mt-1.5 flex flex-wrap gap-1"></div>'),St=m('<label><input type="checkbox" class="mt-0.5 shrink-0"/> <div class="min-w-0"><p class="text-sm leading-tight font-medium"> </p> <p class="text-muted-foreground mt-0.5 text-xs"> </p></div></label>'),Tt=m(`<p class="text-muted-foreground text-sm"><strong class="text-foreground capitalize"> </strong> automatically
|
|
2
2
|
receive all organization permissions. To grant a custom subset, change the role to <span class="font-mono">member</span>.</p>`),Lt=m('<label><input type="checkbox" class="mt-0.5 shrink-0"/> <div class="min-w-0"><p class="text-sm leading-tight font-medium"> </p> <p class="text-muted-foreground mt-0.5 text-xs"> </p></div></label>'),Mt=m('<div class="grid gap-2 sm:grid-cols-2"></div>'),Rt=m('<div class="mt-4 ml-10 space-y-4"><section><h4 class="text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase">Platform</h4> <div class="grid gap-2 sm:grid-cols-2"></div></section> <section><h4 class="text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase">Organization</h4> <!></section></div>'),Nt=m('<div><div class="flex items-center gap-3"><button type="button" class="text-muted-foreground hover:text-foreground shrink-0 rounded-sm p-0.5"><!></button> <!> <div class="min-w-0 flex-1"><div class="flex items-center gap-2"><p class="truncate text-sm font-medium"> </p> <!> <!></div> <p class="text-muted-foreground truncate font-mono text-xs"> </p> <!></div> <!></div> <!></div>');function Ut(Be,t){st(t,!0);const Pe={instance_admin:"Instance admin",manage_instance_users:"Manage instance users",manage_compute:"Manage compute",manage_updates:"Manage updates",manage_org_members:"Manage members",manage_org_compute:"Manage org compute",manage_definitions:"Manage definitions",manage_projects:"Manage projects"},Me={instance_admin:"Full access to every action on the instance.",manage_instance_users:"Create, disable, and delete any user on the instance.",manage_compute:"Configure the instance Rhino.Compute pool.",manage_updates:"Run the application update script.",manage_org_members:"Invite, remove, and change roles of org members.",manage_org_compute:"Configure this org's BYO compute server.",manage_definitions:"Upload, edit, and delete any definition in the org.",manage_projects:"Create, edit, and delete any project in the org."},Re={owner:"border-amber-500/40 text-amber-600 dark:text-amber-400 bg-amber-500/5",admin:"border-blue-500/40 text-blue-600 dark:text-blue-400 bg-blue-500/5",member:"border-border text-muted-foreground"},He=f(()=>t.user.displayName?`${t.user.displayName} · ${t.user.email??t.user.id}`:t.user.email??t.user.id),Y=f(()=>t.user.orgRole==="owner"||t.user.orgRole==="admin"),te=f(()=>t.user.permissions.filter(s=>Le.includes(s)?!0:!e(Y)));function ae(s){return Le.includes(s)}function re(s){return $e.includes(s)}function ce(s){const x=t.user.permissions.includes(s),a=ae(s)&&!t.isPlatformAdmin,d=s==="instance_admin"&&t.soleInstanceAdmin,g=!ae(s)&&re(s)&&t.user.orgRole==="member";return{checked:x,locked:a||d||g,soleAdminLock:d,platformLocked:a,memberExcluded:g}}var z=Nt(),q=o(z),F=o(q),se=o(F);{var xe=s=>{ft(s,{class:"h-4 w-4"})},me=s=>{_t(s,{class:"h-4 w-4"})};R(se,s=>{t.expanded?s(xe):s(me,-1)})}r(F);var he=n(F,2);{let s=f(()=>t.user.displayName??t.user.email??t.user.id);gt(he,{get name(){return e(s)}})}var Ae=n(he,2),ue=o(Ae),ve=o(ue),Ce=o(ve,!0);r(ve);var Ne=n(ve,2);{var Je=s=>{var x=At(),a=o(x,!0);r(x),M(()=>{pe(x,1,`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${Re[t.user.orgRole]}`),k(a,t.user.orgRole)}),i(s,x)};R(Ne,s=>{t.user.orgRole&&s(Je)})}var Ge=n(Ne,2);{var We=s=>{var x=Ct();i(s,x)},Ye=s=>{var x=It();i(s,x)};R(Ge,s=>{t.user.disabled?s(We):t.user.lastLoginAt||s(Ye,1)})}r(ue);var Ie=n(ue,2),Qe=o(Ie,!0);r(Ie);var Ve=n(Ie,2);{var Xe=s=>{var x=Et();le(x,20,()=>e(te),a=>a,(a,d)=>{var g=Ot(),N=o(g,!0);r(g),M(K=>{pe(g,1,K),k(N,Pe[d])},[()=>`rounded-full px-2 py-0.5 font-mono text-[10px] ${ae(d)?"bg-amber-500/10 text-amber-700 dark:text-amber-400":"bg-muted text-muted-foreground"}`]),i(a,g)}),r(x),i(s,x)};R(Ve,s=>{!t.expanded&&e(te).length>0&&s(Xe)})}r(Ae);var Oe=n(Ae,2);{let s=f(()=>t.deleting||t.soleInstanceAdmin),x=f(()=>t.soleInstanceAdmin?"Cannot delete the only instance admin. Promote another user first.":"Delete user");ee(Oe,{size:"sm",variant:"ghost",get disabled(){return e(s)},get onclick(){return t.onDelete},get title(){return e(x)},class:"text-destructive hover:text-destructive h-8 w-8 shrink-0 p-0",children:(a,d)=>{it(a,{class:"h-4 w-4"})},$$slots:{default:!0}})}r(q);var Ue=n(q,2);{var je=s=>{var x=Rt(),a=o(x),d=n(o(a),2);le(d,20,()=>Le,S=>S,(S,P)=>{const A=f(()=>ce(P));var T=St(),C=o(T);Fe(C);var y=n(C,2),I=o(y),J=o(I,!0);r(I);var O=n(I,2),E=o(O,!0);r(O),r(y),r(T),M(()=>{pe(T,1,`flex items-start gap-2 rounded-md border p-2.5 ${e(A).locked?"border-border cursor-not-allowed opacity-60":"border-border hover:bg-accent/40 cursor-pointer"}`),De(T,"title",e(A).soleAdminLock?"Cannot remove the only instance admin.":void 0),ze(C,e(A).checked),C.disabled=t.updating||e(A).locked,k(J,Pe[P]),k(E,Me[P])}),Te("change",C,h=>t.onTogglePermission(P,h.target.checked)),i(S,T)}),r(d),r(a);var g=n(a,2),N=n(o(g),2);{var K=S=>{var P=Tt(),A=o(P),T=o(A);r(A),W(3),r(P),M(()=>k(T,`${t.user.orgRole??""}s`)),i(S,P)},ge=S=>{var P=Mt();le(P,20,()=>Se,A=>A,(A,T)=>{const C=f(()=>ce(T));var y=Lt(),I=o(y);Fe(I);var J=n(I,2),O=o(J),E=o(O,!0);r(O);var h=n(O,2),Z=o(h,!0);r(h),r(J),r(y),M(()=>{pe(y,1,`flex items-start gap-2 rounded-md border p-2.5 ${e(C).locked?"border-border cursor-not-allowed opacity-60":"border-border hover:bg-accent/40 cursor-pointer"}`),De(y,"title",e(C).memberExcluded?"Only owners and admins can hold this permission.":void 0),ze(I,e(C).checked),I.disabled=t.updating||e(C).locked,k(E,Pe[T]),k(Z,Me[T])}),Te("change",I,ne=>t.onTogglePermission(T,ne.target.checked)),i(A,y)}),r(P),i(S,P)};R(N,S=>{e(Y)?S(K):S(ge,-1)})}r(g),r(x),i(s,x)};R(Ue,s=>{t.expanded&&s(je)})}r(z),M(()=>{pe(z,1,`px-4 py-3 ${t.expanded?"bg-accent/20":""}`),De(F,"aria-label",t.expanded?"Collapse permissions":"Expand permissions"),k(Ce,e(He)),k(Qe,t.user.id)}),Te("click",F,function(...s){t.onToggleExpand?.apply(this,s)}),i(Be,z),nt()}ot(["click","change"]);var jt=m("<!> Invite user",1),Dt=m("<!> ",1),Ft=m("<!> <!>",1),zt=m("<option> </option>"),Bt=m('<p class="text-muted-foreground mb-2 text-xs"> <span class="font-mono">member</span> to grant a custom subset.</p>'),Ht=m('<label><input type="checkbox"/> </label>'),Jt=m(`<div class="bg-muted/40 space-y-3 rounded-lg border p-4"><p class="text-sm font-medium">Invite user</p> <p class="text-muted-foreground text-xs">The invitee sets their own password when they open the link. No password leaves your
|
|
3
3
|
machine.</p> <div class="grid gap-3 sm:grid-cols-2"><!> <select class="border-input bg-background h-9 rounded-md border px-3 text-sm"></select></div> <div><p class="mb-2 text-xs font-medium">Organization permissions</p> <!> <div class="flex flex-wrap gap-3"></div></div> <div class="flex gap-2"><!> <!></div></div>`),Gt=m("<!> Copy",1),Wt=m('<div class="flex items-start gap-3 rounded-lg border border-green-500/30 bg-green-500/5 p-4"><div class="min-w-0 flex-1"><p class="text-sm font-medium">Invite ready — copy the link and share it</p> <p class="text-muted-foreground mt-1 truncate font-mono text-xs"> </p></div> <!> <!></div>'),Yt=m('<p class="text-muted-foreground text-xs"> </p>'),Qt=m('<label><input type="checkbox"/> </label>'),Vt=m(`<div class="bg-muted/40 space-y-3 rounded-lg border p-4"><p class="text-sm font-medium">New User</p> <div class="grid gap-3 sm:grid-cols-2"><!> <!></div> <!> <div><p class="mb-2 text-xs font-medium">Permissions</p> <p class="text-muted-foreground mb-2 text-xs">New users are added as <span class="font-mono">member</span>. Promote them to owner or
|
|
4
4
|
admin from the user list to grant full organization access.</p> <div class="flex flex-wrap gap-3"></div></div> <div class="flex gap-2"><!> <!></div></div>`),Xt=m(`Set <code class="text-xs">DATA_PATH</code> (local provider) or check your provider
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as y,aN as b,a2 as w,V as e,$ as A,aW as t,b7 as C,ac as j,aJ as l}from"../chunks/DEk358l3.js";import{a as s,f as M,c as P,t as W}from"../chunks/DS1KfRtl.js";import{c as m}from"../chunks/DCBLBrrW.js";import{h as q}from"../chunks/DfVTcmam.js";import{p as z}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as y,aN as b,a2 as w,V as e,$ as A,aW as t,b7 as C,ac as j,aJ as l}from"../chunks/DEk358l3.js";import{a as s,f as M,c as P,t as W}from"../chunks/DS1KfRtl.js";import{c as m}from"../chunks/DCBLBrrW.js";import{h as q}from"../chunks/DfVTcmam.js";import{p as z}from"../chunks/cFjfoNla.js";import{M as B}from"../chunks/BtugGMaj.js";import{a as I,A as J}from"../chunks/B6_AR4oL.js";var N=M('<div class="bg-background flex min-h-screen items-center justify-center px-4 py-12 sm:px-6 lg:px-8"><div class="w-full max-w-sm space-y-6 text-center"><div class="flex justify-center"><div class="bg-muted rounded-full p-4"><!></div></div> <div class="space-y-2"><h2 class="text-foreground text-2xl font-bold tracking-tight">Check your email</h2> <p class="text-muted-foreground text-sm">We sent you a sign-in link. Click the link in the email to continue.</p></div> <!> <a class="text-muted-foreground hover:text-foreground text-sm underline" href="/login">Back to sign in</a></div></div>');function O(c,p){y(p,!0);var a=N();q("l70sov",n=>{w(()=>{A.title=`Check your email - ${z.data.branding.name??""}`})});var o=e(a),r=e(o),i=e(r),f=e(i);B(f,{class:"text-foreground size-8"}),t(i),t(r);var u=C(r,4);m(u,()=>J,(n,v)=>{v(n,{children:(h,Q)=>{var d=P(),g=j(d);m(g,()=>I,(x,$)=>{$(x,{children:(_,T)=>{l();var k=W(`The link expires in a few minutes. If it doesn't arrive, check your spam folder or request a
|
|
2
2
|
new one from the sign-in page.`);s(_,k)},$$slots:{default:!0}})}),s(h,d)},$$slots:{default:!0}})}),l(2),t(o),t(a),s(c,a),b()}export{O as component};
|
|
Binary file
|
|
Binary file
|