Update Zod package, improve code formatting, and add awaiting indicators
This commit includes three main changes. First, it updates the Zod library from version 3.23.4 to 3.23.5 across all relevant packages. Second, code readability has been enhanced by formatting modifications in several TypeScript files. Lastly, the user feedback on certain operations such as creating a team or charging for a payment is strengthened, by displaying an awaiting indicator until the operation is complete.
This commit is contained in:
@@ -20,6 +20,6 @@
|
|||||||
"@tanstack/react-table": "^8.16.0",
|
"@tanstack/react-table": "^8.16.0",
|
||||||
"next": "14.2.3",
|
"next": "14.2.3",
|
||||||
"tailwind-merge": "^2.3.0",
|
"tailwind-merge": "^2.3.0",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { Page } from '@playwright/test';
|
import { Page } from '@playwright/test';
|
||||||
|
|
||||||
import { AuthPageObject } from '../authentication/auth.po';
|
import { AuthPageObject } from '../authentication/auth.po';
|
||||||
import { TeamAccountsPageObject } from '../team-accounts/team-accounts.po';
|
import { TeamAccountsPageObject } from '../team-accounts/team-accounts.po';
|
||||||
|
|
||||||
@@ -17,10 +18,12 @@ export class InvitationsPageObject {
|
|||||||
await this.teamAccounts.setup();
|
await this.teamAccounts.setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async inviteMembers(invites: Array<{
|
public async inviteMembers(
|
||||||
|
invites: Array<{
|
||||||
email: string;
|
email: string;
|
||||||
role: string;
|
role: string;
|
||||||
}>) {
|
}>,
|
||||||
|
) {
|
||||||
const form = this.getInviteForm();
|
const form = this.getInviteForm();
|
||||||
|
|
||||||
for (let index = 0; index < invites.length; index++) {
|
for (let index = 0; index < invites.length; index++) {
|
||||||
@@ -30,12 +33,17 @@ export class InvitationsPageObject {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`Inviting ${invite.email} with role ${invite.role}...`)
|
console.log(`Inviting ${invite.email} with role ${invite.role}...`);
|
||||||
|
|
||||||
const nth = index + 1;
|
const nth = index + 1;
|
||||||
|
|
||||||
await this.page.fill(`[data-test="invite-member-form-item"]:nth-child(${nth}) [data-test="invite-email-input"]`, invite.email);
|
await this.page.fill(
|
||||||
await this.page.click(`[data-test="invite-member-form-item"]:nth-child(${nth}) [data-test="role-selector-trigger"]`);
|
`[data-test="invite-member-form-item"]:nth-child(${nth}) [data-test="invite-email-input"]`,
|
||||||
|
invite.email,
|
||||||
|
);
|
||||||
|
await this.page.click(
|
||||||
|
`[data-test="invite-member-form-item"]:nth-child(${nth}) [data-test="role-selector-trigger"]`,
|
||||||
|
);
|
||||||
await this.page.click(`[data-test="role-option-${invite.role}"]`);
|
await this.page.click(`[data-test="role-option-${invite.role}"]`);
|
||||||
|
|
||||||
if (index < invites.length - 1) {
|
if (index < invites.length - 1) {
|
||||||
@@ -47,23 +55,23 @@ export class InvitationsPageObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
navigateToMembers() {
|
navigateToMembers() {
|
||||||
return this.page.locator('a', {
|
return this.page
|
||||||
|
.locator('a', {
|
||||||
hasText: 'Members',
|
hasText: 'Members',
|
||||||
}).click();
|
})
|
||||||
|
.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
async openInviteForm() {
|
openInviteForm() {
|
||||||
await this.page.locator('[data-test="invite-members-form-trigger"]').click();
|
return this.page
|
||||||
|
.locator('[data-test="invite-members-form-trigger"]')
|
||||||
|
.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
async getInvitations() {
|
getInvitations() {
|
||||||
return this.page.locator('[data-test="invitation-email"]');
|
return this.page.locator('[data-test="invitation-email"]');
|
||||||
}
|
}
|
||||||
|
|
||||||
private getInviteForm() {
|
|
||||||
return this.page.locator('[data-test="invite-members-form"]');
|
|
||||||
}
|
|
||||||
|
|
||||||
async deleteInvitation(email: string) {
|
async deleteInvitation(email: string) {
|
||||||
const actions = this.getInvitationRow(email).getByRole('button');
|
const actions = this.getInvitationRow(email).getByRole('button');
|
||||||
|
|
||||||
@@ -71,7 +79,9 @@ export class InvitationsPageObject {
|
|||||||
|
|
||||||
await this.page.locator('[data-test="remove-invitation-trigger"]').click();
|
await this.page.locator('[data-test="remove-invitation-trigger"]').click();
|
||||||
|
|
||||||
await this.page.click('[data-test="delete-invitation-form"] button[type="submit"]');
|
await this.page.click(
|
||||||
|
'[data-test="delete-invitation-form"] button[type="submit"]',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getInvitationRow(email: string) {
|
getInvitationRow(email: string) {
|
||||||
@@ -89,16 +99,27 @@ export class InvitationsPageObject {
|
|||||||
await this.page.click(`[data-test="role-selector-trigger"]`);
|
await this.page.click(`[data-test="role-selector-trigger"]`);
|
||||||
await this.page.click(`[data-test="role-option-${role}"]`);
|
await this.page.click(`[data-test="role-option-${role}"]`);
|
||||||
|
|
||||||
await this.page.click('[data-test="update-invitation-form"] button[type="submit"]');
|
await this.page.click(
|
||||||
|
'[data-test="update-invitation-form"] button[type="submit"]',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async acceptInvitation() {
|
async acceptInvitation() {
|
||||||
console.log('Accepting invitation...');
|
console.log('Accepting invitation...');
|
||||||
|
|
||||||
await this.page.locator('[data-test="join-team-form"] button[type="submit"]').click();
|
await this.page
|
||||||
|
.locator('[data-test="join-team-form"] button[type="submit"]')
|
||||||
|
.click();
|
||||||
|
|
||||||
await this.page.waitForResponse(response => {
|
await this.page.waitForResponse((response) => {
|
||||||
return response.url().includes('/join') && response.request().method() === 'POST';
|
return (
|
||||||
|
response.url().includes('/join') &&
|
||||||
|
response.request().method() === 'POST'
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private getInviteForm() {
|
||||||
|
return this.page.locator('[data-test="invite-members-form"]');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -28,11 +28,11 @@ test.describe('Invitations', () => {
|
|||||||
|
|
||||||
await invitations.inviteMembers(invites);
|
await invitations.inviteMembers(invites);
|
||||||
|
|
||||||
await expect(await invitations.getInvitations()).toHaveCount(1);
|
await expect(invitations.getInvitations()).toHaveCount(1);
|
||||||
|
|
||||||
await invitations.deleteInvitation(email);
|
await invitations.deleteInvitation(email);
|
||||||
|
|
||||||
await expect(await invitations.getInvitations()).toHaveCount(0);
|
await expect(invitations.getInvitations()).toHaveCount(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('users can update invites', async () => {
|
test('users can update invites', async () => {
|
||||||
@@ -50,7 +50,7 @@ test.describe('Invitations', () => {
|
|||||||
|
|
||||||
await invitations.inviteMembers(invites);
|
await invitations.inviteMembers(invites);
|
||||||
|
|
||||||
await expect(await invitations.getInvitations()).toHaveCount(1);
|
await expect(invitations.getInvitations()).toHaveCount(1);
|
||||||
|
|
||||||
await invitations.updateInvitation(email, 'owner');
|
await invitations.updateInvitation(email, 'owner');
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ test.describe('Full Invitation Flow', () => {
|
|||||||
|
|
||||||
const firstEmail = invites[0]!.email;
|
const firstEmail = invites[0]!.email;
|
||||||
|
|
||||||
await expect(await invitations.getInvitations()).toHaveCount(2);
|
await expect(invitations.getInvitations()).toHaveCount(2);
|
||||||
|
|
||||||
// sign out and sign in with the first email
|
// sign out and sign in with the first email
|
||||||
await invitations.auth.signOut();
|
await invitations.auth.signOut();
|
||||||
@@ -115,6 +115,6 @@ test.describe('Full Invitation Flow', () => {
|
|||||||
|
|
||||||
await invitations.teamAccounts.openAccountsSelector();
|
await invitations.teamAccounts.openAccountsSelector();
|
||||||
|
|
||||||
await expect(await invitations.teamAccounts.getTeams()).toHaveCount(1);
|
await expect(invitations.teamAccounts.getTeams()).toHaveCount(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { expect, Page } from '@playwright/test';
|
import { Page, expect } from '@playwright/test';
|
||||||
|
|
||||||
import { AuthPageObject } from '../authentication/auth.po';
|
import { AuthPageObject } from '../authentication/auth.po';
|
||||||
|
|
||||||
export class TeamAccountsPageObject {
|
export class TeamAccountsPageObject {
|
||||||
@@ -15,34 +16,40 @@ export class TeamAccountsPageObject {
|
|||||||
await this.createTeam(params);
|
await this.createTeam(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
async getTeamFromSelector(teamSlug: string) {
|
getTeamFromSelector(teamSlug: string) {
|
||||||
await this.openAccountsSelector();
|
return this.page.locator(
|
||||||
|
`[data-test="account-selector-team"][data-value="${teamSlug}"]`,
|
||||||
return this.page.locator(`[data-test="account-selector-team"][data-value="${teamSlug}"]`);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async selectAccount(teamName: string) {
|
selectAccount(teamName: string) {
|
||||||
await this.page.click(`[data-test="account-selector-team"][data-name="${teamName}"]`);
|
return this.page.click(
|
||||||
|
`[data-test="account-selector-team"][data-name="${teamName}"]`,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async getTeams() {
|
getTeams() {
|
||||||
await this.openAccountsSelector();
|
|
||||||
|
|
||||||
return this.page.locator('[data-test="account-selector-team"]');
|
return this.page.locator('[data-test="account-selector-team"]');
|
||||||
}
|
}
|
||||||
|
|
||||||
goToSettings() {
|
goToSettings() {
|
||||||
return this.page.locator('a', {
|
return this.page
|
||||||
|
.locator('a', {
|
||||||
hasText: 'Settings',
|
hasText: 'Settings',
|
||||||
}).click();
|
})
|
||||||
|
.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
goToBilling() {
|
goToBilling() {
|
||||||
return this.page.getByRole('button', { name: 'Billing' }).click();
|
return this.page
|
||||||
|
.locator('a', {
|
||||||
|
hasText: 'Billing',
|
||||||
|
})
|
||||||
|
.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
async openAccountsSelector() {
|
openAccountsSelector() {
|
||||||
await this.page.click('[data-test="account-selector-trigger"]');
|
return this.page.click('[data-test="account-selector-trigger"]');
|
||||||
}
|
}
|
||||||
|
|
||||||
async createTeam({ teamName, slug } = this.createTeamName()) {
|
async createTeam({ teamName, slug } = this.createTeamName()) {
|
||||||
@@ -51,19 +58,32 @@ export class TeamAccountsPageObject {
|
|||||||
await this.page.click('[data-test="create-team-account-trigger"]');
|
await this.page.click('[data-test="create-team-account-trigger"]');
|
||||||
await this.page.fill('[data-test="create-team-form"] input', teamName);
|
await this.page.fill('[data-test="create-team-form"] input', teamName);
|
||||||
await this.page.click('[data-test="create-team-form"] button:last-child');
|
await this.page.click('[data-test="create-team-form"] button:last-child');
|
||||||
|
|
||||||
|
await this.page.waitForURL(`/home/${slug}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async updateName(name: string) {
|
async updateName(name: string) {
|
||||||
await this.page.fill('[data-test="update-team-account-name-form"] input', name);
|
await this.page.fill(
|
||||||
|
'[data-test="update-team-account-name-form"] input',
|
||||||
|
name,
|
||||||
|
);
|
||||||
|
|
||||||
await this.page.click('[data-test="update-team-account-name-form"] button');
|
await this.page.click('[data-test="update-team-account-name-form"] button');
|
||||||
}
|
}
|
||||||
|
|
||||||
async deleteAccount(teamName: string) {
|
async deleteAccount(teamName: string) {
|
||||||
await this.page.click('[data-test="delete-team-trigger"]');
|
await this.page.click('[data-test="delete-team-trigger"]');
|
||||||
|
|
||||||
expect(await this.page.locator('[data-test="delete-team-form-confirm-input"]').isVisible()).toBeTruthy();
|
expect(
|
||||||
|
await this.page
|
||||||
|
.locator('[data-test="delete-team-form-confirm-input"]')
|
||||||
|
.isVisible(),
|
||||||
|
).toBeTruthy();
|
||||||
|
|
||||||
await this.page.fill('[data-test="delete-team-form-confirm-input"]', teamName);
|
await this.page.fill(
|
||||||
|
'[data-test="delete-team-form-confirm-input"]',
|
||||||
|
teamName,
|
||||||
|
);
|
||||||
await this.page.click('[data-test="delete-team-form-confirm-button"]');
|
await this.page.click('[data-test="delete-team-form-confirm-button"]');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { expect, Page, test } from '@playwright/test';
|
import { Page, expect, test } from '@playwright/test';
|
||||||
|
|
||||||
import { TeamAccountsPageObject } from './team-accounts.po';
|
import { TeamAccountsPageObject } from './team-accounts.po';
|
||||||
|
|
||||||
test.describe('Team Accounts', () => {
|
test.describe('Team Accounts', () => {
|
||||||
@@ -13,7 +14,7 @@ test.describe('Team Accounts', () => {
|
|||||||
test('user can update their team name (and slug)', async () => {
|
test('user can update their team name (and slug)', async () => {
|
||||||
await teamAccounts.setup();
|
await teamAccounts.setup();
|
||||||
|
|
||||||
const {teamName, slug} = teamAccounts.createTeamName();
|
const { teamName, slug } = teamAccounts.createTeamName();
|
||||||
|
|
||||||
await teamAccounts.goToSettings();
|
await teamAccounts.goToSettings();
|
||||||
await teamAccounts.updateName(teamName);
|
await teamAccounts.updateName(teamName);
|
||||||
@@ -21,7 +22,9 @@ test.describe('Team Accounts', () => {
|
|||||||
// the slug should be updated to match the new team name
|
// the slug should be updated to match the new team name
|
||||||
await page.waitForURL(`http://localhost:3000/home/${slug}/settings`);
|
await page.waitForURL(`http://localhost:3000/home/${slug}/settings`);
|
||||||
|
|
||||||
await expect(await teamAccounts.getTeamFromSelector(slug)).toBeVisible();
|
await teamAccounts.openAccountsSelector();
|
||||||
|
|
||||||
|
await expect(teamAccounts.getTeamFromSelector(slug)).toBeVisible();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -34,7 +37,10 @@ test.describe('Account Deletion', () => {
|
|||||||
await teamAccounts.goToSettings();
|
await teamAccounts.goToSettings();
|
||||||
|
|
||||||
await teamAccounts.deleteAccount(params.teamName);
|
await teamAccounts.deleteAccount(params.teamName);
|
||||||
|
await teamAccounts.openAccountsSelector();
|
||||||
|
|
||||||
await expect(await teamAccounts.getTeamFromSelector(params.slug)).not.toBeVisible();
|
await expect(
|
||||||
|
teamAccounts.getTeamFromSelector(params.slug),
|
||||||
|
).not.toBeVisible();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import { Page } from '@playwright/test';
|
import { Page } from '@playwright/test';
|
||||||
|
|
||||||
import { TeamAccountsPageObject } from '../team-accounts/team-accounts.po';
|
import { TeamAccountsPageObject } from '../team-accounts/team-accounts.po';
|
||||||
import { BillingPageObject } from '../utils/billing.po';
|
import { BillingPageObject } from '../utils/billing.po';
|
||||||
|
|
||||||
@@ -11,7 +12,7 @@ export class TeamBillingPageObject {
|
|||||||
this.billing = new BillingPageObject(page);
|
this.billing = new BillingPageObject(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
async setup() {
|
setup() {
|
||||||
await this.teamAccounts.setup();
|
return this.teamAccounts.setup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,10 +11,11 @@ test.describe('Team Billing', () => {
|
|||||||
po = new TeamBillingPageObject(page);
|
po = new TeamBillingPageObject(page);
|
||||||
|
|
||||||
await po.setup();
|
await po.setup();
|
||||||
await po.teamAccounts.goToBilling();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('a team can subscribe to a plan', async () => {
|
test('a team can subscribe to a plan', async () => {
|
||||||
|
await po.teamAccounts.goToBilling();
|
||||||
|
|
||||||
await po.billing.selectPlan(0);
|
await po.billing.selectPlan(0);
|
||||||
await po.billing.proceedToCheckout();
|
await po.billing.proceedToCheckout();
|
||||||
|
|
||||||
@@ -27,7 +28,7 @@ test.describe('Team Billing', () => {
|
|||||||
|
|
||||||
await po.billing.returnToBilling();
|
await po.billing.returnToBilling();
|
||||||
|
|
||||||
await expect(await po.billing.getStatus()).toContainText('Active');
|
await expect(po.billing.getStatus()).toContainText('Active');
|
||||||
await expect(po.billing.manageBillingButton()).toBeVisible();
|
await expect(po.billing.manageBillingButton()).toBeVisible();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ test.describe('User Billing', () => {
|
|||||||
|
|
||||||
await po.billing.returnToBilling();
|
await po.billing.returnToBilling();
|
||||||
|
|
||||||
await expect(await po.billing.getStatus()).toContainText('Active');
|
await expect(po.billing.getStatus()).toContainText('Active');
|
||||||
await expect(po.billing.manageBillingButton()).toBeVisible();
|
await expect(po.billing.manageBillingButton()).toBeVisible();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
import { Page } from '@playwright/test';
|
import { Page } from '@playwright/test';
|
||||||
|
|
||||||
import { StripePageObject } from './stripe.po';
|
import { StripePageObject } from './stripe.po';
|
||||||
|
|
||||||
export class BillingPageObject {
|
export class BillingPageObject {
|
||||||
public readonly stripe: StripePageObject;
|
public readonly stripe: StripePageObject;
|
||||||
|
|
||||||
constructor(
|
constructor(private readonly page: Page) {
|
||||||
private readonly page: Page,
|
|
||||||
) {
|
|
||||||
this.stripe = new StripePageObject(page);
|
this.stripe = new StripePageObject(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,14 +31,16 @@ export class BillingPageObject {
|
|||||||
// wait a bit for the webhook to be processed
|
// wait a bit for the webhook to be processed
|
||||||
await this.page.waitForTimeout(1000);
|
await this.page.waitForTimeout(1000);
|
||||||
|
|
||||||
await this.page.locator('[data-test="checkout-success-back-link"]').click();
|
return this.page
|
||||||
|
.locator('[data-test="checkout-success-back-link"]')
|
||||||
|
.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
proceedToCheckout() {
|
proceedToCheckout() {
|
||||||
return this.page.click('[data-test="checkout-submit-button"]');
|
return this.page.click('[data-test="checkout-submit-button"]');
|
||||||
}
|
}
|
||||||
|
|
||||||
async getStatus() {
|
getStatus() {
|
||||||
return this.page.locator('[data-test="current-plan-card-status-badge"]');
|
return this.page.locator('[data-test="current-plan-card-status-badge"]');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"recharts": "^2.12.6",
|
"recharts": "^2.12.6",
|
||||||
"sonner": "^1.4.41",
|
"sonner": "^1.4.41",
|
||||||
"tailwind-merge": "^2.3.0",
|
"tailwind-merge": "^2.3.0",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@kit/eslint-config": "workspace:^",
|
"@kit/eslint-config": "workspace:^",
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
"dotenv-cli": "^7.4.1",
|
"dotenv-cli": "^7.4.1",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.0",
|
||||||
"prettier": "^3.2.5",
|
"prettier": "^3.2.5",
|
||||||
"supabase": "^1.163.6",
|
"supabase": "^1.164.1",
|
||||||
"tailwindcss": "3.4.3",
|
"tailwindcss": "3.4.3",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.4.5"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"lifetime": "Lifetime",
|
"lifetime": "Lifetime",
|
||||||
"trialPeriod": "{{period}} day trial",
|
"trialPeriod": "{{period}} day trial",
|
||||||
"perPeriod": "per {{period}}",
|
"perPeriod": "per {{period}}",
|
||||||
"processing": "Processing...",
|
"redirectingToPayment": "Redirecting to checkout. Please wait...",
|
||||||
"proceedToPayment": "Proceed to Payment",
|
"proceedToPayment": "Proceed to Payment",
|
||||||
"startTrial": "Start Trial",
|
"startTrial": "Start Trial",
|
||||||
"perTeamMember": "Per team member",
|
"perTeamMember": "Per team member",
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
},
|
},
|
||||||
"yourTeams": "Your Teams ({{teamsCount}})",
|
"yourTeams": "Your Teams ({{teamsCount}})",
|
||||||
"createTeam": "Create a Team",
|
"createTeam": "Create a Team",
|
||||||
|
"creatingTeam": "Creating Team...",
|
||||||
"personalAccount": "Personal Account",
|
"personalAccount": "Personal Account",
|
||||||
"searchAccount": "Search Account...",
|
"searchAccount": "Search Account...",
|
||||||
"membersTabLabel": "Members",
|
"membersTabLabel": "Members",
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
"@kit/tailwind-config": "workspace:*",
|
"@kit/tailwind-config": "workspace:*",
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@kit/ui": "workspace:*",
|
"@kit/ui": "workspace:*",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
"react": "18.3.1",
|
"react": "18.3.1",
|
||||||
"react-hook-form": "^7.51.3",
|
"react-hook-form": "^7.51.3",
|
||||||
"react-i18next": "^14.1.1",
|
"react-i18next": "^14.1.1",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
@@ -356,7 +356,7 @@ export function PlanPicker(
|
|||||||
disabled={props.pending ?? !form.formState.isValid}
|
disabled={props.pending ?? !form.formState.isValid}
|
||||||
>
|
>
|
||||||
{props.pending ? (
|
{props.pending ? (
|
||||||
t('processing')
|
t('redirectingToPayment')
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
<If
|
<If
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
"@types/react": "^18.3.1",
|
"@types/react": "^18.3.1",
|
||||||
"next": "14.2.3",
|
"next": "14.2.3",
|
||||||
"react": "18.3.1",
|
"react": "18.3.1",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
"date-fns": "^3.6.0",
|
"date-fns": "^3.6.0",
|
||||||
"next": "14.2.3",
|
"next": "14.2.3",
|
||||||
"react": "18.3.1",
|
"react": "18.3.1",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@kit/ui": "workspace:^",
|
"@kit/ui": "workspace:^",
|
||||||
"@types/node": "^20.12.7",
|
"@types/node": "^20.12.7",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
"@kit/team-accounts": "workspace:^",
|
"@kit/team-accounts": "workspace:^",
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@supabase/supabase-js": "^2.42.7",
|
"@supabase/supabase-js": "^2.42.7",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
"react-hook-form": "^7.51.3",
|
"react-hook-form": "^7.51.3",
|
||||||
"react-i18next": "^14.1.1",
|
"react-i18next": "^14.1.1",
|
||||||
"sonner": "^1.4.41",
|
"sonner": "^1.4.41",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"prettier": "@kit/prettier-config",
|
"prettier": "@kit/prettier-config",
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"react": "18.3.1",
|
"react": "18.3.1",
|
||||||
"react-dom": "18.3.1",
|
"react-dom": "18.3.1",
|
||||||
"react-hook-form": "^7.51.3",
|
"react-hook-form": "^7.51.3",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.ts",
|
".": "./src/index.ts",
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
"react-hook-form": "^7.51.3",
|
"react-hook-form": "^7.51.3",
|
||||||
"react-i18next": "^14.1.1",
|
"react-i18next": "^14.1.1",
|
||||||
"sonner": "^1.4.41",
|
"sonner": "^1.4.41",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"prettier": "@kit/prettier-config",
|
"prettier": "@kit/prettier-config",
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
"react-hook-form": "^7.51.3",
|
"react-hook-form": "^7.51.3",
|
||||||
"react-i18next": "^14.1.1",
|
"react-i18next": "^14.1.1",
|
||||||
"sonner": "^1.4.41",
|
"sonner": "^1.4.41",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"prettier": "@kit/prettier-config",
|
"prettier": "@kit/prettier-config",
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
|
|||||||
@@ -120,15 +120,19 @@ function CreateOrganizationAccountForm(props: { onClose: () => void }) {
|
|||||||
<div className={'flex justify-end space-x-2'}>
|
<div className={'flex justify-end space-x-2'}>
|
||||||
<Button
|
<Button
|
||||||
variant={'outline'}
|
variant={'outline'}
|
||||||
disabled={pending}
|
|
||||||
type={'button'}
|
type={'button'}
|
||||||
|
disabled={pending}
|
||||||
onClick={props.onClose}
|
onClick={props.onClose}
|
||||||
>
|
>
|
||||||
<Trans i18nKey={'common:cancel'} />
|
<Trans i18nKey={'common:cancel'} />
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button data-test={'confirm-create-team-button'} disabled={pending}>
|
<Button data-test={'confirm-create-team-button'} disabled={pending}>
|
||||||
|
{pending ? (
|
||||||
|
<Trans i18nKey={'teams:creatingTeam'} />
|
||||||
|
) : (
|
||||||
<Trans i18nKey={'teams:createTeamSubmitLabel'} />
|
<Trans i18nKey={'teams:createTeamSubmitLabel'} />
|
||||||
|
)}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ import { CreateTeamSchema } from '../../schema/create-team.schema';
|
|||||||
import { createCreateTeamAccountService } from '../services/create-team-account.service';
|
import { createCreateTeamAccountService } from '../services/create-team-account.service';
|
||||||
|
|
||||||
export const createOrganizationAccountAction = enhanceAction(
|
export const createOrganizationAccountAction = enhanceAction(
|
||||||
async (params, user) => {
|
async ({ name }, user) => {
|
||||||
const client = getSupabaseServerActionClient();
|
const client = getSupabaseServerActionClient();
|
||||||
const service = createCreateTeamAccountService(client);
|
const service = createCreateTeamAccountService(client);
|
||||||
|
|
||||||
const { data, error } = await service.createNewOrganizationAccount({
|
const { data, error } = await service.createNewOrganizationAccount({
|
||||||
name: params.name,
|
name,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
"@kit/tailwind-config": "workspace:*",
|
"@kit/tailwind-config": "workspace:*",
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@types/nodemailer": "6.4.14",
|
"@types/nodemailer": "6.4.14",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@types/react": "^18.3.1",
|
"@types/react": "^18.3.1",
|
||||||
"react": "18.3.1",
|
"react": "18.3.1",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@supabase/supabase-js": "^2.42.7",
|
"@supabase/supabase-js": "^2.42.7",
|
||||||
"next": "14.2.3",
|
"next": "14.2.3",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
"@types/react": "^18.3.1",
|
"@types/react": "^18.3.1",
|
||||||
"next": "14.2.3",
|
"next": "14.2.3",
|
||||||
"react": "18.3.1",
|
"react": "18.3.1",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
"tailwindcss": "3.4.3",
|
"tailwindcss": "3.4.3",
|
||||||
"tailwindcss-animate": "^1.0.7",
|
"tailwindcss-animate": "^1.0.7",
|
||||||
"typescript": "^5.4.5",
|
"typescript": "^5.4.5",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
98
pnpm-lock.yaml
generated
98
pnpm-lock.yaml
generated
@@ -45,8 +45,8 @@ importers:
|
|||||||
specifier: ^2.3.0
|
specifier: ^2.3.0
|
||||||
version: 2.3.0
|
version: 2.3.0
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@playwright/test':
|
'@playwright/test':
|
||||||
specifier: ^1.43.1
|
specifier: ^1.43.1
|
||||||
@@ -178,8 +178,8 @@ importers:
|
|||||||
specifier: ^2.3.0
|
specifier: ^2.3.0
|
||||||
version: 2.3.0
|
version: 2.3.0
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@kit/eslint-config':
|
'@kit/eslint-config':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
@@ -221,8 +221,8 @@ importers:
|
|||||||
specifier: ^3.2.5
|
specifier: ^3.2.5
|
||||||
version: 3.2.5
|
version: 3.2.5
|
||||||
supabase:
|
supabase:
|
||||||
specifier: ^1.163.6
|
specifier: ^1.164.1
|
||||||
version: 1.163.6
|
version: 1.164.1
|
||||||
tailwindcss:
|
tailwindcss:
|
||||||
specifier: 3.4.3
|
specifier: 3.4.3
|
||||||
version: 3.4.3
|
version: 3.4.3
|
||||||
@@ -251,8 +251,8 @@ importers:
|
|||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../ui
|
version: link:../../ui
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/billing/gateway:
|
packages/billing/gateway:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@@ -314,8 +314,8 @@ importers:
|
|||||||
specifier: ^14.1.1
|
specifier: ^14.1.1
|
||||||
version: 14.1.1(i18next@23.11.3)(react-dom@18.3.1)(react@18.3.1)
|
version: 14.1.1(i18next@23.11.3)(react-dom@18.3.1)(react@18.3.1)
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/billing/lemon-squeezy:
|
packages/billing/lemon-squeezy:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -357,8 +357,8 @@ importers:
|
|||||||
specifier: 18.3.1
|
specifier: 18.3.1
|
||||||
version: 18.3.1
|
version: 18.3.1
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/billing/stripe:
|
packages/billing/stripe:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -409,8 +409,8 @@ importers:
|
|||||||
specifier: 18.3.1
|
specifier: 18.3.1
|
||||||
version: 18.3.1
|
version: 18.3.1
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/cms/core:
|
packages/cms/core:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@@ -455,8 +455,8 @@ importers:
|
|||||||
specifier: ^20.12.7
|
specifier: ^20.12.7
|
||||||
version: 20.12.7
|
version: 20.12.7
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/cms/wordpress:
|
packages/cms/wordpress:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@@ -518,8 +518,8 @@ importers:
|
|||||||
specifier: ^2.42.7
|
specifier: ^2.42.7
|
||||||
version: 2.42.7
|
version: 2.42.7
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/email-templates:
|
packages/email-templates:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -625,8 +625,8 @@ importers:
|
|||||||
specifier: ^1.4.41
|
specifier: ^1.4.41
|
||||||
version: 1.4.41(react-dom@18.3.1)(react@18.3.1)
|
version: 1.4.41(react-dom@18.3.1)(react@18.3.1)
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/features/admin:
|
packages/features/admin:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@@ -688,8 +688,8 @@ importers:
|
|||||||
specifier: ^7.51.3
|
specifier: ^7.51.3
|
||||||
version: 7.51.3(react@18.3.1)
|
version: 7.51.3(react@18.3.1)
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/features/auth:
|
packages/features/auth:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@@ -748,8 +748,8 @@ importers:
|
|||||||
specifier: ^1.4.41
|
specifier: ^1.4.41
|
||||||
version: 1.4.41(react-dom@18.3.1)(react@18.3.1)
|
version: 1.4.41(react-dom@18.3.1)(react@18.3.1)
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/features/notifications:
|
packages/features/notifications:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@@ -881,8 +881,8 @@ importers:
|
|||||||
specifier: ^1.4.41
|
specifier: ^1.4.41
|
||||||
version: 1.4.41(react-dom@18.3.1)(react@18.3.1)
|
version: 1.4.41(react-dom@18.3.1)(react@18.3.1)
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/i18n:
|
packages/i18n:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -943,8 +943,8 @@ importers:
|
|||||||
specifier: 6.4.14
|
specifier: 6.4.14
|
||||||
version: 6.4.14
|
version: 6.4.14
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/monitoring/api:
|
packages/monitoring/api:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@@ -1007,8 +1007,8 @@ importers:
|
|||||||
specifier: 18.3.1
|
specifier: 18.3.1
|
||||||
version: 18.3.1
|
version: 18.3.1
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/monitoring/core:
|
packages/monitoring/core:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@@ -1101,8 +1101,8 @@ importers:
|
|||||||
specifier: 14.2.3
|
specifier: 14.2.3
|
||||||
version: 14.2.3(@opentelemetry/api@1.8.0)(react-dom@18.3.1)(react@18.3.1)
|
version: 14.2.3(@opentelemetry/api@1.8.0)(react-dom@18.3.1)(react@18.3.1)
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/shared:
|
packages/shared:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1162,8 +1162,8 @@ importers:
|
|||||||
specifier: 18.3.1
|
specifier: 18.3.1
|
||||||
version: 18.3.1
|
version: 18.3.1
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages/ui:
|
packages/ui:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1304,8 +1304,8 @@ importers:
|
|||||||
specifier: ^5.4.5
|
specifier: ^5.4.5
|
||||||
version: 5.4.5
|
version: 5.4.5
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
tooling/eslint:
|
tooling/eslint:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1349,8 +1349,8 @@ importers:
|
|||||||
specifier: ^2.3.0
|
specifier: ^2.3.0
|
||||||
version: 2.3.0
|
version: 2.3.0
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@kit/prettier-config':
|
'@kit/prettier-config':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
@@ -1386,8 +1386,8 @@ importers:
|
|||||||
specifier: ^2.3.0
|
specifier: ^2.3.0
|
||||||
version: 2.3.0
|
version: 2.3.0
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@kit/tsconfig':
|
'@kit/tsconfig':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
@@ -1420,8 +1420,8 @@ importers:
|
|||||||
specifier: ^1.0.7
|
specifier: ^1.0.7
|
||||||
version: 1.0.7(tailwindcss@3.4.3)
|
version: 1.0.7(tailwindcss@3.4.3)
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@kit/eslint-config':
|
'@kit/eslint-config':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
@@ -1454,8 +1454,8 @@ importers:
|
|||||||
specifier: ^2.3.0
|
specifier: ^2.3.0
|
||||||
version: 2.3.0
|
version: 2.3.0
|
||||||
zod:
|
zod:
|
||||||
specifier: ^3.23.4
|
specifier: ^3.23.5
|
||||||
version: 3.23.4
|
version: 3.23.5
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -2276,7 +2276,7 @@ packages:
|
|||||||
y-prosemirror: 1.2.3(prosemirror-model@1.20.0)(prosemirror-state@1.4.3)(prosemirror-view@1.33.5)(y-protocols@1.0.6)(yjs@13.6.15)
|
y-prosemirror: 1.2.3(prosemirror-model@1.20.0)(prosemirror-state@1.4.3)(prosemirror-view@1.33.5)(y-protocols@1.0.6)(yjs@13.6.15)
|
||||||
y-protocols: 1.0.6(yjs@13.6.15)
|
y-protocols: 1.0.6(yjs@13.6.15)
|
||||||
yjs: 13.6.15
|
yjs: 13.6.15
|
||||||
zod: 3.23.4
|
zod: 3.23.5
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- next
|
- next
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -11901,8 +11901,8 @@ packages:
|
|||||||
pirates: 4.0.6
|
pirates: 4.0.6
|
||||||
ts-interface-checker: 0.1.13
|
ts-interface-checker: 0.1.13
|
||||||
|
|
||||||
/supabase@1.163.6:
|
/supabase@1.164.1:
|
||||||
resolution: {integrity: sha512-GuanZQdIEGXCWz1UYIMPDmIsAdqD8IiqnATqfNSqlWMYK4y4X912HxyGW1sjYZjQar/10RSkSwPAsRLwDTAxrw==}
|
resolution: {integrity: sha512-1NwkDBW9Ny28Nhdxwf79tyU/x3BLNWNw/9m5olZXvJZvhaZhOCKt1JZgPnSYX/eXS2OQiKd8MJkE0gMYRZorew==}
|
||||||
engines: {npm: '>=8'}
|
engines: {npm: '>=8'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
@@ -12785,8 +12785,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
/zod@3.23.4:
|
/zod@3.23.5:
|
||||||
resolution: {integrity: sha512-/AtWOKbBgjzEYYQRNfoGKHObgfAZag6qUJX1VbHo2PRBgS+wfWagEY2mizjfyAPcGesrJOcx/wcl0L9WnVrHFw==}
|
resolution: {integrity: sha512-fkwiq0VIQTksNNA131rDOsVJcns0pfVUjHzLrNBiF/O/Xxb5lQyEXkhZWcJ7npWsYlvs+h0jFWXXy4X46Em1JA==}
|
||||||
|
|
||||||
/zwitch@2.0.4:
|
/zwitch@2.0.4:
|
||||||
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
|
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
"eslint-plugin-react-hooks": "^4.6.2",
|
"eslint-plugin-react-hooks": "^4.6.2",
|
||||||
"next": "14.2.3",
|
"next": "14.2.3",
|
||||||
"tailwind-merge": "^2.3.0",
|
"tailwind-merge": "^2.3.0",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@kit/prettier-config": "workspace:^",
|
"@kit/prettier-config": "workspace:^",
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
"prettier": "^3.2.5",
|
"prettier": "^3.2.5",
|
||||||
"prettier-plugin-tailwindcss": "^0.5.14",
|
"prettier-plugin-tailwindcss": "^0.5.14",
|
||||||
"tailwind-merge": "^2.3.0",
|
"tailwind-merge": "^2.3.0",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@kit/tsconfig": "workspace:^",
|
"@kit/tsconfig": "workspace:^",
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
"tailwind-merge": "^2.3.0",
|
"tailwind-merge": "^2.3.0",
|
||||||
"tailwindcss": "3.4.3",
|
"tailwindcss": "3.4.3",
|
||||||
"tailwindcss-animate": "^1.0.7",
|
"tailwindcss-animate": "^1.0.7",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@kit/eslint-config": "workspace:^",
|
"@kit/eslint-config": "workspace:^",
|
||||||
|
|||||||
@@ -9,6 +9,6 @@
|
|||||||
"@tanstack/react-table": "^8.16.0",
|
"@tanstack/react-table": "^8.16.0",
|
||||||
"next": "14.2.3",
|
"next": "14.2.3",
|
||||||
"tailwind-merge": "^2.3.0",
|
"tailwind-merge": "^2.3.0",
|
||||||
"zod": "^3.23.4"
|
"zod": "^3.23.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user