@cats-inc/cats-platform 0.1.1 → 0.1.7
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/.env.example +2 -2
- package/README.md +6 -0
- package/build/desktop/bootstrapPage.d.ts.map +1 -1
- package/build/desktop/bootstrapPage.js +81 -4
- package/build/desktop/bootstrapPage.js.map +1 -1
- package/build/desktop/config.d.ts +11 -1
- package/build/desktop/config.d.ts.map +1 -1
- package/build/desktop/config.js +5 -2
- package/build/desktop/config.js.map +1 -1
- package/build/desktop/contracts.d.ts +68 -11
- package/build/desktop/contracts.d.ts.map +1 -1
- package/build/desktop/contracts.js +52 -1
- package/build/desktop/contracts.js.map +1 -1
- package/build/desktop/hostState.d.ts +4 -3
- package/build/desktop/hostState.d.ts.map +1 -1
- package/build/desktop/hostState.js +22 -30
- package/build/desktop/hostState.js.map +1 -1
- package/build/desktop/hostVersion.d.ts +1 -0
- package/build/desktop/hostVersion.d.ts.map +1 -1
- package/build/desktop/hostVersion.js +29 -5
- package/build/desktop/hostVersion.js.map +1 -1
- package/build/desktop/ipcSecurity.d.ts +6 -0
- package/build/desktop/ipcSecurity.d.ts.map +1 -0
- package/build/desktop/ipcSecurity.js +10 -0
- package/build/desktop/ipcSecurity.js.map +1 -0
- package/build/desktop/main.js +272 -59
- package/build/desktop/main.js.map +1 -1
- package/build/desktop/packaging.d.ts.map +1 -1
- package/build/desktop/packaging.js +10 -4
- package/build/desktop/packaging.js.map +1 -1
- package/build/desktop/preload.cjs +39 -0
- package/build/desktop/preload.cjs.map +1 -1
- package/build/desktop/processSupervisor.d.ts +2 -0
- package/build/desktop/processSupervisor.d.ts.map +1 -1
- package/build/desktop/processSupervisor.js +28 -13
- package/build/desktop/processSupervisor.js.map +1 -1
- package/build/desktop/readiness.d.ts +2 -2
- package/build/desktop/readiness.d.ts.map +1 -1
- package/build/desktop/readiness.js +2 -2
- package/build/desktop/readiness.js.map +1 -1
- package/build/desktop/releaseDescriptor.d.ts +85 -0
- package/build/desktop/releaseDescriptor.d.ts.map +1 -0
- package/build/desktop/releaseDescriptor.js +246 -0
- package/build/desktop/releaseDescriptor.js.map +1 -0
- package/build/desktop/screenshotCapture.d.ts.map +1 -1
- package/build/desktop/screenshotCapture.js +3 -7
- package/build/desktop/screenshotCapture.js.map +1 -1
- package/build/desktop/security.d.ts +8 -0
- package/build/desktop/security.d.ts.map +1 -1
- package/build/desktop/security.js +54 -1
- package/build/desktop/security.js.map +1 -1
- package/build/desktop/tray.d.ts +1 -0
- package/build/desktop/tray.d.ts.map +1 -1
- package/build/desktop/tray.js +26 -0
- package/build/desktop/tray.js.map +1 -1
- package/build/desktop/trayMenu.d.ts +22 -1
- package/build/desktop/trayMenu.d.ts.map +1 -1
- package/build/desktop/trayMenu.js +61 -0
- package/build/desktop/trayMenu.js.map +1 -1
- package/build/desktop/updateInstallHandoff.d.ts +30 -0
- package/build/desktop/updateInstallHandoff.d.ts.map +1 -0
- package/build/desktop/updateInstallHandoff.js +39 -0
- package/build/desktop/updateInstallHandoff.js.map +1 -0
- package/build/desktop/updateIpc.d.ts +42 -0
- package/build/desktop/updateIpc.d.ts.map +1 -0
- package/build/desktop/updateIpc.js +71 -0
- package/build/desktop/updateIpc.js.map +1 -0
- package/build/desktop/updateManager.d.ts +76 -0
- package/build/desktop/updateManager.d.ts.map +1 -0
- package/build/desktop/updateManager.js +342 -0
- package/build/desktop/updateManager.js.map +1 -0
- package/build/desktop/updateNotifications.d.ts +64 -0
- package/build/desktop/updateNotifications.d.ts.map +1 -0
- package/build/desktop/updateNotifications.js +143 -0
- package/build/desktop/updateNotifications.js.map +1 -0
- package/build/desktop/updaterAdapter.d.ts +72 -0
- package/build/desktop/updaterAdapter.d.ts.map +1 -0
- package/build/desktop/updaterAdapter.js +198 -0
- package/build/desktop/updaterAdapter.js.map +1 -0
- package/build/desktop/voiceCapture.d.ts.map +1 -1
- package/build/desktop/voiceCapture.js +3 -7
- package/build/desktop/voiceCapture.js.map +1 -1
- package/build/renderer/assets/ActiveSessionPermissionChip-BRMLwkvf.js +1 -0
- package/build/renderer/assets/{App-BbuTWT6Y.js → App-BM2nzo6s.js} +1 -1
- package/build/renderer/assets/{App-n-RtGh42.js → App-CVQAwCMi.js} +1 -1
- package/build/renderer/assets/{App-B13AzNko.js → App-Dl5FLaR_.js} +1 -1
- package/build/renderer/assets/{WorkspaceAppRoutes-BktWrQK-.js → WorkspaceAppRoutes-C3DUzdbj.js} +1 -1
- package/build/renderer/assets/app-hP5h2jAt.js +43 -0
- package/build/renderer/assets/{client-DREGSZqQ.js → client-BdGHAUoK.js} +1 -1
- package/build/renderer/assets/{conversationSidebarRecentEntries-BNPz3X1V.js → conversationSidebarRecentEntries-B-mNvfiy.js} +1 -1
- package/build/renderer/assets/{screenshotOverlay-EF07cXvw.js → screenshotOverlay-DfBcolX-.js} +1 -1
- package/build/renderer/assets/{useDraftSessionChips-3z_Je4ju.js → useDraftSessionChips-DuXIoptW.js} +1 -1
- package/build/renderer/desktop/overlay/index.html +2 -2
- package/build/renderer/index.html +2 -2
- package/build/server/app/renderer/settings/settingsDesktopErrorLabels.d.ts +5 -0
- package/build/server/app/renderer/settings/settingsDesktopErrorLabels.d.ts.map +1 -0
- package/build/server/app/renderer/settings/settingsDesktopErrorLabels.js +16 -0
- package/build/server/app/renderer/settings/settingsDesktopErrorLabels.js.map +1 -0
- package/build/server/app/renderer/settings/settingsDesktopPreferences.d.ts +11 -0
- package/build/server/app/renderer/settings/settingsDesktopPreferences.d.ts.map +1 -0
- package/build/server/app/renderer/settings/settingsDesktopPreferences.js +30 -0
- package/build/server/app/renderer/settings/settingsDesktopPreferences.js.map +1 -0
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts +31 -0
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts.map +1 -0
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js +101 -0
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js.map +1 -0
- package/build/server/app/server/authGatePolicy.js +14 -2
- package/build/server/app/server/authGatePolicy.js.map +1 -1
- package/build/server/app/server/authRoutes.d.ts +2 -1
- package/build/server/app/server/authRoutes.d.ts.map +1 -1
- package/build/server/app/server/authRoutes.js +260 -4
- package/build/server/app/server/authRoutes.js.map +1 -1
- package/build/server/app/server/contracts.d.ts +3 -1
- package/build/server/app/server/contracts.d.ts.map +1 -1
- package/build/server/app/server/dependencies.d.ts.map +1 -1
- package/build/server/app/server/dependencies.js +4 -1
- package/build/server/app/server/dependencies.js.map +1 -1
- package/build/server/app/server/index.js +1 -1
- package/build/server/app/server/index.js.map +1 -1
- package/build/server/app/server/platformSetupRoutes.d.ts.map +1 -1
- package/build/server/app/server/platformSetupRoutes.js +42 -5
- package/build/server/app/server/platformSetupRoutes.js.map +1 -1
- package/build/server/app/server/requestRouter.d.ts.map +1 -1
- package/build/server/app/server/requestRouter.js +3 -0
- package/build/server/app/server/requestRouter.js.map +1 -1
- package/build/server/design/components/runtimeChips.d.ts +1 -1
- package/build/server/design/components/runtimeChips.d.ts.map +1 -1
- package/build/server/design/components/runtimeChips.js +4 -1
- package/build/server/design/components/runtimeChips.js.map +1 -1
- package/build/server/index.js +12 -1
- package/build/server/index.js.map +1 -1
- package/build/server/platform/auth/browserHandoff.d.ts +50 -0
- package/build/server/platform/auth/browserHandoff.d.ts.map +1 -0
- package/build/server/platform/auth/browserHandoff.js +94 -0
- package/build/server/platform/auth/browserHandoff.js.map +1 -0
- package/build/server/platform/auth/index.d.ts +1 -0
- package/build/server/platform/auth/index.d.ts.map +1 -1
- package/build/server/platform/auth/index.js +1 -0
- package/build/server/platform/auth/index.js.map +1 -1
- package/build/server/platform/auth/principal.js +2 -2
- package/build/server/platform/auth/principal.js.map +1 -1
- package/build/server/platform/auth/session.d.ts +3 -0
- package/build/server/platform/auth/session.d.ts.map +1 -1
- package/build/server/platform/auth/session.js +41 -0
- package/build/server/platform/auth/session.js.map +1 -1
- package/build/server/platform/auth/sessionSecretProvisioning.d.ts +23 -0
- package/build/server/platform/auth/sessionSecretProvisioning.d.ts.map +1 -0
- package/build/server/platform/auth/sessionSecretProvisioning.js +291 -0
- package/build/server/platform/auth/sessionSecretProvisioning.js.map +1 -0
- package/build/server/platform/auth/state.js +4 -0
- package/build/server/platform/auth/state.js.map +1 -1
- package/build/server/platform/auth/types.d.ts +1 -0
- package/build/server/platform/auth/types.d.ts.map +1 -1
- package/build/server/products/code/livePreview/realProcessAdapter.d.ts.map +1 -1
- package/build/server/products/code/livePreview/realProcessAdapter.js +7 -1
- package/build/server/products/code/livePreview/realProcessAdapter.js.map +1 -1
- package/build/server/products/code/state/appExport.d.ts.map +1 -1
- package/build/server/products/code/state/appExport.js +2 -0
- package/build/server/products/code/state/appExport.js.map +1 -1
- package/build/server/shared/browserHandoff.d.ts +11 -0
- package/build/server/shared/browserHandoff.d.ts.map +1 -0
- package/build/server/shared/browserHandoff.js +2 -0
- package/build/server/shared/browserHandoff.js.map +1 -0
- package/build/server/shared/desktopRecoveryBridge.d.ts +47 -0
- package/build/server/shared/desktopRecoveryBridge.d.ts.map +1 -1
- package/build/server/shared/desktopRecoveryBridge.js +20 -0
- package/build/server/shared/desktopRecoveryBridge.js.map +1 -1
- package/build/server/shared/i18n/catalogs/en.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/en.js +38 -0
- package/build/server/shared/i18n/catalogs/en.js.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.js +36 -0
- package/build/server/shared/i18n/catalogs/zh-TW.js.map +1 -1
- package/build/server/shared/i18n/index.d.ts +36 -0
- package/build/server/shared/i18n/index.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.d.ts +36 -0
- package/build/server/shared/i18n/messageKeys.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.js +36 -0
- package/build/server/shared/i18n/messageKeys.js.map +1 -1
- package/build/server/shared/loadProjectEnvFile.d.ts.map +1 -1
- package/build/server/shared/loadProjectEnvFile.js +18 -19
- package/build/server/shared/loadProjectEnvFile.js.map +1 -1
- package/build/server/shared/platformChildProcessEnv.d.ts +2 -0
- package/build/server/shared/platformChildProcessEnv.d.ts.map +1 -0
- package/build/server/shared/platformChildProcessEnv.js +22 -0
- package/build/server/shared/platformChildProcessEnv.js.map +1 -0
- package/package.json +19 -27
- package/scripts/build-desktop-installer.mjs +438 -37
- package/scripts/build-test-ui.mjs +13 -2
- package/scripts/generate-desktop-release-descriptor.mjs +258 -0
- package/scripts/validate-release-assets.mjs +422 -0
- package/scripts/validate-release-version.mjs +217 -0
- package/scripts/windows/Test-WindowsInstallerSmoke.ps1 +55 -1
- package/build/desktop/update.d.ts +0 -24
- package/build/desktop/update.d.ts.map +0 -1
- package/build/desktop/update.js +0 -173
- package/build/desktop/update.js.map +0 -1
- package/build/renderer/assets/ActiveSessionPermissionChip-BYr8cDpb.js +0 -1
- package/build/renderer/assets/app-DnVQMpW_.js +0 -43
- package/build/server/app/renderer/settings/settingsDesktopStartupErrorLabels.d.ts +0 -5
- package/build/server/app/renderer/settings/settingsDesktopStartupErrorLabels.d.ts.map +0 -1
- package/build/server/app/renderer/settings/settingsDesktopStartupErrorLabels.js +0 -11
- package/build/server/app/renderer/settings/settingsDesktopStartupErrorLabels.js.map +0 -1
package/build/renderer/assets/{screenshotOverlay-EF07cXvw.js → screenshotOverlay-DfBcolX-.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{b as F,j as h,R as j,r as a}from"./client-BdGHAUoK.js";const N=8;function m(e,n,r){return Math.min(r,Math.max(n,e))}function P(e,n,r){return e>0&&n>0?n/e:r>0?r:1}function z(e,n){const r=Math.min(e.x,n.x),l=Math.min(e.y,n.y);return{x:r,y:l,width:Math.abs(n.x-e.x),height:Math.abs(n.y-e.y)}}function C(e,n){const r=m(e.x-n.bounds.x,0,n.bounds.width),l=m(e.y-n.bounds.y,0,n.bounds.height),o=m(e.x+e.width-n.bounds.x,0,n.bounds.width),d=m(e.y+e.height-n.bounds.y,0,n.bounds.height),s=P(n.bounds.width,n.imageSize.width,n.scaleFactor),f=P(n.bounds.height,n.imageSize.height,n.scaleFactor),i=Math.round(Math.min(r,o)*s),u=Math.round(Math.min(l,d)*f),v=Math.round(Math.max(r,o)*s),t=Math.round(Math.max(l,d)*f);return{x:i,y:u,width:Math.max(0,v-i),height:Math.max(0,t-u)}}function T(e,n=N){return e.width>=n&&e.height>=n}function S(){return{phase:"idle"}}function y(e){return{phase:"dragging",anchor:e,current:e}}function _(e,n){return e.phase!=="dragging"?e:{...e,current:n}}function g(e){return{phase:"cancelled",reason:e}}function k(e,n,r){if(e.phase!=="dragging")return g("no_drag");const l=z(e.anchor,n),o=C(l,r);return T(o)?{phase:"selected",cssRect:l,cropRect:o}:g("too_small")}function p(e,n){return{x:n.bounds.x+e.clientX,y:n.bounds.y+e.clientY}}function x(e){return{clientX:e.clientX,clientY:e.clientY}}function b(e,n){return{x:n.bounds.x+e.clientX,y:n.bounds.y+e.clientY}}function L(e,n){if(e.phase==="dragging"){const r=z(e.anchor,e.current);return{cssRect:r,cropRect:C(r,{bounds:n.bounds,imageSize:n.imageSize,scaleFactor:n.scaleFactor})}}return e.phase==="selected"?{cssRect:e.cssRect,cropRect:e.cropRect}:null}function X(e,n){return{left:e.x-n.bounds.x,top:e.y-n.bounds.y,width:e.width,height:e.height}}function I(e,n){return _(y(b(e.anchor,n)),b(e.current,n))}function D(e,n,r){return k(y(b(e.anchor,r)),b(n,r),{bounds:r.bounds,imageSize:r.imageSize,scaleFactor:r.scaleFactor})}function w(e,n,r){if(r.phase==="selected"){e?.completeSelection({displayId:n.displayId,cssRect:r.cssRect,cropRect:r.cropRect});return}r.phase==="cancelled"&&e?.cancel(r.reason)}function O(e){return e.phase==="cancelled"&&e.reason==="too_small"}function Y(){const[e,n]=a.useState(null),[r,l]=a.useState(S()),o=a.useRef(null),d=a.useRef(r),s=window.catsScreenshotOverlay,f=a.useMemo(()=>{const t=new URLSearchParams(window.location.search).get("displayId"),c=Number.parseInt(t??"",10);return Number.isFinite(c)?c:null},[]),i=t=>{d.current=t,l(t)};a.useEffect(()=>{let t=!1;return f===null?()=>{t=!0}:(s?.getSnapshot(f).then(c=>{t||n(c)}),()=>{t=!0})},[s,f]),a.useEffect(()=>{const t=c=>{c.key==="Escape"&&(o.current=null,i(g("escape")),s?.cancel("escape"))};return window.addEventListener("keydown",t),()=>{window.removeEventListener("keydown",t)}},[s]),a.useEffect(()=>{if(!e)return;const t=o.current;if(t){if(t.released){o.current=null;const c=D(t,t.released,e);if(O(c)){i(S());return}i(c),w(s,e,c);return}o.current=null,i(I(t,e))}},[s,e]);const u=a.useMemo(()=>e?L(r,e):null,[e,r]),v=a.useMemo(()=>{if(e)return{backgroundImage:`url("${e.imageDataUrl}")`,backgroundSize:`${e.bounds.width}px ${e.bounds.height}px`}},[e]);return h.jsx("div",{className:"screenshotOverlay",style:v,onContextMenu:t=>{t.preventDefault(),o.current=null,e&&i(g("right_click")),s?.cancel("right_click")},onPointerDown:t=>{if(t.button!==0){o.current=null,e&&i(g("right_click")),s?.cancel("right_click");return}if(t.currentTarget.setPointerCapture(t.pointerId),!e){const c=x(t.nativeEvent);o.current={anchor:c,current:{...c},released:null};return}o.current=null,i(y(p(t.nativeEvent,e)))},onPointerMove:t=>{const c=o.current;if(c){c.current=x(t.nativeEvent),e&&i(I(c,e));return}e&&i(_(d.current,p(t.nativeEvent,e)))},onPointerUp:t=>{const c=o.current;if(c){const E=x(t.nativeEvent);if(c.released=E,!e)return;o.current=null;const R=D(c,E,e);if(O(R)){i(S());return}i(R),w(s,e,R);return}if(!e)return;const M=k(d.current,p(t.nativeEvent,e),{bounds:e.bounds,imageSize:e.imageSize,scaleFactor:e.scaleFactor});i(M),w(s,e,M)},onPointerCancel:()=>{o.current=null,i(S())},children:e&&u?h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"screenshotSelectionRect",style:X(u.cssRect,e)}),h.jsx("div",{className:"screenshotSelectionSize",style:{left:u.cssRect.x-e.bounds.x+u.cssRect.width,top:u.cssRect.y-e.bounds.y+u.cssRect.height},children:`${u.cropRect.width}x${u.cropRect.height}`})]}):null})}F.createRoot(document.getElementById("root")).render(h.jsx(j.StrictMode,{children:h.jsx(Y,{})}));
|
package/build/renderer/assets/{useDraftSessionChips-3z_Je4ju.js → useDraftSessionChips-DuXIoptW.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as M,j as s}from"./client-
|
|
1
|
+
import{r as M,j as s}from"./client-BdGHAUoK.js";import{u as j,g as v,l as K,W as S,P as D}from"./conversationSidebarRecentEntries-B-mNvfiy.js";import{a8 as b,a5 as A,a1 as g,b as F,a6 as d,a9 as l,a7 as B}from"./app-hP5h2jAt.js";function O(m){const{draftCwd:o,busy:u,draftRuntimeSessionPolicy:h,onDraftRuntimeSessionPolicyChange:r}=m,{isRepo:k,repoRoot:f,branch:w}=j(o),x=b(),e=A({repoPath:o,policy:h??x}),a=o?g(e.workspaceKind):v,R=F(e.workspaceAccess),t=K(u),y=w??"detached",n=!!(k&&f),c=l({hasCwd:!!o,isRepo:n,workspaceMode:a});M.useEffect(()=>{r&&e.workspaceKind!==c&&r(d({workspaceKind:c,workspaceAccess:e.workspaceAccess,permissionMode:e.permissionMode}))},[e.permissionMode,e.workspaceAccess,e.workspaceKind,r,c]);function p(i){r&&r(d({workspaceKind:e.workspaceKind,workspaceAccess:e.workspaceAccess,permissionMode:e.permissionMode,...i}))}const P=o?s.jsx(D,{value:R,onChange:i=>{p(B(i))},disabled:t}):null,C=o&&n?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"composerBranchChip",children:[s.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("circle",{cx:"4",cy:"4",r:"1.6"}),s.jsx("circle",{cx:"12",cy:"4",r:"1.6"}),s.jsx("circle",{cx:"4",cy:"12",r:"1.6"}),s.jsx("path",{d:"M4 5.6v4.8"}),s.jsx("path",{d:"M12 5.6v2.4a2 2 0 0 1-2 2H6"})]}),s.jsx("span",{children:y})]}),s.jsx(S,{value:a,onChange:i=>{p({workspaceKind:l({hasCwd:!!o,isRepo:!!n,workspaceMode:i})})},disabled:t})]}):null;return{permissionChip:P,whereExtras:C}}export{O as u};
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Cats Screenshot Overlay</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/screenshotOverlay-
|
|
8
|
-
<link rel="modulepreload" crossorigin href="/assets/client-
|
|
7
|
+
<script type="module" crossorigin src="/assets/screenshotOverlay-DfBcolX-.js"></script>
|
|
8
|
+
<link rel="modulepreload" crossorigin href="/assets/client-BdGHAUoK.js">
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/screenshotOverlay-BS2PwStm.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<link rel="icon" href="/favicon.ico" />
|
|
7
7
|
<title>Cats</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/app-
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/assets/client-
|
|
8
|
+
<script type="module" crossorigin src="/assets/app-hP5h2jAt.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/assets/client-BdGHAUoK.js">
|
|
10
10
|
<link rel="stylesheet" crossorigin href="/assets/app-XnXwkcD2.css">
|
|
11
11
|
</head>
|
|
12
12
|
<body>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type MessageInterpolationValues, type MessageKey } from '../../../shared/i18n/index.js';
|
|
2
|
+
type SettingsDesktopTranslator = (key: MessageKey, values?: MessageInterpolationValues) => string;
|
|
3
|
+
export declare function formatSettingsDesktopMutationError(error: unknown, fallback: string, _t: SettingsDesktopTranslator): string;
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=settingsDesktopErrorLabels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsDesktopErrorLabels.d.ts","sourceRoot":"","sources":["../../../../../src/app/renderer/settings/settingsDesktopErrorLabels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EAChB,MAAM,+BAA+B,CAAC;AAEvC,KAAK,yBAAyB,GAAG,CAC/B,GAAG,EAAE,UAAU,EACf,MAAM,CAAC,EAAE,0BAA0B,KAChC,MAAM,CAAC;AAYZ,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,yBAAyB,GAC5B,MAAM,CAKR"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host messages that describe an internal condition rather than something the
|
|
3
|
+
* user can act on. They are replaced by the caller's localized fallback instead
|
|
4
|
+
* of being shown verbatim.
|
|
5
|
+
*/
|
|
6
|
+
const LOCAL_FALLBACK_MESSAGES = new Set([
|
|
7
|
+
'Desktop host is not initialized.',
|
|
8
|
+
'Invalid desktop startup preferences payload.',
|
|
9
|
+
]);
|
|
10
|
+
export function formatSettingsDesktopMutationError(error, fallback, _t) {
|
|
11
|
+
if (!(error instanceof Error)) {
|
|
12
|
+
return fallback;
|
|
13
|
+
}
|
|
14
|
+
return LOCAL_FALLBACK_MESSAGES.has(error.message) ? fallback : error.message;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=settingsDesktopErrorLabels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsDesktopErrorLabels.js","sourceRoot":"","sources":["../../../../../src/app/renderer/settings/settingsDesktopErrorLabels.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,kCAAkC;IAClC,8CAA8C;CAC/C,CAAC,CAAC;AAEH,MAAM,UAAU,kCAAkC,CAChD,KAAc,EACd,QAAgB,EAChB,EAA6B;IAE7B,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AppShellPayload } from '../../../products/shared/api/workspaceContracts.js';
|
|
2
|
+
/**
|
|
3
|
+
* Desktop preference defaults shared by the `Settings > Desktop` sections.
|
|
4
|
+
*
|
|
5
|
+
* They live outside the components because both Mobile pairing and Startup
|
|
6
|
+
* behavior read them, and a payload that arrives without a `desktop` block must
|
|
7
|
+
* produce the same shape for either section.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEFAULT_MOBILE_PAIRING: AppShellPayload['desktop']['mobilePairing'];
|
|
10
|
+
export declare function resolveDefaultDesktopPreferences(): AppShellPayload['desktop'];
|
|
11
|
+
//# sourceMappingURL=settingsDesktopPreferences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsDesktopPreferences.d.ts","sourceRoot":"","sources":["../../../../../src/app/renderer/settings/settingsDesktopPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAE1F;;;;;;GAMG;AAEH,eAAO,MAAM,sBAAsB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,eAAe,CAa9E,CAAC;AAEF,wBAAgB,gCAAgC,IAAI,eAAe,CAAC,SAAS,CAAC,CAO7E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Desktop preference defaults shared by the `Settings > Desktop` sections.
|
|
3
|
+
*
|
|
4
|
+
* They live outside the components because both Mobile pairing and Startup
|
|
5
|
+
* behavior read them, and a payload that arrives without a `desktop` block must
|
|
6
|
+
* produce the same shape for either section.
|
|
7
|
+
*/
|
|
8
|
+
export const DEFAULT_MOBILE_PAIRING = {
|
|
9
|
+
enabled: false,
|
|
10
|
+
bindHost: '127.0.0.1',
|
|
11
|
+
bindPort: 0,
|
|
12
|
+
bindReachability: 'loopback',
|
|
13
|
+
canReachFromLan: false,
|
|
14
|
+
selectedLanIp: null,
|
|
15
|
+
selectedLanUrl: null,
|
|
16
|
+
diagnosticManifestUrl: null,
|
|
17
|
+
noLanCandidateReason: 'feature_disabled',
|
|
18
|
+
bindOverrideEnv: 'CATS_DESKTOP_APP_HOST=0.0.0.0',
|
|
19
|
+
pairingUrlStatus: 'phase1_pending',
|
|
20
|
+
pairingUrl: null,
|
|
21
|
+
};
|
|
22
|
+
export function resolveDefaultDesktopPreferences() {
|
|
23
|
+
return {
|
|
24
|
+
startAtLogin: true,
|
|
25
|
+
openWindowOnStartup: false,
|
|
26
|
+
systemTrayEnabled: true,
|
|
27
|
+
mobilePairing: DEFAULT_MOBILE_PAIRING,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=settingsDesktopPreferences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsDesktopPreferences.js","sourceRoot":"","sources":["../../../../../src/app/renderer/settings/settingsDesktopPreferences.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAgD;IACjF,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,CAAC;IACX,gBAAgB,EAAE,UAAU;IAC5B,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,qBAAqB,EAAE,IAAI;IAC3B,oBAAoB,EAAE,kBAAkB;IACxC,eAAe,EAAE,+BAA+B;IAChD,gBAAgB,EAAE,gBAAgB;IAClC,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,UAAU,gCAAgC;IAC9C,OAAO;QACL,YAAY,EAAE,IAAI;QAClB,mBAAmB,EAAE,KAAK;QAC1B,iBAAiB,EAAE,IAAI;QACvB,aAAa,EAAE,sBAAsB;KACtC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { DesktopUpdateErrorCode, DesktopUpdateNextAction, DesktopUpdateSnapshot, DesktopUpdateStatus } from '../../../shared/desktopRecoveryBridge.js';
|
|
2
|
+
import { type MessageKey } from '../../../shared/i18n/index.js';
|
|
3
|
+
import type { SettingsStatusChipTone } from '../../../design/components/settings/SettingsStatusChipTone.js';
|
|
4
|
+
export declare function resolveDesktopUpdateStatusMessageKey(status: DesktopUpdateStatus): MessageKey;
|
|
5
|
+
export declare function resolveDesktopUpdateStatusTone(status: DesktopUpdateStatus): SettingsStatusChipTone;
|
|
6
|
+
export declare function resolveDesktopUpdateErrorMessageKey(code: DesktopUpdateErrorCode): MessageKey;
|
|
7
|
+
export interface DesktopUpdatePrimaryAction {
|
|
8
|
+
messageKey: MessageKey;
|
|
9
|
+
action: DesktopUpdateNextAction;
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Exactly one primary button is offered at a time. While an operation is in
|
|
14
|
+
* flight the button stays visible but disabled with a truthful busy label, so
|
|
15
|
+
* the surface never implies a second request is possible.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveDesktopUpdatePrimaryAction(snapshot: DesktopUpdateSnapshot): DesktopUpdatePrimaryAction | null;
|
|
18
|
+
export declare function formatDesktopUpdateProgressPercent(snapshot: DesktopUpdateSnapshot): number | null;
|
|
19
|
+
/**
|
|
20
|
+
* The Windows package is an assisted NSIS installer, so restart/install hands
|
|
21
|
+
* off to a visible wizard. The section warns before the app exits rather than
|
|
22
|
+
* implying a silent replacement.
|
|
23
|
+
*/
|
|
24
|
+
export declare function shouldWarnAboutVisibleInstaller(snapshot: DesktopUpdateSnapshot, platform: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* A preview build self-updates so the upgrade path can be exercised before
|
|
27
|
+
* signing exists. It must say so, or a tester cannot tell it apart from a
|
|
28
|
+
* supported release.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isDesktopPreviewBuild(snapshot: DesktopUpdateSnapshot): boolean;
|
|
31
|
+
//# sourceMappingURL=settingsDesktopUpdateLabels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsDesktopUpdateLabels.d.ts","sourceRoot":"","sources":["../../../../../src/app/renderer/settings/settingsDesktopUpdateLabels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,KAAK,EACV,sBAAsB,EACvB,MAAM,+DAA+D,CAAC;AA4DvE,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,mBAAmB,GAAG,UAAU,CAE5F;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,mBAAmB,GAC1B,sBAAsB,CAExB;AAED,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,sBAAsB,GAAG,UAAU,CAE5F;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,uBAAuB,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,qBAAqB,GAC9B,0BAA0B,GAAG,IAAI,CAYnC;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,GAAG,IAAI,CAMf;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,EAAE,MAAM,GACf,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAE9E"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Presentation mapping for the `App updates` settings section.
|
|
3
|
+
*
|
|
4
|
+
* The host sends a stable status and a stable error code; every user-visible
|
|
5
|
+
* string is resolved here from the shared catalogs. Provider messages never
|
|
6
|
+
* reach the UI, so a raw error string cannot leak into the renderer.
|
|
7
|
+
*/
|
|
8
|
+
const STATUS_MESSAGE_KEYS = {
|
|
9
|
+
unavailable: 'settingsDesktopUpdatesStatusUnavailable',
|
|
10
|
+
idle: 'settingsDesktopUpdatesStatusIdle',
|
|
11
|
+
checking: 'settingsDesktopUpdatesStatusChecking',
|
|
12
|
+
up_to_date: 'settingsDesktopUpdatesStatusUpToDate',
|
|
13
|
+
update_available: 'settingsDesktopUpdatesStatusAvailable',
|
|
14
|
+
downloading: 'settingsDesktopUpdatesStatusDownloading',
|
|
15
|
+
downloaded: 'settingsDesktopUpdatesStatusDownloaded',
|
|
16
|
+
installing: 'settingsDesktopUpdatesStatusInstalling',
|
|
17
|
+
failed: 'settingsDesktopUpdatesStatusFailed',
|
|
18
|
+
};
|
|
19
|
+
const STATUS_TONES = {
|
|
20
|
+
unavailable: 'muted',
|
|
21
|
+
idle: 'muted',
|
|
22
|
+
checking: 'muted',
|
|
23
|
+
up_to_date: 'ready',
|
|
24
|
+
update_available: 'warm',
|
|
25
|
+
downloading: 'muted',
|
|
26
|
+
downloaded: 'ready',
|
|
27
|
+
installing: 'muted',
|
|
28
|
+
failed: 'warm',
|
|
29
|
+
};
|
|
30
|
+
const ERROR_MESSAGE_KEYS = {
|
|
31
|
+
offline: 'settingsDesktopUpdatesErrorOffline',
|
|
32
|
+
timeout: 'settingsDesktopUpdatesErrorTimeout',
|
|
33
|
+
provider_rejected: 'settingsDesktopUpdatesErrorProviderRejected',
|
|
34
|
+
metadata_invalid: 'settingsDesktopUpdatesErrorMetadataInvalid',
|
|
35
|
+
checksum_mismatch: 'settingsDesktopUpdatesErrorChecksumMismatch',
|
|
36
|
+
signature_rejected: 'settingsDesktopUpdatesErrorSignatureRejected',
|
|
37
|
+
unsupported_package: 'settingsDesktopUpdatesErrorUnsupportedPackage',
|
|
38
|
+
download_cancelled: 'settingsDesktopUpdatesErrorDownloadCancelled',
|
|
39
|
+
install_handoff_failed: 'settingsDesktopUpdatesErrorInstallHandoffFailed',
|
|
40
|
+
unknown: 'settingsDesktopUpdatesErrorUnknown',
|
|
41
|
+
};
|
|
42
|
+
const ACTION_MESSAGE_KEYS = {
|
|
43
|
+
none: null,
|
|
44
|
+
check: 'settingsDesktopUpdatesActionCheck',
|
|
45
|
+
download: 'settingsDesktopUpdatesActionDownload',
|
|
46
|
+
restart_install: 'settingsDesktopUpdatesActionRestartInstall',
|
|
47
|
+
};
|
|
48
|
+
const BUSY_ACTION_MESSAGE_KEYS = {
|
|
49
|
+
checking: 'settingsDesktopUpdatesActionChecking',
|
|
50
|
+
downloading: 'settingsDesktopUpdatesActionDownloading',
|
|
51
|
+
installing: 'settingsDesktopUpdatesActionInstalling',
|
|
52
|
+
};
|
|
53
|
+
export function resolveDesktopUpdateStatusMessageKey(status) {
|
|
54
|
+
return STATUS_MESSAGE_KEYS[status] ?? STATUS_MESSAGE_KEYS.unavailable;
|
|
55
|
+
}
|
|
56
|
+
export function resolveDesktopUpdateStatusTone(status) {
|
|
57
|
+
return STATUS_TONES[status] ?? 'muted';
|
|
58
|
+
}
|
|
59
|
+
export function resolveDesktopUpdateErrorMessageKey(code) {
|
|
60
|
+
return ERROR_MESSAGE_KEYS[code] ?? ERROR_MESSAGE_KEYS.unknown;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Exactly one primary button is offered at a time. While an operation is in
|
|
64
|
+
* flight the button stays visible but disabled with a truthful busy label, so
|
|
65
|
+
* the surface never implies a second request is possible.
|
|
66
|
+
*/
|
|
67
|
+
export function resolveDesktopUpdatePrimaryAction(snapshot) {
|
|
68
|
+
const busyKey = BUSY_ACTION_MESSAGE_KEYS[snapshot.status];
|
|
69
|
+
if (busyKey) {
|
|
70
|
+
return { messageKey: busyKey, action: 'none', disabled: true };
|
|
71
|
+
}
|
|
72
|
+
const messageKey = ACTION_MESSAGE_KEYS[snapshot.nextAction];
|
|
73
|
+
if (!messageKey) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return { messageKey, action: snapshot.nextAction, disabled: false };
|
|
77
|
+
}
|
|
78
|
+
export function formatDesktopUpdateProgressPercent(snapshot) {
|
|
79
|
+
if (snapshot.status !== 'downloading' || snapshot.progress === null) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const percent = Math.round(snapshot.progress.percent);
|
|
83
|
+
return Math.min(100, Math.max(0, percent));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The Windows package is an assisted NSIS installer, so restart/install hands
|
|
87
|
+
* off to a visible wizard. The section warns before the app exits rather than
|
|
88
|
+
* implying a silent replacement.
|
|
89
|
+
*/
|
|
90
|
+
export function shouldWarnAboutVisibleInstaller(snapshot, platform) {
|
|
91
|
+
return snapshot.status === 'downloaded' && platform.toLowerCase().startsWith('win');
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* A preview build self-updates so the upgrade path can be exercised before
|
|
95
|
+
* signing exists. It must say so, or a tester cannot tell it apart from a
|
|
96
|
+
* supported release.
|
|
97
|
+
*/
|
|
98
|
+
export function isDesktopPreviewBuild(snapshot) {
|
|
99
|
+
return snapshot.capability.distribution === 'preview_packaged';
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=settingsDesktopUpdateLabels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsDesktopUpdateLabels.js","sourceRoot":"","sources":["../../../../../src/app/renderer/settings/settingsDesktopUpdateLabels.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,7 +66,7 @@ function isPublicMobileAuthRoute(pathname, method) {
|
|
|
66
66
|
return (pathname === '/api/mobile/auth/status' && method === 'GET') || (pathname === '/api/mobile/auth/login' && method === 'POST') || (pathname === '/api/mobile/auth/google/login' && method === 'POST') || (pathname === '/api/mobile/auth/logout' && method === 'POST');
|
|
67
67
|
}
|
|
68
68
|
function isPublicAuthRoute(pathname, method) {
|
|
69
|
-
return (pathname === '/api/auth/status' && method === 'GET') || (pathname === '/api/auth/login' && method === 'POST') || (pathname === '/api/auth/google/login' && method === 'POST') || (pathname === '/api/auth/google/setup' && method === 'POST') || (pathname === '/api/auth/google/link' && method === 'POST') || (pathname === '/api/auth/repair/first-admin' && method === 'POST') || (pathname === '/api/auth/throttle/clear' && method === 'POST') || (pathname === '/api/auth/logout' && method === 'POST');
|
|
69
|
+
return (pathname === '/api/auth/status' && method === 'GET') || (pathname === '/api/auth/browser-handoff/exchange' && ['GET', 'POST'].includes(method)) || (pathname === '/api/auth/login' && method === 'POST') || (pathname === '/api/auth/google/login' && method === 'POST') || (pathname === '/api/auth/google/setup' && method === 'POST') || (pathname === '/api/auth/google/link' && method === 'POST') || (pathname === '/api/auth/repair/first-admin' && method === 'POST') || (pathname === '/api/auth/throttle/clear' && method === 'POST') || (pathname === '/api/auth/logout' && method === 'POST');
|
|
70
70
|
}
|
|
71
71
|
function isPublicPreSetupRoute(pathname, method) {
|
|
72
72
|
if ((pathname === '/api/platform/ingress' && method === 'GET')
|
|
@@ -76,7 +76,19 @@ function isPublicPreSetupRoute(pathname, method) {
|
|
|
76
76
|
|| (pathname === '/api/setup/complete' && method === 'POST')
|
|
77
77
|
|| (pathname === '/api/platform/preferences' && method === 'POST')
|
|
78
78
|
|| (pathname === '/api/platform/guide-cat' && ['PUT', 'PATCH', 'DELETE'].includes(method))
|
|
79
|
-
|| (pathname === '/api/platform/assistants' && ['GET', 'POST'].includes(method))
|
|
79
|
+
|| (pathname === '/api/platform/assistants' && ['GET', 'POST'].includes(method))
|
|
80
|
+
|| (pathname === '/api/auth/browser-handoff' && method === 'POST')
|
|
81
|
+
|| (pathname === '/runtime/setup' && method === 'GET')
|
|
82
|
+
|| (pathname === '/runtime/api/setup-state' && method === 'GET')
|
|
83
|
+
|| (pathname === '/runtime/api/setup-scan' && method === 'POST')
|
|
84
|
+
|| (pathname === '/runtime/api/setup-apply' && method === 'POST')
|
|
85
|
+
|| (pathname === '/runtime/api/providers/config' && method === 'GET')
|
|
86
|
+
|| (pathname === '/runtime/api/diagnostics/providers' && method === 'GET')
|
|
87
|
+
|| (pathname === '/runtime/api/diagnostics/providers/reprobe' && method === 'POST')) {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
if (method === 'GET'
|
|
91
|
+
&& /^\/runtime\/api\/providers\/[^/]+\/(?:tools|models)$/u.test(pathname)) {
|
|
80
92
|
return true;
|
|
81
93
|
}
|
|
82
94
|
return /^\/api\/platform\/assistants\/[^/]+$/u.test(pathname)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authGatePolicy.js","sourceRoot":"","sources":["../../../../src/app/server/authGatePolicy.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"authGatePolicy.js","sourceRoot":"","sources":["../../../../src/app/server/authGatePolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { type PlatformAuthStore, type PlatformLoginThrottleAlert, type PlatformAuthRecoveryTokenState, type PlatformGoogleIdTokenVerifier, type PlatformPrincipalSummary } from '../../platform/auth/index.js';
|
|
1
|
+
import { type PlatformAuthStore, type PlatformLoginThrottleAlert, type PlatformAuthRecoveryTokenState, type PlatformBrowserHandoffStore, type PlatformGoogleIdTokenVerifier, type PlatformPrincipalSummary } from '../../platform/auth/index.js';
|
|
2
2
|
import type { PlatformAuthConfig } from '../../platform/auth/config.js';
|
|
3
3
|
import { type RouteContext } from '../../shared/http.js';
|
|
4
4
|
export interface AuthRouteDependencies {
|
|
5
5
|
authStore: PlatformAuthStore;
|
|
6
|
+
browserHandoffStore?: PlatformBrowserHandoffStore;
|
|
6
7
|
auth: PlatformAuthConfig;
|
|
7
8
|
googleVerifier?: PlatformGoogleIdTokenVerifier;
|
|
8
9
|
authRecoveryTokenState?: PlatformAuthRecoveryTokenState | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authRoutes.d.ts","sourceRoot":"","sources":["../../../../src/app/server/authRoutes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authRoutes.d.ts","sourceRoot":"","sources":["../../../../src/app/server/authRoutes.ts"],"names":[],"mappings":"AAGA,OAAO,EAmCL,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAGlC,KAAK,wBAAwB,EAG9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,mBAAmB,CAAC,EAAE,2BAA2B,CAAC;IAClD,IAAI,EAAE,kBAAkB,CAAC;IACzB,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,sBAAsB,CAAC,EAAE,8BAA8B,GAAG,IAAI,CAAC;IAC/D,yBAAyB,CAAC,EAAE,MAAM,8BAA8B,GAAG,IAAI,CAAC;IACxE,yBAAyB,CAAC,EAAE,CAC1B,KAAK,EAAE,8BAA8B,GAAG,IAAI,KACzC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,wBAAwB,CAAC,EAAE,CACzB,KAAK,EAAE,0BAA0B,KAC9B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE;QACT,MAAM,EAAE;YACN,OAAO,EAAE,OAAO,CAAC;YACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;SACzB,CAAC;KACH,CAAC;CACH;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,YAAY,CAAC,qBAAqB,CAAC,GAC3C,OAAO,CAAC,OAAO,CAAC,CAmHlB"}
|