Template
Fix a bunch of errors we had
This commit is contained in:
1 parent
b9c845cac1
commit
4c97c7fa17
43 files changed
+6003
-8839
No files matched your search
@@ -0,0 +1 @@
|
||||
[{"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/auth.ts":"1","/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/crons.ts":"2","/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/index.ts":"3","/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/password.ts":"4","/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/usesend.ts":"5","/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/files.ts":"6","/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/http.ts":"7","/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/schema.ts":"8","/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/utils.ts":"9"},{"size":3664,"mtime":1774717261375,"results":"10","hashOfConfig":"11"},{"size":528,"mtime":1774717276314,"results":"12","hashOfConfig":"11"},{"size":142,"mtime":1768157708000,"results":"13","hashOfConfig":"11"},{"size":966,"mtime":1774546669452,"results":"14","hashOfConfig":"11"},{"size":3419,"mtime":1774717294835,"results":"15","hashOfConfig":"11"},{"size":582,"mtime":1768239263763,"results":"16","hashOfConfig":"11"},{"size":153,"mtime":1768157491000,"results":"17","hashOfConfig":"11"},{"size":1199,"mtime":1774583096378,"results":"18","hashOfConfig":"11"},{"size":635,"mtime":1768155639000,"results":"19","hashOfConfig":"11"},{"filePath":"20","messages":"21","suppressedMessages":"22","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"pdxq0k",{"filePath":"23","messages":"24","suppressedMessages":"25","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"26","messages":"27","suppressedMessages":"28","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"29","messages":"30","suppressedMessages":"31","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":1,"source":null},{"filePath":"32","messages":"33","suppressedMessages":"34","errorCount":20,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":3,"source":null},{"filePath":"35","messages":"36","suppressedMessages":"37","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"38","messages":"39","suppressedMessages":"40","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"41","messages":"42","suppressedMessages":"43","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"44","messages":"45","suppressedMessages":"46","errorCount":3,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":2,"source":null},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/auth.ts",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/crons.ts",["47"],[],"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/index.ts",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/password.ts",["48","49"],[],"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/usesend.ts",["50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72"],[],"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/files.ts",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/http.ts",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/schema.ts",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/utils.ts",["73","74","75","76","77"],[],{"ruleId":"78","severity":1,"message":"79","line":3,"column":10,"messageId":"80","endLine":3,"endColumn":13,"suggestions":"81"},{"ruleId":"82","severity":1,"message":"83","line":8,"column":10,"messageId":"84","endLine":13,"endColumn":4,"fix":"85"},{"ruleId":"78","severity":1,"message":"86","line":8,"column":19,"messageId":"80","endLine":8,"endColumn":22},{"ruleId":"87","severity":2,"message":"88","line":11,"column":5,"messageId":"89","endLine":11,"endColumn":66},{"ruleId":"90","severity":2,"message":"91","line":11,"column":19,"messageId":"92","endLine":11,"endColumn":22},{"ruleId":"82","severity":1,"message":"83","line":14,"column":30,"messageId":"84","endLine":21,"endColumn":6,"fix":"93"},{"ruleId":"82","severity":1,"message":"83","line":16,"column":13,"messageId":"84","endLine":18,"endColumn":10,"fix":"94"},{"ruleId":"82","severity":1,"message":"83","line":23,"column":34,"messageId":"84","endLine":77,"endColumn":6,"fix":"95"},{"ruleId":"87","severity":2,"message":"88","line":26,"column":13,"messageId":"89","endLine":26,"endColumn":59},{"ruleId":"90","severity":2,"message":"91","line":26,"column":31,"messageId":"92","endLine":2Line truncated
|
||||
@@ -1 +1 @@
|
||||
[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23"],{"key":"24","value":"25"},{"key":"26","value":"27"},{"key":"28","value":"29"},{"key":"30","value":"31"},{"key":"32","value":"33"},{"key":"34","value":"35"},{"key":"36","value":"37"},{"key":"38","value":"39"},{"key":"40","value":"41"},{"key":"42","value":"43"},{"key":"44","value":"45"},{"key":"46","value":"47"},{"key":"48","value":"49"},{"key":"50","value":"51"},{"key":"52","value":"53"},{"key":"54","value":"55"},{"key":"56","value":"57"},{"key":"58","value":"59"},{"key":"60","value":"61"},{"key":"62","value":"63"},{"key":"64","value":"65"},{"key":"66","value":"67"},{"key":"68","value":"69"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/.gitignore",{"size":16,"mtime":1766222924000,"hash":"70"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/usesend.ts",{"size":3245,"mtime":1774546669452,"hash":"71","data":"72"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/scripts/generateKeys.mjs",{"size":520,"mtime":1768368324432,"hash":"73","data":"74"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/tsconfig.json",{"size":732,"mtime":1766222924000,"hash":"75","data":"76"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/http.ts",{"size":153,"mtime":1768157491000,"hash":"77","data":"78"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/utils.ts",{"size":635,"mtime":1768155639000,"hash":"79","data":"80"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/schema.ts",{"size":1199,"mtime":1774583096378,"hash":"81","data":"82"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/auth.ts",{"size":3770,"mtime":1774546669451,"hash":"83","data":"84"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/files.ts",{"size":582,"mtime":1768239263763,"hash":"85","data":"86"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/index.ts",{"size":142,"mtime":1768157708000,"hash":"87","data":"88"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/types/auth.ts",{"size":174,"mtime":1768188156942,"hash":"89","data":"90"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/crons.ts",{"size":528,"mtime":1768239263662,"hash":"91","data":"92"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/auth.config.ts",{"size":127,"mtime":1768156477000,"hash":"93","data":"94"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/server.d.ts",{"size":5600,"mtime":1774031968455,"hash":"95","data":"96"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/README.md",{"size":2525,"mtime":1768155639000,"hash":"97","data":"98"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/api.d.ts",{"size":1632,"mtime":1774031968820,"hash":"99","data":"100"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/dataModel.d.ts",{"size":1737,"mtime":1774715745792,"hash":"101","data":"102"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/server.js",{"size":3696,"mtime":1774031968444,"hash":"103","data":"104"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/types/index.ts",{"size":69,"mtime":1768239263861,"hash":"105","data":"106"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/password.ts",{"size":966,"mtime":1774546669452,"hash":"107","data":"108"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/.cache/.prettiercache",{"size":5478,"mtime":1774546669451},"/home/gib/Documents/Code/convex-monorepo/packages/backend/package.json",{"size":1343,"mtime":1774596101668,"hash":"109","data":"110"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/api.js",{"size":480,"mtime":1768372369903,"hash":"111","data":"112"},"175b1a771387d8b7e26145c3d04e0475","14f5e2d18e21f65282ac744b382f2d5f",{"hashOfOptions":"113"},"ccf5b9105ad4ff66fce0a7133fa3db4b",{"hashOfOptions":"114"},"cfa98923457caed911ec68b626ef4234",{"hashOfOptions":"115"},"4bbb95a66a1e615c30ea7c5098a4a609",{"hashOfOptions":"116"},"6a3198db454396c63e99ee08065726bd",{"hashOfOptions":"117"},"7e6dcc47831030bfaa3e235d2226cec6",{"hashOfOptions":"118"},"3d304208139ef0b2775272a5a4a2a970",{"hashOfOptions":"119"},"5ff3856f1a61b946df899f7c9880b72a",{"hashOfOptions":"120"},"8776a23ed6f2ab3681e4ba5b4bcf3d74",{"hashOfOptions":"121"},"f0f9ef72dc6fef350f3521d3fd8adfc7",{"hashOfOptions":"122"},"0d76c3867783aec5435b0c716f1bfc65",{"hashOfOptions":"123"},"2d4f4ccfc784af9d668d8c64726c2f6b",{"hashOfOptions":"124"},"6719b019702fc173de16b1bdc8e8ed47",{"hashOfOptions":"125"},"f5aa8269478f140adb4ccf0470dd1244",{"hashOfOptions":"126"},"7c522302bfb45e9cf5f1c271b48fa247",{"hashOfOptions":"127"},"ce3275ccdd28673d7e9280b33792057c",{"hashOfOptions":"128"},"f42d53bd1ba24bfee1407d2098f3b9ff",{"hashOfOptions":"129"},"57577de5aadfa618e91739aeLine truncated
|
||||
[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"],{"key":"26","value":"27"},{"key":"28","value":"29"},{"key":"30","value":"31"},{"key":"32","value":"33"},{"key":"34","value":"35"},{"key":"36","value":"37"},{"key":"38","value":"39"},{"key":"40","value":"41"},{"key":"42","value":"43"},{"key":"44","value":"45"},{"key":"46","value":"47"},{"key":"48","value":"49"},{"key":"50","value":"51"},{"key":"52","value":"53"},{"key":"54","value":"55"},{"key":"56","value":"57"},{"key":"58","value":"59"},{"key":"60","value":"61"},{"key":"62","value":"63"},{"key":"64","value":"65"},{"key":"66","value":"67"},{"key":"68","value":"69"},{"key":"70","value":"71"},{"key":"72","value":"73"},{"key":"74","value":"75"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/.gitignore",{"size":16,"mtime":1766222924000,"hash":"76"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/usesend.ts",{"size":3419,"mtime":1774717294835,"hash":"77","data":"78"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/scripts/generateKeys.mjs",{"size":520,"mtime":1768368324432,"hash":"79","data":"80"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/tsconfig.json",{"size":732,"mtime":1766222924000,"hash":"81","data":"82"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/http.ts",{"size":153,"mtime":1768157491000,"hash":"83","data":"84"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/schema.ts",{"size":1199,"mtime":1774583096378,"hash":"85","data":"86"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/eslint.config.ts",{"size":233,"mtime":1774717251737,"data":"87"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/auth.ts",{"size":3664,"mtime":1774717261375,"hash":"88","data":"89"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/files.ts",{"size":582,"mtime":1768239263763,"hash":"90","data":"91"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/index.ts",{"size":142,"mtime":1768157708000,"hash":"92","data":"93"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/types/auth.ts",{"size":174,"mtime":1768188156942,"hash":"94","data":"95"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/crons.ts",{"size":528,"mtime":1774717276314,"hash":"96","data":"97"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/auth.config.ts",{"size":127,"mtime":1768156477000,"hash":"98","data":"99"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/server.d.ts",{"size":5600,"mtime":1774031968455,"hash":"100","data":"101"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/globals.d.ts",{"size":398,"mtime":1774717578524,"data":"102"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/README.md",{"size":2525,"mtime":1768155639000,"hash":"103","data":"104"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/api.d.ts",{"size":1566,"mtime":1774718093296,"hash":"105","data":"106"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/dataModel.d.ts",{"size":1737,"mtime":1774718093395,"hash":"107","data":"108"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/server.js",{"size":3696,"mtime":1774031968444,"hash":"109","data":"110"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/types/index.ts",{"size":69,"mtime":1768239263861,"hash":"111","data":"112"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/password.ts",{"size":966,"mtime":1774546669452,"hash":"113","data":"114"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/.cache/.prettiercache",{"size":5478,"mtime":1774715745919},"/home/gib/Documents/Code/convex-monorepo/packages/backend/.cache/.eslintcache",{"size":12307,"mtime":1774717492533},"/home/gib/Documents/Code/convex-monorepo/packages/backend/package.json",{"size":1374,"mtime":1774717505903,"hash":"115","data":"116"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/api.js",{"size":480,"mtime":1768372369903,"hash":"117","data":"118"},"175b1a771387d8b7e26145c3d04e0475","14f5e2d18e21f65282ac744b382f2d5f",{"hashOfOptions":"119"},"ccf5b9105ad4ff66fce0a7133fa3db4b",{"hashOfOptions":"120"},"cfa98923457caed911ec68b626ef4234",{"hashOfOptions":"121"},"4bbb95a66a1e615c30ea7c5098a4a609",{"hashOfOptions":"122"},"7e6dcc47831030bfaa3e235d2226cec6",{"hashOfOptions":"123"},{"hashOfOptions":"124"},"3d304208139ef0b2775272a5a4a2a970",{"hashOfOptions":"125"},"5ff3856f1a61b946df899f7c9880b72a",{"hashOfOptions":"126"},"8776a23ed6f2ab3681e4ba5b4bcf3d74",{"hashOfOptions":"127"},"f0f9ef72dc6fef350f3521d3fd8adfc7",{"hashOfOptions":"128"},"0d76c3867783aec5435b0c716f1bfc65",{"hashOfOptions":"129"},"2d4f4ccfc784af9d668d8c64726c2f6b",{"hashOfOptions":"130"},"6719b019702fc173de16b1bdc8e8ed47",{"hashOfOptions":"1Line truncated
|
||||
-2
@@ -15,7 +15,6 @@ import type * as custom_auth_providers_password from "../custom/auth/providers/p
|
||||
import type * as custom_auth_providers_usesend from "../custom/auth/providers/usesend.js";
|
||||
import type * as files from "../files.js";
|
||||
import type * as http from "../http.js";
|
||||
import type * as utils from "../utils.js";
|
||||
|
||||
import type {
|
||||
ApiFromModules,
|
||||
@@ -31,7 +30,6 @@ declare const fullApi: ApiFromModules<{
|
||||
"custom/auth/providers/usesend": typeof custom_auth_providers_usesend;
|
||||
files: typeof files;
|
||||
http: typeof http;
|
||||
utils: typeof utils;
|
||||
}>;
|
||||
|
||||
/**
|
||||
|
||||
+4
-5
@@ -11,12 +11,11 @@
|
||||
import type {
|
||||
DataModelFromSchemaDefinition,
|
||||
DocumentByName,
|
||||
SystemTableNames,
|
||||
TableNamesInDataModel,
|
||||
} from 'convex/server';
|
||||
import type { GenericId } from 'convex/values';
|
||||
|
||||
import schema from '../schema.js';
|
||||
SystemTableNames,
|
||||
} from "convex/server";
|
||||
import type { GenericId } from "convex/values";
|
||||
import schema from "../schema.js";
|
||||
|
||||
/**
|
||||
* The names of all of your Convex tables.
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
import { ConvexError, v } from 'convex/values';
|
||||
|
||||
import type { Doc, Id } from './_generated/dataModel';
|
||||
import type { MutationCtx, QueryCtx } from './_generated/server';
|
||||
import type { QueryCtx } from './_generated/server';
|
||||
import { api } from './_generated/api';
|
||||
import { action, mutation, query } from './_generated/server';
|
||||
import { Password, validatePassword } from './custom/auth';
|
||||
@@ -96,11 +96,10 @@ export const updateUserPassword = action({
|
||||
if (!userId) throw new ConvexError('Not authenticated.');
|
||||
const user = await ctx.runQuery(api.auth.getUser, { userId });
|
||||
if (!user?.email) throw new ConvexError('User not found.');
|
||||
const verified = await retrieveAccount(ctx, {
|
||||
await retrieveAccount(ctx, {
|
||||
provider: 'password',
|
||||
account: { id: user.email, secret: currentPassword },
|
||||
});
|
||||
if (!verified) throw new ConvexError('Current password is incorrect.');
|
||||
|
||||
if (!validatePassword(newPassword))
|
||||
throw new ConvexError('Invalid password.');
|
||||
|
||||
@@ -11,7 +11,7 @@ export default function UseSendProvider(config: EmailUserConfig): EmailConfig {
|
||||
from: process.env.USESEND_FROM_EMAIL ?? '[email protected]',
|
||||
maxAge: 24 * 60 * 60, // 24 hours
|
||||
|
||||
async generateVerificationToken() {
|
||||
generateVerificationToken() {
|
||||
const random: RandomReader = {
|
||||
read(bytes) {
|
||||
crypto.getRandomValues(bytes);
|
||||
@@ -26,17 +26,20 @@ export default function UseSendProvider(config: EmailUserConfig): EmailConfig {
|
||||
const siteUrl = process.env.USESEND_FROM_EMAIL ?? '';
|
||||
const appName = siteUrl.split('@')[1]?.split('.')[0] ?? 'App';
|
||||
|
||||
const useSend = new UseSend(
|
||||
process.env.USESEND_API_KEY!,
|
||||
process.env.USESEND_URL!,
|
||||
);
|
||||
const apiKey = process.env.USESEND_API_KEY;
|
||||
const useSendUrl = process.env.USESEND_URL;
|
||||
if (!apiKey || !useSendUrl) {
|
||||
throw new Error('USESEND_API_KEY and USESEND_URL must be set.');
|
||||
}
|
||||
|
||||
const useSend = new UseSend(apiKey, useSendUrl);
|
||||
|
||||
// For password reset, we want to send the code, not the magic link
|
||||
const isPasswordReset =
|
||||
url.includes('reset') || provider.id?.includes('reset');
|
||||
url.includes('reset') || provider.id.includes('reset');
|
||||
|
||||
const result = await useSend.emails.send({
|
||||
from: provider.from!,
|
||||
from: provider.from ?? '[email protected]',
|
||||
to: [to],
|
||||
subject: isPasswordReset
|
||||
? `Reset your password - ${appName}`
|
||||
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
// Declare process.env for Convex backend environment variables.
|
||||
// Convex supports process.env to read variables set in the Convex Dashboard.
|
||||
declare const process: {
|
||||
readonly env: {
|
||||
readonly USESEND_API_KEY?: string;
|
||||
readonly USESEND_URL?: string;
|
||||
readonly USESEND_FROM_EMAIL?: string;
|
||||
readonly CONVEX_CLOUD_URL?: string;
|
||||
readonly [key: string]: string | undefined;
|
||||
};
|
||||
};
|
||||
@@ -1,16 +0,0 @@
|
||||
export function missingEnvVariableUrl(envVarName: string, whereToGet: string) {
|
||||
const deployment = deploymentName();
|
||||
if (!deployment) return `Missing ${envVarName} in environment variables.`;
|
||||
return (
|
||||
`\n Missing ${envVarName} in environment variables.\n\n` +
|
||||
` Get it from ${whereToGet} .\n Paste it on the Convex dashboard:\n` +
|
||||
` https://dashboard.convex.dev/d/${deployment}/settings?var=${envVarName}`
|
||||
);
|
||||
}
|
||||
|
||||
export function deploymentName() {
|
||||
const url = process.env.CONVEX_CLOUD_URL;
|
||||
if (!url) return undefined;
|
||||
const regex = new RegExp('https://(.+).convex.cloud');
|
||||
return regex.exec(url)?.[1];
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { defineConfig } from 'eslint/config';
|
||||
|
||||
import { baseConfig } from '@gib/eslint-config/base';
|
||||
|
||||
export default defineConfig(
|
||||
{
|
||||
ignores: ['convex/_generated/**', 'types/**', 'scripts/**', 'dist/**'],
|
||||
},
|
||||
baseConfig,
|
||||
);
|
||||
@@ -36,6 +36,7 @@
|
||||
"@gib/eslint-config": "workspace:*",
|
||||
"@gib/prettier-config": "workspace:*",
|
||||
"@gib/tsconfig": "workspace:*",
|
||||
"@types/node": "catalog:",
|
||||
"eslint": "catalog:",
|
||||
"prettier": "catalog:",
|
||||
"react-email": "5.2.10",
|
||||
|
||||
Reference in new issue
Block a user