@selvajs/selva 4.8.2 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/_app/immutable/chunks/{C66oCHKq.js → BJ1titjr.js} +1 -1
- package/build/client/_app/immutable/chunks/BJ1titjr.js.br +0 -0
- package/build/client/_app/immutable/chunks/BJ1titjr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ba5e_Szc2.js +1 -0
- package/build/client/_app/immutable/chunks/Ba5e_Szc2.js.br +2 -0
- package/build/client/_app/immutable/chunks/Ba5e_Szc2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D2AS0eL_.js → CR6AN07v.js} +1 -1
- package/build/client/_app/immutable/chunks/CR6AN07v.js.br +2 -0
- package/build/client/_app/immutable/chunks/CR6AN07v.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CXk7zzxB.js +2 -0
- package/build/client/_app/immutable/chunks/CXk7zzxB.js.br +0 -0
- package/build/client/_app/immutable/chunks/CXk7zzxB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DGbMmQU12.js → D9e_QTet2.js} +1 -1
- package/build/client/_app/immutable/chunks/D9e_QTet2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D9e_QTet2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DvVWAv53.js → DJgkiyc_.js} +1 -1
- package/build/client/_app/immutable/chunks/DJgkiyc_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DJgkiyc_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D7YIFN7-2.js → DhW_r4Se2.js} +1 -1
- package/build/client/_app/immutable/chunks/DhW_r4Se2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DhW_r4Se2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{pf1uJd41.js → QnE7Zhsu.js} +1 -1
- package/build/client/_app/immutable/chunks/QnE7Zhsu.js.br +0 -0
- package/build/client/_app/immutable/chunks/QnE7Zhsu.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.C6mEVjCa.js → app.C7z1DYdd.js} +2 -2
- package/build/client/_app/immutable/entry/app.C7z1DYdd.js.br +0 -0
- package/build/client/_app/immutable/entry/app.C7z1DYdd.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CzaR1gTK.js +1 -0
- package/build/client/_app/immutable/entry/start.CzaR1gTK.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CzaR1gTK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.DVjS-wU3.js → 1.DgxQBbm4.js} +1 -1
- package/build/client/_app/immutable/nodes/1.DgxQBbm4.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DgxQBbm4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.d4mJ2ENW.js → 11.KerihFoX.js} +1 -1
- package/build/client/_app/immutable/nodes/11.KerihFoX.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.KerihFoX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{13.OBFmlM4G.js → 13.sF4TjXx5.js} +1 -1
- package/build/client/_app/immutable/nodes/13.sF4TjXx5.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.sF4TjXx5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{14.B2A3QvgV.js → 14.BHIi-huz.js} +1 -1
- package/build/client/_app/immutable/nodes/14.BHIi-huz.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.BHIi-huz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{15.BngV--Z8.js → 15.B7FPhaeG.js} +1 -1
- package/build/client/_app/immutable/nodes/15.B7FPhaeG.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.B7FPhaeG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{16.C3kb15Hk.js → 16.C_jemWZO.js} +1 -1
- package/build/client/_app/immutable/nodes/16.C_jemWZO.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.C_jemWZO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{17.qo81_orT.js → 17.CHk2EqVG.js} +1 -1
- package/build/client/_app/immutable/nodes/17.CHk2EqVG.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.CHk2EqVG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{19.BB0bguXe.js → 19.k_KEtYk4.js} +1 -1
- package/build/client/_app/immutable/nodes/19.k_KEtYk4.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.k_KEtYk4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.BVWPdbfY.js → 2.BMyoGr5f.js} +1 -1
- package/build/client/_app/immutable/nodes/2.BMyoGr5f.js.br +2 -0
- package/build/client/_app/immutable/nodes/2.BMyoGr5f.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{20.CEsCDcUg.js → 20.CqvBzYHe.js} +1 -1
- package/build/client/_app/immutable/nodes/20.CqvBzYHe.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.CqvBzYHe.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{21.DnQOpIlb.js → 21.Bdq7i9gx.js} +1 -1
- package/build/client/_app/immutable/nodes/21.Bdq7i9gx.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.Bdq7i9gx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{22.DLNR3X0_.js → 22.DiDjt5np.js} +1 -1
- package/build/client/_app/immutable/nodes/22.DiDjt5np.js.br +0 -0
- package/build/client/_app/immutable/nodes/22.DiDjt5np.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{24.Myu3dpCG.js → 24.CUdJe1ye.js} +1 -1
- package/build/client/_app/immutable/nodes/24.CUdJe1ye.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.CUdJe1ye.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{25.fGk6Bd3H.js → 25.D7y_AcOn.js} +1 -1
- package/build/client/_app/immutable/nodes/25.D7y_AcOn.js.br +0 -0
- package/build/client/_app/immutable/nodes/25.D7y_AcOn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{28.BrHVL459.js → 28.DHXKEO_W.js} +1 -1
- package/build/client/_app/immutable/nodes/28.DHXKEO_W.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.DHXKEO_W.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{29.Cc2cJNYj.js → 29.CWD7F418.js} +1 -1
- package/build/client/_app/immutable/nodes/29.CWD7F418.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.CWD7F418.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.Bk2gicwt.js → 3.CB4c2xi-.js} +1 -1
- package/build/client/_app/immutable/nodes/3.CB4c2xi-.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CB4c2xi-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{30.DE39sPAX.js → 30.BkiRE7Ol.js} +1 -1
- package/build/client/_app/immutable/nodes/30.BkiRE7Ol.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.BkiRE7Ol.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{31.FEcGG6mC.js → 31.BB3I96IL.js} +1 -1
- package/build/client/_app/immutable/nodes/31.BB3I96IL.js.br +0 -0
- package/build/client/_app/immutable/nodes/31.BB3I96IL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CrnPEsum.js → 5.Ds9zNfwn.js} +1 -1
- package/build/client/_app/immutable/nodes/5.Ds9zNfwn.js.br +1 -0
- package/build/client/_app/immutable/nodes/5.Ds9zNfwn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.25_MlJn0.js → 6.Do62ld3o.js} +1 -1
- package/build/client/_app/immutable/nodes/6.Do62ld3o.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.Do62ld3o.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.B3uf6wZL.js → 7.CkGkeL0k.js} +1 -1
- package/build/client/_app/immutable/nodes/7.CkGkeL0k.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.CkGkeL0k.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.DLtJHXvQ.js → 8.ClQG8D8_.js} +1 -1
- package/build/client/_app/immutable/nodes/8.ClQG8D8_.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.ClQG8D8_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.Wk5Cvrnn.js → 9.DD2KpKEh.js} +1 -1
- package/build/client/_app/immutable/nodes/9.DD2KpKEh.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DD2KpKEh.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/handler.js +4 -4
- package/build/index.js +4 -4
- package/build/server/chunks/chunks/{AppHeader.js-DSoj21ao.js → AppHeader.js-COKMHUFV.js} +3 -3
- package/build/server/chunks/chunks/{AppHeader.js-DSoj21ao.js.map → AppHeader.js-COKMHUFV.js.map} +1 -1
- package/build/server/chunks/chunks/{SideNav.js-Cr0ZZOJx.js → SideNav.js-aNokKDwy.js} +2 -2
- package/build/server/chunks/chunks/{SideNav.js-Cr0ZZOJx.js.map → SideNav.js-aNokKDwy.js.map} +1 -1
- package/build/server/chunks/chunks/{UserChip.js-DQzUfmob.js → UserChip.js-dJO0x2VB.js} +3 -3
- package/build/server/chunks/chunks/{UserChip.js-DQzUfmob.js.map → UserChip.js-dJO0x2VB.js.map} +1 -1
- package/build/server/chunks/chunks/{client.js-DzGbdrzt.js → client.js-BelvuVWm.js} +2 -2
- package/build/server/chunks/chunks/{client.js-DzGbdrzt.js.map → client.js-BelvuVWm.js.map} +1 -1
- package/build/server/chunks/chunks/forms.js-jAyrBZP9.js +2 -0
- package/build/server/chunks/chunks/forms.js-jAyrBZP9.js.map +1 -0
- package/build/server/chunks/chunks/internal.js-CkVehOOc.js.map +1 -1
- package/build/server/chunks/chunks/{internal2.js-DFCTkHdc.js → internal2.js-CnaYURQz.js} +2 -2
- package/build/server/chunks/chunks/{internal2.js-DFCTkHdc.js.map → internal2.js-CnaYURQz.js.map} +1 -1
- package/build/server/chunks/chunks/navigation.js-jAyrBZP9.js +2 -0
- package/build/server/chunks/chunks/navigation.js-jAyrBZP9.js.map +1 -0
- package/build/server/chunks/chunks/{package.js-LSj2ZYsp.js → package.js-CFVjSCfG.js} +2 -2
- package/build/server/chunks/chunks/{package.js-LSj2ZYsp.js.map → package.js-CFVjSCfG.js.map} +1 -1
- package/build/server/chunks/chunks/{paths.js-veMC2dzy.js → paths.js-lLmRr8a7.js} +2 -2
- package/build/server/chunks/chunks/{paths.js-veMC2dzy.js.map → paths.js-lLmRr8a7.js.map} +1 -1
- package/build/server/chunks/chunks/{state.js-7DhmlguJ.js → state.js-De6VXlTk.js} +2 -2
- package/build/server/chunks/chunks/{state.js-7DhmlguJ.js.map → state.js-De6VXlTk.js.map} +1 -1
- package/build/server/chunks/chunks/{stores.js-B4rCR4-I.js → stores.js-Cw8_ifn0.js} +2 -2
- package/build/server/chunks/chunks/{stores.js-B4rCR4-I.js.map → stores.js-Cw8_ifn0.js.map} +1 -1
- package/build/server/chunks/entries/pages/{_error.svelte.js-7BUdqGDh.js → _error.svelte.js-Do1Jsdl4.js} +4 -4
- package/build/server/chunks/entries/pages/{_error.svelte.js-7BUdqGDh.js.map → _error.svelte.js-Do1Jsdl4.js.map} +1 -1
- package/build/server/chunks/entries/pages/{_page.svelte.js-DHpD4Mha.js → _page.svelte.js-AeMomx7x.js} +6 -6
- package/build/server/chunks/entries/pages/{_page.svelte.js-DHpD4Mha.js.map → _page.svelte.js-AeMomx7x.js.map} +1 -1
- package/build/server/chunks/entries/pages/accept-invite/{_page.svelte.js-BZbuJfms.js → _page.svelte.js-hWqdfF86.js} +4 -4
- package/build/server/chunks/entries/pages/accept-invite/{_page.svelte.js-BZbuJfms.js.map → _page.svelte.js-hWqdfF86.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/{_error.svelte.js-R9omit8u.js → _error.svelte.js-Czgteonq.js} +4 -4
- package/build/server/chunks/entries/pages/admin/{_error.svelte.js-R9omit8u.js.map → _error.svelte.js-Czgteonq.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/{_layout.svelte.js-BHVD-9TB.js → _layout.svelte.js-pAZZ33Bq.js} +7 -7
- package/build/server/chunks/entries/pages/admin/{_layout.svelte.js-BHVD-9TB.js.map → _layout.svelte.js-pAZZ33Bq.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/{_page.server.ts.js-VvoO6FDi.js → _page.server.ts.js-DL41BXc_.js} +2 -2
- package/build/server/chunks/entries/pages/admin/{_page.server.ts.js-VvoO6FDi.js.map → _page.server.ts.js-DL41BXc_.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/{_page.svelte.js-Cn0hF0DI.js → _page.svelte.js-DCKLQ3Uh.js} +4 -4
- package/build/server/chunks/entries/pages/admin/{_page.svelte.js-Cn0hF0DI.js.map → _page.svelte.js-DCKLQ3Uh.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/compute/{_page.svelte.js-441SPXVP.js → _page.svelte.js-3cOj5sHJ.js} +3 -3
- package/build/server/chunks/entries/pages/admin/compute/{_page.svelte.js-441SPXVP.js.map → _page.svelte.js-3cOj5sHJ.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/projects/_id_/{_page.svelte.js-OifDOF_G.js → _page.svelte.js-Bxkj7Gsh.js} +3 -3
- package/build/server/chunks/entries/pages/admin/projects/_id_/{_page.svelte.js-OifDOF_G.js.map → _page.svelte.js-Bxkj7Gsh.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/projects/{_page.svelte.js-DgjWbX-w.js → _page.svelte.js-CfdfOtxT.js} +3 -3
- package/build/server/chunks/entries/pages/admin/projects/{_page.svelte.js-DgjWbX-w.js.map → _page.svelte.js-CfdfOtxT.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/system/{_page.server.ts.js-BW-G9m_7.js → _page.server.ts.js-DZMwr-0a.js} +2 -2
- package/build/server/chunks/entries/pages/admin/system/{_page.server.ts.js-BW-G9m_7.js.map → _page.server.ts.js-DZMwr-0a.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/system/{_page.svelte.js-CKJWNNnL.js → _page.svelte.js-n3gn5t0X.js} +3 -3
- package/build/server/chunks/entries/pages/admin/system/{_page.svelte.js-CKJWNNnL.js.map → _page.svelte.js-n3gn5t0X.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/users/{_page.svelte.js-Bc-RZFjW.js → _page.svelte.js-DtcpmAeX.js} +4 -4
- package/build/server/chunks/entries/pages/admin/users/{_page.svelte.js-Bc-RZFjW.js.map → _page.svelte.js-DtcpmAeX.js.map} +1 -1
- package/build/server/chunks/entries/pages/auth/email/sent/{_page.svelte.js-BEkP08TZ.js → _page.svelte.js-6NjWsq5P.js} +4 -4
- package/build/server/chunks/entries/pages/auth/email/sent/{_page.svelte.js-BEkP08TZ.js.map → _page.svelte.js-6NjWsq5P.js.map} +1 -1
- package/build/server/chunks/entries/pages/docs/api/{_page.svelte.js-Cb8r7OIX.js → _page.svelte.js-k5vGXNVr.js} +3 -3
- package/build/server/chunks/entries/pages/docs/api/{_page.svelte.js-Cb8r7OIX.js.map → _page.svelte.js-k5vGXNVr.js.map} +1 -1
- package/build/server/chunks/entries/pages/library/_guid_/{_page.svelte.js-TiyA9e3Q.js → _page.svelte.js-BAIOKkAi.js} +5 -5
- package/build/server/chunks/entries/pages/library/_guid_/{_page.svelte.js-TiyA9e3Q.js.map → _page.svelte.js-BAIOKkAi.js.map} +1 -1
- package/build/server/chunks/entries/pages/library/{_page.svelte.js-CgG1X0b8.js → _page.svelte.js-CVCUJqmw.js} +6 -6
- package/build/server/chunks/entries/pages/library/{_page.svelte.js-CgG1X0b8.js.map → _page.svelte.js-CVCUJqmw.js.map} +1 -1
- package/build/server/chunks/entries/pages/login/{_page.svelte.js-jyMQl_7D.js → _page.svelte.js-Cqupgev3.js} +4 -4
- package/build/server/chunks/entries/pages/login/{_page.svelte.js-jyMQl_7D.js.map → _page.svelte.js-Cqupgev3.js.map} +1 -1
- package/build/server/chunks/entries/pages/projects/{_layout.svelte.js-BCoW-2hB.js → _layout.svelte.js-jvdSPmb6.js} +6 -6
- package/build/server/chunks/entries/pages/projects/{_layout.svelte.js-BCoW-2hB.js.map → _layout.svelte.js-jvdSPmb6.js.map} +1 -1
- package/build/server/chunks/entries/pages/projects/{_page.svelte.js-BnM-lziZ.js → _page.svelte.js-BZXgGiq0.js} +4 -4
- package/build/server/chunks/entries/pages/projects/{_page.svelte.js-BnM-lziZ.js.map → _page.svelte.js-BZXgGiq0.js.map} +1 -1
- package/build/server/chunks/entries/pages/setup/{_page.svelte.js-XQlMxduw.js → _page.svelte.js-BeZMxOF-.js} +4 -4
- package/build/server/chunks/entries/pages/setup/{_page.svelte.js-XQlMxduw.js.map → _page.svelte.js-BeZMxOF-.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/{_layout.svelte.js-DfqhQVf5.js → _layout.svelte.js-DZa0TX9t.js} +8 -8
- package/build/server/chunks/entries/pages/team/{_layout.svelte.js-DfqhQVf5.js.map → _layout.svelte.js-DZa0TX9t.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/compute/{_page.svelte.js-CB96XjGo.js → _page.svelte.js-CBFrurXA.js} +4 -4
- package/build/server/chunks/entries/pages/team/compute/{_page.svelte.js-CB96XjGo.js.map → _page.svelte.js-CBFrurXA.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/members/{_page.svelte.js-kTkRpUA0.js → _page.svelte.js-A68WMCw4.js} +3 -3
- package/build/server/chunks/entries/pages/team/members/{_page.svelte.js-kTkRpUA0.js.map → _page.svelte.js-A68WMCw4.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/projects/{_page.svelte.js-B5RQVKsd.js → _page.svelte.js-BVqcMVMi.js} +3 -3
- package/build/server/chunks/entries/pages/team/projects/{_page.svelte.js-B5RQVKsd.js.map → _page.svelte.js-BVqcMVMi.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/reclaim/{_page.svelte.js-DC2cJoWU.js → _page.svelte.js--x8s2UX5.js} +3 -3
- package/build/server/chunks/entries/pages/team/reclaim/{_page.svelte.js-DC2cJoWU.js.map → _page.svelte.js--x8s2UX5.js.map} +1 -1
- package/build/server/chunks/{handler-DOlDwJb3.js → handler-DFFztY7q.js} +3 -3
- package/build/server/chunks/{handler-DOlDwJb3.js.map → handler-DFFztY7q.js.map} +1 -1
- package/build/server/chunks/{index.js-Bfb0U_Jd.js → index.js-CiK5-Da7.js} +2 -2
- package/build/server/chunks/{index.js-Bfb0U_Jd.js.map → index.js-CiK5-Da7.js.map} +1 -1
- package/build/server/chunks/{manifest.js-B08cgiBS.js → manifest.js-nUN8Vr9X.js} +26 -26
- package/build/server/chunks/{manifest.js-B08cgiBS.js.map → manifest.js-nUN8Vr9X.js.map} +1 -1
- package/build/server/chunks/nodes/{1.js-CPvrpFcw.js → 1.js-utRBlyJq.js} +3 -3
- package/build/server/chunks/nodes/{1.js-CPvrpFcw.js.map → 1.js-utRBlyJq.js.map} +1 -1
- package/build/server/chunks/nodes/{11.js-jXwkSufg.js → 11.js-CnlYeU4X.js} +3 -3
- package/build/server/chunks/nodes/{11.js-jXwkSufg.js.map → 11.js-CnlYeU4X.js.map} +1 -1
- package/build/server/chunks/nodes/{13.js-D1AnDQ-e.js → 13.js-CTEpADXd.js} +3 -3
- package/build/server/chunks/nodes/{13.js-D1AnDQ-e.js.map → 13.js-CTEpADXd.js.map} +1 -1
- package/build/server/chunks/nodes/{14.js-CiAchQzE.js → 14.js-BcaggEyP.js} +3 -3
- package/build/server/chunks/nodes/{14.js-CiAchQzE.js.map → 14.js-BcaggEyP.js.map} +1 -1
- package/build/server/chunks/nodes/{15.js-CvNh46bO.js → 15.js-BGexRY-n.js} +5 -5
- package/build/server/chunks/nodes/{15.js-CvNh46bO.js.map → 15.js-BGexRY-n.js.map} +1 -1
- package/build/server/chunks/nodes/{16.js-DFIx646g.js → 16.js-BHaeHvyv.js} +3 -3
- package/build/server/chunks/nodes/{16.js-DFIx646g.js.map → 16.js-BHaeHvyv.js.map} +1 -1
- package/build/server/chunks/nodes/{17.js-Duq1ljOg.js → 17.js-Df8OkYc3.js} +3 -3
- package/build/server/chunks/nodes/{17.js-Duq1ljOg.js.map → 17.js-Df8OkYc3.js.map} +1 -1
- package/build/server/chunks/nodes/{19.js-Chm7XFGh.js → 19.js-CeaNwViH.js} +3 -3
- package/build/server/chunks/nodes/{19.js-Chm7XFGh.js.map → 19.js-CeaNwViH.js.map} +1 -1
- package/build/server/chunks/nodes/{2.js-CSly8u9X.js → 2.js-D05a6wui.js} +3 -3
- package/build/server/chunks/nodes/{2.js-CSly8u9X.js.map → 2.js-D05a6wui.js.map} +1 -1
- package/build/server/chunks/nodes/{20.js-B0Yr5Fx_.js → 20.js-nOgKt5U0.js} +3 -3
- package/build/server/chunks/nodes/{20.js-B0Yr5Fx_.js.map → 20.js-nOgKt5U0.js.map} +1 -1
- package/build/server/chunks/nodes/{21.js-CClz-HoB.js → 21.js-Bv9ybDFn.js} +3 -3
- package/build/server/chunks/nodes/{21.js-CClz-HoB.js.map → 21.js-Bv9ybDFn.js.map} +1 -1
- package/build/server/chunks/nodes/{22.js-Bx9e78i_.js → 22.js-BrDqfY0g.js} +3 -3
- package/build/server/chunks/nodes/{22.js-Bx9e78i_.js.map → 22.js-BrDqfY0g.js.map} +1 -1
- package/build/server/chunks/nodes/{24.js-DqfQCjmk.js → 24.js-Cqc44jmx.js} +3 -3
- package/build/server/chunks/nodes/{24.js-DqfQCjmk.js.map → 24.js-Cqc44jmx.js.map} +1 -1
- package/build/server/chunks/nodes/{25.js-DYVcZvmh.js → 25.js-BsBFeaZT.js} +3 -3
- package/build/server/chunks/nodes/{25.js-DYVcZvmh.js.map → 25.js-BsBFeaZT.js.map} +1 -1
- package/build/server/chunks/nodes/{28.js-B-JnmZd_.js → 28.js-phZLqKD9.js} +3 -3
- package/build/server/chunks/nodes/{28.js-B-JnmZd_.js.map → 28.js-phZLqKD9.js.map} +1 -1
- package/build/server/chunks/nodes/{29.js-C_r-T_LD.js → 29.js-JUf_q3Am.js} +3 -3
- package/build/server/chunks/nodes/{29.js-C_r-T_LD.js.map → 29.js-JUf_q3Am.js.map} +1 -1
- package/build/server/chunks/nodes/{3.js-Dan7TdWG.js → 3.js-Bjabqh0U.js} +3 -3
- package/build/server/chunks/nodes/{3.js-Dan7TdWG.js.map → 3.js-Bjabqh0U.js.map} +1 -1
- package/build/server/chunks/nodes/{30.js-DWm6Psu1.js → 30.js-CP124JZ4.js} +3 -3
- package/build/server/chunks/nodes/{30.js-DWm6Psu1.js.map → 30.js-CP124JZ4.js.map} +1 -1
- package/build/server/chunks/nodes/{31.js-Dt_npZtw.js → 31.js-CDO9relg.js} +3 -3
- package/build/server/chunks/nodes/{31.js-Dt_npZtw.js.map → 31.js-CDO9relg.js.map} +1 -1
- package/build/server/chunks/nodes/{5.js-MnK5yVtc.js → 5.js-CXpMpKRu.js} +3 -3
- package/build/server/chunks/nodes/{5.js-MnK5yVtc.js.map → 5.js-CXpMpKRu.js.map} +1 -1
- package/build/server/chunks/nodes/{6.js-Bcb0cjFL.js → 6.js-Cmgpied0.js} +3 -3
- package/build/server/chunks/nodes/{6.js-Bcb0cjFL.js.map → 6.js-Cmgpied0.js.map} +1 -1
- package/build/server/chunks/nodes/{7.js-Dapmqh2G.js → 7.js-DSrveoKI.js} +3 -3
- package/build/server/chunks/nodes/{7.js-Dapmqh2G.js.map → 7.js-DSrveoKI.js.map} +1 -1
- package/build/server/chunks/nodes/{8.js-7wm1M4Aa.js → 8.js-BjKhtcps.js} +3 -3
- package/build/server/chunks/nodes/{8.js-7wm1M4Aa.js.map → 8.js-BjKhtcps.js.map} +1 -1
- package/build/server/chunks/nodes/{9.js-Bul_Zu6L.js → 9.js-D_IzjKEW.js} +5 -5
- package/build/server/chunks/nodes/{9.js-Bul_Zu6L.js.map → 9.js-D_IzjKEW.js.map} +1 -1
- package/package.json +4 -4
- package/build/client/_app/immutable/chunks/C66oCHKq.js.br +0 -0
- package/build/client/_app/immutable/chunks/C66oCHKq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D2AS0eL_.js.br +0 -2
- package/build/client/_app/immutable/chunks/D2AS0eL_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D7YIFN7-2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D7YIFN7-2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DGbMmQU12.js.br +0 -0
- package/build/client/_app/immutable/chunks/DGbMmQU12.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DPBDT0yo.js +0 -2
- package/build/client/_app/immutable/chunks/DPBDT0yo.js.br +0 -0
- package/build/client/_app/immutable/chunks/DPBDT0yo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DvVWAv53.js.br +0 -0
- package/build/client/_app/immutable/chunks/DvVWAv53.js.gz +0 -0
- package/build/client/_app/immutable/chunks/QjhEYLpX2.js +0 -1
- package/build/client/_app/immutable/chunks/QjhEYLpX2.js.br +0 -2
- package/build/client/_app/immutable/chunks/QjhEYLpX2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pf1uJd41.js.br +0 -0
- package/build/client/_app/immutable/chunks/pf1uJd41.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.C6mEVjCa.js.br +0 -0
- package/build/client/_app/immutable/entry/app.C6mEVjCa.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Bhb62nYY.js +0 -1
- package/build/client/_app/immutable/entry/start.Bhb62nYY.js.br +0 -0
- package/build/client/_app/immutable/entry/start.Bhb62nYY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DVjS-wU3.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DVjS-wU3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.d4mJ2ENW.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.d4mJ2ENW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.OBFmlM4G.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.OBFmlM4G.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.B2A3QvgV.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.B2A3QvgV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.BngV--Z8.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.BngV--Z8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.C3kb15Hk.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.C3kb15Hk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.qo81_orT.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.qo81_orT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.BB0bguXe.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.BB0bguXe.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BVWPdbfY.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BVWPdbfY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.CEsCDcUg.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.CEsCDcUg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.DnQOpIlb.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.DnQOpIlb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/22.DLNR3X0_.js.br +0 -0
- package/build/client/_app/immutable/nodes/22.DLNR3X0_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.Myu3dpCG.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.Myu3dpCG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/25.fGk6Bd3H.js.br +0 -0
- package/build/client/_app/immutable/nodes/25.fGk6Bd3H.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.BrHVL459.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.BrHVL459.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.Cc2cJNYj.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.Cc2cJNYj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.Bk2gicwt.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.Bk2gicwt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.DE39sPAX.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.DE39sPAX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/31.FEcGG6mC.js.br +0 -0
- package/build/client/_app/immutable/nodes/31.FEcGG6mC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CrnPEsum.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CrnPEsum.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.25_MlJn0.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.25_MlJn0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.B3uf6wZL.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.B3uf6wZL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.DLtJHXvQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DLtJHXvQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.Wk5Cvrnn.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.Wk5Cvrnn.js.gz +0 -0
- package/build/server/chunks/chunks/forms.js-aie0AliG.js +0 -2
- package/build/server/chunks/chunks/forms.js-aie0AliG.js.map +0 -1
- package/build/server/chunks/chunks/navigation.js-aie0AliG.js +0 -2
- package/build/server/chunks/chunks/navigation.js-aie0AliG.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{At as e,B as t,D as n,F as r,Ft as i,It as a,L as o,M as s,Rt as c,V as l,W as u,X as d,at as f,dt as p,ft as m,g as h,gt as g,h as _,it as v,k as y,kt as b,l as ee,lt as x,mt as S,o as C,s as w,st as T,tt as te,ut as E,y as ne,yt as D,z as O}from"../chunks/Cke4knuE.js";import{i as k,r as re}from"../chunks/
|
|
1
|
+
import{At as e,B as t,D as n,F as r,Ft as i,It as a,L as o,M as s,Rt as c,V as l,W as u,X as d,at as f,dt as p,ft as m,g as h,gt as g,h as _,it as v,k as y,kt as b,l as ee,lt as x,mt as S,o as C,s as w,st as T,tt as te,ut as E,y as ne,yt as D,z as O}from"../chunks/Cke4knuE.js";import{i as k,r as re}from"../chunks/CXk7zzxB.js";import"../chunks/xihTtKlq.js";import{n as A}from"../chunks/DSGwkBAQ.js";import{t as j}from"../chunks/DryGTRV9.js";import{t as ie}from"../chunks/oHhA487o.js";import{t as ae}from"../chunks/BVBwPLPv.js";import{t as oe}from"../chunks/ztBd1gZj.js";import{t as se}from"../chunks/COQXRZGa.js";import{t as ce}from"../chunks/BmnySeU9.js";import{t as le}from"../chunks/Dz00jH5u.js";import{t as M}from"../chunks/C2ulfLBp.js";import{a as ue,i as N,n as P,r as de,t as fe}from"../chunks/E0FrUJ1t.js";import{t as pe}from"../chunks/10viO958.js";import{t as F}from"../chunks/ehM2QOgk.js";import{n as I,t as L}from"../chunks/DJq7n-sf.js";import{t as me}from"../chunks/D3p1tqid.js";import{n as R}from"../chunks/BVvGdFdF2.js";import{t as z}from"../chunks/DvAc6wqz2.js";import"../chunks/Ba5e_Szc2.js";var B=new Set([`$$slots`,`$$events`,`$$legacy`]);function V(e,t){let n=C(t,B),r=[[`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`}]];A(e,w({name:`file-text`},()=>n,{get iconNode(){return r}}))}var he=l(`<!> Grants <span class="text-muted-foreground ml-1 font-mono text-[11px]"> </span>`,1),ge=l(`<!> Definitions <span class="text-muted-foreground ml-1 font-mono text-[11px]"> </span>`,1),_e=l(`<!> Settings`,1),ve=l(`<!> <!> <!>`,1),ye=l(`<!> Add grant`,1),be=l(`<option> </option>`),xe=l(`<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>`),Se=l(`<p class="text-muted-foreground truncate text-xs"> </p>`),Ce=l(`<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),we=l(`<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),Te=l(`<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),Ee=l(`<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),De=l(`<!> `,1),Oe=l(`<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),ke=l(`<!> <!> <!> <!>`,1),Ae=l(`<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 H(l,C){e(C,!0);let w=g(m(C.data.project.name)),A=g(m(C.data.project.description??``)),B=g(!1),H=g(!1);f(()=>{S(w,C.data.project.name,!0),S(A,C.data.project.description??``,!0)});async function je(){if(!d(w).trim()){R.error(`Name is required`);return}S(B,!0);try{let e=await fetch(`/api/admin/projects/${C.data.project.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:d(w).trim(),description:d(A).trim()||null})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.message??`HTTP ${e.status}`)}R.success(`Saved`),await k()}catch(e){R.error(e.message)}finally{S(B,!1)}}async function Me(){if(confirm(`Delete “${C.data.project.name}”? This cannot be undone.`)){S(H,!0);try{let e=await fetch(`/api/admin/projects/${C.data.project.id}`,{method:`DELETE`});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.message??`HTTP ${e.status}`)}R.success(`Project deleted`),re(`/admin/projects`)}catch(e){R.error(e.message),S(H,!1)}}}let U=g(!1),W=g(`org`),G=g(``),K=g(!0),q=g(!1),J=g(null),Y=D(()=>d(W)===`org`?C.data.orgOptions.map(e=>({id:e.id,label:e.name,sub:e.slug})):C.data.userOptions.map(e=>({id:e.id,label:e.displayName??e.email??e.id,sub:e.displayName&&e.email?e.email:void 0}))),X=D(()=>new Set(C.data.grants.filter(e=>e.granteeType===d(W)).map(e=>e.granteeId)));f(()=>{d(Y).find(e=>e.id===d(G))||S(G,d(Y).find(e=>!d(X).has(e.id))?.id??``,!0)});async function Ne(){if(!d(G)){R.error(`Pick a grantee`);return}S(q,!0);try{let e=await fetch(`/api/admin/projects/${C.data.project.id}/grants`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({granteeType:d(W),granteeId:d(G),canSolve:d(K)})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.message??`HTTP ${e.status}`)}R.success(`Grant added`),S(U,!1),S(G,``),S(K,!0),await k()}catch(e){R.error(e.message)}finally{S(q,!1)}}async function Pe(e){S(J,e,!0);try{let t=await fetch(`/api/admin/projects/${C.data.project.id}/grants/${e}`,{method:`DELETE`});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.message??`HTTP ${t.status}`)}R.success(`Grant revoked`),await k()}catch(e){R.error(e.message)}finally{S(J,null)}}var Z=Ae();n(`t02vfz`,e=>{te(()=>{T.title=`Admin · ${C.data.project.name??``}`})});var Q=x(Z),Fe=x(Q),Ie=x(Fe);ie(Ie,{class:`h-3 w-3`}),i(),a(Fe),a(Q);var $=p(Q,2);{let e=D(()=>C.data.project.description??void 0);pe($,{eyebrow:`Platform project`,get title(){return C.data.project.name},get description(){return d(e)}})}var Le=p($,2);y(Le,()=>ue,(e,n)=>{n(e,{value:`grants`,children:(e,n)=>{var l=ke(),f=E(l);y(f,()=>de,(e,t)=>{t(e,{children:(e,t)=>{var n=ve(),r=E(n);y(r,()=>P,(e,t)=>{t(e,{value:`grants`,class:`gap-1.5`,children:(e,t)=>{var n=he(),r=E(n);se(r,{class:`h-3.5 w-3.5`});var i=p(r,2),s=x(i,!0);a(i),v(()=>o(s,C.data.grants.length)),O(e,n)},$$slots:{default:!0}})});var s=p(r,2);y(s,()=>P,(e,t)=>{t(e,{value:`definitions`,class:`gap-1.5`,children:(e,t)=>{var n=ge(),r=E(n);V(r,{class:`h-3.5 w-3.5`});var i=p(r,2),s=x(i,!0);a(i),v(()=>o(s,C.data.definitions.length)),O(e,n)},$$slots:{default:!0}})});var c=p(s,2);y(c,()=>P,(e,t)=>{t(e,{value:`settings`,class:`gap-1.5`,children:(e,t)=>{var n=_e(),r=E(n);oe(r,{class:`h-3.5 w-3.5`}),i(),O(e,n)},$$slots:{default:!0}})}),O(e,n)},$$slots:{default:!0}})});var m=p(f,2);y(m,()=>N,(e,n)=>{n(e,{value:`grants`,class:`mt-4 space-y-4`,children:(e,n)=>{var l=t(),f=E(l);y(f,()=>I,(e,n)=>{n(e,{children:(e,n)=>{var l=t(),f=E(l);y(f,()=>L,(e,t)=>{t(e,{class:`space-y-4 pt-6`,children:(e,t)=>{var n=we(),l=E(n),f=p(x(l),2);j(f,{size:`sm`,onclick:()=>S(U,!d(U)),class:`gap-1.5`,children:(e,t)=>{var n=ye(),r=E(n);ae(r,{class:`h-3.5 w-3.5`}),i(),O(e,n)},$$slots:{default:!0}}),a(l);var m=p(l,2),h=e=>{var t=xe(),n=x(t),r=x(n);M(r,{children:(e,t)=>{i();var n=u(`Grantee type`);O(e,n)},$$slots:{default:!0}});var c=p(r,2),l=x(c);{let e=D(()=>d(W)===`org`?`default`:`outline`);j(l,{get variant(){return d(e)},size:`sm`,onclick:()=>S(W,`org`),children:(e,t)=>{i();var n=u(`Organization`);O(e,n)},$$slots:{default:!0}})}var f=p(l,2);{let e=D(()=>d(W)===`user`?`default`:`outline`);j(f,{get variant(){return d(e)},size:`sm`,onclick:()=>S(W,`user`),children:(e,t)=>{i();var n=u(`Individual user`);O(e,n)},$$slots:{default:!0}})}a(c),a(n);var m=p(n,2),h=x(m);M(h,{for:`grantee-id`,children:(e,t)=>{i();var n=u();v(()=>o(n,d(W)===`org`?`Organization`:`User`)),O(e,n)},$$slots:{default:!0}});var g=p(h,2);s(g,21,()=>d(Y),e=>e.id,(e,t)=>{var n=be(),r=x(n);a(n);var i={};v((e,a)=>{n.disabled=e,o(r,`${d(t).label??``}${d(t).sub?` — ${d(t).sub}`:``}${a??``}`),i!==(i=d(t).id)&&(n.value=(n.__value=d(t).id)??``)},[()=>d(X).has(d(t).id),()=>d(X).has(d(t).id)?` (already granted)`:``]),O(e,n)}),a(g),a(m);var y=p(m,2),b=x(y);_(b),i(),a(y);var C=p(y,2),w=x(C);j(w,{variant:`outline`,size:`sm`,onclick:()=>S(U,!1),children:(e,t)=>{i();var n=u(`Cancel`);O(e,n)},$$slots:{default:!0}});var T=p(w,2);{let e=D(()=>d(q)||!d(G));j(T,{size:`sm`,get disabled(){return d(e)},onclick:Ne,children:(e,t)=>{i();var n=u();v(()=>o(n,d(q)?`Adding…`:`Add grant`)),O(e,n)},$$slots:{default:!0}})}a(C),a(t),ne(g,()=>d(G),e=>S(G,e)),ee(b,()=>d(K),e=>S(K,e)),O(e,t)};r(m,e=>{d(U)&&e(h)});var g=p(m,2),y=e=>{F(e,{size:`sm`,get icon(){return se},title:`No grants yet`,description:`Add a grant to share this project with an org or specific user.`})},b=e=>{z(e,{get rows(){return C.data.grants},getKey:e=>e.id,columns:[{label:`Grantee`},{label:`Type`,width:`120px`},{label:`Access`,width:`120px`},{label:``,width:`40px`,align:`right`}],row:(e,t=c)=>{var n=Ce(),i=E(n),s=x(i),l=x(s,!0);a(s);var u=p(s,2),f=e=>{var n=Se(),r=x(n,!0);a(n),v(()=>o(r,t().granteeSubtitle)),O(e,n)};r(u,e=>{t().granteeSubtitle&&e(f)}),a(i);var m=p(i,2),h=x(m,!0);a(m);var g=p(m,2),_=x(g,!0);a(g);var y=p(g,2),b=x(y);{let e=D(()=>d(J)===t().id);j(b,{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive h-7 w-7 p-0`,get disabled(){return d(e)},onclick:()=>Pe(t().id),children:(e,t)=>{le(e,{class:`h-3.5 w-3.5`})},$$slots:{default:!0}})}a(y),v(()=>{o(l,t().granteeName),o(h,t().granteeType),o(_,t().canSolve?`View + solve`:`View only`)}),O(e,n)},$$slots:{row:!0}})};r(g,e=>{C.data.grants.length===0?e(y):e(b,-1)}),O(e,n)},$$slots:{default:!0}})}),O(e,l)},$$slots:{default:!0}})}),O(e,l)},$$slots:{default:!0}})});var g=p(m,2);y(g,()=>N,(e,n)=>{n(e,{value:`definitions`,class:`mt-4 space-y-4`,children:(e,n)=>{var s=t(),l=E(s);y(l,()=>I,(e,n)=>{n(e,{children:(e,n)=>{var s=t(),l=E(s);y(l,()=>L,(e,t)=>{t(e,{class:`space-y-4 pt-6`,children:(e,t)=>{var n=Ee(),s=E(n),l=p(x(s),2);j(l,{size:`sm`,variant:`outline`,onclick:()=>re(`/projects?project=${C.data.project.slug}`),children:(e,t)=>{i();var n=u(`Open in projects`);O(e,n)},$$slots:{default:!0}}),a(s);var d=p(s,2),f=e=>{F(e,{size:`sm`,get icon(){return V},title:`No definitions yet`,description:`Open this project in the projects view to upload .gh files.`})},m=e=>{z(e,{get rows(){return C.data.definitions},getKey:e=>e.guid,columns:[{label:`Definition`},{label:`Status`,width:`120px`},{label:`Updated`,width:`140px`,align:`right`}],row:(e,t=c)=>{var n=Te(),r=E(n),i=x(r),s=x(i,!0);a(i);var l=p(i,2),u=x(l,!0);a(l),a(r);var d=p(r,2),f=x(d,!0);a(d);var m=p(d,2),g=x(m,!0);a(m),v(e=>{h(r,`href`,`/library/${t().guid}`),o(s,t().displayName),o(u,t().guid),o(f,t().status),o(g,e)},[()=>new Date(t().updatedAt).toLocaleDateString()]),O(e,n)},$$slots:{row:!0}})};r(d,e=>{C.data.definitions.length===0?e(f):e(m,-1)}),O(e,n)},$$slots:{default:!0}})}),O(e,s)},$$slots:{default:!0}})}),O(e,s)},$$slots:{default:!0}})});var b=p(g,2);y(b,()=>N,(e,n)=>{n(e,{value:`settings`,class:`mt-4 space-y-4`,children:(e,n)=>{var r=t(),s=E(r);y(s,()=>I,(e,n)=>{n(e,{children:(e,n)=>{var r=t(),s=E(r);y(s,()=>L,(e,t)=>{t(e,{class:`space-y-4 pt-6`,children:(e,t)=>{var n=Oe(),r=E(n),s=x(r);M(s,{for:`proj-name`,children:(e,t)=>{i();var n=u(`Name`);O(e,n)},$$slots:{default:!0}});var c=p(s,2);me(c,{id:`proj-name`,get value(){return d(w)},set value(e){S(w,e,!0)}}),a(r);var l=p(r,2),f=x(l);M(f,{for:`proj-desc`,children:(e,t)=>{i();var n=u(`Description`);O(e,n)},$$slots:{default:!0}});var m=p(f,2);fe(m,{id:`proj-desc`,rows:3,get value(){return d(A)},set value(e){S(A,e,!0)}}),a(l);var h=p(l,2),g=x(h);j(g,{onclick:Me,variant:`ghost`,size:`sm`,get disabled(){return d(H)},class:`text-destructive hover:text-destructive gap-1.5 px-2`,children:(e,t)=>{var n=De(),r=E(n);ce(r,{class:`h-3.5 w-3.5`});var i=p(r);v(()=>o(i,` ${d(H)?`Deleting…`:`Delete project`}`)),O(e,n)},$$slots:{default:!0}});var _=p(g,2);j(_,{size:`sm`,get disabled(){return d(B)},onclick:je,children:(e,t)=>{i();var n=u();v(()=>o(n,d(B)?`Saving…`:`Save`)),O(e,n)},$$slots:{default:!0}}),a(h),O(e,n)},$$slots:{default:!0}})}),O(e,r)},$$slots:{default:!0}})}),O(e,r)},$$slots:{default:!0}})}),O(e,l)},$$slots:{default:!0}})}),a(Z),O(l,Z),b()}export{H as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{$ as e,At as t,B as n,C as r,D as i,E as a,F as o,Ft as s,G as c,It as l,K as u,L as d,M as f,P as p,V as m,W as h,X as g,a as _,at as v,c as y,d as b,dt as x,f as S,ft as C,g as w,gt as T,h as ee,it as E,k as D,kt as O,lt as k,mt as A,nt as j,o as M,s as N,st as P,ut as F,y as I,yt as L,z as R,zt as te}from"../chunks/Cke4knuE.js";import"../chunks/xihTtKlq.js";import{n as z}from"../chunks/DSGwkBAQ.js";import{t as B}from"../chunks/DryGTRV9.js";import{n as V,r as H,t as U}from"../chunks/0lP-Rpma.js";import{t as W}from"../chunks/B5Aipckh.js";import{t as ne}from"../chunks/BJdlp6TT.js";import{t as G}from"../chunks/B4mCYsis.js";import{t as re}from"../chunks/BOS-wpIV.js";import{a as ie,c as ae,i as oe,n as se,o as ce,r as le,s as ue,t as de}from"../chunks/BMa8pQBT.js";import{t as fe}from"../chunks/10viO958.js";import{n as K,t as q}from"../chunks/DJq7n-sf.js";import{t as J}from"../chunks/KXvDoa1V.js";import{n as Y,t as X}from"../chunks/sPP9TUD-.js";import{t as pe}from"../chunks/
|
|
1
|
+
import{$ as e,At as t,B as n,C as r,D as i,E as a,F as o,Ft as s,G as c,It as l,K as u,L as d,M as f,P as p,V as m,W as h,X as g,a as _,at as v,c as y,d as b,dt as x,f as S,ft as C,g as w,gt as T,h as ee,it as E,k as D,kt as O,lt as k,mt as A,nt as j,o as M,s as N,st as P,ut as F,y as I,yt as L,z as R,zt as te}from"../chunks/Cke4knuE.js";import"../chunks/xihTtKlq.js";import{n as z}from"../chunks/DSGwkBAQ.js";import{t as B}from"../chunks/DryGTRV9.js";import{n as V,r as H,t as U}from"../chunks/0lP-Rpma.js";import{t as W}from"../chunks/B5Aipckh.js";import{t as ne}from"../chunks/BJdlp6TT.js";import{t as G}from"../chunks/B4mCYsis.js";import{t as re}from"../chunks/BOS-wpIV.js";import{a as ie,c as ae,i as oe,n as se,o as ce,r as le,s as ue,t as de}from"../chunks/BMa8pQBT.js";import{t as fe}from"../chunks/10viO958.js";import{n as K,t as q}from"../chunks/DJq7n-sf.js";import{t as J}from"../chunks/KXvDoa1V.js";import{n as Y,t as X}from"../chunks/sPP9TUD-.js";import{t as pe}from"../chunks/DhW_r4Se2.js";var me=new Set([`$$slots`,`$$events`,`$$legacy`]);function he(e,t){let n=M(t,me),r=[[`path`,{d:`M12 5v14`}],[`path`,{d:`m19 12-7 7-7-7`}]];z(e,N({name:`arrow-down`},()=>n,{get iconNode(){return r}}))}var ge=new Set([`$$slots`,`$$events`,`$$legacy`]);function _e(e,t){let n=M(t,ge),r=[[`path`,{d:`m5 12 7-7 7 7`}],[`path`,{d:`M12 19V5`}]];z(e,N({name:`arrow-up`},()=>n,{get iconNode(){return r}}))}var ve=new Set([`$$slots`,`$$events`,`$$legacy`]);function ye(e,t){let n=M(t,ve),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m16 12-4-4-4 4`}],[`path`,{d:`M12 16V8`}]];z(e,N({name:`circle-arrow-up`},()=>n,{get iconNode(){return r}}))}var be=new Set([`$$slots`,`$$events`,`$$legacy`]);function xe(e,t){let n=M(t,be),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m15 9-6 6`}],[`path`,{d:`m9 9 6 6`}]];z(e,N({name:`circle-x`},()=>n,{get iconNode(){return r}}))}var Se=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ce(e,t){let n=M(t,Se),r=[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`}],[`path`,{d:`M6.453 15h11.094`}],[`path`,{d:`M8.5 2h7`}]];z(e,N({name:`flask-conical`},()=>n,{get iconNode(){return r}}))}var we=new Set([`$$slots`,`$$events`,`$$legacy`]);function Te(e,t){let n=M(t,we),r=[[`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`}]];z(e,N({name:`stethoscope`},()=>n,{get iconNode(){return r}}))}function Z(e,t){let n=t.exec(e);return n?n[1]:void 0}function Ee(e){let t=String.raw`\d+\.\d+\.\d+[^\s]*`,n=new RegExp(String.raw`(?:Target \([^)]*\)|Available):\s*(${t})\s*(?:→|->)\s*(${t})`).exec(e);return{from:Z(e,/Current @selvajs\/selva:\s*v?(\d+\.\d+\.\d+[^\s]*)/)??n?.[1],to:Z(e,/New @selvajs\/selva:\s*v?(\d+\.\d+\.\d+[^\s]*)/)??n?.[2]}}function Q(e,t){return e.includes(t)}function De(e,t){let{from:n,to:r}=Ee(t);if(e===null)return{severity:`pending`,title:`Update in progress…`};if(e===6||Q(t,`Manual recovery required`)||Q(t,`manual intervention required`))return{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:n,to:r};if(e===-2)return{severity:`critical`,title:`App did not come back online within 15 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:n,to:r};if(e===4)return{severity:`critical`,title:`Update failed and the rollback could not reinstall — the app may be OFFLINE`,detail:"The previous version could not be restored from npm. SSH into the server and run `pm2 logs selva-compute`; if the app is down, reinstall explicitly with `npm install --prefer-online @selvajs/cli@<version> @selvajs/selva@<version>` from the deployment directory.",from:n,to:r};if(e===3)return{severity:`critical`,title:`Update failed its health check and could not be rolled back automatically`,detail:"No prior version was recorded, so the previous build could not be restored. Check `pm2 logs selva-compute` to confirm whether the app came back online.",from:n,to:r};if(e===143||e===130||e===129||Q(t,`KILLED`))return{severity:`critical`,title:`Update was killed before it finished — nothing was installed`,detail:"The runner was terminated mid-update, most often by a systemd-supervised PM2 restarting its whole control group. The version on disk is unchanged. Check `pm2 logs selva-compute` and confirm the app is online before retrying; if a global pm2 owns the daemon, reconcile that first.",from:n,to:r};if(e===9||Q(t,`SYSTEMD_PM2`))return{severity:`warning`,title:`Update cancelled — PM2 needs a resync that only a shell can do safely. The app is untouched.`,detail:"This deployment's PM2 runs under systemd, where `pm2 update` restarts the unit and kills the update mid-run. Nothing was installed and the app is still serving. SSH in and run `./node_modules/.bin/pm2 update` from the deployment directory, then retry the update here.",from:n,to:r};if(e===8||Q(t,`PM2_SKEW`)){let e=Z(t,/daemon \(v(\d+\.\d+\.\d+)\)/),i=Z(t,/deployment's pm2 \(v(\d+\.\d+\.\d+)\)/);return{severity:`warning`,title:e&&i?`Update cancelled — a global PM2 (v${e}) owns the daemon, not this deployment's (v${i}). The app is untouched.`:`Update cancelled — a conflicting global PM2 owns the daemon. The app is untouched.`,detail:"Resyncing would have downgraded the daemon and dropped its process table, so the update stopped before taking the app down. On the server: `which -a pm2`, `pm2 -v`, `pm2 ping` — remove or align the global pm2, then retry.",from:n,to:r}}if(e===5||Q(t,`Rolled back`))return{severity:`warning`,title:`Update failed — safely rolled back${n?` to ${n}`:``}. 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:n,to:r};if(Q(t,`ENGINE_MISMATCH`)||Q(t,`EBADENGINE`)){let e=Z(t,/requires Node ([^\s]+(?:\s*[<>=]+\s*[\d.]+)*)/),i=Z(t,/this host runs v?(\d+\.\d+\.\d+)/);return{severity:`warning`,title:i?`Updated${r?` to ${r}`:``}, but this release needs Node ${e??`(newer)`} — the host runs v${i}. Expect runtime failures.`:`Updated${r?` to ${r}`:``}, but this release requires a newer Node than the host provides. Expect runtime failures.`,detail:`npm installed it anyway (engine-strict is off) and the health check passed, but it does not exercise the newer APIs — routes that do will throw at request time. Upgrade Node on the server, then re-run the update.`,from:n,to:r}}return Q(t,`npm cache may be stale`)||Q(t,`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:n,to:r}:e===0?Q(t,`Already on the`)||Q(t,`Nothing to do`)?{severity:`info`,title:`Already up to date${n?` (${n})`:``} — nothing to install.`,detail:`No changes were made and the app was not restarted.`,from:n,to:r}:n&&r&&n!==r?{severity:`success`,title:`Updated ${n} → ${r}. The app is back online.`,from:n,to:r}:r?{severity:`success`,title:`Update complete — now on ${r}. The app is back online.`,from:n,to:r}:{severity:`success`,title:`Update completed and the app is back online.`,from:n,to:r}:{severity:`critical`,title:`Update failed (exit code ${e}).`,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:n,to:r}}var Oe=m(`<span title="Currently installed @selvajs/selva version"> </span>`),ke=m(`Update @selvajs/* to the latest <span class="font-medium"> </span> release and restart`,1),Ae=m(`<div class="flex items-start justify-between gap-3"><!> <!></div> <!>`,1),je=m(`<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> <span class="font-mono"> </span> → <span class="font-mono"> </span></span></div>`),Me=m(`<p class="text-muted-foreground text-sm"> <span class="font-mono"> </span>).</p>`),Ne=m(`<button type="button" class="text-muted-foreground hover:text-foreground text-xs underline underline-offset-2">Override anyway (advanced)</button>`),Pe=m(`<div class="space-y-2"><label class="text-muted-foreground block text-xs" for="node-override">Type <span class="text-foreground font-mono"> </span> to confirm you accept
|
|
2
2
|
a deployment that may fail under real traffic:</label> <input id="node-override" class="border-input bg-background w-full rounded-md border px-2 py-1 font-mono text-xs" autocomplete="off" spellcheck="false"/></div>`),Fe=m(`<div class="border-destructive/40 bg-destructive/10 space-y-3 rounded-md border px-3 py-3 text-sm" role="alert"><div class="text-destructive flex items-start gap-2"><!> <div class="space-y-1"><p class="font-medium">Update blocked — this release needs a newer Node</p> <p class="text-muted-foreground text-xs"><span class="font-mono"> </span> requires Node <span class="font-mono"> </span>, but this host runs <span class="font-mono"> </span>. npm installs it anyway
|
|
3
3
|
and the health check still passes, so a failed update would <span class="font-medium">not</span> roll back automatically. Upgrade Node on the server
|
|
4
4
|
first.</p></div></div> <!></div>`),Ie=m(`<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>`),Le=m(`<p class="text-muted-foreground font-mono text-xs"> </p>`),Re=m(`<p class="text-muted-foreground text-xs whitespace-pre-line"> </p>`),ze=m(`<div><!> <div class="min-w-0 space-y-1"><p> </p> <!> <!></div></div>`),Be=m(`<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>`),Ve=m(`<!> <!> <!> <!> <!> <!>`,1),He=m(`<!> <!>`,1),Ue=m(`<!> <!> <!>`,1);function We(e,i){t(i,!0);let a=_(i,`latestVersion`,3,null),c=_(i,`updateAvailable`,3,!1),f=_(i,`channel`,3,`stable`),p=_(i,`isRunning`,3,!1),m=_(i,`isRestarting`,3,!1),b=_(i,`logs`,3,``),C=_(i,`exitCode`,3,null),j=_(i,`nodeCompatibility`,19,()=>({compatible:null,required:null,running:``})),M=L(()=>j().compatible===!1),N=T(``),P=T(!1),I=L(()=>g(P)&&!!a()&&g(N).trim()===a()),te=L(()=>p()||g(M)&&!g(I)),z=L(()=>f()===`beta`?`beta`:`stable`),U=T(void 0),W=T(!1),G=L(()=>C()===null?null:De(C(),b())),fe={success:{text:`text-success`,border:`border-success/40`,bg:`bg-success/10`,icon:H},info:{text:`text-foreground`,border:`border-border`,bg:`bg-muted/50`,icon:V},warning:{text:`text-warning`,border:`border-warning/40`,bg:`bg-warning/10`,icon:re},critical:{text:`text-destructive`,border:`border-destructive/40`,bg:`bg-destructive/10`,icon:xe},pending:{text:`text-muted-foreground`,border:`border-border`,bg:`bg-muted/50`,icon:ne}};v(()=>{b()&&g(U)&&(g(U).scrollTop=g(U).scrollHeight)});function pe(){return m()?`Restarting & verifying…`:p()?`Running…`:`Run Update`}function me(){A(W,!0)}function he(){A(W,!1),i.onRun?.()}var ge=He(),_e=F(ge);D(_e,()=>K,(e,t)=>{t(e,{children:(e,t)=>{var n=He(),f=F(n);D(f,()=>Y,(e,t)=>{t(e,{children:(e,t)=>{var n=Ae(),a=F(n),u=k(a);D(u,()=>X,(e,t)=>{t(e,{children:(e,t)=>{s();var n=h(`Application Update`);R(e,n)},$$slots:{default:!0}})});var f=x(u,2),p=e=>{var t=Oe(),n=k(t);l(t),E(()=>{r(t,1,`rounded-full border px-2 py-0.5 font-mono text-xs ${c()?`border-warning/40 bg-warning/10 text-warning`:`border-border bg-muted text-muted-foreground`}`),d(n,`v${i.currentVersion??``}`)}),R(e,t)};o(f,e=>{i.currentVersion&&e(p)}),l(a);var m=x(a,2);D(m,()=>J,(e,t)=>{t(e,{children:(e,t)=>{s();var n=ke(),r=x(F(n)),i=k(r,!0);l(r),s(),E(()=>d(i,g(z))),R(e,n)},$$slots:{default:!0}})}),R(e,n)},$$slots:{default:!0}})});var p=x(f,2);D(p,()=>q,(e,t)=>{t(e,{class:`space-y-4`,children:(e,t)=>{var n=Ve(),f=F(n),p=e=>{var t=je(),n=k(t);ye(n,{class:`h-4 w-4 shrink-0`});var r=x(n,2),o=k(r),s=x(o),c=k(s);l(s);var u=x(s,2),f=k(u);l(u),l(r),l(t),E(()=>{d(o,`${g(z)??``} release available — `),d(c,`v${i.currentVersion??``}`),d(f,`v${a()??``}`)}),R(e,t)},_=e=>{var t=Me(),n=k(t),r=x(n),a=k(r);l(r),s(),l(t),E(()=>{d(n,`You're on the latest ${g(z)??``} release (`),d(a,`v${i.currentVersion??``}`)}),R(e,t)};o(f,e=>{c()&&a()?e(p):i.currentVersion&&a()&&e(_,1)});var v=x(f,2),T=e=>{var t=Fe(),n=k(t),r=k(n);re(r,{class:`mt-0.5 h-4 w-4 shrink-0`});var i=x(r,2),c=x(k(i),2),f=k(c),p=k(f);l(f);var m=x(f,2),h=k(m,!0);l(m);var _=x(m,2),v=k(_);l(_),s(3),l(c),l(i),l(n);var y=x(n,2),b=e=>{var t=Ne();u(`click`,t,()=>A(P,!0)),R(e,t)},C=e=>{var t=Pe(),n=k(t),r=x(k(n)),i=k(r,!0);l(r),s(),l(n);var o=x(n,2);ee(o),l(t),E(()=>{d(i,a()),w(o,`placeholder`,a()??``)}),S(o,()=>g(N),e=>A(N,e)),R(e,t)};o(y,e=>{g(P)?e(C,-1):e(b)}),l(t),E(()=>{d(p,`v${a()??``}`),d(h,j().required),d(v,`v${j().running??``}`)}),R(e,t)};o(v,e=>{g(M)&&e(T)});var O=x(v,2);B(O,{onclick:me,get disabled(){return g(te)},variant:`destructive`,children:(e,t)=>{s();var n=h();E(e=>d(n,e),[()=>pe()]),R(e,n)},$$slots:{default:!0}});var I=x(O,2),V=e=>{var t=Ie(),n=k(t);ne(n,{class:`h-4 w-4 animate-spin`}),s(2),l(t),R(e,t)};o(I,e=>{m()&&C()===null&&e(V)});var H=x(I,2),W=e=>{let t=L(()=>fe[g(G).severity]),n=L(()=>g(t).icon);var i=ze(),a=k(i);D(a,()=>g(n),(e,n)=>{n(e,{get class(){return`mt-0.5 h-5 w-5 shrink-0 ${g(t).text??``}`}})});var s=x(a,2),c=k(s),u=k(c,!0);l(c);var f=x(c,2),p=e=>{var t=Le(),n=k(t);l(t),E(()=>d(n,`${g(G).from??``} → ${g(G).to??``}`)),R(e,t)};o(f,e=>{g(G).from&&g(G).to&&g(G).from!==g(G).to&&e(p)});var m=x(f,2),h=e=>{var t=Re(),n=k(t,!0);l(t),E(()=>d(n,g(G).detail)),R(e,t)};o(m,e=>{g(G).detail&&e(h)}),l(s),l(i),E(()=>{r(i,1,`flex items-start gap-3 rounded-md border px-3 py-3 ${g(t).border??``} ${g(t).bg??``}`),w(i,`role`,g(G).severity===`critical`?`alert`:`status`),w(i,`aria-live`,g(G).severity===`critical`?`assertive`:`polite`),r(c,1,`text-sm font-medium ${g(t).text??``}`),d(u,g(G).title)}),R(e,i)};o(H,e=>{g(G)&&e(W)});var ie=x(H,2),ae=e=>{var t=Be(),n=x(k(t),2),r=k(n,!0);l(n),y(n,e=>A(U,e),()=>g(U)),l(t),E(()=>d(r,b())),R(e,t)};o(ie,e=>{b()&&e(ae)}),R(e,n)},$$slots:{default:!0}})}),R(e,n)},$$slots:{default:!0}})});var ve=x(_e,2);D(ve,()=>de,(e,t)=>{t(e,{get open(){return g(W)},onOpenChange:e=>A(W,e,!0),children:(e,t)=>{var r=n(),i=F(r);D(i,()=>le,(e,t)=>{t(e,{children:(e,t)=>{var r=He(),i=F(r);D(i,()=>oe,(e,t)=>{t(e,{children:(e,t)=>{var r=Ue(),i=F(r);D(i,()=>ae,(e,t)=>{t(e,{children:(e,t)=>{s();var n=h();E(()=>d(n,g(M)?`Run Update despite the Node mismatch?`:`Run Update?`)),R(e,n)},$$slots:{default:!0}})});var a=x(i,2),c=e=>{var t=n(),r=F(t);D(r,()=>se,(e,t)=>{t(e,{class:`text-destructive`,children:(e,t)=>{s();var n=h();E(()=>d(n,`This release requires Node ${j().required??``} and the host runs v${j().running??``}.
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{At as e,B as t,C as n,D as r,F as i,Ft as a,G as o,It as s,K as c,L as l,M as u,V as d,W as f,X as p,_ as m,dt as h,ft as g,g as _,gt as v,h as y,it as b,k as x,kt as S,lt as C,mt as w,nt as T,st as E,ut as D,y as O,yt as k,z as A}from"../chunks/Cke4knuE.js";import{i as j}from"../chunks/
|
|
1
|
+
import{At as e,B as t,C as n,D as r,F as i,Ft as a,G as o,It as s,K as c,L as l,M as u,V as d,W as f,X as p,_ as m,dt as h,ft as g,g as _,gt as v,h as y,it as b,k as x,kt as S,lt as C,mt as w,nt as T,st as E,ut as D,y as O,yt as k,z as A}from"../chunks/Cke4knuE.js";import{i as j}from"../chunks/CXk7zzxB.js";import"../chunks/xihTtKlq.js";import{t as M}from"../chunks/DryGTRV9.js";import{t as ee}from"../chunks/DX2MELJa.js";import{t as te}from"../chunks/CNcd_3er.js";import{a as ne,i as N,r as re,t as P}from"../chunks/DhHPd6Ca.js";import{t as ie}from"../chunks/Bw8HI0aa.js";import{t as ae}from"../chunks/BVBwPLPv.js";import{t as oe}from"../chunks/B4mCYsis.js";import{t as se}from"../chunks/BmnySeU9.js";import{t as F}from"../chunks/Dz00jH5u.js";import{t as I}from"../chunks/CR6AN07v.js";import{t as L}from"../chunks/10viO958.js";import{t as ce}from"../chunks/ehM2QOgk.js";import{n as R,t as le}from"../chunks/DJq7n-sf.js";import{t as ue}from"../chunks/KXvDoa1V.js";import{n as de,t as fe}from"../chunks/sPP9TUD-.js";import{t as z}from"../chunks/D3p1tqid.js";import{n as B}from"../chunks/BVvGdFdF2.js";import"../chunks/Ba5e_Szc2.js";import{t as pe}from"../chunks/DiCTirHE2.js";var me=d(`<span> </span>`),V=d(`<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>`),H=d(`<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>`),U=d(`<div class="mt-1.5 flex flex-wrap gap-1"></div>`),W=d(`<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>`),G=d(`<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>`),K=d(`<div class="grid gap-2 sm:grid-cols-2"></div>`),q=d(`<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>`),J=d(`<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 he(t,r){e(r,!0);let o={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`},d={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.`},f={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`},g=k(()=>r.user.displayName?`${r.user.displayName} · ${r.user.email??r.user.id}`:r.user.email??r.user.id),v=k(()=>r.user.orgRole===`owner`||r.user.orgRole===`admin`),x=k(()=>r.user.permissions.filter(e=>N.includes(e)?!0:!p(v)));function w(e){return N.includes(e)}function T(e){return re.includes(e)}function E(e){let t=r.user.permissions.includes(e),n=w(e)&&!r.isPlatformAdmin,i=e===`instance_admin`&&r.soleInstanceAdmin,a=!w(e)&&T(e)&&r.user.orgRole===`member`;return{checked:t,locked:n||i||a,soleAdminLock:i,platformLocked:n,memberExcluded:a}}var D=J(),O=C(D),j=C(O),ne=C(j),ie=e=>{ee(e,{class:`h-4 w-4`})},ae=e=>{te(e,{class:`h-4 w-4`})};i(ne,e=>{r.expanded?e(ie):e(ae,-1)}),s(j);var oe=h(j,2);{let e=k(()=>r.user.displayName??r.user.email??r.user.id);pe(oe,{get name(){return p(e)}})}var F=h(oe,2),I=C(F),L=C(I),ce=C(L,!0);s(L);var R=h(L,2),le=e=>{var t=me(),i=C(t,!0);s(t),b(()=>{n(t,1,`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${f[r.user.orgRole]}`),l(i,r.user.orgRole)}),A(e,t)};i(R,e=>{r.user.orgRole&&e(le)});var ue=h(R,2),de=e=>{var t=V();A(e,t)},fe=e=>{var t=H();A(e,t)};i(ue,e=>{r.user.disabled?e(de):r.user.lastLoginAt||e(fe,1)}),s(I);var z=h(I,2),B=C(z,!0);s(z);var he=h(z,2),ge=e=>{var t=U();u(t,20,()=>p(x),e=>e,(e,t)=>{var r=me(),i=C(r,!0);s(r),b(e=>{n(r,1,e),l(i,o[t])},[()=>`rounded-full px-2 py-0.5 font-mono text-[10px] ${w(t)?`bg-amber-500/10 text-amber-700 dark:text-amber-400`:`bg-muted text-muted-foreground`}`]),A(e,r)}),s(t),A(e,t)};i(he,e=>{!r.expanded&&p(x).length>0&&e(ge)}),s(F);var _e=h(F,2);{let e=k(()=>r.deleting||r.soleInstanceAdmin),t=k(()=>r.soleInstanceAdmin?`Cannot delete the only instance admin. Promote another user first.`:`Delete user`);M(_e,{size:`sm`,variant:`ghost`,get disabled(){return p(e)},get onclick(){return r.onDelete},get title(){return p(t)},class:`text-destructive hover:text-destructive h-8 w-8 shrink-0 p-0`,children:(e,t)=>{se(e,{class:`h-4 w-4`})},$$slots:{default:!0}})}s(O);var Y=h(O,2),ve=e=>{var t=q(),f=C(t),g=h(C(f),2);u(g,20,()=>N,e=>e,(e,t)=>{let i=k(()=>E(t));var a=W(),u=C(a);y(u);var f=h(u,2),g=C(f),v=C(g,!0);s(g);var x=h(g,2),S=C(x,!0);s(x),s(f),s(a),b(()=>{n(a,1,`flex items-start gap-2 rounded-md border p-2.5 ${p(i).locked?`border-border cursor-not-allowed opacity-60`:`border-border hover:bg-accent/40 cursor-pointer`}`),_(a,`title`,p(i).soleAdminLock?`Cannot remove the only instance admin.`:void 0),m(u,p(i).checked),u.disabled=r.updating||p(i).locked,l(v,o[t]),l(S,d[t])}),c(`change`,u,e=>r.onTogglePermission(t,e.target.checked)),A(e,a)}),s(g),s(f);var x=h(f,2),S=h(C(x),2),w=e=>{var t=G(),n=C(t),i=C(n);s(n),a(3),s(t),b(()=>l(i,`${r.user.orgRole??``}s`)),A(e,t)},T=e=>{var t=K();u(t,20,()=>P,e=>e,(e,t)=>{let i=k(()=>E(t));var a=W(),u=C(a);y(u);var f=h(u,2),g=C(f),v=C(g,!0);s(g);var x=h(g,2),S=C(x,!0);s(x),s(f),s(a),b(()=>{n(a,1,`flex items-start gap-2 rounded-md border p-2.5 ${p(i).locked?`border-border cursor-not-allowed opacity-60`:`border-border hover:bg-accent/40 cursor-pointer`}`),_(a,`title`,p(i).memberExcluded?`Only owners and admins can hold this permission.`:void 0),m(u,p(i).checked),u.disabled=r.updating||p(i).locked,l(v,o[t]),l(S,d[t])}),c(`change`,u,e=>r.onTogglePermission(t,e.target.checked)),A(e,a)}),s(t),A(e,t)};i(S,e=>{p(v)?e(w):e(T,-1)}),s(x),s(t),A(e,t)};i(Y,e=>{r.expanded&&e(ve)}),s(D),b(()=>{n(D,1,`px-4 py-3 ${r.expanded?`bg-accent/20`:``}`),_(j,`aria-label`,r.expanded?`Collapse permissions`:`Expand permissions`),l(ce,p(g)),l(B,r.user.id)}),c(`click`,j,function(...e){r.onToggleExpand?.apply(this,e)}),A(t,D),S()}o([`click`,`change`]);var ge=d(`<!> Invite user`,1),_e=d(`<!> `,1),Y=d(`<!> <!>`,1),ve=d(`<option> </option>`),ye=d(`<p class="text-muted-foreground mb-2 text-xs"> <span class="font-mono">member</span> to grant a custom subset.</p>`),be=d(`<label><input type="checkbox"/> </label>`),xe=d(`<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>`),Se=d(`<!> Copy`,1),Ce=d(`<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>`),we=d(`<p class="text-muted-foreground text-xs"> </p>`),Te=d(`<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>`),Ee=d(`Set <code class="text-xs">DATA_PATH</code> (local provider) or check your provider
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{At as e,B as t,D as n,Ft as r,It as i,V as a,W as o,dt as s,k as c,kt as l,lt as u,st as d,tt as f,ut as p,z as m}from"../chunks/Cke4knuE.js";import"../chunks/xihTtKlq.js";import{t as h}from"../chunks/Bw8HI0aa.js";import{t as g}from"../chunks/
|
|
1
|
+
import{At as e,B as t,D as n,Ft as r,It as i,V as a,W as o,dt as s,k as c,kt as l,lt as u,st as d,tt as f,ut as p,z as m}from"../chunks/Cke4knuE.js";import"../chunks/xihTtKlq.js";import{t as h}from"../chunks/Bw8HI0aa.js";import{t as g}from"../chunks/CR6AN07v.js";import{n as _,t as v}from"../chunks/CnTk3f2P2.js";var y=a(`<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 b(a,b){e(b,!0);var x=y();n(`l70sov`,e=>{f(()=>{d.title=`Check your email - ${g.data.branding.name??``}`})});var S=u(x),C=u(S),w=u(C),T=u(w);h(T,{class:`text-foreground size-8`}),i(w),i(C);var E=s(C,4);c(E,()=>_,(e,n)=>{n(e,{children:(e,n)=>{var i=t(),a=p(i);c(a,()=>v,(e,t)=>{t(e,{children:(e,t)=>{r();var n=o(`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.`);m(e,n)},$$slots:{default:!0}})}),m(e,i)},$$slots:{default:!0}})}),r(2),i(S),i(x),m(a,x),l()}export{b as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{At as e,C as t,D as n,F as r,Ft as i,It as a,L as o,M as s,V as c,X as l,dt as u,g as d,it as f,kt as p,lt as m,nt as h,st as g,ut as _,z as v}from"../chunks/Cke4knuE.js";import{f as y}from"../chunks/
|
|
1
|
+
import{At as e,C as t,D as n,F as r,Ft as i,It as a,L as o,M as s,V as c,X as l,dt as u,g as d,it as f,kt as p,lt as m,nt as h,st as g,ut as _,z as v}from"../chunks/Cke4knuE.js";import{f as y}from"../chunks/CXk7zzxB.js";import"../chunks/xihTtKlq.js";import{t as b}from"../chunks/BbNzH4MU.js";var x=c(`<meta name="description" content="The Selva HTTP API — endpoints, pagination, and errors."/>`),S=c(`<code class="bg-background rounded border px-1.5 py-0.5 text-xs"> </code>`),C=c(`<span>Paginated</span>`),w=c(`<span>JSON body</span>`),T=c(`<code> </code> `,1),E=c(`<span>multipart/form-data: <!></span>`),D=c(`<span><code> </code> </span>`),O=c(`<li class="rounded-lg border p-4"><div class="flex flex-wrap items-baseline gap-x-3 gap-y-1"><span> </span> <code class="text-sm font-medium break-all"> </code></div> <p class="text-muted-foreground mt-2 text-sm leading-relaxed"> </p> <div class="text-muted-foreground mt-3 flex flex-wrap gap-x-4 gap-y-1 text-xs"><!> <!> <!> <!> <span> </span></div></li>`),k=c(`<section class="mb-10"><h2 class="mb-4 border-b pb-2 text-xl font-semibold tracking-tight"> </h2> <ul class="space-y-3"></ul></section>`),A=c(`<header class="mb-10"><h1 class="text-3xl font-semibold tracking-tight">API reference</h1> <p class="text-muted-foreground mt-3 leading-relaxed">Every endpoint below acts as the calling identity and is confined to that identity's
|
|
2
2
|
organization. Authenticate with a browser session cookie or a bearer token; the full
|
|
3
3
|
machine-readable description is at <a class="underline underline-offset-4" data-sveltekit-reload="">/docs/api/openapi.yaml</a>.</p></header> <section class="mb-10 grid gap-4 sm:grid-cols-2"><div class="bg-muted/40 rounded-lg border p-4"><h2 class="font-medium">Pagination</h2> <p class="text-muted-foreground mt-2 text-sm leading-relaxed">Lists take <code>limit</code> and <code>cursor</code> and return <code></code>. <code>nextCursor</code> </p></div> <div class="bg-muted/40 rounded-lg border p-4"><h2 class="font-medium">Errors</h2> <p class="text-muted-foreground mt-2 text-sm leading-relaxed">Failures return <code></code>. Branch on <code>code</code>, never on
|
|
4
4
|
the human-readable message. A resource you cannot see returns <code>404</code>, not <code>403</code>.</p> <div class="mt-3 flex flex-wrap gap-1.5"></div></div></section> <!>`,1);function j(c,j){e(j,!0);let M={GET:`bg-sky-100 text-sky-800 dark:bg-sky-950 dark:text-sky-300`,POST:`bg-emerald-100 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-300`,PUT:`bg-amber-100 text-amber-800 dark:bg-amber-950 dark:text-amber-300`,PATCH:`bg-amber-100 text-amber-800 dark:bg-amber-950 dark:text-amber-300`,DELETE:`bg-rose-100 text-rose-800 dark:bg-rose-950 dark:text-rose-300`};n(`1c8t0id`,e=>{var t=x();h(()=>{g.title=`API reference`}),v(e,t)}),b(c,{class:`mx-auto max-w-4xl`,children:(e,n)=>{var c=A(),p=_(c),h=u(m(p),2),g=u(m(h));i(),a(h),a(p);var b=u(p,2),x=m(b),N=u(m(x),2),P=u(m(N),5);P.textContent=`{ items, nextCursor? }`;var F=u(P,3);a(N),a(x);var I=u(x,2),L=u(m(I),2),R=u(m(L));R.textContent=`{ message, code }`,i(7),a(L);var z=u(L,2);s(z,20,()=>j.data.errorCodes,e=>e,(e,t)=>{var n=S(),r=m(n,!0);a(n),f(()=>o(r,t)),v(e,n)}),a(z),a(I),a(b);var B=u(b,2);s(B,17,()=>j.data.groups,e=>e.tag,(e,n)=>{var i=k(),c=m(i),d=m(c,!0);a(c);var p=u(c,2);s(p,21,()=>l(n).endpoints,e=>e.method+e.path,(e,n)=>{var i=O(),c=m(i),d=m(c),p=m(d,!0);a(d);var h=u(d,2),g=m(h,!0);a(h),a(c);var y=u(c,2),b=m(y,!0);a(y);var x=u(y,2),S=m(x),k=e=>{var t=C();v(e,t)};r(S,e=>{l(n).paginated&&e(k)});var A=u(S,2),j=e=>{var t=w();v(e,t)};r(A,e=>{l(n).hasBody&&e(j)});var N=u(A,2),P=e=>{var t=E(),r=u(m(t));s(r,19,()=>l(n).multipart,e=>e.field,(e,t,r)=>{var i=T(),s=_(i),c=m(s);a(s);var d=u(s,1,!0);f(()=>{o(c,`${l(t).field??``}${l(t).required?``:`?`}`),o(d,l(r)<l(n).multipart.length-1?`, `:``)}),v(e,i)}),a(t),v(e,t)};r(N,e=>{l(n).multipart&&e(P)});var F=u(N,2);s(F,17,()=>l(n).query,e=>e.name,(e,t)=>{var n=D(),r=m(n),i=m(r);a(r);var s=u(r);a(n),f(()=>{o(i,`?${l(t).name??``}`),o(s,` — ${l(t).description??``}`)}),v(e,n)});var I=u(F,2),L=m(I);a(I),a(x),a(i),f(e=>{t(d,1,`rounded px-2 py-0.5 font-mono text-xs font-semibold ${M[l(n).method]??``}`),o(p,l(n).method),o(g,l(n).path),o(b,l(n).summary),o(L,`Errors: ${e??``}`)},[()=>l(n).errors.join(`, `)]),v(e,i)}),a(p),a(i),f(()=>o(d,l(n).tag)),v(e,i)}),f(e=>{d(g,`href`,e),o(F,` is absent on the last page.
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,At as t,It as n,Rt as r,V as i,X as a,kt as o,lt as s,yt as c,z as l}from"../chunks/Cke4knuE.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/C6Sq7mcd.js";import{t as d}from"../chunks/iLVM5qSy2.js";import{t as f}from"../chunks/B5Aipckh.js";import{t as p}from"../chunks/
|
|
1
|
+
import{A as e,At as t,It as n,Rt as r,V as i,X as a,kt as o,lt as s,yt as c,z as l}from"../chunks/Cke4knuE.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/C6Sq7mcd.js";import{t as d}from"../chunks/iLVM5qSy2.js";import{t as f}from"../chunks/B5Aipckh.js";import{t as p}from"../chunks/BJ1titjr.js";import{t as m}from"../chunks/CA6AMHs_.js";import{t as h}from"../chunks/CjPXNCS7.js";import{t as g}from"../chunks/ztBd1gZj.js";import{t as _}from"../chunks/BVkuAaQ6.js";import{t as v}from"../chunks/DJgkiyc_.js";var y=i(`<div class="px-(--page-px) py-(--page-py)"><!></div>`);function b(i,b){t(b,!0);let x=e=>b.data.platformPermissions.includes(`instance_admin`)||b.data.platformPermissions.includes(e)?!0:b.data.orgPermissions.includes(e),S=c(()=>[{href:`/admin`,label:`General`,icon:f,show:!0},{href:`/admin/organizations`,label:`Organizations`,icon:u,match:`prefix`,show:x(`instance_admin`)&&b.data.tenancy!==`single`},{href:`/admin/projects`,label:`Projects`,icon:d,match:`prefix`,show:x(`instance_admin`)&&b.data.platformProjectsEnabled},{href:`/admin/users`,label:`Users`,icon:_,match:`prefix`,show:x(`manage_instance_users`)},{href:`/admin/compute`,label:`Compute`,icon:h,match:`prefix`,show:x(`manage_compute`)},{href:`/admin/system`,label:`System`,icon:g,match:`prefix`,show:x(`manage_updates`)},{href:`/admin/audit`,label:`Audit log`,icon:m,match:`prefix`,show:x(`instance_admin`)&&b.data.auditAvailable}].filter(e=>e.show));p(i,{sidenav:e=>{v(e,{get items(){return a(S)},eyebrow:`Platform`})},children:(t,i)=>{var a=y(),o=s(a);e(o,()=>b.children??r),n(a),l(t,a)},$$slots:{sidenav:!0,default:!0}}),o()}export{b as component};
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{At as e,B as t,C as n,F as r,Ft as i,G as a,It as o,K as s,L as c,M as l,S as u,V as d,X as f,a as p,dt as m,g as h,gt as g,it as _,kt as v,lt as y,mt as b,o as x,s as S,ut as C,w,y as T,yt as E,z as D}from"../chunks/Cke4knuE.js";import{i as O,r as k}from"../chunks/
|
|
1
|
+
import{At as e,B as t,C as n,F as r,Ft as i,G as a,It as o,K as s,L as c,M as l,S as u,V as d,X as f,a as p,dt as m,g as h,gt as g,it as _,kt as v,lt as y,mt as b,o as x,s as S,ut as C,w,y as T,yt as E,z as D}from"../chunks/Cke4knuE.js";import{i as O,r as k}from"../chunks/CXk7zzxB.js";import"../chunks/xihTtKlq.js";import{n as A}from"../chunks/DSGwkBAQ.js";import{t as j}from"../chunks/WhBuhxSy.js";import{t as M}from"../chunks/BJ1titjr.js";import{a as N,c as P,o as F,s as ee,t as I}from"../chunks/B49JE7qa.js";import{t as L}from"../chunks/CbBBqIrZ.js";import{t as R}from"../chunks/Dz00jH5u.js";import{t as z}from"../chunks/BbNzH4MU.js";import{t as te}from"../chunks/10viO958.js";import{t as B}from"../chunks/ehM2QOgk.js";import{n as V}from"../chunks/BVvGdFdF2.js";import"../chunks/Ba5e_Szc2.js";var H=new Set([`$$slots`,`$$events`,`$$legacy`]);function ne(e,t){let n=x(t,H),r=[[`path`,{d:`M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z`}]];A(e,S({name:`funnel`},()=>n,{get iconNode(){return r}}))}var U=d(`<button type="button"><!></button>`);function W(t,r){e(r,!0);let i=p(r,`busy`,3,!1),a=p(r,`variant`,3,`overlay`);var c=U(),l=y(c);{let e=E(()=>r.starred?`fill-current`:``);L(l,{get class(){return`h-3.5 w-3.5 ${f(e)??``}`}})}o(c),_(()=>{h(c,`title`,r.starred?`Unstar`:`Star`),h(c,`aria-label`,r.starred?`Unstar definition`:`Star definition`),h(c,`aria-pressed`,r.starred),c.disabled=i(),n(c,1,w(a()===`overlay`?`absolute top-2 right-2 flex h-7 w-7 items-center justify-center rounded-full backdrop-blur-sm transition-all disabled:opacity-60 ${r.starred?`bg-amber-400/90 text-white`:`bg-black/40 text-white opacity-0 group-hover:opacity-100 hover:bg-black/55`}`:`flex h-7 w-7 items-center justify-center rounded-full transition-colors disabled:opacity-60 ${r.starred?`text-amber-500 hover:bg-amber-50`:`text-muted-foreground hover:text-foreground hover:bg-muted`}`))}),s(`click`,c,e=>{e.stopPropagation(),e.preventDefault(),r.onToggle()}),D(t,c),v()}a([`click`]);var G=d(`<div class="flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-md"><img alt="" class="h-full w-full object-cover"/></div>`),K=d(`<div class="tool-cover-fallback flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-md"><span class="text-foreground/40 text-base font-semibold"> </span></div>`),q=d(`<p class="text-muted-foreground truncate text-[12px]"> </p>`),J=d(`<span class="bg-muted text-muted-foreground rounded px-1.5 py-px font-mono text-[10.5px]"> </span>`),Y=d(`<button type="button"><!> <div class="min-w-0"><p class="truncate text-[13.5px] font-semibold"> </p> <!></div> <div class="flex flex-wrap items-center gap-1"><!></div> <span class="text-muted-foreground font-mono text-[12px]"> </span> <div class="flex items-center justify-end gap-1"><!> <!></div></button>`),X=d(`<div class="border-border bg-card overflow-hidden rounded-xl border"></div>`);function re(i,a){e(a,!0);var d=X();l(d,23,()=>a.records,e=>e.guid,(e,i,d)=>{var p=Y();u(p,`grid-template-columns: 40px minmax(0, 1.7fr) minmax(0, 1fr) 90px 36px`);var g=y(p),v=e=>{var t=G(),n=y(t);o(t),_(()=>h(n,`src`,f(i).coverImage)),D(e,t)},b=e=>{let t=E(()=>N(f(i).guid));var n=K();let r;var a=y(n),s=y(a,!0);o(a),o(n),_(e=>{r=u(n,``,r,{"--tool-h1":f(t).h1,"--tool-h2":f(t).h2}),c(s,e)},[()=>F(f(i).displayName)]),D(e,n)};r(g,e=>{f(i).coverImage?e(v):e(b,-1)});var x=m(g,2),S=y(x),w=y(S,!0);o(S);var T=m(S,2),O=e=>{var t=q(),n=y(t,!0);o(t),_(()=>c(n,f(i).description)),D(e,t)};r(T,e=>{f(i).description&&e(O)}),o(x);var k=m(x,2),A=y(k),M=e=>{var n=t(),r=C(n);l(r,16,()=>f(i).tags.slice(0,3),e=>e,(e,t)=>{var n=J(),r=y(n);o(n),_(()=>c(r,`#${t??``}`)),D(e,n)}),D(e,n)};r(A,e=>{f(i).tags?.length&&e(M)}),o(k);var P=m(k,2),ee=y(P,!0);o(P);var I=m(P,2),L=y(I);{let e=E(()=>a.starredIds.has(f(i).guid)),t=E(()=>a.starBusyGuid===f(i).guid);W(L,{get starred(){return f(e)},get busy(){return f(t)},variant:`chip`,onToggle:()=>a.onToggleStar(f(i).guid)})}var R=m(L,2);j(R,{class:`text-muted-foreground h-3.5 w-3.5 opacity-0 transition-opacity group-hover:opacity-100`}),o(I),o(p),_(e=>{p.disabled=a.loadingGuid===f(i).guid,n(p,1,`hover:bg-muted/40 group grid w-full items-center gap-4 px-4 py-3 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-60
|
|
2
2
|
${f(d)<a.records.length-1?`border-border border-b`:``}`),c(w,f(i).displayName),c(ee,e)},[()=>f(i).solveCount>0?`${f(i).solveCount.toLocaleString()} runs`:`—`]),s(`click`,p,()=>a.onOpen(f(i).guid)),D(e,p)}),o(d),D(i,d),v()}a([`click`]);function ie(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return`just now`;if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}var ae=d(`<span class="bg-primary text-primary-foreground rounded-full px-1.5 py-px font-mono text-[10px]"> </span>`),oe=d(`<button type="button"><!> Filters <!></button>`),se=d(`<button type="button" class="text-muted-foreground hover:text-foreground inline-flex h-9 items-center gap-1 rounded-md px-2 text-xs transition-colors"><!> Clear</button>`),Z=d(`<option> </option>`),ce=d(`<div class="space-y-1.5"><label class="text-muted-foreground text-xs font-medium" for="filter-project">Project</label> <select id="filter-project" class="border-input bg-background h-9 w-full rounded-md border px-3 text-sm"><option>All projects</option><!></select></div>`),le=d(`<div class="space-y-1.5"><label class="text-muted-foreground text-xs font-medium" for="filter-category">Category</label> <select id="filter-category" class="border-input bg-background h-9 w-full rounded-md border px-3 text-sm"><option>All categories</option><!></select></div>`),ue=d(`<div class="space-y-1.5"><label class="text-muted-foreground text-xs font-medium" for="filter-tag">Tag</label> <select id="filter-tag" class="border-input bg-background h-9 w-full rounded-md border px-3 text-sm"><option>All tags</option><!></select></div>`),de=d(`<div class="border-border bg-card rounded-md border p-4"><div class="grid gap-4 sm:grid-cols-3"><!> <!> <!></div></div>`),fe=d(`<button style="grid-template-columns: 1fr 120px auto"><span class="truncate font-medium"> </span> <span class="text-muted-foreground font-mono text-xs"> </span> <span class="flex items-center gap-1 text-xs font-medium opacity-0 transition-opacity group-hover:opacity-100">Resume <!></span></button>`),pe=d(`<section><div class="mb-3 flex items-baseline justify-between"><span class="text-muted-foreground text-xs font-medium tracking-wider uppercase">Recent runs</span> <span class="text-muted-foreground text-xs">Resume where you left off</span></div> <div class="border-border bg-card overflow-hidden rounded-md border"></div></section>`),me=d(`<div class="grid gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"></div>`),he=d(`<button class="text-muted-foreground hover:text-foreground text-xs underline underline-offset-2">Clear all filters</button>`),ge=d(`<div class="space-y-6"><!> <div class="flex flex-wrap items-center gap-2"><div class="min-w-60 flex-1"><!></div> <!> <!></div> <!> <!> <!></div>`);function Q(a,u){e(u,!0);let d=g(``),p=g(null),h=g(null),x=g(null),S=g(`grid`),w=g(null),A=g(null),N=g(!1),F=E(()=>new Set(u.data.starredRecords.map(e=>e.guid))),L=E(()=>[...u.data.starredRecords,...u.data.records]),H=E(()=>new Set(f(L).map(e=>e.projectId))),U=E(()=>Object.values(u.data.projects).filter(e=>f(H).has(e.id))),W=E(()=>Array.from(new Set(f(L).map(e=>e.category).filter(e=>!!e))).sort()),G=E(()=>Array.from(new Set(f(L).flatMap(e=>e.tags??[]))).sort());function K(e){return u.data.projects[e]?.name??``}function q(e){return u.data.projectMap[e]?.visibility}function J(e){if(f(p)&&e.projectId!==f(p)||f(h)&&e.category!==f(h)||f(x)&&!(e.tags??[]).includes(f(x)))return!1;if(f(d).trim()){let t=f(d).toLowerCase();if(![e.displayName,e.description,e.category,...e.tags??[]].filter(Boolean).join(` `).toLowerCase().includes(t))return!1}return!0}let Y=E(()=>f(L).filter(J)),X=E(()=>[f(p),f(h),f(x)].filter(e=>e!==null).length),Q=E(()=>f(d).trim()!==``||f(X)>0);function $(e){b(w,e,!0),k(`/library/${e}`).catch(()=>{b(w,null)})}async function _e(e){b(A,e,!0);let t=f(F).has(e);try{let n=await fetch(`/api/v1/me/starred/${e}`,{method:t?`DELETE`:`PUT`});if(!n.ok)throw Error(`${n.status}`);await O()}catch{V.error(t?`Failed to unstar`:`Failed to star`)}finally{b(A,null)}}function ve(){b(d,``),b(p,null),b(h,null),b(x,null),b(N,!1)}M(a,{homeUrl:`/library`,children:(e,a)=>{z(e,{children:(e,a)=>{var g=ge(),v=y(g);{let e=e=>{ee(e,{get mode(){return f(S)},onChange:e=>b(S,e,!0)})},t=E(()=>`${f(Y).length} tool${f(Y).length===1?``:`s`}${f(U).length>0?` across ${f(U).length} project${f(U).length===1?``:`s`}`:``}.`);te(v,{eyebrow:`Workspace`,title:`Library`,get description(){return f(t)},actions:e,$$slots:{actions:!0}})}var O=m(v,2),k=y(O),M=y(k);P(M,{placeholder:`Search tools, descriptions, tags…`,clearable:!0,class:`h-9 rounded-md text-sm`,get value(){return f(d)},set value(e){b(d,e,!0)}}),o(k);var L=m(k,2),z=e=>{var t=oe(),i=y(t);ne(i,{class:`h-3.5 w-3.5`});var a=m(i,2),l=e=>{var t=ae(),n=y(t,!0);o(t),_(()=>c(n,f(X))),D(e,t)};r(a,e=>{f(X)>0&&e(l)}),o(t),_(()=>n(t,1,`relative inline-flex h-9 items-center gap-1.5 rounded-md border px-3 text-sm transition-colors ${f(N)||f(X)>0?`border-border bg-accent text-accent-foreground`:`border-input bg-background text-foreground hover:bg-muted/40`}`)),s(`click`,t,()=>b(N,!f(N))),D(e,t)};r(L,e=>{(f(W).length>0||f(G).length>0||f(U).length>1)&&e(z)});var V=m(L,2),H=e=>{var t=se(),n=y(t);R(n,{class:`h-3 w-3`}),i(),o(t),s(`click`,t,ve),D(e,t)};r(V,e=>{f(Q)&&e(H)}),o(O);var J=m(O,2),ye=e=>{var t=de(),n=y(t),i=y(n),a=e=>{var t=ce(),n=m(y(t),2),r=y(n);r.value=(r.__value=null,``);var i=m(r);l(i,17,()=>f(U),e=>e.id,(e,t)=>{var n=Z(),r=y(n,!0);o(n);var i={};_(()=>{c(r,f(t).name),i!==(i=f(t).id)&&(n.value=(n.__value=f(t).id)??``)}),D(e,n)}),o(n),o(t),T(n,()=>f(p),e=>b(p,e)),D(e,t)};r(i,e=>{f(U).length>1&&e(a)});var s=m(i,2),u=e=>{var t=le(),n=m(y(t),2),r=y(n);r.value=(r.__value=null,``);var i=m(r);l(i,16,()=>f(W),e=>e,(e,t)=>{var n=Z(),r=y(n,!0);o(n);var i={};_(()=>{c(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),D(e,n)}),o(n),o(t),T(n,()=>f(h),e=>b(h,e)),D(e,t)};r(s,e=>{f(W).length>0&&e(u)});var d=m(s,2),g=e=>{var t=ue(),n=m(y(t),2),r=y(n);r.value=(r.__value=null,``);var i=m(r);l(i,16,()=>f(G),e=>e,(e,t)=>{var n=Z(),r=y(n);o(n);var i={};_(()=>{c(r,`#${t??``}`),i!==(i=t)&&(n.value=(n.__value=t)??``)}),D(e,n)}),o(n),o(t),T(n,()=>f(x),e=>b(x,e)),D(e,t)};r(d,e=>{f(G).length>0&&e(g)}),o(n),o(t),D(e,t)};r(J,e=>{f(N)&&e(ye)});var be=m(J,2),xe=e=>{var t=pe(),r=m(y(t),2);l(r,23,()=>u.data.recentRuns.slice(0,5),e=>e.runId,(e,t,r)=>{var i=fe(),a=y(i),l=y(a,!0);o(a);var d=m(a,2),p=y(d,!0);o(d);var h=m(d,2),g=m(y(h));j(g,{class:`h-3 w-3`}),o(h),o(i),_((e,r)=>{i.disabled=f(w)===f(t).definitionId,n(i,1,e),c(l,f(t).definitionName),c(p,r)},[()=>`group hover:bg-muted/40 grid w-full items-center gap-4 px-4 py-3 text-left text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-60 ${f(r)<Math.min(u.data.recentRuns.length,5)-1?`border-border border-b`:``}`,()=>ie(f(t).timestamp)]),s(`click`,i,()=>$(f(t).definitionId)),D(e,i)}),o(r),o(t),D(e,t)};r(be,e=>{u.data.recentRuns.length>0&&!f(Q)&&e(xe)});var Se=m(be,2),Ce=e=>{var n=t(),i=C(n),a=e=>{var t=me();l(t,21,()=>f(Y),e=>e.guid,(e,t)=>{{let n=E(()=>f(F).has(f(t).guid)),r=E(()=>f(w)===f(t).guid),i=E(()=>f(A)===f(t).guid),a=E(()=>f(U).length>1?K(f(t).projectId):void 0),o=E(()=>f(U).length>1?q(f(t).projectId):void 0);I(e,{get record(){return f(t)},get starred(){return f(n)},get loading(){return f(r)},get starBusy(){return f(i)},get projectName(){return f(a)},get projectVisibility(){return f(o)},onOpen:e=>$(e.guid),onToggleStar:_e})}}),o(t),D(e,t)},s=e=>{re(e,{get records(){return f(Y)},get starredIds(){return f(F)},get loadingGuid(){return f(w)},get starBusyGuid(){return f(A)},onOpen:$,onToggleStar:_e})};r(i,e=>{f(S)===`grid`?e(a):e(s,-1)}),D(e,n)},we=e=>{B(e,{size:`lg`,title:`No tools match your filters`,actions:e=>{var t=he();s(`click`,t,ve),D(e,t)},$$slots:{actions:!0}})},Te=e=>{B(e,{size:`lg`,title:`No tools available yet`,description:`Ask an admin to publish a Grasshopper definition.`})};r(Se,e=>{f(Y).length>0?e(Ce):f(Q)?e(we,1):e(Te,-1)}),o(g),D(e,g)},$$slots:{default:!0}})},$$slots:{default:!0}}),v()}a([`click`]);export{Q as component};
|
|
Binary file
|
|
Binary file
|