ocean-brain 0.4.0 → 0.4.2

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.
Files changed (71) hide show
  1. package/dist/index.js +5 -0
  2. package/package.json +4 -1
  3. package/server/client/dist/assets/{Calendar-CSXEuWmQ.js → Calendar-DI0PhQTq.js} +1 -1
  4. package/server/client/dist/assets/{Callout-Ap1OcxWN.js → Callout-BAqbXI0L.js} +1 -1
  5. package/server/client/dist/assets/{Graph-C0Ax9qjI.js → Graph-Dhuog4tc.js} +1 -1
  6. package/server/client/dist/assets/{Image-CSbcG-5a.js → Image-DlJ4MDo3.js} +1 -1
  7. package/server/client/dist/assets/{Image.es-Fbe7aDDo.js → Image.es-COwqkQuh.js} +1 -1
  8. package/server/client/dist/assets/Note-ChUWU3Su.js +21 -0
  9. package/server/client/dist/assets/Plus.es-KeV96R_e.js +1 -0
  10. package/server/client/dist/assets/Reminders-D7MCTNxb.js +1 -0
  11. package/server/client/dist/assets/Search-B-fwTr5y.js +1 -0
  12. package/server/client/dist/assets/{SurfaceCard-Br6TjX5W.js → SurfaceCard-CHjcCuqZ.js} +1 -1
  13. package/server/client/dist/assets/Tag-BbV2z-Db.js +1 -0
  14. package/server/client/dist/assets/TagNotes-2HKF09Jm.js +1 -0
  15. package/server/client/dist/assets/{Trash.es-BfCEiL3-.js → Trash.es-BqRTZPrI.js} +1 -1
  16. package/server/client/dist/assets/ViewNotes-TfM3Uzbp.js +1 -0
  17. package/server/client/dist/assets/Views-CUwtnfa8.js +1 -0
  18. package/server/client/dist/assets/{image.api-DGXlQ_Ca.js → image.api-CMdQbCyN.js} +1 -1
  19. package/server/client/dist/assets/index-B4l2UvuC.js +232 -0
  20. package/server/client/dist/assets/{index-Bm9l_L20.css → index-D2gRB1ig.css} +1 -1
  21. package/server/client/dist/assets/{index-B28TO4FC.js → index-zhxZjg7V.js} +1 -1
  22. package/server/client/dist/assets/manage-image-DdXb5Bkj.js +1 -0
  23. package/server/client/dist/assets/{manage-image-detail-hk6jWyiB.js → manage-image-detail-CrrXCQIX.js} +1 -1
  24. package/server/client/dist/assets/{mcp-CSjmBjFR.js → mcp-DqGLZv90.js} +1 -1
  25. package/server/client/dist/assets/{note-vendor-5N5mRkIT.js → note-vendor-B0t5F04o.js} +3 -3
  26. package/server/client/dist/assets/{placeholder-Bmiowo28.js → placeholder-BXLtvdtN.js} +4 -4
  27. package/server/client/dist/assets/trash-3eUAjFRh.js +1 -0
  28. package/server/client/dist/assets/{useReminderMutate-DsIvVpCQ.js → useReminderMutate-v1EXqM90.js} +2 -2
  29. package/server/client/dist/assets/{view-dashboard-CP8nhfxQ.js → view-dashboard-T6gmohr-.js} +1 -1
  30. package/server/client/dist/index.html +3 -3
  31. package/server/dist/app.js +2 -2
  32. package/server/dist/app.js.map +1 -1
  33. package/server/dist/features/auth/http/api.js +2 -5
  34. package/server/dist/features/auth/http/api.js.map +1 -1
  35. package/server/dist/features/auth/http/login-page.js +11 -4
  36. package/server/dist/features/auth/http/login-page.js.map +1 -1
  37. package/server/dist/features/auth/http/pages.js +4 -3
  38. package/server/dist/features/auth/http/pages.js.map +1 -1
  39. package/server/dist/features/auth/service.js +11 -42
  40. package/server/dist/features/auth/service.js.map +1 -1
  41. package/server/dist/features/note/graphql/note.query.resolver.js +4 -1
  42. package/server/dist/features/note/graphql/note.query.resolver.js.map +1 -1
  43. package/server/dist/features/note/graphql/note.type-defs.js +3 -0
  44. package/server/dist/features/note/graphql/note.type-defs.js.map +1 -1
  45. package/server/dist/features/note/services/trash.js +37 -12
  46. package/server/dist/features/note/services/trash.js.map +1 -1
  47. package/server/dist/modules/auth-guard.js +31 -19
  48. package/server/dist/modules/auth-guard.js.map +1 -1
  49. package/server/dist/modules/auth-mode.js +16 -39
  50. package/server/dist/modules/auth-mode.js.map +1 -1
  51. package/server/dist/modules/error-handler.js +7 -0
  52. package/server/dist/modules/error-handler.js.map +1 -1
  53. package/server/dist/modules/rate-limit.js +18 -0
  54. package/server/dist/modules/rate-limit.js.map +1 -0
  55. package/server/dist/routes/api.js +2 -1
  56. package/server/dist/routes/api.js.map +1 -1
  57. package/server/dist/routes/auth-pages.js +2 -1
  58. package/server/dist/routes/auth-pages.js.map +1 -1
  59. package/server/dist/routes/client.js +2 -2
  60. package/server/dist/routes/client.js.map +1 -1
  61. package/server/client/dist/assets/ModalActionRow-DjI5b4bl.js +0 -1
  62. package/server/client/dist/assets/Note-BY6WgYLq.js +0 -1
  63. package/server/client/dist/assets/Reminders-vRksvSQE.js +0 -1
  64. package/server/client/dist/assets/Search-Cq4tuiJO.js +0 -1
  65. package/server/client/dist/assets/Tag-ARDLA-Pb.js +0 -1
  66. package/server/client/dist/assets/TagNotes-CDGVrCJU.js +0 -1
  67. package/server/client/dist/assets/ViewNotes-ZBOQ1adH.js +0 -1
  68. package/server/client/dist/assets/Views-DQHPfdwM.js +0 -1
  69. package/server/client/dist/assets/index-Bsx4P7EA.js +0 -210
  70. package/server/client/dist/assets/manage-image-Dg297A_h.js +0 -1
  71. package/server/client/dist/assets/trash-CM7SbVtW.js +0 -1
@@ -1 +0,0 @@
1
- import{j as e}from"./note-vendor-5N5mRkIT.js";import{a4 as v,q as x,r as w,w as E,a9 as b,af as A,_,P as o,F as T,L as G,aE as M,T as R,B as S,$ as P,i as l,j as k,aw as q}from"./index-Bsx4P7EA.js";import{f as D,d as L}from"./image.api-DGXlQ_Ca.js";import"./graph-vendor-CUxe67Lr.js";import{I as C}from"./Image-CSbcG-5a.js";import{S as f}from"./SurfaceCard-Br6TjX5W.js";import{c as F,n as K}from"./Trash.es-BfCEiL3-.js";import"./note-core-GgFcksAF.js";const Q=r=>{const{data:d}=v({queryKey:x.images.list(r.searchParams),async queryFn(){const i=await D({offset:r.searchParams.offset,limit:r.searchParams.limit});if(i.type==="error")throw i;return i.allImages}});return r.render(d)},W=240,B=20,H=4,m=192,g=k(q),Z=()=>{const r=w(),d=E(),i=g.useNavigate(),{page:c}=g.useSearch(),{containerRef:p,limit:n}=b({minItemWidth:W,gap:B,rows:H}),j=A({mutationFn:L,onSuccess:s=>{if(s.type==="error")throw s;d.invalidateQueries({queryKey:x.images.listAll(),exact:!1})}}),y=async s=>{await r("Delete this image? It is not referenced by any notes.")&&j.mutate(s)},I=s=>s===1?"1 reference":`${s} references`;return e.jsx("div",{ref:p,children:e.jsx(_,{fallback:e.jsx(o,{title:"Images",variant:"default",heading:e.jsx(l,{width:136,height:24,className:"rounded-full"}),description:e.jsx(l,{width:232,height:16,className:"rounded-full"}),children:e.jsx("div",{className:"flex flex-col gap-4",children:e.jsx("div",{className:"grid-auto-cards grid gap-4",children:Array.from({length:3},(s,t)=>e.jsxs(f,{flush:!0,children:[e.jsx("div",{className:"flex items-center justify-center bg-muted/25 p-3",style:{height:m},children:e.jsx(l,{width:"100%",height:m-24,className:"rounded-[12px]"})}),e.jsxs("div",{className:"flex items-center justify-between gap-3 border-t border-border-subtle px-3 py-2.5",children:[e.jsx(l,{width:92,height:14,className:"rounded-full"}),e.jsx(l,{width:32,height:32,className:"rounded-[12px]"})]})]},t))})})}),errorTitle:"Failed to load images",errorDescription:"Retry loading uploaded image metadata",resetKeys:[c,n],children:e.jsx(Q,{searchParams:{offset:(c-1)*n,limit:n},render:({images:s,totalCount:t})=>{const u=t>0?`Images (${t})`:void 0,h="Review and manage the images you uploaded inside notes";return s.length===0?e.jsx(o,{title:"Images",variant:"default",heading:u,description:h,children:e.jsx(T,{title:"There are no images",description:"Upload an image in any note and it will appear here"})}):e.jsx(o,{title:"Images",variant:"default",heading:u,description:h,children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("div",{className:"grid-auto-cards grid gap-4",children:s.map(a=>e.jsxs(f,{flush:!0,children:[e.jsx(G,{to:M,params:{id:a.id},className:"focus-ring-soft block overflow-hidden rounded-t-[18px] outline-none",children:e.jsx("div",{className:"flex items-center justify-center bg-muted/25 p-3",style:{height:m},children:e.jsx(C,{className:"h-full w-full rounded-[12px] object-contain transition-transform duration-200 hover:scale-[1.02]",src:a.url,alt:a.id})})}),e.jsxs("div",{className:"flex items-center justify-between gap-3 border-t border-border-subtle px-3 py-2.5",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2 text-fg-secondary",children:[e.jsx(F,{className:"h-3.5 w-3.5 shrink-0 text-fg-tertiary"}),e.jsx(R,{as:"span",variant:"meta",weight:"medium",tone:"secondary",className:"truncate",children:I(a.referenceCount)})]}),e.jsx(S,{variant:"ghost",size:"icon-sm",disabled:a.referenceCount>0,onClick:()=>y(a.id),children:e.jsx(K,{className:"h-4 w-4"})})]})]},a.id))}),t&&n<t&&e.jsx(P,{page:c,last:Math.ceil(t/n),onChange:a=>{i({search:N=>({...N,page:a})})}})]})})}})})})};export{Z as default};
@@ -1 +0,0 @@
1
- import{j as e}from"./note-vendor-5N5mRkIT.js";import{_ as b,j as S,aq as C,w as E,v as q,r as P,a4 as D,aB as R,q as r,af as g,aC as A,N as K,aD as Q,P as x,F as _,T as u,ar as k,B as y,$ as F,i as t,d as M}from"./index-Bsx4P7EA.js";import"./graph-vendor-CUxe67Lr.js";import{S as N}from"./SurfaceCard-Br6TjX5W.js";import"./note-core-GgFcksAF.js";const l=25,f=S(C),v=30,j=`Deleted notes stay here for ${v} days before permanent removal`,$=s=>M(s).format("YYYY-MM-DD HH:mm"),I=()=>e.jsx(x,{title:"Trash",variant:"default",heading:e.jsx(t,{width:118,height:24,className:"rounded-full"}),description:e.jsx(t,{width:352,height:16,className:"rounded-full"}),children:e.jsx("div",{className:"grid gap-3",children:Array.from({length:3},(s,d)=>e.jsx(N,{padding:"compact",children:e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[e.jsxs("div",{className:"min-w-0 flex-1 space-y-2",children:[e.jsx(t,{width:"40%",height:18,className:"rounded-full"}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(t,{width:168,height:14,className:"rounded-full"}),e.jsx(t,{width:176,height:14,className:"rounded-full"})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(t,{width:56,height:24,className:"rounded-full"}),e.jsx(t,{width:72,height:24,className:"rounded-full"})]})]}),e.jsx(t,{width:92,height:32,className:"rounded-[12px]"})]})},d))})}),O=()=>{const{page:s}=f.useSearch(),d=f.useNavigate(),i=E(),o=q(),w=P(),{data:n}=D({queryKey:r.notes.trash({limit:l,offset:(s-1)*l}),queryFn:async()=>{const a=await R({limit:l,offset:(s-1)*l});if(a.type==="error")throw a;return a.trashedNotes}}),h=g({mutationFn:A,onSuccess:async a=>{if(a.type==="error")throw a;await Promise.all([i.invalidateQueries({queryKey:r.notes.all(),exact:!1}),i.invalidateQueries({queryKey:r.tags.all(),exact:!1}),i.invalidateQueries({queryKey:r.reminders.all(),exact:!1}),i.invalidateQueries({queryKey:r.images.all(),exact:!1}),i.invalidateQueries({queryKey:r.calendar.all(),exact:!1})]),o("The note has been restored."),d({to:K,params:{id:a.restoreTrashedNote.id}})},onError:()=>{o("Failed to restore the note.")}}),m=g({mutationFn:Q,onSuccess:async a=>{if(a.type==="error")throw a;await i.invalidateQueries({queryKey:r.notes.trashAll(),exact:!1}),o("The note has been permanently deleted.")},onError:()=>{o("Failed to permanently delete the note.")}}),T=async a=>{await w("Permanently delete this note? This cannot be undone.")&&m.mutate(a)},p=n.totalCount>0?`Trash (${n.totalCount})`:void 0;return n.notes.length===0?e.jsx(x,{title:"Trash",variant:"default",heading:p,description:j,children:e.jsx(_,{title:"Trash is empty",description:`Delete a note and you can restore it here for ${v} days before permanent removal`})}):e.jsx(x,{title:"Trash",variant:"default",heading:p,description:j,children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("div",{className:"grid gap-3",children:n.notes.map(a=>e.jsx(N,{padding:"compact",children:e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-1.5",children:[e.jsx(u,{as:"h2",variant:"body",weight:"medium",className:"min-w-0 flex-1 break-words leading-[1.25]",children:a.title||"Untitled note"}),a.pinned&&e.jsx("span",{title:"Pinned",className:"inline-flex h-5 w-5 shrink-0 items-center justify-center text-fg-tertiary",children:e.jsx(k,{className:"h-3.5 w-3.5"})})]}),e.jsx("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1",children:e.jsxs(u,{as:"div",variant:"meta",weight:"medium",tone:"secondary",children:["Deleted ",$(a.deletedAt)]})}),a.tagNames.length>0&&e.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:a.tagNames.map(c=>e.jsx(u,{as:"span",variant:"label",weight:"medium",tone:"tertiary",className:"rounded-full border border-border-subtle bg-hover-subtle px-2 py-0.5",children:c},`${a.id}-${c}`))})]}),e.jsxs("div",{className:"flex shrink-0 flex-wrap gap-2 sm:justify-end",children:[e.jsx(y,{variant:"subtle",size:"sm",isLoading:h.isPending&&h.variables===a.id,onClick:()=>h.mutate(a.id),children:"Restore"}),e.jsx(y,{variant:"soft-danger",size:"sm",isLoading:m.isPending&&m.variables===a.id,onClick:()=>T(a.id),children:"Delete now"})]})]})},a.id))}),n.totalCount>l&&e.jsx(F,{page:s,last:Math.ceil(n.totalCount/l),onChange:a=>{d({search:c=>({...c,page:a})})}})]})})},U=()=>{const{page:s}=f.useSearch();return e.jsx(b,{fallback:e.jsx(I,{}),errorTitle:"Failed to load trash",errorDescription:"Retry loading deleted notes",resetKeys:[s],children:e.jsx(O,{})})};export{U as default};