mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-24 22:09:08 +08:00
feat: bump more deps (#14079)
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
[package]
|
||||
edition = "2021"
|
||||
name = "affine_server_native"
|
||||
version = "1.0.0"
|
||||
edition = "2021"
|
||||
license-file = "LICENSE"
|
||||
name = "affine_server_native"
|
||||
version = "1.0.0"
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
The AFFiNE Enterprise Edition (EE) license (the “EE License”)
|
||||
Copyright (c) 2022-present TOEVERYTHING PTE. LTD. and its affiliates.
|
||||
|
||||
With regard to the AFFiNE Software:
|
||||
|
||||
This software and associated documentation files (the "Software") may only be
|
||||
used in production, if you (and any entity that you represent) have agreed to,
|
||||
and are in compliance with, the AFFiNE Subscription Terms of Service, available
|
||||
at https://affine.pro/terms/#subscription (the “EE Terms”), or other
|
||||
agreement governing the use of the Software, as agreed by you and AFFiNE,
|
||||
and otherwise have a valid AFFiNE Enterprise Edition subscription for the
|
||||
correct number of user seats. Subject to the foregoing sentence, you are free to
|
||||
modify this Software and publish patches to the Software. You agree that AFFiNE
|
||||
and/or its licensors (as applicable) retain all right, title and interest in and
|
||||
to all such modifications and/or patches, and all such modifications and/or
|
||||
patches may only be used, copied, modified, displayed, distributed, or otherwise
|
||||
exploited with a valid AFFiNE Enterprise Edition subscription for the correct
|
||||
number of user seats. Notwithstanding the foregoing, you may copy and modify
|
||||
the Software for development and testing purposes, without requiring a
|
||||
subscription. You agree that AFFiNE and/or its licensors (as applicable) retain
|
||||
all right, title and interest in and to all such modifications. You are not
|
||||
granted any other rights beyond what is expressly stated herein. Subject to the
|
||||
foregoing, it is forbidden to copy, merge, publish, distribute, sublicense,
|
||||
and/or sell the Software.
|
||||
|
||||
This EE License applies only to the part of this Software that is not
|
||||
distributed as part of AFFiNE Community Edition (CE). Any part of this Software
|
||||
distributed as part of AFFiNE CE or is served client-side as an image, font,
|
||||
cascading stylesheet (CSS), file which produces or is compiled, arranged,
|
||||
augmented, or combined into client-side JavaScript, in whole or in part, is
|
||||
copyrighted under the MPL2.0 license. The full text of this EE License shall
|
||||
be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
For all third party components incorporated into the AFFiNE Software, those
|
||||
components are licensed under the original license provided by the owner of the
|
||||
applicable component.
|
||||
@@ -28,15 +28,15 @@
|
||||
"dependencies": {
|
||||
"@affine/reader": "workspace:*",
|
||||
"@affine/server-native": "workspace:*",
|
||||
"@ai-sdk/anthropic": "^2.0.53",
|
||||
"@ai-sdk/anthropic": "^2.0.54",
|
||||
"@ai-sdk/google": "^2.0.45",
|
||||
"@ai-sdk/google-vertex": "^3.0.87",
|
||||
"@ai-sdk/google-vertex": "^3.0.88",
|
||||
"@ai-sdk/openai": "^2.0.80",
|
||||
"@ai-sdk/openai-compatible": "^1.0.28",
|
||||
"@ai-sdk/perplexity": "^2.0.21",
|
||||
"@apollo/server": "^4.12.2",
|
||||
"@aws-sdk/client-s3": "^3.947.0",
|
||||
"@aws-sdk/s3-request-presigner": "^3.947.0",
|
||||
"@aws-sdk/client-s3": "^3.948.0",
|
||||
"@aws-sdk/s3-request-presigner": "^3.948.0",
|
||||
"@fal-ai/serverless-client": "^0.15.0",
|
||||
"@google-cloud/opentelemetry-cloud-trace-exporter": "^3.0.0",
|
||||
"@google-cloud/opentelemetry-resource-util": "^3.0.0",
|
||||
@@ -78,7 +78,7 @@
|
||||
"ai": "^5.0.108",
|
||||
"bullmq": "^5.40.2",
|
||||
"cookie-parser": "^1.4.7",
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"date-fns": "^4.0.0",
|
||||
"dotenv": "^16.4.7",
|
||||
"eventemitter2": "^6.4.9",
|
||||
@@ -101,27 +101,27 @@
|
||||
"lodash-es": "^4.17.21",
|
||||
"mixpanel": "^0.18.0",
|
||||
"mustache": "^4.2.0",
|
||||
"nanoid": "^5.0.9",
|
||||
"nanoid": "^5.1.6",
|
||||
"nest-commander": "^3.15.0",
|
||||
"nest-winston": "^1.9.7",
|
||||
"nestjs-cls": "^6.0.0",
|
||||
"nodemailer": "^7.0.0",
|
||||
"nodemailer": "^7.0.11",
|
||||
"on-headers": "^1.1.0",
|
||||
"piscina": "^5.0.0-alpha.0",
|
||||
"piscina": "^5.1.4",
|
||||
"prisma": "^6.6.0",
|
||||
"react": "19.1.0",
|
||||
"react-dom": "19.1.0",
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "19.2.1",
|
||||
"reflect-metadata": "^0.2.2",
|
||||
"rxjs": "^7.8.1",
|
||||
"semver": "^7.6.3",
|
||||
"ses": "^1.10.0",
|
||||
"rxjs": "^7.8.2",
|
||||
"semver": "^7.7.3",
|
||||
"ses": "^1.14.0",
|
||||
"socket.io": "^4.8.1",
|
||||
"stripe": "^17.4.0",
|
||||
"tldts": "^7.0.0",
|
||||
"stripe": "^17.7.0",
|
||||
"tldts": "^7.0.19",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.7.2",
|
||||
"winston": "^3.17.0",
|
||||
"yjs": "^13.6.21",
|
||||
"yjs": "^13.6.27",
|
||||
"zod": "^3.25.76"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -150,10 +150,10 @@
|
||||
"@types/supertest": "^6.0.2",
|
||||
"ava": "^6.4.0",
|
||||
"c8": "^10.1.3",
|
||||
"nodemon": "^3.1.7",
|
||||
"nodemon": "^3.1.11",
|
||||
"react-email": "4.0.11",
|
||||
"sinon": "^21.0.0",
|
||||
"supertest": "^7.0.0",
|
||||
"supertest": "^7.1.4",
|
||||
"why-is-node-running": "^3.2.2"
|
||||
},
|
||||
"nodemonConfig": {
|
||||
|
||||
@@ -144,12 +144,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Sign in with Magic Link</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -276,12 +284,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Sign up with Magic Link</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -376,12 +392,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Sign in to AFFiNE</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -457,12 +481,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Set new password</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -556,12 +588,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Verify your email address</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -655,12 +695,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Verify and set up a new email address</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -738,12 +786,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Verify your new email address</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -891,12 +947,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Accept & Join</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -982,12 +1046,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Open Workspace Members</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -1141,12 +1213,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Review request</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -1495,12 +1575,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Open Doc</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -1581,12 +1669,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>View Comment</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -1668,12 +1764,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>View Comment</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -1764,12 +1868,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Open Workspace</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -1855,12 +1967,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Go to Workspace</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -1948,12 +2068,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Go to Workspace</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -2054,12 +2182,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Go to Billing</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -2162,12 +2298,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Go to Billing</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -2341,12 +2485,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Go to Billing</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -2435,12 +2587,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Go to Billing</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
@@ -2598,12 +2758,20 @@ Generated by [AVA](https://avajs.dev).
|
||||
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
|
||||
target="_blank"␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%;mso-text-raise:12" hidden>  </i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%;mso-text-raise:12" hidden␊
|
||||
>  </i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
><span␊
|
||||
style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:6px"␊
|
||||
>Open Doc</span␊
|
||||
><span␊
|
||||
><!--[if mso]><i style="mso-font-width:450%" hidden>  ​</i><![endif]--></span␊
|
||||
><!--[if mso␊
|
||||
]><i style="mso-font-width:450%" hidden␊
|
||||
>  ​</i␊
|
||||
><!␊
|
||||
[endif]--></span␊
|
||||
></a␊
|
||||
>␊
|
||||
</tr>␊
|
||||
|
||||
Binary file not shown.
@@ -46,8 +46,10 @@ export const CurrentUser = createParamDecorator(
|
||||
}
|
||||
);
|
||||
|
||||
export interface CurrentUser
|
||||
extends Pick<User, 'id' | 'email' | 'avatarUrl' | 'name' | 'disabled'> {
|
||||
export interface CurrentUser extends Pick<
|
||||
User,
|
||||
'id' | 'email' | 'avatarUrl' | 'name' | 'disabled'
|
||||
> {
|
||||
hasPassword: boolean | null;
|
||||
emailVerified: boolean;
|
||||
}
|
||||
|
||||
@@ -26,9 +26,9 @@ export function getAccessController<Type extends ResourceType>(
|
||||
return provider;
|
||||
}
|
||||
|
||||
export abstract class AccessController<Type extends ResourceType>
|
||||
implements OnModuleInit
|
||||
{
|
||||
export abstract class AccessController<
|
||||
Type extends ResourceType,
|
||||
> implements OnModuleInit {
|
||||
protected abstract readonly type: Type;
|
||||
protected logger = new Logger(AccessController.name);
|
||||
|
||||
|
||||
@@ -77,9 +77,10 @@ class CreateChatSessionInput {
|
||||
}
|
||||
|
||||
@InputType()
|
||||
class UpdateChatSessionInput
|
||||
implements Omit<UpdateChatSession, 'userId' | 'title'>
|
||||
{
|
||||
class UpdateChatSessionInput implements Omit<
|
||||
UpdateChatSession,
|
||||
'userId' | 'title'
|
||||
> {
|
||||
@Field(() => String)
|
||||
sessionId!: string;
|
||||
|
||||
|
||||
@@ -58,8 +58,10 @@ export interface SearchQueryDSL extends BaseQueryDSL {
|
||||
};
|
||||
}
|
||||
|
||||
export interface TopHitsDSL
|
||||
extends Omit<SearchQueryDSL, 'query' | 'sort' | 'from' | 'cursor'> {}
|
||||
export interface TopHitsDSL extends Omit<
|
||||
SearchQueryDSL,
|
||||
'query' | 'sort' | 'from' | 'cursor'
|
||||
> {}
|
||||
|
||||
export interface AggregateQueryDSL extends BaseQueryDSL {
|
||||
aggs: {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"@graphql-codegen/typescript": "^4.1.2",
|
||||
"@graphql-codegen/typescript-operations": "^4.4.0",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"prettier": "^3.4.2",
|
||||
"prettier": "^3.7.4",
|
||||
"vitest": "^3.2.4"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"@affine/templates": "workspace:*",
|
||||
"@preact/signals-core": "^1.8.0",
|
||||
"eventemitter2": "^6.4.9",
|
||||
"foxact": "^0.2.43",
|
||||
"foxact": "^0.2.49",
|
||||
"fractional-indexing": "^3.2.0",
|
||||
"fuse.js": "^7.0.0",
|
||||
"graphemer": "^1.4.0",
|
||||
@@ -26,9 +26,9 @@
|
||||
"jotai": "^2.10.3",
|
||||
"jotai-effect": "^2.0.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"nanoid": "^5.0.9",
|
||||
"react": "19.1.0",
|
||||
"yjs": "^13.6.21",
|
||||
"nanoid": "^5.1.6",
|
||||
"react": "^19.2.1",
|
||||
"yjs": "^13.6.27",
|
||||
"zod": "^3.25.76"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -38,7 +38,7 @@
|
||||
"@testing-library/react": "^16.1.0",
|
||||
"@types/react": "^19.0.1",
|
||||
"fake-indexeddb": "^6.0.0",
|
||||
"rxjs": "^7.8.1",
|
||||
"rxjs": "^7.8.2",
|
||||
"vitest": "^3.2.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -64,7 +64,8 @@ export class ObjectPool<Key, T> {
|
||||
|
||||
private gc() {
|
||||
for (const [key, { obj, rc }] of new Map(
|
||||
this.objects /* clone the map, because the origin will be modified during iteration */
|
||||
this
|
||||
.objects /* clone the map, because the origin will be modified during iteration */
|
||||
)) {
|
||||
if (
|
||||
rc === 0 &&
|
||||
|
||||
@@ -22,13 +22,13 @@
|
||||
"@toeverything/infra": "workspace:*",
|
||||
"eventemitter2": "^6.4.9",
|
||||
"graphemer": "^1.4.0",
|
||||
"lib0": "^0.2.99",
|
||||
"lib0": "^0.2.114",
|
||||
"lodash-es": "^4.17.21",
|
||||
"nanoid": "^5.0.9",
|
||||
"rxjs": "^7.8.1",
|
||||
"uuid": "^11.0.3",
|
||||
"nanoid": "^5.1.6",
|
||||
"rxjs": "^7.8.2",
|
||||
"uuid": "^11.1.0",
|
||||
"y-protocols": "^1.0.6",
|
||||
"yjs": "^13.6.21"
|
||||
"yjs": "^13.6.27"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@affine/error": "workspace:*",
|
||||
|
||||
@@ -21,9 +21,9 @@ export interface Connection<T = any> {
|
||||
): () => void;
|
||||
}
|
||||
|
||||
export abstract class AutoReconnectConnection<T = any>
|
||||
implements Connection<T>
|
||||
{
|
||||
export abstract class AutoReconnectConnection<
|
||||
T = any,
|
||||
> implements Connection<T> {
|
||||
private readonly event = new EventEmitter2({
|
||||
maxListeners: 100,
|
||||
});
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"lodash-es": "^4.17.21",
|
||||
"yjs": "^13.6.21"
|
||||
"yjs": "^13.6.27"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@blocksuite/affine": "workspace:*",
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"prompts": "^2.4.2",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.8.3",
|
||||
"yjs": "^13.6.24"
|
||||
"yjs": "^13.6.27"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
"@radix-ui/react-toggle": "^1.1.1",
|
||||
"@radix-ui/react-toggle-group": "^1.1.1",
|
||||
"@radix-ui/react-tooltip": "^1.1.5",
|
||||
"@sentry/react": "^9.2.0",
|
||||
"@sentry/react": "^9.47.1",
|
||||
"@tanstack/react-table": "^8.20.5",
|
||||
"@toeverything/infra": "workspace:*",
|
||||
"@toeverything/theme": "^1.1.16",
|
||||
@@ -46,25 +46,25 @@
|
||||
"lodash-es": "^4.17.21",
|
||||
"lucide-react": "^0.508.0",
|
||||
"next-themes": "^0.4.4",
|
||||
"react": "^19.0.0",
|
||||
"react": "^19.2.1",
|
||||
"react-day-picker": "^9.4.3",
|
||||
"react-dom": "^19.0.0",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-hook-form": "^7.54.1",
|
||||
"react-resizable-panels": "^3.0.0",
|
||||
"react-router-dom": "^7.5.1",
|
||||
"sonner": "^2.0.0",
|
||||
"swr": "^2.2.5",
|
||||
"vaul": "^1.1.1",
|
||||
"react-resizable-panels": "^3.0.6",
|
||||
"react-router-dom": "^7.10.1",
|
||||
"sonner": "^2.0.7",
|
||||
"swr": "^2.3.7",
|
||||
"vaul": "^1.1.2",
|
||||
"zod": "^3.25.76"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"shadcn-ui": "^0.9.4",
|
||||
"tailwind-merge": "^3.0.0",
|
||||
"tailwindcss": "^4.0.0",
|
||||
"cross-env": "^10.1.0",
|
||||
"shadcn-ui": "^0.9.5",
|
||||
"tailwind-merge": "^3.4.0",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"tailwindcss-animate": "^1.0.7"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
@@ -23,7 +23,8 @@ const badgeVariants = cva(
|
||||
);
|
||||
|
||||
export interface BadgeProps
|
||||
extends React.HTMLAttributes<HTMLDivElement>,
|
||||
extends
|
||||
React.HTMLAttributes<HTMLDivElement>,
|
||||
VariantProps<typeof badgeVariants> {}
|
||||
|
||||
function Badge({ className, variant, ...props }: BadgeProps) {
|
||||
|
||||
@@ -33,7 +33,8 @@ const buttonVariants = cva(
|
||||
);
|
||||
|
||||
export interface ButtonProps
|
||||
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
|
||||
extends
|
||||
React.ButtonHTMLAttributes<HTMLButtonElement>,
|
||||
VariantProps<typeof buttonVariants> {
|
||||
asChild?: boolean;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { cn } from '@affine/admin/utils';
|
||||
import * as React from 'react';
|
||||
|
||||
export interface InputProps
|
||||
extends React.InputHTMLAttributes<HTMLInputElement> {}
|
||||
export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {}
|
||||
|
||||
const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
||||
({ className, type, ...props }, ref) => {
|
||||
|
||||
@@ -47,7 +47,8 @@ const sheetVariants = cva(
|
||||
);
|
||||
|
||||
interface SheetContentProps
|
||||
extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,
|
||||
extends
|
||||
React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,
|
||||
VariantProps<typeof sheetVariants> {}
|
||||
|
||||
const SheetContent = React.forwardRef<
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { cn } from '@affine/admin/utils';
|
||||
import * as React from 'react';
|
||||
|
||||
export interface TextareaProps
|
||||
extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}
|
||||
export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}
|
||||
|
||||
const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
|
||||
({ className, ...props }, ref) => {
|
||||
|
||||
+4
-2
@@ -2,8 +2,10 @@ import type { Column } from '@tanstack/react-table';
|
||||
|
||||
import { cn } from '../../../utils';
|
||||
|
||||
interface DataTableColumnHeaderProps<TData, TValue>
|
||||
extends React.HTMLAttributes<HTMLDivElement> {
|
||||
interface DataTableColumnHeaderProps<
|
||||
TData,
|
||||
TValue,
|
||||
> extends React.HTMLAttributes<HTMLDivElement> {
|
||||
column: Column<TData, TValue>;
|
||||
title: string;
|
||||
}
|
||||
|
||||
@@ -24,20 +24,20 @@
|
||||
"@capacitor/keyboard": "^7.0.0",
|
||||
"@capacitor/status-bar": "^7.0.0",
|
||||
"@capgo/inappbrowser": "^7.1.0",
|
||||
"@sentry/react": "^9.2.0",
|
||||
"@sentry/react": "^9.47.1",
|
||||
"@toeverything/infra": "workspace:*",
|
||||
"async-call-rpc": "^6.4.2",
|
||||
"idb": "^8.0.0",
|
||||
"next-themes": "^0.4.4",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react-router-dom": "^6.28.0"
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-router-dom": "^6.30.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@capacitor/cli": "^7.0.0",
|
||||
"@types/react": "^19.0.1",
|
||||
"@types/react-dom": "^19.0.2",
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"typescript": "^5.7.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,23 +17,23 @@
|
||||
"@affine/track": "workspace:*",
|
||||
"@blocksuite/affine": "workspace:*",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@sentry/react": "^9.2.0",
|
||||
"@sentry/react": "^9.47.1",
|
||||
"@toeverything/infra": "workspace:*",
|
||||
"@toeverything/theme": "^1.1.16",
|
||||
"@vanilla-extract/css": "^1.17.0",
|
||||
"async-call-rpc": "^6.4.2",
|
||||
"next-themes": "^0.4.4",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react-router-dom": "^6.28.0",
|
||||
"uuid": "^11.0.3",
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-router-dom": "^6.30.2",
|
||||
"uuid": "^11.1.0",
|
||||
"webm-muxer": "^5.0.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@affine-tools/utils": "workspace:*",
|
||||
"@types/react": "^19.0.1",
|
||||
"@types/react-dom": "^19.0.2",
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"typescript": "^5.7.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,14 +50,14 @@
|
||||
"@pengx17/electron-forge-maker-appimage": "^1.2.1",
|
||||
"@sentry/electron": "^7.0.0",
|
||||
"@sentry/esbuild-plugin": "^3.0.0",
|
||||
"@sentry/react": "^9.2.0",
|
||||
"@sentry/react": "^9.47.1",
|
||||
"@toeverything/infra": "workspace:*",
|
||||
"@types/set-cookie-parser": "^2.4.10",
|
||||
"@types/uuid": "^10.0.0",
|
||||
"@vitejs/plugin-react-swc": "^3.7.2",
|
||||
"app-builder-lib": "^26.1.0",
|
||||
"builder-util-runtime": "^9.5.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"debug": "^4.4.0",
|
||||
"electron": "^36.0.0",
|
||||
"electron-log": "^5.4.3",
|
||||
@@ -67,13 +67,13 @@
|
||||
"fs-extra": "^11.2.0",
|
||||
"glob": "^11.0.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"msw": "^2.6.8",
|
||||
"nanoid": "^5.0.9",
|
||||
"rxjs": "^7.8.1",
|
||||
"semver": "^7.6.3",
|
||||
"msw": "^2.12.4",
|
||||
"nanoid": "^5.1.6",
|
||||
"rxjs": "^7.8.2",
|
||||
"semver": "^7.7.3",
|
||||
"tree-kill": "^1.2.2",
|
||||
"ts-node": "^10.9.2",
|
||||
"uuid": "^11.0.3",
|
||||
"uuid": "^11.1.0",
|
||||
"vitest": "^3.2.4",
|
||||
"zod": "^3.25.76"
|
||||
},
|
||||
@@ -83,7 +83,7 @@
|
||||
"link-preview-js": "^3.1.0",
|
||||
"next-themes": "^0.4.4",
|
||||
"set-cookie-parser": "^2.7.1",
|
||||
"yjs": "^13.6.21"
|
||||
"yjs": "^13.6.27"
|
||||
},
|
||||
"build": {
|
||||
"protocols": [
|
||||
|
||||
@@ -34,9 +34,8 @@ afterAll(() => {
|
||||
|
||||
describe('workspace db management', () => {
|
||||
test('trash workspace', async () => {
|
||||
const { trashWorkspace } = await import(
|
||||
'@affine/electron/helper/workspace/handlers'
|
||||
);
|
||||
const { trashWorkspace } =
|
||||
await import('@affine/electron/helper/workspace/handlers');
|
||||
const workspaceId = v4();
|
||||
const workspacePath = path.join(
|
||||
appDataPath,
|
||||
@@ -58,9 +57,8 @@ describe('workspace db management', () => {
|
||||
});
|
||||
|
||||
test('delete workspace', async () => {
|
||||
const { deleteWorkspace } = await import(
|
||||
'@affine/electron/helper/workspace/handlers'
|
||||
);
|
||||
const { deleteWorkspace } =
|
||||
await import('@affine/electron/helper/workspace/handlers');
|
||||
const workspaceId = v4();
|
||||
const workspacePath = path.join(
|
||||
appDataPath,
|
||||
|
||||
@@ -28,16 +28,16 @@
|
||||
"@capacitor/haptics": "^7.0.0",
|
||||
"@capacitor/ios": "^7.0.0",
|
||||
"@capacitor/keyboard": "^7.0.0",
|
||||
"@sentry/react": "^9.2.0",
|
||||
"@sentry/react": "^9.47.1",
|
||||
"@toeverything/infra": "workspace:^",
|
||||
"async-call-rpc": "^6.4.2",
|
||||
"capacitor-plugin-app-tracking-transparency": "^2.0.5",
|
||||
"idb": "^8.0.0",
|
||||
"next-themes": "^0.4.4",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react-router-dom": "^6.28.0",
|
||||
"yjs": "^13.6.21"
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-router-dom": "^6.30.2",
|
||||
"yjs": "^13.6.27"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@affine-tools/cli": "workspace:*",
|
||||
@@ -46,7 +46,7 @@
|
||||
"@capacitor/cli": "^7.0.0",
|
||||
"@types/react": "^19.0.1",
|
||||
"@types/react-dom": "^19.0.2",
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"typescript": "^5.7.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,16 +16,16 @@
|
||||
"@affine/nbstore": "workspace:*",
|
||||
"@blocksuite/affine": "workspace:*",
|
||||
"@blocksuite/icons": "^2.2.17",
|
||||
"@sentry/react": "^9.2.0",
|
||||
"@sentry/react": "^9.47.1",
|
||||
"@toeverything/infra": "workspace:*",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react-router-dom": "^6.28.0"
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-router-dom": "^6.30.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^19.0.1",
|
||||
"@types/react-dom": "^19.0.2",
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"typescript": "^5.7.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,16 +16,16 @@
|
||||
"@affine/nbstore": "workspace:*",
|
||||
"@affine/track": "workspace:*",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@sentry/react": "^9.2.0",
|
||||
"@sentry/react": "^9.47.1",
|
||||
"@toeverything/infra": "workspace:*",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react-router-dom": "^6.28.0"
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-router-dom": "^6.30.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^19.0.1",
|
||||
"@types/react-dom": "^19.0.2",
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"typescript": "^5.7.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
"peerDependencies": {
|
||||
"@blocksuite/affine": "*",
|
||||
"@swc/core": "^1.0.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0"
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@affine/debug": "workspace:*",
|
||||
@@ -25,8 +25,8 @@
|
||||
"@affine/error": "workspace:*",
|
||||
"@affine/graphql": "workspace:*",
|
||||
"@affine/i18n": "workspace:*",
|
||||
"@atlaskit/pragmatic-drag-and-drop": "^1.4.0",
|
||||
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3",
|
||||
"@atlaskit/pragmatic-drag-and-drop": "^1.7.7",
|
||||
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0",
|
||||
"@blocksuite/icons": "^2.2.17",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.0",
|
||||
@@ -53,21 +53,21 @@
|
||||
"dayjs": "^1.11.13",
|
||||
"emoji-mart": "^5.6.0",
|
||||
"emojibase-data": "^16.0.3",
|
||||
"foxact": "^0.2.45",
|
||||
"foxact": "^0.2.49",
|
||||
"jotai": "^2.10.3",
|
||||
"lit": "^3.2.1",
|
||||
"lodash-es": "^4.17.21",
|
||||
"lottie-react": "^2.4.0",
|
||||
"lottie-web": "^5.12.2",
|
||||
"nanoid": "^5.0.9",
|
||||
"nanoid": "^5.1.6",
|
||||
"next-themes": "^0.4.4",
|
||||
"react": "19.1.0",
|
||||
"react-dom": "19.1.0",
|
||||
"react-paginate": "^8.2.0",
|
||||
"react-router-dom": "^6.28.0",
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "19.2.1",
|
||||
"react-paginate": "^8.3.0",
|
||||
"react-router-dom": "^6.30.2",
|
||||
"react-transition-state": "^2.2.0",
|
||||
"sonner": "^2.0.0",
|
||||
"swr": "^2.2.5",
|
||||
"sonner": "^2.0.7",
|
||||
"swr": "^2.3.7",
|
||||
"zod": "^3.25.76"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -82,10 +82,10 @@
|
||||
"@types/react": "^19.0.1",
|
||||
"@types/react-dom": "^19.0.2",
|
||||
"@vanilla-extract/css": "^1.17.0",
|
||||
"storybook": "^10.0.0",
|
||||
"storybook": "^10.1.5",
|
||||
"typescript": "^5.7.2",
|
||||
"unplugin-swc": "^1.5.1",
|
||||
"vite": "^7.0.0",
|
||||
"unplugin-swc": "^1.5.9",
|
||||
"vite": "^7.2.7",
|
||||
"vitest": "^3.2.4"
|
||||
},
|
||||
"version": "0.25.7"
|
||||
|
||||
@@ -7,8 +7,7 @@ import { useDropTarget } from '../../ui/dnd';
|
||||
import { Tooltip, type TooltipProps } from '../../ui/tooltip';
|
||||
import * as styles from './resize-panel.css';
|
||||
|
||||
export interface ResizeHandleProps
|
||||
extends React.HtmlHTMLAttributes<HTMLDivElement> {
|
||||
export interface ResizeHandleProps extends React.HtmlHTMLAttributes<HTMLDivElement> {
|
||||
resizing: boolean;
|
||||
open: boolean;
|
||||
minWidth: number;
|
||||
@@ -27,8 +26,7 @@ export interface ResizeHandleProps
|
||||
dropTargetOptions?: Parameters<typeof useDropTarget>[0];
|
||||
}
|
||||
|
||||
export interface ResizePanelProps
|
||||
extends React.HtmlHTMLAttributes<HTMLDivElement> {
|
||||
export interface ResizePanelProps extends React.HtmlHTMLAttributes<HTMLDivElement> {
|
||||
resizing: boolean;
|
||||
open: boolean;
|
||||
floating?: boolean;
|
||||
|
||||
@@ -2,8 +2,10 @@ import type { HTMLAttributes, ReactNode } from 'react';
|
||||
|
||||
import { settingHeader, settingHeaderBeta } from './share.css';
|
||||
|
||||
interface SettingHeaderProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
||||
interface SettingHeaderProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'title'
|
||||
> {
|
||||
title: ReactNode;
|
||||
subtitle?: ReactNode;
|
||||
beta?: boolean;
|
||||
|
||||
@@ -22,8 +22,10 @@ export type ButtonType =
|
||||
| 'custom';
|
||||
export type ButtonSize = 'default' | 'large' | 'extraLarge' | 'custom';
|
||||
|
||||
export interface ButtonProps
|
||||
extends Omit<HTMLAttributes<HTMLButtonElement>, 'type' | 'prefix'> {
|
||||
export interface ButtonProps extends Omit<
|
||||
HTMLAttributes<HTMLButtonElement>,
|
||||
'type' | 'prefix'
|
||||
> {
|
||||
/**
|
||||
* Preset color scheme
|
||||
* @default 'secondary'
|
||||
|
||||
@@ -10,20 +10,19 @@ import {
|
||||
import { Button, type ButtonProps } from './button';
|
||||
import { iconButton, iconSizeVar } from './button.css';
|
||||
|
||||
export interface IconButtonProps
|
||||
extends Omit<
|
||||
ButtonProps,
|
||||
| 'variant'
|
||||
| 'size'
|
||||
| 'prefix'
|
||||
| 'suffix'
|
||||
| 'children'
|
||||
| 'prefixClassName'
|
||||
| 'prefixStyle'
|
||||
| 'suffix'
|
||||
| 'suffixClassName'
|
||||
| 'suffixStyle'
|
||||
> {
|
||||
export interface IconButtonProps extends Omit<
|
||||
ButtonProps,
|
||||
| 'variant'
|
||||
| 'size'
|
||||
| 'prefix'
|
||||
| 'suffix'
|
||||
| 'children'
|
||||
| 'prefixClassName'
|
||||
| 'prefixStyle'
|
||||
| 'suffix'
|
||||
| 'suffixClassName'
|
||||
| 'suffixStyle'
|
||||
> {
|
||||
/** Icon element */
|
||||
children?: ReactElement<SVGAttributes<SVGElement>>;
|
||||
/** Same as `children`, compatibility of the old API */
|
||||
|
||||
@@ -108,7 +108,8 @@ export const defaultDatePickerProps = {
|
||||
export type DefaultDatePickerProps = typeof defaultDatePickerProps;
|
||||
|
||||
export interface DatePickerModePanelProps
|
||||
extends DefaultDatePickerProps,
|
||||
extends
|
||||
DefaultDatePickerProps,
|
||||
Omit<DatePickerProps, keyof DefaultDatePickerProps> {
|
||||
cursor: dayjs.Dayjs;
|
||||
onCursorChange?: (cursor: dayjs.Dayjs) => void;
|
||||
|
||||
@@ -22,8 +22,10 @@ export interface WeekDatePickerHandle {
|
||||
setCursor?: (cursor: dayjs.Dayjs) => void;
|
||||
}
|
||||
|
||||
export interface WeekDatePickerProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
||||
export interface WeekDatePickerProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'onChange'
|
||||
> {
|
||||
value?: string;
|
||||
onChange?: (value: string) => void;
|
||||
handleRef?: ForwardedRef<WeekDatePickerHandle>;
|
||||
|
||||
@@ -22,8 +22,10 @@ export interface InlineEditHandle {
|
||||
triggerEdit: () => void;
|
||||
}
|
||||
|
||||
export interface InlineEditProps
|
||||
extends Omit<HTMLAttributes<HTMLSpanElement>, 'onChange' | 'onInput'> {
|
||||
export interface InlineEditProps extends Omit<
|
||||
HTMLAttributes<HTMLSpanElement>,
|
||||
'onChange' | 'onInput'
|
||||
> {
|
||||
/**
|
||||
* Content to be displayed
|
||||
*/
|
||||
@@ -220,8 +222,7 @@ export const InlineEdit = ({
|
||||
};
|
||||
|
||||
interface PlaceholderProps
|
||||
extends PropsWithChildren,
|
||||
HTMLAttributes<HTMLSpanElement> {
|
||||
extends PropsWithChildren, HTMLAttributes<HTMLSpanElement> {
|
||||
label?: string;
|
||||
}
|
||||
const Placeholder = ({
|
||||
|
||||
@@ -25,8 +25,7 @@ export interface IconAndNameEditorContentProps extends IconEditorProps {
|
||||
}
|
||||
|
||||
export interface IconAndNameEditorMenuProps
|
||||
extends Omit<MenuProps, 'items'>,
|
||||
IconAndNameEditorContentProps {
|
||||
extends Omit<MenuProps, 'items'>, IconAndNameEditorContentProps {
|
||||
open?: boolean;
|
||||
onOpenChange?: (open: boolean) => void;
|
||||
|
||||
|
||||
@@ -24,8 +24,10 @@ export interface MenuProps {
|
||||
ref?: React.Ref<MenuRef>;
|
||||
}
|
||||
|
||||
export interface MenuItemProps
|
||||
extends Omit<MenuItemPropsPrimitive, 'asChild' | 'textValue' | 'prefix'> {
|
||||
export interface MenuItemProps extends Omit<
|
||||
MenuItemPropsPrimitive,
|
||||
'asChild' | 'textValue' | 'prefix'
|
||||
> {
|
||||
type?: 'default' | 'warning' | 'danger';
|
||||
prefix?: ReactNode;
|
||||
suffix?: ReactNode;
|
||||
|
||||
@@ -5,8 +5,7 @@ import { useEffect, useRef } from 'react';
|
||||
import * as styles from './styles.css';
|
||||
|
||||
export interface ResizePanelProps
|
||||
extends PropsWithChildren,
|
||||
HTMLAttributes<HTMLDivElement> {
|
||||
extends PropsWithChildren, HTMLAttributes<HTMLDivElement> {
|
||||
horizontal?: boolean;
|
||||
vertical?: boolean;
|
||||
width?: number;
|
||||
|
||||
@@ -4,8 +4,7 @@ import type { HTMLAttributes, PropsWithChildren } from 'react';
|
||||
* @reference These props are migrated from [MUI Skeleton props](https://mui.com/material-ui/api/skeleton/#props)
|
||||
*/
|
||||
export interface SkeletonProps
|
||||
extends PropsWithChildren,
|
||||
HTMLAttributes<HTMLElement> {
|
||||
extends PropsWithChildren, HTMLAttributes<HTMLElement> {
|
||||
/**
|
||||
* The animation. If `false` the animation effect is disabled.
|
||||
*/
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import { useTheme } from 'next-themes';
|
||||
import { forwardRef, type HTMLAttributes } from 'react';
|
||||
|
||||
export interface ThemedImgProps
|
||||
extends Omit<HTMLAttributes<HTMLImageElement>, 'src'> {
|
||||
export interface ThemedImgProps extends Omit<
|
||||
HTMLAttributes<HTMLImageElement>,
|
||||
'src'
|
||||
> {
|
||||
lightSrc: string;
|
||||
darkSrc?: string;
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"@radix-ui/react-scroll-area": "^1.2.2",
|
||||
"@radix-ui/react-slot": "^1.1.1",
|
||||
"@radix-ui/react-toolbar": "^1.1.1",
|
||||
"@sentry/react": "^9.2.0",
|
||||
"@sentry/react": "^9.47.1",
|
||||
"@toeverything/infra": "workspace:*",
|
||||
"@toeverything/pdf-viewer": "^0.1.1",
|
||||
"@toeverything/theme": "^1.1.16",
|
||||
@@ -57,43 +57,43 @@
|
||||
"eventemitter2": "^6.4.9",
|
||||
"file-type": "^21.0.0",
|
||||
"filesize": "^10.1.6",
|
||||
"foxact": "^0.2.43",
|
||||
"foxact": "^0.2.49",
|
||||
"fuse.js": "^7.0.0",
|
||||
"graphemer": "^1.4.0",
|
||||
"graphql": "^16.9.0",
|
||||
"history": "^5.3.0",
|
||||
"ical.js": "^2.1.0",
|
||||
"idb": "^8.0.0",
|
||||
"idb-keyval": "^6.2.1",
|
||||
"idb-keyval": "^6.2.2",
|
||||
"image-blob-reduce": "^4.1.0",
|
||||
"is-svg": "^6.0.0",
|
||||
"is-svg": "^6.1.0",
|
||||
"jotai": "^2.10.3",
|
||||
"jotai-scope": "^0.7.2",
|
||||
"katex": "^0.16.11",
|
||||
"lib0": "^0.2.99",
|
||||
"katex": "^0.16.27",
|
||||
"lib0": "^0.2.114",
|
||||
"lit": "^3.2.1",
|
||||
"lodash-es": "^4.17.21",
|
||||
"lottie-react": "^2.4.0",
|
||||
"mermaid": "^11.1.0",
|
||||
"mp4-muxer": "^5.2.1",
|
||||
"nanoid": "^5.0.9",
|
||||
"mermaid": "^11.12.2",
|
||||
"mp4-muxer": "^5.2.2",
|
||||
"nanoid": "^5.1.6",
|
||||
"next-themes": "^0.4.4",
|
||||
"query-string": "^9.1.1",
|
||||
"react": "19.1.0",
|
||||
"react-dom": "19.1.0",
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-error-boundary": "^6.0.0",
|
||||
"react-router-dom": "^6.28.0",
|
||||
"react-router-dom": "^6.30.2",
|
||||
"react-transition-state": "^2.2.0",
|
||||
"react-virtuoso": "^4.12.3",
|
||||
"rxjs": "^7.8.1",
|
||||
"semver": "^7.7.2",
|
||||
"ses": "^1.10.0",
|
||||
"shiki": "^3.7.0",
|
||||
"rxjs": "^7.8.2",
|
||||
"semver": "^7.7.3",
|
||||
"ses": "^1.14.0",
|
||||
"shiki": "^3.19.0",
|
||||
"socket.io-client": "^4.8.1",
|
||||
"swr": "2.3.3",
|
||||
"swr": "^2.3.7",
|
||||
"tinykeys": "patch:tinykeys@npm%3A2.1.0#~/.yarn/patches/tinykeys-npm-2.1.0-819feeaed0.patch",
|
||||
"y-protocols": "^1.0.6",
|
||||
"yjs": "^13.6.21",
|
||||
"yjs": "^13.6.27",
|
||||
"zod": "^3.25.76"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -65,9 +65,8 @@ export const usePageHelper = (docCollection: Workspace) => {
|
||||
|
||||
const importFileAndOpen = useMemo(
|
||||
() => async () => {
|
||||
const { showImportModal } = await import(
|
||||
'@blocksuite/affine/widgets/linked-doc'
|
||||
);
|
||||
const { showImportModal } =
|
||||
await import('@blocksuite/affine/widgets/linked-doc');
|
||||
const { promise, resolve, reject } =
|
||||
Promise.withResolvers<
|
||||
Parameters<
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import type { HTMLAttributes, ReactNode } from 'react';
|
||||
|
||||
export interface EmptyLayoutProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
||||
export interface EmptyLayoutProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'title'
|
||||
> {
|
||||
illustrationLight: string;
|
||||
illustrationDark?: string;
|
||||
illustrationWidth?: number | string;
|
||||
|
||||
@@ -4,8 +4,10 @@ import type { HTMLAttributes } from 'react';
|
||||
import { MemberItem } from './item';
|
||||
import * as styles from './styles.css';
|
||||
|
||||
interface InlineMemberListProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
||||
interface InlineMemberListProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'onChange'
|
||||
> {
|
||||
members: string[];
|
||||
focusedIndex?: number;
|
||||
onRemove?: (id: string) => void;
|
||||
|
||||
@@ -108,8 +108,10 @@ export const ConfigRow = forwardRef<HTMLDivElement, HTMLProps<HTMLDivElement>>(
|
||||
}
|
||||
);
|
||||
|
||||
export interface SettingGroupProps
|
||||
extends Omit<HTMLProps<HTMLDivElement>, 'title'> {
|
||||
export interface SettingGroupProps extends Omit<
|
||||
HTMLProps<HTMLDivElement>,
|
||||
'title'
|
||||
> {
|
||||
title?: ReactNode;
|
||||
contentClassName?: string;
|
||||
contentStyle?: CSSProperties;
|
||||
|
||||
@@ -4,8 +4,10 @@ import * as styles from './inline-tag-list.css';
|
||||
import { TagItem } from './tag';
|
||||
import type { TagLike } from './types';
|
||||
|
||||
interface InlineTagListProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
||||
interface InlineTagListProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'onChange'
|
||||
> {
|
||||
onRemoved?: (id: string) => void;
|
||||
tags: TagLike[];
|
||||
tagMode: 'inline-tag' | 'db-label';
|
||||
|
||||
+1
-2
@@ -13,8 +13,7 @@ import {
|
||||
|
||||
import * as styles from './empty-section.css';
|
||||
|
||||
interface NavigationPanelEmptySectionProps
|
||||
extends HTMLAttributes<HTMLDivElement> {
|
||||
interface NavigationPanelEmptySectionProps extends HTMLAttributes<HTMLDivElement> {
|
||||
icon:
|
||||
| ((props: SVGProps<SVGSVGElement>) => JSX.Element)
|
||||
| ReactElement<SVGAttributes<SVGElement>>;
|
||||
|
||||
@@ -90,8 +90,7 @@ type ExplorerIconConfig = {
|
||||
where: ExplorerType;
|
||||
id: string;
|
||||
};
|
||||
interface WebNavigationPanelTreeNodeProps
|
||||
extends BaseNavigationPanelTreeNodeProps {
|
||||
interface WebNavigationPanelTreeNodeProps extends BaseNavigationPanelTreeNodeProps {
|
||||
renameable?: boolean;
|
||||
onRename?: (newName: string) => void;
|
||||
renameableGuard?: { docId: string; action: DocPermissionActions };
|
||||
|
||||
@@ -20,8 +20,10 @@ import {
|
||||
|
||||
import * as styles from './server-selector.css';
|
||||
|
||||
export interface ServerSelectorProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
||||
export interface ServerSelectorProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'onChange'
|
||||
> {
|
||||
selectedId: Server['id'];
|
||||
onChange: (id: Server['id']) => void;
|
||||
placeholder?: ReactNode;
|
||||
|
||||
@@ -30,8 +30,10 @@ export const SeeAllLink = () => {
|
||||
);
|
||||
};
|
||||
|
||||
interface PricingCollapsibleProps
|
||||
extends Omit<HtmlHTMLAttributes<HTMLDivElement>, 'title'> {
|
||||
interface PricingCollapsibleProps extends Omit<
|
||||
HtmlHTMLAttributes<HTMLDivElement>,
|
||||
'title'
|
||||
> {
|
||||
title?: ReactNode;
|
||||
caption?: ReactNode;
|
||||
}
|
||||
|
||||
+1
-2
@@ -34,8 +34,7 @@ export const IntegrationSettingHeader = ({
|
||||
};
|
||||
|
||||
// universal
|
||||
export interface IntegrationSettingItemProps
|
||||
extends HTMLAttributes<HTMLDivElement> {
|
||||
export interface IntegrationSettingItemProps extends HTMLAttributes<HTMLDivElement> {
|
||||
name?: ReactNode;
|
||||
desc?: ReactNode;
|
||||
}
|
||||
|
||||
+5
-4
@@ -49,8 +49,10 @@ const CountDisplay = ({
|
||||
}: { count: number; max?: number } & HTMLAttributes<HTMLSpanElement>) => {
|
||||
return <span {...attrs}>{count > max ? `${max}+` : count}</span>;
|
||||
};
|
||||
interface PageItemProps
|
||||
extends Omit<HTMLAttributes<HTMLAnchorElement>, 'onClick'> {
|
||||
interface PageItemProps extends Omit<
|
||||
HTMLAttributes<HTMLAnchorElement>,
|
||||
'onClick'
|
||||
> {
|
||||
docId: string;
|
||||
right?: ReactNode;
|
||||
duplicate?: boolean;
|
||||
@@ -321,8 +323,7 @@ const JournalDailyCountBlock = ({ date }: JournalBlockProps) => {
|
||||
|
||||
const MAX_CONFLICT_COUNT = 5;
|
||||
interface ConflictListProps
|
||||
extends PropsWithChildren,
|
||||
HTMLAttributes<HTMLDivElement> {
|
||||
extends PropsWithChildren, HTMLAttributes<HTMLDivElement> {
|
||||
docRecords: DocRecord[];
|
||||
}
|
||||
const ConflictList = ({
|
||||
|
||||
+1
-2
@@ -7,8 +7,7 @@ import { type HTMLAttributes, useContext } from 'react';
|
||||
import { levelIndent } from '../tree/node.css';
|
||||
import * as styles from './add-item-placeholder.css';
|
||||
|
||||
export interface AddItemPlaceholderProps
|
||||
extends HTMLAttributes<HTMLDivElement> {
|
||||
export interface AddItemPlaceholderProps extends HTMLAttributes<HTMLDivElement> {
|
||||
onClick?: () => void;
|
||||
label?: string;
|
||||
icon?: React.ReactNode;
|
||||
|
||||
+1
-2
@@ -28,8 +28,7 @@ interface CollapsibleSectionProps extends HTMLAttributes<HTMLDivElement> {
|
||||
contentClassName?: string;
|
||||
}
|
||||
|
||||
interface CollapsibleSectionTriggerProps
|
||||
extends HTMLAttributes<HTMLDivElement> {
|
||||
interface CollapsibleSectionTriggerProps extends HTMLAttributes<HTMLDivElement> {
|
||||
label: string;
|
||||
collapsed?: boolean;
|
||||
actions?: ReactNode;
|
||||
|
||||
@@ -20,8 +20,7 @@ import {
|
||||
import { SwipeMenu } from '../../swipe-menu';
|
||||
import * as styles from './node.css';
|
||||
|
||||
interface NavigationPanelTreeNodeProps
|
||||
extends BaseNavigationPanelTreeNodeProps {}
|
||||
interface NavigationPanelTreeNodeProps extends BaseNavigationPanelTreeNodeProps {}
|
||||
|
||||
export const NavigationPanelTreeNode = ({
|
||||
children,
|
||||
|
||||
@@ -11,8 +11,10 @@ import { forwardRef } from 'react';
|
||||
import { NavigationBackButton } from '../navigation-back';
|
||||
import * as styles from './styles.css';
|
||||
|
||||
export interface PageHeaderProps
|
||||
extends Omit<HtmlHTMLAttributes<HTMLHeadElement>, 'prefix'> {
|
||||
export interface PageHeaderProps extends Omit<
|
||||
HtmlHTMLAttributes<HTMLHeadElement>,
|
||||
'prefix'
|
||||
> {
|
||||
/**
|
||||
* whether to show back button
|
||||
*/
|
||||
|
||||
@@ -19,8 +19,7 @@ export interface RenameContentProps extends RenameBaseProps {
|
||||
inputBelowRenderer?: (props: { input: string }) => ReactNode;
|
||||
}
|
||||
|
||||
export interface RenameSubMenuProps
|
||||
extends PropsWithChildren<RenameContentProps> {
|
||||
export interface RenameSubMenuProps extends PropsWithChildren<RenameContentProps> {
|
||||
/** Submenu's title */
|
||||
title?: string;
|
||||
/** MenuItem.icon */
|
||||
@@ -31,8 +30,7 @@ export interface RenameSubMenuProps
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
export interface RenameDialogProps
|
||||
extends PropsWithChildren<RenameContentProps> {
|
||||
export interface RenameDialogProps extends PropsWithChildren<RenameContentProps> {
|
||||
open?: boolean;
|
||||
onOpenChange?: (open: boolean) => void;
|
||||
title?: string;
|
||||
|
||||
@@ -16,8 +16,10 @@ import {
|
||||
|
||||
import * as styles from './style.css';
|
||||
|
||||
export interface SearchInputProps
|
||||
extends Omit<HTMLProps<HTMLInputElement>, 'onInput'> {
|
||||
export interface SearchInputProps extends Omit<
|
||||
HTMLProps<HTMLInputElement>,
|
||||
'onInput'
|
||||
> {
|
||||
value?: string;
|
||||
height?: number;
|
||||
cornerRadius?: number;
|
||||
|
||||
@@ -10,8 +10,7 @@ import { forwardRef, type HTMLAttributes } from 'react';
|
||||
|
||||
import { card, dropdownIcon, label } from './card.css';
|
||||
|
||||
export interface CurrentWorkspaceCardProps
|
||||
extends HTMLAttributes<HTMLDivElement> {}
|
||||
export interface CurrentWorkspaceCardProps extends HTMLAttributes<HTMLDivElement> {}
|
||||
|
||||
export const CurrentWorkspaceCard = forwardRef<
|
||||
HTMLDivElement,
|
||||
|
||||
@@ -9,8 +9,10 @@ import {
|
||||
|
||||
import * as styles from './group.css';
|
||||
|
||||
export interface SettingGroupProps
|
||||
extends Omit<HTMLProps<HTMLDivElement>, 'title'> {
|
||||
export interface SettingGroupProps extends Omit<
|
||||
HTMLProps<HTMLDivElement>,
|
||||
'title'
|
||||
> {
|
||||
title?: ReactNode;
|
||||
contentClassName?: string;
|
||||
contentStyle?: CSSProperties;
|
||||
|
||||
+4
-2
@@ -3,8 +3,10 @@ import { type HTMLAttributes, useCallback, useEffect, useState } from 'react';
|
||||
import { JournalDatePickerContext } from './context';
|
||||
import { ResizeViewport } from './viewport';
|
||||
|
||||
export interface JournalDatePickerProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
||||
export interface JournalDatePickerProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'onChange'
|
||||
> {
|
||||
date: string;
|
||||
onChange: (date: string) => void;
|
||||
withDotDates: Set<string | null | undefined>;
|
||||
|
||||
@@ -3,26 +3,22 @@
|
||||
## How Cross-Tab Audio Synchronization Works
|
||||
|
||||
1. **Global State**:
|
||||
|
||||
- Shared between all tabs via Electron's global state or browser storage
|
||||
- Contains `PlaybackState` and `MediaStats` objects
|
||||
- Each state update includes a timestamp (`updateTime`) to track recency
|
||||
|
||||
2. **Tab 1 - Playing Audio**:
|
||||
|
||||
- User initiates playback in Tab 1
|
||||
- `AudioMediaManagerService` updates global state with new playback info
|
||||
- Global state includes the tab ID that initiated playback
|
||||
|
||||
3. **Tab 2 - Responding to Changes**:
|
||||
|
||||
- Observes changes to global state via `observeGlobalPlaybackState`
|
||||
- Detects that audio is playing in another tab (different tabId)
|
||||
- Automatically stops any playing audio in Tab 2
|
||||
- Does not attempt to play the audio from Tab 1
|
||||
|
||||
4. **State Synchronization**:
|
||||
|
||||
- All state changes include `updateTime` to prevent race conditions
|
||||
- `distinctUntilChanged` ensures only meaningful state changes trigger updates
|
||||
- `skipUpdate` parameter prevents circular update loops
|
||||
|
||||
@@ -117,8 +117,7 @@ export const TemplateListMenuContentScrollable = (
|
||||
};
|
||||
|
||||
interface TemplateListMenuProps
|
||||
extends TemplateListMenuContentProps,
|
||||
Omit<MenuProps, 'items'> {}
|
||||
extends TemplateListMenuContentProps, Omit<MenuProps, 'items'> {}
|
||||
export const TemplateListMenu = ({
|
||||
children,
|
||||
onSelect,
|
||||
|
||||
@@ -8,8 +8,7 @@ import { forwardRef, memo, useCallback, useMemo, useState } from 'react';
|
||||
import type { View } from '../../entities/view';
|
||||
import * as styles from './indicator.css';
|
||||
|
||||
export interface SplitViewDragHandleProps
|
||||
extends HTMLAttributes<HTMLDivElement> {
|
||||
export interface SplitViewDragHandleProps extends HTMLAttributes<HTMLDivElement> {
|
||||
active?: boolean;
|
||||
dragging?: boolean;
|
||||
open?: boolean;
|
||||
|
||||
@@ -32,8 +32,9 @@ import {
|
||||
} from './state';
|
||||
import { allowedSplitViewEntityTypes } from './types';
|
||||
|
||||
export interface SplitViewPanelProps
|
||||
extends PropsWithChildren<HTMLAttributes<HTMLDivElement>> {
|
||||
export interface SplitViewPanelProps extends PropsWithChildren<
|
||||
HTMLAttributes<HTMLDivElement>
|
||||
> {
|
||||
view: View;
|
||||
index: number;
|
||||
resizeHandle?: React.ReactNode;
|
||||
|
||||
@@ -22,9 +22,8 @@
|
||||
"@magic-works/i18n-codegen": "^0.6.1",
|
||||
"dayjs": "^1.11.13",
|
||||
"i18next": "^25.0.0",
|
||||
"react": "^19.0.0",
|
||||
"react-i18next": "^15.2.0",
|
||||
"undici": "^7.1.0"
|
||||
"react": "^19.2.1",
|
||||
"react-i18next": "^15.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@affine-tools/cli": "workspace:*",
|
||||
|
||||
@@ -22,16 +22,16 @@
|
||||
"express-rate-limit": "^7.1.5",
|
||||
"fs-extra": "^11.3.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"multer": "^2.0.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"multer": "^2.0.2",
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-markdown": "^10.1.0",
|
||||
"socket.io": "^4.7.4",
|
||||
"socket.io-client": "^4.7.4",
|
||||
"swr": "^2.3.2",
|
||||
"tailwindcss": "^4.0.6",
|
||||
"swr": "^2.3.7",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"tsx": "^4.19.2",
|
||||
"vite": "^7.0.0"
|
||||
"vite": "^7.2.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/fs-extra": "^11",
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"@napi-rs/whisper": "^0.0.4",
|
||||
"@types/node": "^22.0.0",
|
||||
"ava": "^6.4.1",
|
||||
"rxjs": "^7.8.1",
|
||||
"rxjs": "^7.8.2",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.7.2"
|
||||
},
|
||||
|
||||
@@ -12,12 +12,12 @@
|
||||
"devDependencies": {
|
||||
"@affine-tools/cli": "workspace:*",
|
||||
"@affine-tools/utils": "workspace:*",
|
||||
"path-to-regexp": "^8.2.0",
|
||||
"path-to-regexp": "^8.3.0",
|
||||
"query-string": "^9.1.1",
|
||||
"vitest": "^3.2.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^19.1.0",
|
||||
"react": "^19.2.1",
|
||||
"react-router-dom": "^7.5.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@affine/debug": "workspace:*",
|
||||
"@sentry/react": "^9.2.0",
|
||||
"@sentry/react": "^9.47.1",
|
||||
"mixpanel-browser": "^2.56.0",
|
||||
"react-router-dom": "6.30.0"
|
||||
"react-router-dom": "^6.30.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/mixpanel-browser": "^2.50.2",
|
||||
|
||||
@@ -93,13 +93,12 @@ type FolderEvents =
|
||||
type TagEvents = 'createTag' | 'deleteTag' | 'renameTag' | 'tagDoc';
|
||||
type FavoriteEvents = 'toggleFavorite';
|
||||
type OrganizeItemEvents = // doc, link, folder, collection, tag
|
||||
|
||||
| 'createOrganizeItem'
|
||||
| 'renameOrganizeItem'
|
||||
| 'moveOrganizeItem'
|
||||
| 'deleteOrganizeItem'
|
||||
| 'orderOrganizeItem'
|
||||
| 'removeOrganizeItem';
|
||||
| 'createOrganizeItem'
|
||||
| 'renameOrganizeItem'
|
||||
| 'moveOrganizeItem'
|
||||
| 'deleteOrganizeItem'
|
||||
| 'orderOrganizeItem'
|
||||
| 'removeOrganizeItem';
|
||||
type OrganizeEvents =
|
||||
| OrganizeItemEvents
|
||||
| CollectionEvents
|
||||
|
||||
@@ -50,8 +50,7 @@ type IsFourLevelsDeep<
|
||||
: false;
|
||||
|
||||
// for type checking
|
||||
export const _assertIsAllEventsDefinedInFourLevels: IsFourLevelsDeep<Events> =
|
||||
true;
|
||||
export const _assertIsAllEventsDefinedInFourLevels: IsFourLevelsDeep<Events> = true;
|
||||
|
||||
export interface EventProps {
|
||||
// location
|
||||
|
||||
Reference in New Issue
Block a user