mirror of
https://github.com/documenso/documenso.git
synced 2025-11-20 03:32:14 +10:00
fix: build
This commit is contained in:
28
apps/remix/.bin/build.sh
Executable file
28
apps/remix/.bin/build.sh
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Exit on error.
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
cd "$(dirname "$0")/.."
|
||||||
|
|
||||||
|
start_time=$(date +%s)
|
||||||
|
|
||||||
|
echo "[Build]: Extracting and compiling translations"
|
||||||
|
npm run translate --prefix ../../
|
||||||
|
|
||||||
|
echo "[Build]: Building app"
|
||||||
|
npm run build:app
|
||||||
|
|
||||||
|
echo "[Build]: Building server"
|
||||||
|
npm run build:server
|
||||||
|
|
||||||
|
# Copy over the entry point for the server.
|
||||||
|
cp server/main.js build/server/main.js
|
||||||
|
|
||||||
|
# Copy over all web.js translations
|
||||||
|
cp -r ../../packages/lib/translations build/server/hono/packages/lib/translations
|
||||||
|
|
||||||
|
# Time taken
|
||||||
|
end_time=$(date +%s)
|
||||||
|
|
||||||
|
echo "[Build]: Done in $((end_time - start_time)) seconds"
|
||||||
@ -3,9 +3,11 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "cross-env NODE_ENV=production react-router build",
|
"build": "sh .bin/build.sh",
|
||||||
|
"build:app": "cross-env NODE_ENV=production react-router build",
|
||||||
|
"build:server": "cross-env NODE_ENV=production rollup -c rollup.config.mjs",
|
||||||
"dev": "react-router dev",
|
"dev": "react-router dev",
|
||||||
"start": "cross-env NODE_ENV=production node dist/server/index.js",
|
"start": "cross-env NODE_ENV=production node build/server/main.js",
|
||||||
"clean": "rimraf .react-router && rimraf node_modules",
|
"clean": "rimraf .react-router && rimraf node_modules",
|
||||||
"typecheck": "react-router typegen && tsc",
|
"typecheck": "react-router typegen && tsc",
|
||||||
"copy:pdfjs": "node ../../scripts/copy-pdfjs.cjs"
|
"copy:pdfjs": "node ../../scripts/copy-pdfjs.cjs"
|
||||||
@ -55,7 +57,7 @@
|
|||||||
"react-dropzone": "^14.2.3",
|
"react-dropzone": "^14.2.3",
|
||||||
"react-hook-form": "^7.43.9",
|
"react-hook-form": "^7.43.9",
|
||||||
"react-hotkeys-hook": "^4.4.1",
|
"react-hotkeys-hook": "^4.4.1",
|
||||||
"react-icons": "^4.11.0",
|
"react-icons": "^5.4.0",
|
||||||
"react-rnd": "^10.4.1",
|
"react-rnd": "^10.4.1",
|
||||||
"react-router": "^7.1.5",
|
"react-router": "^7.1.5",
|
||||||
"recharts": "^2.7.2",
|
"recharts": "^2.7.2",
|
||||||
@ -69,9 +71,16 @@
|
|||||||
"uqr": "^0.1.2"
|
"uqr": "^0.1.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@babel/core": "^7.26.7",
|
||||||
|
"@babel/preset-typescript": "^7.26.0",
|
||||||
|
"@lingui/babel-plugin-lingui-macro": "^5.2.0",
|
||||||
"@lingui/vite-plugin": "^5.2.0",
|
"@lingui/vite-plugin": "^5.2.0",
|
||||||
"@react-router/dev": "^7.1.1",
|
"@react-router/dev": "^7.1.1",
|
||||||
"@react-router/remix-routes-option-adapter": "^7.1.5",
|
"@react-router/remix-routes-option-adapter": "^7.1.5",
|
||||||
|
"@rollup/plugin-babel": "^6.0.4",
|
||||||
|
"@rollup/plugin-commonjs": "^28.0.2",
|
||||||
|
"@rollup/plugin-node-resolve": "^16.0.0",
|
||||||
|
"@rollup/plugin-typescript": "^12.1.2",
|
||||||
"@simplewebauthn/types": "^9.0.1",
|
"@simplewebauthn/types": "^9.0.1",
|
||||||
"@types/formidable": "^2.0.6",
|
"@types/formidable": "^2.0.6",
|
||||||
"@types/luxon": "^3.3.1",
|
"@types/luxon": "^3.3.1",
|
||||||
@ -80,8 +89,10 @@
|
|||||||
"@types/react-dom": "^18",
|
"@types/react-dom": "^18",
|
||||||
"@types/ua-parser-js": "^0.7.39",
|
"@types/ua-parser-js": "^0.7.39",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
|
"esbuild": "0.24.2",
|
||||||
"remix-flat-routes": "^0.8.4",
|
"remix-flat-routes": "^0.8.4",
|
||||||
"tsx": "^4.11.0",
|
"rollup": "^4.34.5",
|
||||||
|
"tsx": "^4.19.2",
|
||||||
"typescript": "5.6.2",
|
"typescript": "5.6.2",
|
||||||
"vite": "^6.1.0",
|
"vite": "^6.1.0",
|
||||||
"vite-plugin-babel-macros": "^1.0.6",
|
"vite-plugin-babel-macros": "^1.0.6",
|
||||||
|
|||||||
@ -2,6 +2,5 @@ import type { Config } from '@react-router/dev/config';
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
appDirectory: 'app',
|
appDirectory: 'app',
|
||||||
// Server-side render by default, to enable SPA mode set this to `false`
|
|
||||||
ssr: true,
|
ssr: true,
|
||||||
} satisfies Config;
|
} satisfies Config;
|
||||||
|
|||||||
49
apps/remix/rollup.config.mjs
Normal file
49
apps/remix/rollup.config.mjs
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
import babel from '@rollup/plugin-babel';
|
||||||
|
import commonjs from '@rollup/plugin-commonjs';
|
||||||
|
import resolve from '@rollup/plugin-node-resolve';
|
||||||
|
import typescript from '@rollup/plugin-typescript';
|
||||||
|
import path from 'node:path';
|
||||||
|
|
||||||
|
/** @type {import('rollup').RollupOptions} */
|
||||||
|
const config = {
|
||||||
|
/**
|
||||||
|
* We specifically target the router.ts instead of the entry point so the rollup doesn't go through the
|
||||||
|
* already prebuilt RR7 server files.
|
||||||
|
*/
|
||||||
|
input: 'server/router.ts',
|
||||||
|
output: {
|
||||||
|
dir: 'build/server/hono',
|
||||||
|
format: 'esm',
|
||||||
|
sourcemap: true,
|
||||||
|
preserveModules: true,
|
||||||
|
preserveModulesRoot: '.',
|
||||||
|
},
|
||||||
|
external: [/node_modules/],
|
||||||
|
plugins: [
|
||||||
|
typescript({
|
||||||
|
// noEmitOnError: true,
|
||||||
|
moduleResolution: 'bundler',
|
||||||
|
include: ['server/**/*', '../../packages/**/*', '../../packages/lib/translations/**/*'],
|
||||||
|
}),
|
||||||
|
resolve({
|
||||||
|
rootDir: path.join(process.cwd(), '../..'),
|
||||||
|
preferBuiltins: true,
|
||||||
|
resolveOnly: [
|
||||||
|
'@documenso/api/*',
|
||||||
|
'@documenso/auth/*',
|
||||||
|
'@documenso/lib/*',
|
||||||
|
'@documenso/trpc/*',
|
||||||
|
],
|
||||||
|
extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'],
|
||||||
|
}),
|
||||||
|
commonjs(),
|
||||||
|
babel({
|
||||||
|
babelHelpers: 'bundled',
|
||||||
|
extensions: ['.js', '.ts', '.tsx'],
|
||||||
|
presets: ['@babel/preset-typescript'],
|
||||||
|
plugins: ['@lingui/babel-plugin-lingui-macro'],
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export default config;
|
||||||
24
apps/remix/server/main.js
Normal file
24
apps/remix/server/main.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/**
|
||||||
|
* This is the main entry point for the server which will launch the RR7 application
|
||||||
|
* and spin up auth, api, etc.
|
||||||
|
*
|
||||||
|
* Note:
|
||||||
|
* This file will be copied to the build folder during build time.
|
||||||
|
* Running this file will not work without a build.
|
||||||
|
*/
|
||||||
|
import { serve } from '@hono/node-server';
|
||||||
|
import { serveStatic } from '@hono/node-server/serve-static';
|
||||||
|
import handle from 'hono-react-router-adapter/node';
|
||||||
|
|
||||||
|
import server from './hono/server/router.js';
|
||||||
|
import * as build from './index.js';
|
||||||
|
|
||||||
|
server.use(
|
||||||
|
serveStatic({
|
||||||
|
root: 'build/client',
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
const handler = handle(build, server);
|
||||||
|
|
||||||
|
serve({ fetch: handler.fetch, port: 3000 });
|
||||||
@ -1,17 +0,0 @@
|
|||||||
// main.ts
|
|
||||||
import { serve } from '@hono/node-server';
|
|
||||||
import { serveStatic } from '@hono/node-server/serve-static';
|
|
||||||
import handle from 'hono-react-router-adapter/node';
|
|
||||||
|
|
||||||
import server from '.';
|
|
||||||
import * as build from '../build/server';
|
|
||||||
|
|
||||||
server.use(
|
|
||||||
serveStatic({
|
|
||||||
root: './build/client',
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
|
|
||||||
const handler = handle(build, server);
|
|
||||||
|
|
||||||
serve({ fetch: handler.fetch, port: 3000 });
|
|
||||||
@ -72,8 +72,12 @@ app
|
|||||||
throw new AppError('INVALID_DOCUMENT_FILE');
|
throw new AppError('INVALID_DOCUMENT_FILE');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Todo: Test this.
|
||||||
if (!file.name.endsWith('.pdf')) {
|
if (!file.name.endsWith('.pdf')) {
|
||||||
file.name = `${file.name}.pdf`;
|
Object.defineProperty(file, 'name', {
|
||||||
|
writable: true,
|
||||||
|
value: `${file.name}.pdf`,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const { type, data } = await putFile(file);
|
const { type, data } = await putFile(file);
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import { getContext } from 'hono/context-storage';
|
import { getContext } from 'hono/context-storage';
|
||||||
import { redirect } from 'react-router';
|
import { redirect } from 'react-router';
|
||||||
import type { HonoEnv } from 'server';
|
|
||||||
import type { AppContext } from 'server/context';
|
import type { AppContext } from 'server/context';
|
||||||
|
import type { HonoEnv } from 'server/router';
|
||||||
|
|
||||||
import type { AppSession } from '@documenso/lib/client-only/providers/session';
|
import type { AppSession } from '@documenso/lib/client-only/providers/session';
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,16 @@
|
|||||||
"rootDirs": [".", "./.react-router/types"],
|
"rootDirs": [".", "./.react-router/types"],
|
||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"paths": {
|
"paths": {
|
||||||
"~/*": ["./app/*"]
|
"~/*": ["./app/*"],
|
||||||
|
"@documenso/api": ["../../packages/api"],
|
||||||
|
"@documenso/assets": ["../../packages/assets"],
|
||||||
|
"@documenso/auth": ["../../packages/auth"],
|
||||||
|
"@documenso/ee": ["../../packages/ee"],
|
||||||
|
"@documenso/lib": ["../../packages/lib"],
|
||||||
|
"@documenso/prisma": ["../../packages/prisma"],
|
||||||
|
"@documenso/trpc": ["../../packages/trpc"],
|
||||||
|
"@documenso/ui": ["../../packages/ui"],
|
||||||
|
"@documenso/tailwind-config": ["../../packages/tailwind-config"]
|
||||||
},
|
},
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"verbatimModuleSyntax": true,
|
"verbatimModuleSyntax": true,
|
||||||
|
|||||||
@ -32,49 +32,38 @@ export default defineConfig({
|
|||||||
lingui(),
|
lingui(),
|
||||||
tsconfigPaths(),
|
tsconfigPaths(),
|
||||||
serverAdapter({
|
serverAdapter({
|
||||||
entry: 'server/index.ts',
|
entry: 'server/main.ts',
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
ssr: {
|
ssr: {
|
||||||
noExternal: ['react-dropzone', 'plausible-tracker', 'pdfjs-dist'],
|
noExternal: ['react-dropzone', 'plausible-tracker', 'pdfjs-dist'],
|
||||||
external: ['@node-rs/bcrypt'],
|
external: ['@node-rs/bcrypt', '@prisma/client'],
|
||||||
},
|
},
|
||||||
optimizeDeps: {
|
optimizeDeps: {
|
||||||
|
// include: ['react-icons'],
|
||||||
exclude: ['@node-rs/bcrypt'],
|
exclude: ['@node-rs/bcrypt'],
|
||||||
},
|
},
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
https: 'node:https',
|
||||||
|
'.prisma/client/default': '../../node_modules/.prisma/client/default.js',
|
||||||
|
'.prisma/client/index-browser': '../../node_modules/.prisma/client/index-browser.js',
|
||||||
|
},
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* Throwing shit at a wall to see what sticks for building below onwards.
|
* Note: Re run rollup again to build the server afterwards.
|
||||||
|
*
|
||||||
|
* See rollup.config.mjs which is used for that.
|
||||||
*/
|
*/
|
||||||
// resolve: {
|
build: {
|
||||||
// alias: {
|
rollupOptions: {
|
||||||
// // https: 'node:https',
|
external: [
|
||||||
// // '.prisma/client/default': '../../node_modules/.prisma/client/default.js',
|
'@node-rs/bcrypt',
|
||||||
// },
|
'@documenso/pdf-sign',
|
||||||
// },
|
'@aws-sdk/cloudfront-signer',
|
||||||
// optimizeDeps: {
|
'nodemailer',
|
||||||
// include: [],
|
'playwright',
|
||||||
// },
|
],
|
||||||
// ssr: {
|
},
|
||||||
// // noExternal: true,
|
},
|
||||||
// noExternal: [
|
|
||||||
// '@documenso/assets',
|
|
||||||
// '@documenso/ee',
|
|
||||||
// '@documenso/lib',
|
|
||||||
// '@documenso/prisma',
|
|
||||||
// '@documenso/tailwind-config',
|
|
||||||
// '@documenso/trpc',
|
|
||||||
// '@documenso/ui',
|
|
||||||
// ],
|
|
||||||
// },
|
|
||||||
// build: {
|
|
||||||
// rollupOptions: {
|
|
||||||
// external: [
|
|
||||||
// '@node-rs/bcrypt',
|
|
||||||
// '@documenso/pdf-sign',
|
|
||||||
// 'nodemailer',
|
|
||||||
// 'playwright',
|
|
||||||
// '@aws-sdk/cloudfront-signer',
|
|
||||||
// ],
|
|
||||||
// },
|
|
||||||
// },
|
|
||||||
});
|
});
|
||||||
|
|||||||
976
package-lock.json
generated
976
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import type Stripe from 'stripe';
|
import type Stripe from 'stripe';
|
||||||
|
|
||||||
import { stripe } from '@documenso/lib/server-only/stripe';
|
import { stripe } from '@documenso/lib/server-only/stripe';
|
||||||
@ -17,8 +15,6 @@ export const getCheckoutSession = async ({
|
|||||||
returnUrl,
|
returnUrl,
|
||||||
subscriptionMetadata,
|
subscriptionMetadata,
|
||||||
}: GetCheckoutSessionOptions) => {
|
}: GetCheckoutSessionOptions) => {
|
||||||
'use server';
|
|
||||||
|
|
||||||
const session = await stripe.checkout.sessions.create({
|
const session = await stripe.checkout.sessions.create({
|
||||||
customer: customerId,
|
customer: customerId,
|
||||||
mode: 'subscription',
|
mode: 'subscription',
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { stripe } from '@documenso/lib/server-only/stripe';
|
import { stripe } from '@documenso/lib/server-only/stripe';
|
||||||
|
|
||||||
export type GetPortalSessionOptions = {
|
export type GetPortalSessionOptions = {
|
||||||
@ -8,8 +6,6 @@ export type GetPortalSessionOptions = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const getPortalSession = async ({ customerId, returnUrl }: GetPortalSessionOptions) => {
|
export const getPortalSession = async ({ customerId, returnUrl }: GetPortalSessionOptions) => {
|
||||||
'use server';
|
|
||||||
|
|
||||||
const session = await stripe.billingPortal.sessions.create({
|
const session = await stripe.billingPortal.sessions.create({
|
||||||
customer: customerId,
|
customer: customerId,
|
||||||
return_url: returnUrl,
|
return_url: returnUrl,
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
export * from '@react-email/body';
|
export { Body } from '@react-email/body';
|
||||||
export * from '@react-email/button';
|
export { Button } from '@react-email/button';
|
||||||
export * from '@react-email/column';
|
export { Column } from '@react-email/column';
|
||||||
export * from '@react-email/container';
|
export { Container } from '@react-email/container';
|
||||||
export * from '@react-email/font';
|
export { Font } from '@react-email/font';
|
||||||
export * from '@react-email/head';
|
export { Head } from '@react-email/head';
|
||||||
export * from '@react-email/heading';
|
export { Heading } from '@react-email/heading';
|
||||||
export * from '@react-email/hr';
|
export { Hr } from '@react-email/hr';
|
||||||
export * from '@react-email/html';
|
export { Html } from '@react-email/html';
|
||||||
export * from '@react-email/img';
|
export { Img } from '@react-email/img';
|
||||||
export * from '@react-email/link';
|
export { Link } from '@react-email/link';
|
||||||
export * from '@react-email/preview';
|
export { Preview } from '@react-email/preview';
|
||||||
export * from '@react-email/render';
|
export { render } from '@react-email/render';
|
||||||
export * from '@react-email/row';
|
export { Row } from '@react-email/row';
|
||||||
export * from '@react-email/section';
|
export { Section } from '@react-email/section';
|
||||||
export * from '@react-email/tailwind';
|
export { Tailwind } from '@react-email/tailwind';
|
||||||
export * from '@react-email/text';
|
export { Text } from '@react-email/text';
|
||||||
|
|||||||
@ -16,9 +16,7 @@ export async function loadCatalog(lang: SupportedLanguages): Promise<{
|
|||||||
}> {
|
}> {
|
||||||
const extension = env('NODE_ENV') === 'development' ? 'po' : 'js';
|
const extension = env('NODE_ENV') === 'development' ? 'po' : 'js';
|
||||||
|
|
||||||
// Todo
|
const { messages } = await import(`../../translations/${lang}/web.${extension}`);
|
||||||
const { messages } = await import(`../../translations/${lang}/web.po`);
|
|
||||||
// const { messages } = await import(`../../translations/${lang}/web.${extension}`);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
[lang]: messages,
|
[lang]: messages,
|
||||||
|
|||||||
@ -4,24 +4,24 @@ export const DOCUMENSO_ENCRYPTION_KEY = env('NEXT_PRIVATE_ENCRYPTION_KEY');
|
|||||||
|
|
||||||
export const DOCUMENSO_ENCRYPTION_SECONDARY_KEY = env('NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY');
|
export const DOCUMENSO_ENCRYPTION_SECONDARY_KEY = env('NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY');
|
||||||
|
|
||||||
if (typeof window === 'undefined') {
|
// if (typeof window === 'undefined') {
|
||||||
if (!DOCUMENSO_ENCRYPTION_KEY || !DOCUMENSO_ENCRYPTION_SECONDARY_KEY) {
|
// if (!DOCUMENSO_ENCRYPTION_KEY || !DOCUMENSO_ENCRYPTION_SECONDARY_KEY) {
|
||||||
throw new Error('Missing DOCUMENSO_ENCRYPTION_KEY or DOCUMENSO_ENCRYPTION_SECONDARY_KEY keys');
|
// throw new Error('Missing DOCUMENSO_ENCRYPTION_KEY or DOCUMENSO_ENCRYPTION_SECONDARY_KEY keys');
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (DOCUMENSO_ENCRYPTION_KEY === DOCUMENSO_ENCRYPTION_SECONDARY_KEY) {
|
// if (DOCUMENSO_ENCRYPTION_KEY === DOCUMENSO_ENCRYPTION_SECONDARY_KEY) {
|
||||||
throw new Error(
|
// throw new Error(
|
||||||
'DOCUMENSO_ENCRYPTION_KEY and DOCUMENSO_ENCRYPTION_SECONDARY_KEY cannot be equal',
|
// 'DOCUMENSO_ENCRYPTION_KEY and DOCUMENSO_ENCRYPTION_SECONDARY_KEY cannot be equal',
|
||||||
);
|
// );
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (DOCUMENSO_ENCRYPTION_KEY === 'CAFEBABE') {
|
// if (DOCUMENSO_ENCRYPTION_KEY === 'CAFEBABE') {
|
||||||
console.warn('*********************************************************************');
|
// console.warn('*********************************************************************');
|
||||||
console.warn('*');
|
// console.warn('*');
|
||||||
console.warn('*');
|
// console.warn('*');
|
||||||
console.warn('Please change the encryption key from the default value of "CAFEBABE"');
|
// console.warn('Please change the encryption key from the default value of "CAFEBABE"');
|
||||||
console.warn('*');
|
// console.warn('*');
|
||||||
console.warn('*');
|
// console.warn('*');
|
||||||
console.warn('*********************************************************************');
|
// console.warn('*********************************************************************');
|
||||||
}
|
// }
|
||||||
|
|||||||
3
packages/lib/jobs/client/index.ts
Normal file
3
packages/lib/jobs/client/index.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// Empty file for build reasons.
|
||||||
|
// Vite build seems to assume jobs/client.ts = jobs/client/index.ts and therefore will throw an error that the file is missing.
|
||||||
|
// Could refactor the files, but this is easier.
|
||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import type { DocumentDistributionMethod, DocumentSigningOrder } from '@prisma/client';
|
import type { DocumentDistributionMethod, DocumentSigningOrder } from '@prisma/client';
|
||||||
|
|
||||||
import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs';
|
import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs';
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { DocumentSource, WebhookTriggerEvents } from '@prisma/client';
|
import { DocumentSource, WebhookTriggerEvents } from '@prisma/client';
|
||||||
import type { Team, TeamGlobalSettings } from '@prisma/client';
|
import type { Team, TeamGlobalSettings } from '@prisma/client';
|
||||||
import { TeamMemberRole } from '@prisma/client';
|
import { TeamMemberRole } from '@prisma/client';
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { createElement } from 'react';
|
import { createElement } from 'react';
|
||||||
|
|
||||||
import { msg } from '@lingui/core/macro';
|
import { msg } from '@lingui/core/macro';
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { createElement } from 'react';
|
import { createElement } from 'react';
|
||||||
|
|
||||||
import { msg } from '@lingui/core/macro';
|
import { msg } from '@lingui/core/macro';
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs';
|
import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs';
|
||||||
import type { RequestMetadata } from '@documenso/lib/universal/extract-request-metadata';
|
import type { RequestMetadata } from '@documenso/lib/universal/extract-request-metadata';
|
||||||
import { createDocumentAuditLogData } from '@documenso/lib/utils/document-audit-logs';
|
import { createDocumentAuditLogData } from '@documenso/lib/utils/document-audit-logs';
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { DocumentStatus, SigningStatus } from '@prisma/client';
|
import { DocumentStatus, SigningStatus } from '@prisma/client';
|
||||||
|
|
||||||
import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs';
|
import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs';
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { DocumentStatus, FieldType, SigningStatus } from '@prisma/client';
|
import { DocumentStatus, FieldType, SigningStatus } from '@prisma/client';
|
||||||
import { DateTime } from 'luxon';
|
import { DateTime } from 'luxon';
|
||||||
import { match } from 'ts-pattern';
|
import { match } from 'ts-pattern';
|
||||||
|
|||||||
@ -5,9 +5,6 @@ import type { PDFDocument } from 'pdf-lib';
|
|||||||
import { RotationTypes, degrees, radiansToDegrees } from 'pdf-lib';
|
import { RotationTypes, degrees, radiansToDegrees } from 'pdf-lib';
|
||||||
import { P, match } from 'ts-pattern';
|
import { P, match } from 'ts-pattern';
|
||||||
|
|
||||||
// Todo: Check if this is okay to do compared to the old approach.
|
|
||||||
import fontCaveat from '@documenso/assets/fonts/caveat.ttf?inline';
|
|
||||||
import fontNoto from '@documenso/assets/fonts/noto-sans.ttf?inline';
|
|
||||||
import {
|
import {
|
||||||
DEFAULT_HANDWRITING_FONT_SIZE,
|
DEFAULT_HANDWRITING_FONT_SIZE,
|
||||||
DEFAULT_STANDARD_FONT_SIZE,
|
DEFAULT_STANDARD_FONT_SIZE,
|
||||||
@ -29,6 +26,13 @@ import {
|
|||||||
ZTextFieldMeta,
|
ZTextFieldMeta,
|
||||||
} from '../../types/field-meta';
|
} from '../../types/field-meta';
|
||||||
|
|
||||||
|
// Todo: Check if this is okay to do compared to the old approach.
|
||||||
|
// import fontCaveat from '@documenso/assets/fonts/caveat.ttf?inline';
|
||||||
|
// import fontNoto from '@documenso/assets/fonts/noto-sans.ttf?inline';
|
||||||
|
|
||||||
|
const fontCaveat = '';
|
||||||
|
const fontNoto = '';
|
||||||
|
|
||||||
export const insertFieldInPDF = async (pdf: PDFDocument, field: FieldWithSignature) => {
|
export const insertFieldInPDF = async (pdf: PDFDocument, field: FieldWithSignature) => {
|
||||||
const isSignatureField = isSignatureFieldType(field.type);
|
const isSignatureField = isSignatureFieldType(field.type);
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { SubscriptionStatus } from '@prisma/client';
|
import { SubscriptionStatus } from '@prisma/client';
|
||||||
|
|
||||||
import { prisma } from '@documenso/prisma';
|
import { prisma } from '@documenso/prisma';
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { prisma } from '@documenso/prisma';
|
import { prisma } from '@documenso/prisma';
|
||||||
|
|
||||||
export type GetSubscriptionsByUserIdOptions = {
|
export type GetSubscriptionsByUserIdOptions = {
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import type { Recipient } from '@prisma/client';
|
import type { Recipient } from '@prisma/client';
|
||||||
import { nanoid } from 'nanoid';
|
import { nanoid } from 'nanoid';
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { generateAvaliableRecipientPlaceholder } from '@documenso/lib/utils/templates';
|
import { generateAvaliableRecipientPlaceholder } from '@documenso/lib/utils/templates';
|
||||||
import { prisma } from '@documenso/prisma';
|
import { prisma } from '@documenso/prisma';
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { prisma } from '@documenso/prisma';
|
import { prisma } from '@documenso/prisma';
|
||||||
|
|
||||||
export type DeleteTemplateOptions = {
|
export type DeleteTemplateOptions = {
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import { prisma } from '@documenso/prisma';
|
import { prisma } from '@documenso/prisma';
|
||||||
|
|
||||||
import { AppError, AppErrorCode } from '../../errors/app-error';
|
import { AppError, AppErrorCode } from '../../errors/app-error';
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
'use server';
|
|
||||||
|
|
||||||
import type { DocumentVisibility, Template, TemplateMeta } from '@prisma/client';
|
import type { DocumentVisibility, Template, TemplateMeta } from '@prisma/client';
|
||||||
|
|
||||||
import { isUserEnterprise } from '@documenso/ee/server-only/util/is-document-enterprise';
|
import { isUserEnterprise } from '@documenso/ee/server-only/util/is-document-enterprise';
|
||||||
|
|||||||
@ -10,8 +10,7 @@ export async function dynamicActivate(locale: string) {
|
|||||||
|
|
||||||
// Todo: Use extension (currently breaks).
|
// Todo: Use extension (currently breaks).
|
||||||
|
|
||||||
// const { messages } = await import(`../translations/${locale}/web.${extension}`);
|
const { messages } = await import(`../translations/${locale}/web.${extension}`);
|
||||||
const { messages } = await import(`../translations/${locale}/web.po`);
|
|
||||||
|
|
||||||
i18n.loadAndActivate({ locale, messages });
|
i18n.loadAndActivate({ locale, messages });
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
"dotenv-cli": "^7.3.0",
|
"dotenv-cli": "^7.3.0",
|
||||||
"prisma-json-types-generator": "^3.2.2",
|
"prisma-json-types-generator": "^3.2.2",
|
||||||
"prisma-kysely": "^1.8.0",
|
"prisma-kysely": "^1.8.0",
|
||||||
"tsx": "^4.11.0",
|
"tsx": "^4.19.2",
|
||||||
"typescript": "5.6.2",
|
"typescript": "5.6.2",
|
||||||
"zod-prisma-types": "3.1.9"
|
"zod-prisma-types": "3.1.9"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user