Compare commits

...

3 Commits

Author SHA1 Message Date
Lucas Smith eeeee2fa0e v2.3.1 2025-12-18 12:02:04 +11:00
Lucas Smith c50a31a503 fix: use cpu for field rendering (#2337) 2025-12-18 10:48:46 +11:00
Lucas Smith 7360709795 fix: use gemimi 3 flash preview (#2336) 2025-12-18 10:48:16 +11:00
7 changed files with 51 additions and 8 deletions
+1 -1
View File
@@ -107,5 +107,5 @@
"vite-plugin-babel-macros": "^1.0.6",
"vite-tsconfig-paths": "^5.1.4"
},
"version": "2.3.0"
"version": "2.3.1"
}
+3 -3
View File
@@ -1,12 +1,12 @@
{
"name": "@documenso/root",
"version": "2.3.0",
"version": "2.3.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@documenso/root",
"version": "2.3.0",
"version": "2.3.1",
"hasInstallScript": true,
"workspaces": [
"apps/*",
@@ -109,7 +109,7 @@
},
"apps/remix": {
"name": "@documenso/remix",
"version": "2.3.0",
"version": "2.3.1",
"dependencies": {
"@cantoo/pdf-lib": "^2.5.3",
"@documenso/api": "*",
+1 -1
View File
@@ -5,7 +5,7 @@
"apps/*",
"packages/*"
],
"version": "2.3.0",
"version": "2.3.1",
"scripts": {
"postinstall": "patch-package",
"build": "turbo run build",
@@ -286,7 +286,7 @@ const detectFieldsFromPage = async ({
});
const result = await generateObject({
model: vertex('gemini-3-pro-preview'),
model: vertex('gemini-3-flash-preview'),
system: SYSTEM_PROMPT,
schema: ZSubmitDetectedFieldsInputSchema,
messages,
@@ -207,7 +207,7 @@ const detectRecipientsFromImages = async ({
});
const result = await generateObject({
model: vertex('gemini-2.5-flash'),
model: vertex('gemini-3-flash-preview'),
system: SYSTEM_PROMPT,
schema: ZDetectedRecipientsSchema,
messages,
@@ -0,0 +1,42 @@
/**
* !: This is a workaround to fix the memory leak in the skia-canvas library.
* !: Internals are ported from the original `konva/skia-backend.js` file.
*/
import { Konva } from 'konva/lib/_CoreInternals';
import { Canvas, DOMMatrix, Image, Path2D } from 'skia-canvas';
// @ts-expect-error skia-canvas satisfies the requirements
global.DOMMatrix = DOMMatrix;
// @ts-expect-error skia-canvas satisfies the requirements
global.Path2D = Path2D;
Path2D.prototype.toString = () => '[object Path2D]';
Konva.Util['createCanvasElement'] = () => {
const node = new Canvas(300, 300);
node.gpu = false;
if (!('style' in node) || !node['style']) {
Object.assign(node, { style: {} });
}
node.toString = () => '[object HTMLCanvasElement]';
const ctx = node.getContext('2d');
Object.defineProperty(ctx, 'canvas', {
get: () => node,
});
return node as unknown as HTMLCanvasElement;
};
Konva.Util.createImageElement = () => {
const node = new Image();
node.toString = () => '[object HTMLImageElement]';
return node as unknown as HTMLImageElement;
};
Konva._renderBackend = 'skia-canvas';
export default Konva;
@@ -1,5 +1,5 @@
// sort-imports-ignore
import 'konva/skia-backend';
import '../konva/skia-backend';
import Konva from 'konva';
import path from 'node:path';
@@ -23,6 +23,7 @@ export const insertFieldInPDFV2 = async ({
}: InsertFieldInPDFV2Options) => {
const fontPath = path.join(process.cwd(), 'public/fonts');
// eslint-disable-next-line react-hooks/rules-of-hooks
FontLibrary.use({
['Caveat']: [path.join(fontPath, 'caveat.ttf')],
['Noto Sans']: [path.join(fontPath, 'noto-sans.ttf')],