@hot-updater/console 1.0.0-rc.4 → 1.0.0-rc.41
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/.output/nitro.json +1 -1
- package/.output/public/assets/ConsoleFeatureUnavailable-DRzeMGRM.js +1 -0
- package/.output/public/assets/EventDetails-SB5ygJzS.js +1 -0
- package/.output/public/assets/HashValueDisplay-BFX_kY3-.js +1 -0
- package/.output/public/assets/InsightsInfo-btYppp0B.js +1 -0
- package/.output/public/assets/InsightsPageHeader-Ba8psD8t.js +1 -0
- package/.output/public/assets/NotFoundPage-CyRG2eca.js +1 -0
- package/.output/public/assets/alert-dialog-Bbk_4-WJ.js +1 -0
- package/.output/public/assets/api-DUgI6yOI.js +1 -0
- package/.output/public/assets/api-keys-CIO9L_wu.js +1 -0
- package/.output/public/assets/api-keys-CmkNKOhS.js +1 -0
- package/.output/public/assets/arrow-left-CnMYpqB7.js +1 -0
- package/.output/public/assets/arrow-up-right-BtffZA6e.js +1 -0
- package/.output/public/assets/chevron-right-BqD5wtFb.js +1 -0
- package/.output/public/assets/clipboard-DS9ucUQL.js +1 -0
- package/.output/public/assets/console-features-api-BMsI3Bj8.js +1 -0
- package/.output/public/assets/dialog-Bqbb7B0N.js +1 -0
- package/.output/public/assets/dist-LxKJB-Vu.js +1 -0
- package/.output/public/assets/empty-CuT2UhFp.js +1 -0
- package/.output/public/assets/field-BBDpjIqu.js +1 -0
- package/.output/public/assets/index-BEfQ2_7f.js +11 -0
- package/.output/public/assets/input-group-ja_30qaF.js +1 -0
- package/.output/public/assets/insights-B0ib9qOE.js +2 -0
- package/.output/public/assets/insights-BIMJx-0p.js +1 -0
- package/.output/public/assets/insights-CndqcWEj.js +42 -0
- package/.output/public/assets/insights-api-B6Ewc-OG.js +1 -0
- package/.output/public/assets/insights-usage-rpc-DYEhsCKT.js +1 -0
- package/.output/public/assets/insights_.distribution-B26PMy4k.js +2 -0
- package/.output/public/assets/insights_.distribution-BBDtqqYS.js +1 -0
- package/.output/public/assets/insights_.distribution-DhHmYS8k.js +1 -0
- package/.output/public/assets/installations-C3cMuwRx.js +1 -0
- package/.output/public/assets/installations-C3yrjwDh.js +2 -0
- package/.output/public/assets/installations-D3edlN75.js +1 -0
- package/.output/public/assets/key-round-wS_SIZ6b.js +1 -0
- package/.output/public/assets/list-CgrYiadM.js +1 -0
- package/.output/public/assets/refresh-cw-BYgoNCco.js +1 -0
- package/.output/public/assets/remote-config-0i-gDkeU.js +1 -0
- package/.output/public/assets/remote-config-An1ROIOQ.js +6 -0
- package/.output/public/assets/remote-config-CoeWgA9i.js +1 -0
- package/.output/public/assets/routes-DNoaJIQV.js +2 -0
- package/.output/public/assets/routes-cWBDtghZ.js +1 -0
- package/.output/public/assets/search-DaTDPW25.js +1 -0
- package/.output/public/assets/select-CZMQKT7F.js +1 -0
- package/.output/public/assets/sidebar-DNVyJPfX.js +3 -0
- package/.output/public/assets/smartphone-DpTFgtKf.js +1 -0
- package/.output/public/assets/styles-D8mxMvCB.css +2 -0
- package/.output/public/assets/switch-CU4-fupc.js +1 -0
- package/.output/public/assets/table-Gm4qRWwE.js +1 -0
- package/.output/public/assets/tabs-R1I8CRjR.js +1 -0
- package/.output/public/assets/undo-2-CmrHjwFc.js +1 -0
- package/.output/public/assets/useCompositeListItem-BaPeC9ZO.js +1 -0
- package/.output/public/assets/valueToPercent-CH8GCHaL.js +1 -0
- package/.output/server/__23tanstack-start-server-fn-resolver-DTAqlLRd.mjs +178 -0
- package/.output/server/_libs/@base-ui/react+[...].mjs +6450 -2741
- package/.output/server/_libs/@tanstack/react-router+[...].mjs +3802 -4022
- package/.output/server/_libs/@tanstack/react-router-ssr-query+[...].mjs +140 -97
- package/.output/server/_libs/lucide-react.mjs +235 -31
- package/.output/server/_libs/next-themes.mjs +1 -1
- package/.output/server/_libs/react-redux+[...].mjs +1 -1
- package/.output/server/_libs/recharts+[...].mjs +483 -901
- package/.output/server/_libs/sonner.mjs +1 -1
- package/.output/server/_libs/tanstack__history.mjs +68 -41
- package/.output/server/_libs/tanstack__query-core.mjs +2010 -309
- package/.output/server/_libs/tanstack__react-query.mjs +448 -21
- package/.output/server/_libs/verkit.mjs +102 -1
- package/.output/server/_ssr/BundleIdDisplay-BNoVW3Dv.mjs +13 -0
- package/.output/server/_ssr/ConsoleFeatureUnavailable-BPFa-cmJ.mjs +58 -0
- package/.output/server/_ssr/EventDetails-9CeshfdR.mjs +344 -0
- package/.output/server/_ssr/HashValueDisplay-DXZlkcps.mjs +55 -0
- package/.output/server/_ssr/InsightsInfo-DLNdJQ0m.mjs +75 -0
- package/.output/server/_ssr/InsightsPageHeader-DZGVDgvv.mjs +145 -0
- package/.output/server/_ssr/NotFoundPage-mYHHg-2s.mjs +37 -0
- package/.output/server/_ssr/{dialog-DUaIgpgd.mjs → alert-dialog-Chkim7vZ.mjs} +6 -83
- package/.output/server/_ssr/api-C-Il5-sa.mjs +203 -0
- package/.output/server/_ssr/api-keys-01FGqj4d.mjs +5 -0
- package/.output/server/_ssr/{api-keys-DJml_XoK.mjs → api-keys-B_f9h7ln.mjs} +48 -10
- package/.output/server/_ssr/api-keys-rpc-Cf4YCyFc.mjs +52 -0
- package/.output/server/_ssr/api-rpc-DRqwxxT_.mjs +296 -0
- package/.output/server/_ssr/{auth-BF8mbAgF.mjs → auth-UP0wXs4i.mjs} +1 -1
- package/.output/server/_ssr/{auth-rpc-D_hv52-J.mjs → auth-rpc-D8nFpU9C.mjs} +6 -6
- package/.output/server/_ssr/auth.server-COZoXu4i.mjs +5425 -0
- package/.output/server/_ssr/bundleActivity-M5gzBFNg.mjs +18 -0
- package/.output/server/_ssr/config-WVX4IxSR.mjs +15 -0
- package/.output/server/_ssr/config.server-Dm2l7w0O.mjs +36 -0
- package/.output/server/_ssr/console-access--o9FXikU.mjs +17 -0
- package/.output/server/_ssr/console-features-BftSkf3f.mjs +60 -0
- package/.output/server/_ssr/console-features-api-CYclUQ4h.mjs +43 -0
- package/.output/server/_ssr/console-features-rpc-1WaAkPM_.mjs +19 -0
- package/.output/server/_ssr/{createServerFn-B2hcXoPM.mjs → createMiddleware-Cm6Tn0_Y.mjs} +67 -56
- package/.output/server/_ssr/{createServerRpc-DB29C_5p.mjs → createServerRpc-RLR4H-Fn.mjs} +2 -2
- package/.output/server/_ssr/databaseConfig-C5SkAyUy.mjs +5 -0
- package/.output/server/_ssr/{databaseJsonValue-d6I3nAS4.mjs → databaseJsonValue-Csbuzc9Q.mjs} +28 -5
- package/.output/server/_ssr/databaseRows-BUuNU-qt.mjs +74 -0
- package/.output/server/_ssr/dialog-mfSANqjC.mjs +84 -0
- package/.output/server/_ssr/{dist-CyzPaI5v.mjs → dist-wmnTk7w6.mjs} +140 -6
- package/.output/server/_ssr/{downloadBundle-B3ert-pY.mjs → downloadBundle-DViuIa9U.mjs} +10 -10
- package/.output/server/_ssr/empty-BPayFad3.mjs +60 -0
- package/.output/server/_ssr/{empty-plugin-adapters-B5QvGpEl.mjs → empty-plugin-adapters-CPtwX8a7.mjs} +1 -1
- package/.output/server/_ssr/failureReports-DKDhVsXA.mjs +33 -0
- package/.output/server/_ssr/field-DjZ5t7rH.mjs +189 -0
- package/.output/server/_ssr/getBundleChildren-CmjDg6Re.mjs +22 -0
- package/.output/server/_ssr/{input-group-Bb8ueylQ.mjs → input-group-Dx-MEkNM.mjs} +3 -52
- package/.output/server/_ssr/insights-BopxyJjk.mjs +14 -0
- package/.output/server/_ssr/insights-Bvm03d61.mjs +5 -0
- package/.output/server/_ssr/insights-CrLAHSDy.mjs +2315 -0
- package/.output/server/_ssr/insights-api-Bg8ZV_h_.mjs +122 -0
- package/.output/server/_ssr/insights-errors-BjnFUyZj.mjs +34 -0
- package/.output/server/_ssr/insights-failures-rpc-tyy5m9Cc.mjs +36 -0
- package/.output/server/_ssr/insights-failures-xaa41Buf.mjs +46 -0
- package/.output/server/_ssr/{insights-recovery-DSFM-YTL.mjs → insights-recovery-BWQhiZaF.mjs} +9 -2
- package/.output/server/_ssr/insights-recovery-rpc-CPJOiJAV.mjs +32 -0
- package/.output/server/_ssr/{insights-rpc-DrIQCjpD.mjs → insights-rpc-DoC3hla9.mjs} +22 -14
- package/.output/server/_ssr/insights-usage-BpBM0U0c.mjs +29 -0
- package/.output/server/_ssr/insights-usage-rpc-CFuTYp3T.mjs +29 -0
- package/.output/server/_ssr/insights-usage-rpc-O2ruP4iE.mjs +41 -0
- package/.output/server/_ssr/insightsUsage-CzhVjsc8.mjs +56 -0
- package/.output/server/_ssr/insights_.distribution-B3BVPD00.mjs +16 -0
- package/.output/server/_ssr/insights_.distribution-BMoisxRG.mjs +347 -0
- package/.output/server/_ssr/insights_.distribution-BiCcFyrG.mjs +7 -0
- package/.output/server/_ssr/{installations-YumqpNpa.mjs → installations-Cx3jIrwl.mjs} +280 -364
- package/.output/server/_ssr/installations-DTGPaKXx.mjs +69 -0
- package/.output/server/_ssr/installations-osiAuNKr.mjs +5 -0
- package/.output/server/_ssr/listReleases-BfUBlCHo.mjs +79 -0
- package/.output/server/_ssr/release-adoption-005tQRpo.mjs +55 -0
- package/.output/server/_ssr/release-adoption-rpc-BVySDR0L.mjs +41 -0
- package/.output/server/_ssr/releaseAdoption-2PJPA09N.mjs +114 -0
- package/.output/server/_ssr/releaseManagement-BTCWEY8-.mjs +11 -0
- package/.output/server/_ssr/remote-config-CUoAxUMy.mjs +430 -0
- package/.output/server/_ssr/remote-config-Cc5P4J-r.mjs +17 -0
- package/.output/server/_ssr/remote-config-CjdxcZ9B.mjs +5 -0
- package/.output/server/_ssr/remote-config-D2GmbGwI.mjs +2594 -0
- package/.output/server/_ssr/remote-config-rpc-kjoZ9PRS.mjs +115 -0
- package/.output/server/_ssr/rolldown-runtime-rSIU-vHC.mjs +13 -0
- package/.output/server/_ssr/{router-iP95Vqi2.mjs → router-DwGVewL-.mjs} +141 -139
- package/.output/server/_ssr/{routes-ivsV2TDu.mjs → routes-C4yxv3JU.mjs} +192 -685
- package/.output/server/_ssr/routes-D3_aegLY.mjs +409 -0
- package/.output/server/_ssr/runtime.server-BoWf4QhU.mjs +1716 -0
- package/.output/server/_ssr/schema-DrOtkRVD.mjs +361 -0
- package/.output/server/_ssr/select-DkzM2miy.mjs +107 -0
- package/.output/server/_ssr/server-BW0gzB0p.mjs +8325 -0
- package/.output/server/_ssr/{createSsrRpc-NHF2PxuK.mjs → sidebar-DPcOijvL.mjs} +107 -47
- package/.output/server/_ssr/ssr.mjs +1 -1
- package/.output/server/_ssr/start-BfFbHKMK.mjs +4 -0
- package/.output/server/_ssr/switch-BqJ2mAwC.mjs +17 -0
- package/.output/server/_ssr/{table-D1mL8fJu.mjs → table-R7RY92q9.mjs} +2 -2
- package/.output/server/_ssr/tabs-trDcbRkT.mjs +45 -0
- package/.output/server/_ssr/updateFailures-H6pnnYK4.mjs +40 -0
- package/.output/server/_ssr/{uuidv7-D0QFkPL_.mjs → uuidv7-ctA_XVZA.mjs} +2 -2
- package/.output/server/_tanstack-start-manifest_v-BwInaUTw.mjs +139 -0
- package/.output/server/index.mjs +315 -154
- package/LICENSE +13 -14
- package/README.md +82 -72
- package/lib/index.d.mts +23 -11
- package/lib/vite-internal.mjs +13 -3
- package/lib/vite.d.mts +2 -0
- package/package.json +14 -14
- package/src/components/AppSidebar.tsx +100 -71
- package/src/components/ConsoleAccessPage.tsx +5 -1
- package/src/components/ConsoleFeatureUnavailable.tsx +80 -0
- package/src/components/NotFoundPage.tsx +7 -7
- package/src/components/features/FeatureSlots.tsx +103 -0
- package/src/components/features/api-keys/apiKeysFeatureUi.tsx +15 -0
- package/src/components/features/bundles/BundleMetadata.tsx +8 -5
- package/src/components/features/bundles/RolloutCohortsDialog.tsx +1 -1
- package/src/components/features/channels/ChannelManagementDialog.tsx +2 -5
- package/src/components/features/insights/AppUsage.tsx +366 -0
- package/src/components/features/insights/BuiltinBundle.tsx +36 -0
- package/src/components/features/insights/ComparedBundlesChart.tsx +310 -0
- package/src/components/features/insights/EstimatedCount.tsx +18 -0
- package/src/components/features/insights/EventDetails.tsx +400 -39
- package/src/components/features/insights/EventHistoryCard.tsx +112 -26
- package/src/components/features/insights/EventHistoryList.tsx +2 -2
- package/src/components/features/insights/FailureReports.tsx +407 -0
- package/src/components/features/insights/InsightsControls.tsx +265 -88
- package/src/components/features/insights/InsightsErrorAlert.tsx +14 -1
- package/src/components/features/insights/InsightsInfo.tsx +48 -0
- package/src/components/features/insights/InsightsOverview.tsx +604 -355
- package/src/components/features/insights/InsightsPageHeader.tsx +35 -20
- package/src/components/features/insights/InsightsPeriodSelector.tsx +89 -0
- package/src/components/features/insights/InstallationHistoryCard.tsx +66 -11
- package/src/components/features/insights/InstallationMatchesCard.tsx +1 -1
- package/src/components/features/insights/ReleaseActivity.tsx +308 -0
- package/src/components/features/insights/ReportingDevicesSummary.tsx +48 -0
- package/src/components/features/insights/RollbackButton.tsx +118 -0
- package/src/components/features/insights/UpdateFailures.tsx +382 -0
- package/src/components/features/insights/insightsFeatureUi.tsx +35 -0
- package/src/components/features/releases/ReleaseEditorSheet.tsx +26 -12
- package/src/components/features/remote-config/ConditionDialog.tsx +581 -0
- package/src/components/features/remote-config/ConditionsCard.tsx +244 -0
- package/src/components/features/remote-config/ParameterDialog.tsx +407 -0
- package/src/components/features/remote-config/ParametersCard.tsx +244 -0
- package/src/components/features/remote-config/PreviewCard.tsx +284 -0
- package/src/components/features/remote-config/PublishDialog.tsx +319 -0
- package/src/components/features/remote-config/RemoteConfigPage.tsx +353 -0
- package/src/components/features/remote-config/RuleSummary.tsx +21 -0
- package/src/components/features/remote-config/ValueInput.tsx +148 -0
- package/src/components/features/remote-config/VersionsCard.tsx +361 -0
- package/src/components/features/remote-config/remoteConfigFeatureUi.tsx +15 -0
- package/src/components/features/remote-config/useDateTimeText.ts +16 -0
- package/src/components/ui/card.tsx +1 -1
- package/src/components/ui/scroll-area.tsx +52 -0
- package/src/components/ui/sidebar.tsx +22 -29
- package/src/components/ui/tabs.tsx +81 -0
- package/src/index.ts +26 -19
- package/src/lib/api-keys-api.ts +0 -28
- package/src/lib/api-keys-rpc.ts +27 -38
- package/src/lib/api-rpc.ts +189 -266
- package/src/lib/api.ts +19 -102
- package/src/lib/bundle-activity.ts +24 -4
- package/src/lib/console-access.ts +20 -0
- package/src/lib/console-features-api.ts +68 -0
- package/src/lib/console-features-rpc.ts +13 -0
- package/src/lib/console-features.ts +97 -0
- package/src/lib/insights-api.ts +56 -2
- package/src/lib/insights-errors.ts +64 -0
- package/src/lib/insights-failures-rpc.ts +36 -0
- package/src/lib/insights-failures.ts +130 -0
- package/src/lib/insights-recovery-rpc.ts +13 -17
- package/src/lib/insights-recovery.ts +10 -27
- package/src/lib/insights-retention.ts +21 -0
- package/src/lib/insights-rpc.ts +30 -12
- package/src/lib/insights-search.ts +93 -0
- package/src/lib/insights-usage-rpc.ts +29 -0
- package/src/lib/insights-usage.ts +76 -0
- package/src/lib/insights-view.ts +34 -5
- package/src/lib/release-adoption-api.ts +214 -0
- package/src/lib/release-adoption-rpc.ts +49 -0
- package/src/lib/release-adoption.ts +164 -0
- package/src/lib/remote-config-api.ts +119 -0
- package/src/lib/remote-config-draft.ts +652 -0
- package/src/lib/remote-config-rpc.ts +196 -0
- package/src/lib/scroll-restoration.ts +21 -0
- package/src/lib/server/adminInsights.ts +124 -0
- package/src/lib/server/auth.server.ts +13 -5
- package/src/lib/server/bundleActivity.ts +27 -28
- package/src/lib/server/config.server.ts +21 -74
- package/src/lib/server/console-feature-apis.ts +70 -0
- package/src/lib/server/console-runtime.server.ts +82 -38
- package/src/lib/server/downloadBundle.ts +16 -15
- package/src/lib/server/failureReports.ts +49 -0
- package/src/lib/server/getBundleChildren.ts +31 -122
- package/src/lib/server/insightsUsage.ts +63 -0
- package/src/lib/server/listReleases.ts +109 -44
- package/src/lib/server/releaseAdoption.ts +154 -0
- package/src/lib/server/releaseReachability.ts +8 -7
- package/src/lib/server/remoteConfig.ts +191 -0
- package/src/lib/server/runtime.server.ts +120 -31
- package/src/lib/server/updateFailures.ts +65 -0
- package/src/routeTree.gen.ts +65 -44
- package/src/router.tsx +3 -2
- package/src/routes/-installations-search.ts +32 -8
- package/src/routes/-releases-search.ts +76 -29
- package/src/routes/__root.tsx +10 -4
- package/src/routes/api/bundles/$bundleId/download.ts +2 -5
- package/src/routes/api-keys.tsx +5 -2
- package/src/routes/index.tsx +210 -152
- package/src/routes/insights.tsx +133 -18
- package/src/routes/insights_.distribution.tsx +422 -0
- package/src/routes/installations.tsx +98 -41
- package/src/routes/remote-config.tsx +42 -0
- package/src/styles.css +9 -0
- package/src/vite-internal.ts +15 -3
- package/src/vite.ts +2 -0
- package/.output/public/assets/InsightsPageHeader-C-Xc2MB9.js +0 -1
- package/.output/public/assets/api-keys-C1sgC6ko.js +0 -1
- package/.output/public/assets/api-keys-api-LchP65vQ.js +0 -1
- package/.output/public/assets/badge-BuMDU0Rf.js +0 -1
- package/.output/public/assets/card-BEvx_QKh.js +0 -1
- package/.output/public/assets/chart-no-axes-combined-C0G0fQ3J.js +0 -1
- package/.output/public/assets/composite-CHTH1Xhh.js +0 -1
- package/.output/public/assets/createServerFn-DHc2erub.js +0 -3
- package/.output/public/assets/dialog-dyZ1SphZ.js +0 -1
- package/.output/public/assets/dist-Bh1gaDfB.js +0 -1
- package/.output/public/assets/field-79SVH26s.js +0 -1
- package/.output/public/assets/index-BNkxg4jz.js +0 -10
- package/.output/public/assets/input-group-BbHfaBzQ.js +0 -1
- package/.output/public/assets/insights-D_7uSKfc.js +0 -1
- package/.output/public/assets/installations-BzoHWuXw.js +0 -1
- package/.output/public/assets/installations-DvjbUqd1.js +0 -2
- package/.output/public/assets/lazyRouteComponent-BN0MS05o.js +0 -1
- package/.output/public/assets/link-BG06whwB.js +0 -1
- package/.output/public/assets/loader-circle-Bbp8LGVC.js +0 -1
- package/.output/public/assets/preload-helper-uTix4PVD.js +0 -1
- package/.output/public/assets/refresh-cw-DZgiAOMk.js +0 -1
- package/.output/public/assets/routes-BFE-oRIT.js +0 -1
- package/.output/public/assets/routes-DaPMY31P.js +0 -2
- package/.output/public/assets/shield-check-DoIiaaXU.js +0 -1
- package/.output/public/assets/signing-BTRhaF5D.js +0 -1
- package/.output/public/assets/styles-C7U0oVke.css +0 -2
- package/.output/public/assets/table-BBEzJ7Xl.js +0 -1
- package/.output/public/assets/useCompositeListItem-BkPDaqyj.js +0 -42
- package/.output/server/__23tanstack-start-server-fn-resolver-Dr2ixDgQ.mjs +0 -146
- package/.output/server/_ssr/InsightsPageHeader-C5Has8Ry.mjs +0 -60
- package/.output/server/_ssr/api-keys-api-CrCZyvnl.mjs +0 -60
- package/.output/server/_ssr/api-keys-rpc-CFaNf-q0.mjs +0 -136
- package/.output/server/_ssr/api-rpc-B61KL3Eo.mjs +0 -1399
- package/.output/server/_ssr/auth.server-DF_shCeq.mjs +0 -47
- package/.output/server/_ssr/badge-BgsCP9Dp.mjs +0 -28
- package/.output/server/_ssr/bundle-signing-rpc-BBipZnFs.mjs +0 -16
- package/.output/server/_ssr/bundle-signing.server-Co_zHdJx.mjs +0 -12
- package/.output/server/_ssr/bundleActivity-D3_fIda2.mjs +0 -27
- package/.output/server/_ssr/card-DrbxCPtG.mjs +0 -86
- package/.output/server/_ssr/chart-qxa-_30a.mjs +0 -162
- package/.output/server/_ssr/config-Dv8qLDZ0.mjs +0 -13
- package/.output/server/_ssr/config.server-CBr6PDj5.mjs +0 -368
- package/.output/server/_ssr/databaseRows-5bCRTxm-.mjs +0 -126
- package/.output/server/_ssr/deleteBundle-BAq3JuGr.mjs +0 -66
- package/.output/server/_ssr/field-CqNUlqUq.mjs +0 -74
- package/.output/server/_ssr/getBundleChildren-COMt16m_.mjs +0 -50
- package/.output/server/_ssr/insights-B-DUbksX.mjs +0 -502
- package/.output/server/_ssr/insights-recovery-rpc-P71FH66n.mjs +0 -37
- package/.output/server/_ssr/insightsContract-fjJDBeEE.mjs +0 -303
- package/.output/server/_ssr/insightsRecovery-CqcosG7B.mjs +0 -149
- package/.output/server/_ssr/installations-BQrppti7.mjs +0 -29
- package/.output/server/_ssr/routes-BDabsmc7.mjs +0 -37
- package/.output/server/_ssr/runtime.server-jmZOKIQM.mjs +0 -438
- package/.output/server/_ssr/server-p7yrVBfD.mjs +0 -7468
- package/.output/server/_ssr/signing-CxCbnFCt.mjs +0 -134
- package/.output/server/_ssr/start-DpViQGnt.mjs +0 -4
- package/.output/server/_tanstack-start-manifest_v-Cwpu0C9Q.mjs +0 -100
- package/src/components/features/bundles/BundleActivityChart.tsx +0 -95
- package/src/components/features/bundles/BundleInsightsSummary.tsx +0 -121
- package/src/components/features/signing/BundleSigningPage.tsx +0 -139
- package/src/lib/bundle-signing-api.ts +0 -14
- package/src/lib/bundle-signing-rpc.ts +0 -16
- package/src/lib/server/bundle-signing.server.ts +0 -23
- package/src/lib/server/deleteBundle.ts +0 -145
- package/src/lib/server/insightsHistory.ts +0 -52
- package/src/lib/server/insightsRecovery.ts +0 -186
- package/src/routes/signing.tsx +0 -37
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/__23tanstack-start-server-fn-resolver-Dr2ixDgQ.js
|
|
2
|
-
var manifest = {
|
|
3
|
-
"00ccacb4a0212c83ec29f4d11719046ad91ea8291cfc557d514dbf00d3bd7f5f": {
|
|
4
|
-
functionName: "getBundles_createServerFn_handler",
|
|
5
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
6
|
-
},
|
|
7
|
-
"16cc7c2f080ea5b73e0c6bba815b110dbd7727796036d248ba0d8ae819ddef08": {
|
|
8
|
-
functionName: "createBundle_createServerFn_handler",
|
|
9
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
10
|
-
},
|
|
11
|
-
"1bd85c2a50e24785cb6abb023a247a9f048f37ddfa85cbb1c57e579563bad013": {
|
|
12
|
-
functionName: "getBundle_createServerFn_handler",
|
|
13
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
14
|
-
},
|
|
15
|
-
"206547cb1526f961070a989818ca7b9e34f6b2b0e4ab851698c3807fe9fb5e0c": {
|
|
16
|
-
functionName: "getReleases_createServerFn_handler",
|
|
17
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
18
|
-
},
|
|
19
|
-
"29665ce3a33cde2eb2ee082694288db269438f62f3a4d0a005dec3256e0f15c1": {
|
|
20
|
-
functionName: "getApiKeyCapabilityRpc_createServerFn_handler",
|
|
21
|
-
importer: () => import("./_ssr/api-keys-rpc-CFaNf-q0.mjs")
|
|
22
|
-
},
|
|
23
|
-
"2b9b8d1f49f79a511589617d8d4bfc6094a3acf5264f33651b9569ba66d3f321": {
|
|
24
|
-
functionName: "createChannel_createServerFn_handler",
|
|
25
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
26
|
-
},
|
|
27
|
-
"2c7f3cdb9bd3cab2c026a48abdc84c362db0362924a08679052a325640aec56b": {
|
|
28
|
-
functionName: "listApiKeysRpc_createServerFn_handler",
|
|
29
|
-
importer: () => import("./_ssr/api-keys-rpc-CFaNf-q0.mjs")
|
|
30
|
-
},
|
|
31
|
-
"3a27ff5679228b86a346b3fe42142e7a5bf0264f73173c0dbe5f07fb37c43cf7": {
|
|
32
|
-
functionName: "deleteBundle_createServerFn_handler",
|
|
33
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
34
|
-
},
|
|
35
|
-
"3c04bc6624be6dfdd80cf96819f9c6d0455e59a7bb4c0374b6afb0162ffd15b0": {
|
|
36
|
-
functionName: "listInsightsInstallationEventsRpc_createServerFn_handler",
|
|
37
|
-
importer: () => import("./_ssr/insights-rpc-DrIQCjpD.mjs")
|
|
38
|
-
},
|
|
39
|
-
"4370f1bf70b91f1168d85379d3008449a1bedb915e9878ca4ef89d5f3a80fa7f": {
|
|
40
|
-
functionName: "getBundleChildren_createServerFn_handler",
|
|
41
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
42
|
-
},
|
|
43
|
-
"4ca367070b00f58179a572f0bb8196a4ccdd3881e9b1dbfe33deee0cb6e1f549": {
|
|
44
|
-
functionName: "getBundleChildCounts_createServerFn_handler",
|
|
45
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
46
|
-
},
|
|
47
|
-
"51a34c05479a893c7d320bd4cd1604427289d667698c48b9f30a01aabf8a5e68": {
|
|
48
|
-
functionName: "getConfig_createServerFn_handler",
|
|
49
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
50
|
-
},
|
|
51
|
-
"52756dde414919a906bfe83d1ab6d29910c63bcafdb47653d6f1df562d958920": {
|
|
52
|
-
functionName: "deleteChannel_createServerFn_handler",
|
|
53
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
54
|
-
},
|
|
55
|
-
"61de3b69779c5ce2a5f5d3c27e2cfaca8fba8f14c8803559b9cd733c456494fa": {
|
|
56
|
-
functionName: "deleteBundles_createServerFn_handler",
|
|
57
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
58
|
-
},
|
|
59
|
-
"662034966679a6d29db2b55e7ba665e26e6c9a58a5529f33aa857a2049616233": {
|
|
60
|
-
functionName: "getBundleSigningInspectionRpc_createServerFn_handler",
|
|
61
|
-
importer: () => import("./_ssr/bundle-signing-rpc-BBipZnFs.mjs")
|
|
62
|
-
},
|
|
63
|
-
"6726f1ed9eda1f0cb4c1f1ad1023faee435ddcfd0b7c55ef08ca7f2f7f577370": {
|
|
64
|
-
functionName: "getInsightsInstallationRpc_createServerFn_handler",
|
|
65
|
-
importer: () => import("./_ssr/insights-rpc-DrIQCjpD.mjs")
|
|
66
|
-
},
|
|
67
|
-
"68a2d94ee016be64936401f5eba60ab08a47ff373e1cf9de48e4413336e6034b": {
|
|
68
|
-
functionName: "createApiKeyRpc_createServerFn_handler",
|
|
69
|
-
importer: () => import("./_ssr/api-keys-rpc-CFaNf-q0.mjs")
|
|
70
|
-
},
|
|
71
|
-
"69cd8e2488b082eb2a22e7058be56ad6566f338c471c62557fa6beed5dc1352a": {
|
|
72
|
-
functionName: "getRecoveryReportRpc_createServerFn_handler",
|
|
73
|
-
importer: () => import("./_ssr/insights-recovery-rpc-P71FH66n.mjs")
|
|
74
|
-
},
|
|
75
|
-
"735c501f6d5ea81a445ff2b6b2ea6a1b589e3c6f63a465a881822c80ae71e7d1": {
|
|
76
|
-
functionName: "findInsightsInstallationsRpc_createServerFn_handler",
|
|
77
|
-
importer: () => import("./_ssr/insights-rpc-DrIQCjpD.mjs")
|
|
78
|
-
},
|
|
79
|
-
"79ada05964de8f2123bfcd62b10097d59bf8fd689ef5c7161031e5871d8396c5": {
|
|
80
|
-
functionName: "getChannels_createServerFn_handler",
|
|
81
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
82
|
-
},
|
|
83
|
-
"7ea0186f19f9f2bc2ca4b26e3c59636891cf046957f84287b6783f8d88bd8cb7": {
|
|
84
|
-
functionName: "updateRelease_createServerFn_handler",
|
|
85
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
86
|
-
},
|
|
87
|
-
"956539a300d79a7efa191c1cc2d529d62fc4bfd940442548fdbc1404e0d53078": {
|
|
88
|
-
functionName: "promoteRelease_createServerFn_handler",
|
|
89
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
90
|
-
},
|
|
91
|
-
"a1cb80b19ca72a64fb631ca28ebb9b6941db245983de082d5dd3203ec2eef795": {
|
|
92
|
-
functionName: "revokeApiKeyRpc_createServerFn_handler",
|
|
93
|
-
importer: () => import("./_ssr/api-keys-rpc-CFaNf-q0.mjs")
|
|
94
|
-
},
|
|
95
|
-
"a6f23116eeaf76166d405e28a95213123025613c6603030894e519015bf48032": {
|
|
96
|
-
functionName: "getRelease_createServerFn_handler",
|
|
97
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
98
|
-
},
|
|
99
|
-
"b46c95dba95a6a3e8fa5c9d100e3622fa5ae7af4f38e10fb1ed2fa48289a3a8f": {
|
|
100
|
-
functionName: "preflightRelease_createServerFn_handler",
|
|
101
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
102
|
-
},
|
|
103
|
-
"b4bf4c461903edcdc44eea52468c737b5b600a586f542138ff022dcbbe86c45c": {
|
|
104
|
-
functionName: "getBundleActivityRpc_createServerFn_handler",
|
|
105
|
-
importer: () => import("./_ssr/insights-recovery-rpc-P71FH66n.mjs")
|
|
106
|
-
},
|
|
107
|
-
"c504696e68ba764b48c48aa8a40275938640941e473cf9cfdd7b2322d99f9d13": {
|
|
108
|
-
functionName: "getConsoleAccessRpc_createServerFn_handler",
|
|
109
|
-
importer: () => import("./_ssr/auth-rpc-D_hv52-J.mjs")
|
|
110
|
-
},
|
|
111
|
-
"d4c50f40701055145f24873dc90f3c55a5494457a6a03a743339b2ac4545eb19": {
|
|
112
|
-
functionName: "listInsightsEventsRpc_createServerFn_handler",
|
|
113
|
-
importer: () => import("./_ssr/insights-rpc-DrIQCjpD.mjs")
|
|
114
|
-
},
|
|
115
|
-
"d5b58722ce514e3b63a377f736b4823c2011782495442ae4870ed547e392c70b": {
|
|
116
|
-
functionName: "deleteRelease_createServerFn_handler",
|
|
117
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
118
|
-
},
|
|
119
|
-
"e8c24b7247936f045a145ffd5c177fd0e3df3b52769d67dfbd8d1de491d66396": {
|
|
120
|
-
functionName: "getReleaseCatalogDiagnostics_createServerFn_handler",
|
|
121
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
122
|
-
},
|
|
123
|
-
"f8bdca3d0579adb812d6404f55d9261a89cdb025e920b1fcad82883646a5fe9e": {
|
|
124
|
-
functionName: "getConfigLoaded_createServerFn_handler",
|
|
125
|
-
importer: () => import("./_ssr/api-rpc-B61KL3Eo.mjs")
|
|
126
|
-
},
|
|
127
|
-
"fa8c48f0489d97c62b9b68fd0caf0a61b15bad25a42b3866ec36264b4b30bb74": {
|
|
128
|
-
functionName: "getConsoleAuthProvidersRpc_createServerFn_handler",
|
|
129
|
-
importer: () => import("./_ssr/auth-rpc-D_hv52-J.mjs")
|
|
130
|
-
},
|
|
131
|
-
"ff00311d412c8cdfa8ad5b0ba1eb6aa7471d0cc12170e6cc645deb91603d42dd": {
|
|
132
|
-
functionName: "getReportingInstallationsRpc_createServerFn_handler",
|
|
133
|
-
importer: () => import("./_ssr/insights-rpc-DrIQCjpD.mjs")
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
async function getServerFnById(id, access) {
|
|
137
|
-
const serverFnInfo = manifest[id];
|
|
138
|
-
if (!serverFnInfo) throw new Error("Server function info not found for " + id);
|
|
139
|
-
const fnModule = serverFnInfo.module ?? await serverFnInfo.importer();
|
|
140
|
-
if (!fnModule) throw new Error("Server function module not resolved for " + id);
|
|
141
|
-
const action = fnModule[serverFnInfo.functionName];
|
|
142
|
-
if (!action) throw new Error("Server function module export not resolved for serverFn ID: " + id);
|
|
143
|
-
return action;
|
|
144
|
-
}
|
|
145
|
-
//#endregion
|
|
146
|
-
export { getServerFnById as t };
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { q as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
2
|
-
import { I as ChartNoAxesCombined, n as TriangleAlert } from "../_libs/lucide-react.mjs";
|
|
3
|
-
import { S as buttonVariants, g as SidebarTrigger } from "./createSsrRpc-NHF2PxuK.mjs";
|
|
4
|
-
import { m as Link } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
5
|
-
import { i as AlertTitle, r as AlertDescription, t as Alert } from "./card-DrbxCPtG.mjs";
|
|
6
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/InsightsPageHeader-C5Has8Ry.js
|
|
7
|
-
var import_jsx_runtime = require_jsx_runtime();
|
|
8
|
-
function InsightsErrorAlert({ fallbackTitle }) {
|
|
9
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Alert, {
|
|
10
|
-
variant: "destructive",
|
|
11
|
-
children: [
|
|
12
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(TriangleAlert, { "aria-hidden": "true" }),
|
|
13
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertTitle, { children: fallbackTitle }),
|
|
14
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDescription, { children: "Refresh to try again. If this keeps happening, check your Insights provider connection." })
|
|
15
|
-
]
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
function InsightsPageHeader({ view }) {
|
|
19
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("header", {
|
|
20
|
-
className: "sticky top-0 z-10 flex shrink-0 flex-wrap items-center gap-3 border-b bg-background px-3 py-3 sm:bg-card/70 sm:px-4 sm:backdrop-blur-sm",
|
|
21
|
-
children: [
|
|
22
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarTrigger, { className: "-ml-1 size-11 lg:size-7" }),
|
|
23
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
24
|
-
className: "flex items-center gap-1.5",
|
|
25
|
-
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChartNoAxesCombined, {
|
|
26
|
-
"aria-hidden": "true",
|
|
27
|
-
className: "size-3.5 text-muted-foreground"
|
|
28
|
-
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", {
|
|
29
|
-
className: "text-sm font-medium",
|
|
30
|
-
children: "Insights"
|
|
31
|
-
})]
|
|
32
|
-
}),
|
|
33
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("nav", {
|
|
34
|
-
"aria-label": "Insights views",
|
|
35
|
-
className: "ml-auto flex gap-1",
|
|
36
|
-
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Link, {
|
|
37
|
-
"aria-current": view === "overview" ? "page" : void 0,
|
|
38
|
-
className: buttonVariants({
|
|
39
|
-
className: "h-11 px-3 lg:h-8 lg:px-2.5",
|
|
40
|
-
size: "lg",
|
|
41
|
-
variant: view === "overview" ? "secondary" : "ghost"
|
|
42
|
-
}),
|
|
43
|
-
to: "/insights",
|
|
44
|
-
children: "Overview"
|
|
45
|
-
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Link, {
|
|
46
|
-
"aria-current": view === "events" ? "page" : void 0,
|
|
47
|
-
className: buttonVariants({
|
|
48
|
-
className: "h-11 px-3 lg:h-8 lg:px-2.5",
|
|
49
|
-
size: "lg",
|
|
50
|
-
variant: view === "events" ? "secondary" : "ghost"
|
|
51
|
-
}),
|
|
52
|
-
to: "/installations",
|
|
53
|
-
children: "Events"
|
|
54
|
-
})]
|
|
55
|
-
})
|
|
56
|
-
]
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
//#endregion
|
|
60
|
-
export { InsightsPageHeader as n, InsightsErrorAlert as t };
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { c as createServerFn } from "./createServerFn-B2hcXoPM.mjs";
|
|
2
|
-
import { w as createSsrRpc } from "./createSsrRpc-NHF2PxuK.mjs";
|
|
3
|
-
import { g as redirect } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
4
|
-
import { i as useQueryClient, n as useQuery, t as useMutation } from "../_libs/tanstack__react-query.mjs";
|
|
5
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/api-keys-api-CrCZyvnl.js
|
|
6
|
-
var parseName = (input) => {
|
|
7
|
-
const name = typeof input === "object" && input !== null ? Reflect.get(input, "name") : void 0;
|
|
8
|
-
if (typeof name !== "string") throw new TypeError("API key name must be a string.");
|
|
9
|
-
return { name };
|
|
10
|
-
};
|
|
11
|
-
var parseId = (input) => {
|
|
12
|
-
const id = typeof input === "object" && input !== null ? Reflect.get(input, "id") : void 0;
|
|
13
|
-
if (typeof id !== "string" || !/^api-[A-Za-z0-9_-]{43}$/u.test(id)) throw new TypeError("Invalid API key id.");
|
|
14
|
-
return { id };
|
|
15
|
-
};
|
|
16
|
-
var getApiKeyCapabilityRpc = createServerFn({ method: "GET" }).handler(createSsrRpc("29665ce3a33cde2eb2ee082694288db269438f62f3a4d0a005dec3256e0f15c1"));
|
|
17
|
-
var listApiKeysRpc = createServerFn({ method: "GET" }).handler(createSsrRpc("2c7f3cdb9bd3cab2c026a48abdc84c362db0362924a08679052a325640aec56b"));
|
|
18
|
-
var createApiKeyRpc = createServerFn({ method: "POST" }).validator(parseName).handler(createSsrRpc("68a2d94ee016be64936401f5eba60ab08a47ff373e1cf9de48e4413336e6034b"));
|
|
19
|
-
var revokeApiKeyRpc = createServerFn({ method: "POST" }).validator(parseId).handler(createSsrRpc("a1cb80b19ca72a64fb631ca28ebb9b6941db245983de082d5dd3203ec2eef795"));
|
|
20
|
-
var apiKeyQueryKeys = {
|
|
21
|
-
capability: ["api-keys", "capability"],
|
|
22
|
-
list: ["api-keys", "list"]
|
|
23
|
-
};
|
|
24
|
-
var getApiKeyCapabilityQueryOptions = () => ({
|
|
25
|
-
queryKey: apiKeyQueryKeys.capability,
|
|
26
|
-
queryFn: () => getApiKeyCapabilityRpc(),
|
|
27
|
-
staleTime: Infinity
|
|
28
|
-
});
|
|
29
|
-
var useApiKeyCapabilityQuery = () => useQuery(getApiKeyCapabilityQueryOptions());
|
|
30
|
-
var ensureApiKeyRouteAccess = async (queryClient) => {
|
|
31
|
-
if (!(await queryClient.ensureQueryData(getApiKeyCapabilityQueryOptions())).apiKeys) throw redirect({
|
|
32
|
-
to: "/",
|
|
33
|
-
search: {},
|
|
34
|
-
replace: true
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
var useApiKeysQuery = () => useQuery({
|
|
38
|
-
queryKey: apiKeyQueryKeys.list,
|
|
39
|
-
queryFn: () => listApiKeysRpc()
|
|
40
|
-
});
|
|
41
|
-
var useCreateApiKeyMutation = () => {
|
|
42
|
-
const queryClient = useQueryClient();
|
|
43
|
-
return useMutation({
|
|
44
|
-
mutationFn: (name) => createApiKeyRpc({ data: { name } }),
|
|
45
|
-
onSuccess: async () => {
|
|
46
|
-
await queryClient.invalidateQueries({ queryKey: apiKeyQueryKeys.list });
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
};
|
|
50
|
-
var useRevokeApiKeyMutation = () => {
|
|
51
|
-
const queryClient = useQueryClient();
|
|
52
|
-
return useMutation({
|
|
53
|
-
mutationFn: (id) => revokeApiKeyRpc({ data: { id } }),
|
|
54
|
-
onSuccess: async () => {
|
|
55
|
-
await queryClient.invalidateQueries({ queryKey: apiKeyQueryKeys.list });
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
};
|
|
59
|
-
//#endregion
|
|
60
|
-
export { useRevokeApiKeyMutation as a, useCreateApiKeyMutation as i, useApiKeyCapabilityQuery as n, useApiKeysQuery as r, ensureApiKeyRouteAccess as t };
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { c as createServerFn } from "./createServerFn-B2hcXoPM.mjs";
|
|
2
|
-
import { t as createServerRpc } from "./createServerRpc-DB29C_5p.mjs";
|
|
3
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/api-keys-rpc-CFaNf-q0.js
|
|
4
|
-
var BASE64URL_32_PATTERN = /^[A-Za-z0-9_-]{43}$/u;
|
|
5
|
-
var bytesToBase64Url = (bytes) => {
|
|
6
|
-
let binary = "";
|
|
7
|
-
for (const byte of bytes) binary += String.fromCharCode(byte);
|
|
8
|
-
return btoa(binary).replaceAll("+", "-").replaceAll("/", "_").replace(/=+$/u, "");
|
|
9
|
-
};
|
|
10
|
-
var isApiKey = (value) => {
|
|
11
|
-
if (!BASE64URL_32_PATTERN.test(value)) return false;
|
|
12
|
-
try {
|
|
13
|
-
const base64 = value.replaceAll("-", "+").replaceAll("_", "/");
|
|
14
|
-
const binary = atob(`${base64}=`);
|
|
15
|
-
const bytes = Uint8Array.from(binary, (character) => character.charCodeAt(0));
|
|
16
|
-
return bytes.byteLength === 32 && bytesToBase64Url(bytes) === value;
|
|
17
|
-
} catch {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
var hashApiKey = async (apiKey) => {
|
|
22
|
-
if (!isApiKey(apiKey)) throw new TypeError("API key must be a canonical 32-byte base64url value.");
|
|
23
|
-
const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(apiKey));
|
|
24
|
-
return bytesToBase64Url(new Uint8Array(digest));
|
|
25
|
-
};
|
|
26
|
-
var apiKeyId = () => {
|
|
27
|
-
const bytes = /* @__PURE__ */ new Uint8Array(16);
|
|
28
|
-
crypto.getRandomValues(bytes);
|
|
29
|
-
return `api-${bytesToBase64Url(bytes)}`;
|
|
30
|
-
};
|
|
31
|
-
var normalizeApiKeyName = (name) => {
|
|
32
|
-
const normalized = name.trim();
|
|
33
|
-
if (normalized.length === 0 || normalized.length > 64 || /[\p{Cc}\p{Cf}]/u.test(normalized)) throw new TypeError("API key names must contain 1-64 visible characters.");
|
|
34
|
-
return normalized;
|
|
35
|
-
};
|
|
36
|
-
var toApiKeyMetadata = ({ hash: _hash, ...metadata }) => Object.freeze(metadata);
|
|
37
|
-
var registerApiKey = async (input) => {
|
|
38
|
-
const hash = await hashApiKey(input.apiKey);
|
|
39
|
-
const createdAtMs = input.createdAtMs ?? Date.now();
|
|
40
|
-
if (!Number.isSafeInteger(createdAtMs) || createdAtMs < 0) throw new TypeError("API key creation time must be non-negative.");
|
|
41
|
-
const record = Object.freeze({
|
|
42
|
-
created_at_ms: createdAtMs,
|
|
43
|
-
hash,
|
|
44
|
-
id: apiKeyId(),
|
|
45
|
-
name: normalizeApiKeyName(input.name),
|
|
46
|
-
prefix: input.apiKey.slice(0, 6),
|
|
47
|
-
revoked_at_ms: null,
|
|
48
|
-
role: "client"
|
|
49
|
-
});
|
|
50
|
-
if (await input.apiKeys.create(record) === "existing") {
|
|
51
|
-
const existing = await input.apiKeys.findByHash(hash);
|
|
52
|
-
if (existing === null || existing.revoked_at_ms !== null) throw new Error("The API key has been revoked.");
|
|
53
|
-
return Object.freeze({
|
|
54
|
-
apiKey: input.apiKey,
|
|
55
|
-
record: toApiKeyMetadata(existing)
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
return Object.freeze({
|
|
59
|
-
apiKey: input.apiKey,
|
|
60
|
-
record: toApiKeyMetadata(record)
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
var createApiKey = (input) => {
|
|
64
|
-
const bytes = /* @__PURE__ */ new Uint8Array(32);
|
|
65
|
-
crypto.getRandomValues(bytes);
|
|
66
|
-
return registerApiKey({
|
|
67
|
-
apiKey: bytesToBase64Url(bytes),
|
|
68
|
-
apiKeys: input.apiKeys,
|
|
69
|
-
name: input.name
|
|
70
|
-
});
|
|
71
|
-
};
|
|
72
|
-
var toApiKeyView = ({ hash: _hash, ...record }) => record;
|
|
73
|
-
var parseName = (input) => {
|
|
74
|
-
const name = typeof input === "object" && input !== null ? Reflect.get(input, "name") : void 0;
|
|
75
|
-
if (typeof name !== "string") throw new TypeError("API key name must be a string.");
|
|
76
|
-
return { name };
|
|
77
|
-
};
|
|
78
|
-
var parseId = (input) => {
|
|
79
|
-
const id = typeof input === "object" && input !== null ? Reflect.get(input, "id") : void 0;
|
|
80
|
-
if (typeof id !== "string" || !/^api-[A-Za-z0-9_-]{43}$/u.test(id)) throw new TypeError("Invalid API key id.");
|
|
81
|
-
return { id };
|
|
82
|
-
};
|
|
83
|
-
var requireStore = async () => {
|
|
84
|
-
const { prepareConfig } = await import("./config.server-CBr6PDj5.mjs");
|
|
85
|
-
const { apiKeyStore } = await prepareConfig();
|
|
86
|
-
if (apiKeyStore === null) throw new Error("API keys are not supported by the configured database plugin.");
|
|
87
|
-
return apiKeyStore;
|
|
88
|
-
};
|
|
89
|
-
var getApiKeyCapabilityRpc_createServerFn_handler = createServerRpc({
|
|
90
|
-
id: "29665ce3a33cde2eb2ee082694288db269438f62f3a4d0a005dec3256e0f15c1",
|
|
91
|
-
name: "getApiKeyCapabilityRpc",
|
|
92
|
-
filename: "src/lib/api-keys-rpc.ts"
|
|
93
|
-
}, (opts) => getApiKeyCapabilityRpc.__executeServer(opts));
|
|
94
|
-
var getApiKeyCapabilityRpc = createServerFn({ method: "GET" }).handler(getApiKeyCapabilityRpc_createServerFn_handler, async () => {
|
|
95
|
-
const { prepareConfig } = await import("./config.server-CBr6PDj5.mjs");
|
|
96
|
-
const { apiKeyStore } = await prepareConfig();
|
|
97
|
-
return { apiKeys: apiKeyStore !== null };
|
|
98
|
-
});
|
|
99
|
-
var listApiKeysRpc_createServerFn_handler = createServerRpc({
|
|
100
|
-
id: "2c7f3cdb9bd3cab2c026a48abdc84c362db0362924a08679052a325640aec56b",
|
|
101
|
-
name: "listApiKeysRpc",
|
|
102
|
-
filename: "src/lib/api-keys-rpc.ts"
|
|
103
|
-
}, (opts) => listApiKeysRpc.__executeServer(opts));
|
|
104
|
-
var listApiKeysRpc = createServerFn({ method: "GET" }).handler(listApiKeysRpc_createServerFn_handler, async () => {
|
|
105
|
-
return [...await (await requireStore()).list()].sort((left, right) => right.created_at_ms - left.created_at_ms).map(toApiKeyView);
|
|
106
|
-
});
|
|
107
|
-
var createApiKeyRpc_createServerFn_handler = createServerRpc({
|
|
108
|
-
id: "68a2d94ee016be64936401f5eba60ab08a47ff373e1cf9de48e4413336e6034b",
|
|
109
|
-
name: "createApiKeyRpc",
|
|
110
|
-
filename: "src/lib/api-keys-rpc.ts"
|
|
111
|
-
}, (opts) => createApiKeyRpc.__executeServer(opts));
|
|
112
|
-
var createApiKeyRpc = createServerFn({ method: "POST" }).validator(parseName).handler(createApiKeyRpc_createServerFn_handler, async ({ data }) => {
|
|
113
|
-
const created = await createApiKey({
|
|
114
|
-
apiKeys: await requireStore(),
|
|
115
|
-
name: data.name
|
|
116
|
-
});
|
|
117
|
-
return {
|
|
118
|
-
apiKey: created.apiKey,
|
|
119
|
-
record: created.record
|
|
120
|
-
};
|
|
121
|
-
});
|
|
122
|
-
var revokeApiKeyRpc_createServerFn_handler = createServerRpc({
|
|
123
|
-
id: "a1cb80b19ca72a64fb631ca28ebb9b6941db245983de082d5dd3203ec2eef795",
|
|
124
|
-
name: "revokeApiKeyRpc",
|
|
125
|
-
filename: "src/lib/api-keys-rpc.ts"
|
|
126
|
-
}, (opts) => revokeApiKeyRpc.__executeServer(opts));
|
|
127
|
-
var revokeApiKeyRpc = createServerFn({ method: "POST" }).validator(parseId).handler(revokeApiKeyRpc_createServerFn_handler, async ({ data }) => {
|
|
128
|
-
const revoked = await (await requireStore()).revoke({
|
|
129
|
-
id: data.id,
|
|
130
|
-
revokedAtMs: Date.now()
|
|
131
|
-
});
|
|
132
|
-
if (revoked === null) throw new Error("API key not found.");
|
|
133
|
-
return toApiKeyView(revoked);
|
|
134
|
-
});
|
|
135
|
-
//#endregion
|
|
136
|
-
export { createApiKeyRpc_createServerFn_handler, getApiKeyCapabilityRpc_createServerFn_handler, listApiKeysRpc_createServerFn_handler, revokeApiKeyRpc_createServerFn_handler };
|