145 Commits

Author SHA1 Message Date
giancarlo
1e047463c8 Upgrade dependencies and enhance UI components
This commit primarily focuses on updating various dependencies, including "@types/react", "@tanstack/react-query", "lucide-react", and others. In addition, several adjustments have been made to UI components, such as adding more properties
2024-05-27 16:12:29 +07:00
giancarlo
428805f791 Update logic for setting active subscription status
Broaden the conditions for active subscriptions in the lemon-squeezy-webhook-handler.service. Now, subscriptions that are cancelled but still within their valid period (cancelAtPeriodEnd) are considered active. This helps prevent users from losing access to services until their current subscription period strictly ends.
2024-05-22 00:49:26 +07:00
giancarlo
a115e37535 Update error handling and function calls in billing services
Minor modifications made to the billing service handlers to improve data interpretation and error processing. The 'getLineItemTypeById' function now uses 'item.variant' for more accurate line item type identification. Unnecessary 'Crypto' object instantiation has been removed in 'createHmac', while improved formatting applied to the error logging within the billing webhook.
2024-05-21 20:41:41 +07:00
giancarlo
3cf3c263bc Fixed issue with one-time payments; Updated packages 2024-05-18 22:56:57 +07:00
giancarlo
09c24346a6 Update logging and return statements in billing services
The commit modifies the logging level in the billing services from 'error' to 'info'. Moreover, the error statement has been modified to clarify that the subscription cancellation has possibly been done by the user. Also, it reduces redundant imports and beefs up the return structure in stripe-billing-strategy.service.
2024-05-15 11:28:37 +07:00
Giancarlo Buomprisco
4e50094808 Fix upsert billing (#24)
This commit updates the product_id and variant_id in both the subscription_items and order_items in the billing tests. Updates also include adding new checks to verify these changes. Changes are reflected in corresponding SQL files for personal and team billing subscriptions/orders tests.
2024-05-15 11:08:19 +07:00
giancarlo
659f1c5416 Fix HMAC verification wrong reference to window 2024-05-09 17:31:26 +07:00
giancarlo
7a1dd7768a Updated zod; Fix issue displaying mode toggle in site header when disabled 2024-05-09 10:46:00 +07:00
giancarlo
b81cc94800 Enforce config for billing; updated packages 2024-05-08 21:47:17 +07:00
giancarlo
e159c52d41 Corrected variable name typo and updated library dependencies
An incorrect variable name in account-invitations-table.tsx was fixed, correcting `iRenewingInvite` to `isRenewingInvite`. Additionally, several dependencies across the project were updated, including `zod`, `supabase`, and `stripe`, among others. These updates ensure the project is using the most recent and secure versions of the libraries.
2024-05-03 16:33:44 +07:00
giancarlo
2ff08a971d 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.
2024-04-30 13:16:51 +07:00
giancarlo
07deb28e12 1. Updated packages
2. Added comments to schema
3. Minor API updates
2024-04-27 14:39:28 +07:00
giancarlo
341762b6a5 Update useBaselime hook and upgrade dependencies
Add a captureEvent function to the useBaselime hook for capturing events within the monitoring service. Multiple dependencies, including `@supabase/supabase-js` and `next`, have also been updated to newer versions. This ensures usage of the most recent and efficient versions of the tools needed in our project to resolve potential issues and benefit from recent improvements.
2024-04-25 17:37:12 +07:00
giancarlo
8d04624b1d Add queryUsage method to billing services
A new method, queryUsage, has been added to the billing strategy classes and the gateway service to offer usage querying capabilities for Stripe and Lemon Squeezy. QueryBillingUsageSchema has also been introduced in the schema-related changes. Changes also include updates to the functions' comment descriptions. A minor tweak was made to the Button and Link components in the `faq/page.tsx' file.
2024-04-25 11:34:47 +07:00
giancarlo
944197b84a Update dependency versions in pnpm-lock.yaml
This commit updates the version numbers for several dependencies across multiple packages in the pnpm-lock.yaml file. Most notably, the versions for '@keystatic/core', '@opentelemetry/resources', '@opentelemetry/sdk-node' and others have been incremented for better functionality and up-to-date usage. This will ensure that the application benefits from the latest fixes and improvements in these dependencies.
2024-04-25 10:48:56 +07:00
giancarlo
452e9e3567 Update dependencies and remove unused packages
This commit updates the versions of some dependencies, removes a few unused packages, and corrects the locations of some of the dependencies. Specific changes include version updates for '@tanstack/react-query-next-experimental', 'lucide-react', and 'supabase'. Furthermore, several unnecessary '@tanstack/react-table', 'next', 'tailwind-merge', and 'zod' dependencies were removed from various packages. The exact details of these changes can be obtained by comparing the changes in the 'pnpm-lock.yaml' file.
2024-04-24 19:58:03 +07:00
giancarlo
3ce6c62425 Update Zod and Lucide-react version in all packages
The Zod and Lucide-react libraries have been updated to version ^3.23.0 and ^0.372.0, respectively, in all packages. This change ensures that all packages are using the latest stable versions of these libraries, keeping the codebase up-to-date and minimizing potential compatibility issues.
2024-04-22 14:03:03 +08:00
giancarlo
acd5ad08f9 Update several package versions in pnpm-lock.yaml file
This commit updates various package versions in the pnpm-lock.yaml file. The updated packages include tailwind-merge, zod, recharts, and '@sentry/nextjs' among others. This is a part of regular maintenance and ensuring that the project dependencies are up-to-date.
2024-04-22 01:52:02 +08:00
giancarlo
8281de12a0 Update i18n settings and upgrade dependencies in lockfile
This commit refactors the i18n settings in `i18n.settings.ts` to improve language handling. In addition, it updates the `pnpm-lock.yaml` file to upgrade the lockfile version and several package dependencies. Most notably, it integrates `tailwind-merge` and `@tanstack/react-table` into various packages.
2024-04-20 13:17:38 +08:00
giancarlo
a188ca92e1 Add semi-colons and correct formatting in database.types.ts
This commit implements proper syntax standards throughout the file. Every necessary line now ends with a semicolon, providing better readability and avoiding potential errors in future code interpretation.
2024-04-17 16:15:57 +08:00
giancarlo
bf43c48dff Add HMAC function, and update the CMS and Mailer services
A new module has been added to create HMACs, primarily used in the billing service for data verification. Keystatic CMS usage has been conditioned to Node.js runtime only, and a fallback to the mock CMS client has been implemented for Edge Runtime. Mailer services now accommodate environment-specific providers.
2024-04-17 15:47:50 +08:00
giancarlo
eaa163935b Upgrade multiple dependencies
Updated several dependencies that mainly include '@manypkg/cli', '@supabase/supabase-js', 'edge-csrf', 'i18next', '@types/react', 'autoprefixer', 'supabase', and '@sentry/nextjs'. This is a general dependencies update for performance and security improvements, bug fixes, and newer features. The commit also includes changes to '@babel/types' inside dependencies of several packages.
2024-04-16 15:03:41 +08:00
giancarlo
8fde758671 Refactor billing event handler and fix minor bugs
Refactored the billing-event-handler.service.ts by introducing new types `UpsertSubscriptionParams` and `UpsertOrderParams` to simplify method parameters. Fixed minor bugs including the correction of an error message in lemon-squeezy-webhook-handler.service.ts and adjusting the handling of attribute types. Also updated comment in billing-webhook-handler.service.ts for better clarity.
2024-04-16 12:32:15 +08:00
giancarlo
ebb8fc08fe Add custom handlers for billing events
The code introduces custom handlers for different billing events like subscription deletion, subscription update, checkout session completion, payment successes and failures, invoice payment,  and a generic event handler. These customer handlers allow consumers to add their own custom behaviors when certain billing events occur. This flexibility can be utilized to better adapt the system to various business requirements and rules. Also, the invoice payment event and a generic event handler were added.
2024-04-16 11:55:43 +08:00
giancarlo
4e305bf8c9 Update UI, improve E2E tests and modify trial period configuration
The code changes incorporate UI updates for better usability and user experience. E2E test scripts(in `user-billing.spec.ts` and `team-billing.spec.ts`) were also updated for improved efficiency and accuracy, primarily replacing 'Active' status check with 'Trial'. Changes have been made in the trialDays configuration, with the term 'trialPeriod' now replaced by 'trialDays' across different components. Notably, a new error handling case is included in `lemon-squeezy-billing-strategy.service.ts` for failed subscription cancellation attempts.
2024-04-15 01:18:27 +08:00
giancarlo
f6800d3763 Update dependency versions across multiple packages
A broad range of dependency versions have been updated in numerous packages. This includes updates to major libraries such as supabase-js, react, i18next and multiple typescript definitions. The version specifier has been standardized for some packages to maintain consistency.
2024-04-13 02:13:11 +08:00
giancarlo
5b837d2fa8 Update UI style and enhance billing services
Several changes have been made in this commit. Firstly, updates have been made to the site-header-account-section and the pricing-table components to enhance UI aesthetics. Secondly, billing services have been significantly improved. A new method for retrieving plan information by an ID has been introduced. This method is available for all strategy services, including Stripe and Lemon-Squeezy. Furthermore, the way context and logging are handled during the billing process has been streamlined for better readability and efficiency.
2024-04-11 10:29:52 +08:00
giancarlo
37c5e3ed76 Refactor logger usage and add discount field to checkout
This commit refactors the logger usage in various files to make it more streamlined and consistent. It also introduces a new 'enableDiscountField' feature for the checkout that can be toggled on specific products. This allows customers to apply discounts at checkout if the product or subscription plan has the 'enableDiscountField' set to true.
2024-04-10 22:04:38 +08:00
giancarlo
f729bf6077 Removed shamefully-hoist and updated all packages to respect that 2024-04-10 01:45:03 +08:00
giancarlo
37f1db6b2b Refactor admin action naming and move user assertions
Renamed the admin actions to have a more uniform approach with "Action" suffixed. This makes the action function's purpose clear in the codebase. Also, moved the `assertUserIsNotCurrentSuperAdmin` method to a more suitable place in the code, arranging it in a private scope. This helps in maintaining clean code architecture and enhances readibility.
2024-04-09 19:08:40 +08:00
giancarlo
a9eaaafd3d Update packages and refactor logging in diverse services
This commit updates diverse packages such as "@makerkit/data-loader-supabase-core" and "@makerkit/data-loader-supabase-nextjs" to the new versions in the package.json files. Also, several refactorings were done in logging within services and loaders by progressing 'server-only' imports and improving context handling. Additionally, type annotations have been added to several exported functions for better code readability and maintainability.
2024-04-09 17:23:48 +08:00
giancarlo
9fca45c2de Replace Logger with getLogger and update next version
This commit replaces the use of Logger with getLogger in various parts of the code to handle logging. The Logger has been replaced with getLogger, which assists in getting logs in an asynchronous manner. In addition to this, it updates the next version in pnpm-lock.yaml from next@14.2.0-canary.61 to next@14.2.0-canary.62 and various other dependencies. Also made minor annotations and comments to the function 'isBrowser' and 'formatCurrency' in the 'utils.ts' file.
2024-04-08 12:23:15 +08:00
giancarlo
0a9c1f35c6 Add captcha support to authentication features
The update includes the implementation of captcha support during the sign-in and sign-up process for user accounts. The process ensures a better level of security against bot-based attacks. Also, the code has been refactored to separate error and success alerts and unnecessary useEffect hooks have been removed. Moreover, some logic concerning the authentication rendering has been simplified.
2024-04-07 10:56:33 +08:00
giancarlo
d3bd8fb033 Refactor code and simplify billing services
Code for billing services has been refactored for simplicity and improved organization. This includes updated locations for the 'loadTeamWorkspace' function and adjusted component imports. Redundant scripts have been eliminated and new schemas have been introduced for input data validation.
2024-04-06 13:37:38 +08:00
giancarlo
220a23e185 Implement updateSubscription feature and refactor billing services
This commit introduces the updateSubscription method to the BillingStrategyProviderService, ensuring that subscriptions can be updated within the billing core. Additionally, a refactor has been applied to the BillingGatewayFactoryService and stripe-billing-strategy.service to improve error handling and the robustness of subscription updates. Logging in the webhook route has been adjusted for clarity and the data model has been enhanced.
2024-04-04 20:15:12 +08:00
giancarlo
4a122ee5df Refactor usage reporting for metered subscriptions 2024-04-04 16:42:10 +08:00
giancarlo
a52c8dd31c Refactor database types definitions in Supabase
Various fields in the Supabase database types definitions have been modified. Primarily, the changes involve consistently ending each line with a semicolon. This enforces consistent formatting and improves code readability.
2024-04-04 15:50:28 +08:00
giancarlo
35ef90b4f8 Update Supabase dependency, delete cookie handling, create logger
Updated Supabase dependency across multiple packages from "^2.41.1" to "^2.42.0". Removed files handling sidebar state and theme cookies. Created a new Logger interface for managing log messages in the shared package. Enhanced the middleware to track accounts membership webhook payload. Minor adjustments were also made in multiple package.json files.
2024-04-03 23:59:41 +08:00
giancarlo
eb43059fda Update billing provider and related adjustments
This commit switches the billing provider from Stripe to Lemon Squeezy. It also includes necessary modifications in the web app, billing gateway, and database to accommodate this change. Additionally, updates have been made to the checkout process, billing strategy, and relevant services and components.
2024-04-02 14:31:53 +08:00
giancarlo
4576c8c14a Switch billing provider from Stripe to Lemon Squeezy
Changed the billing provider in the `.env.development` file from Stripe to Lemon Squeezy. This requires adaptations at many levels: at the web app to load Lemon Squeezy's script in the checkout process, at the billing gateway to handle Lemon Squeezy calls, and in the database to reflect the current billing provider. The checkout process is now done using Lemon Squeezy Sessions and its billing strategy was adjusted accordingly. Billing-related components and services were also updated.
2024-04-02 14:09:25 +08:00
giancarlo
d24cf8427f Refactor billing system and enhance logging
Updated the billing system's schema to change 'storeId' to a string type, and improved the cleanliness and readability of the code. Enhanced the logging system within the billing service for better tracking and debugging. In line with these changes, added corresponding error pages in the client side to handle any errors.
2024-04-02 12:19:09 +08:00
giancarlo
6149f6a313 Update package dependencies and refactor peer dependencies
Updated various package dependencies including "next", "turbo" and "@kit" packages. Moved some dependencies to devDependencies for better project structure. This aims to optimize the dependency graph, reduce unnecessary installation of packages, and enhance the overall development environment.
2024-04-02 11:13:57 +08:00
giancarlo
f58aaa330c Implement Lemon Squeezy billing services
Added implementation for various billing services with Lemon Squeezy. This includes processing of webhooks for order and subscription handling, verification of webhook signatures, and validating subscription statuses and order states. Additionally, types for order and subscription webhooks have been created.
2024-04-02 09:33:26 +08:00
giancarlo
dee0814e6d Add documentation for Stripe and Lemon Squeezy billing packages
New README files have been added for the packages dealing with the Stripe and Lemon Squeezy billing systems. They explain the purpose of the packages and detail what environment variables need to be set for development and production.
2024-04-01 21:47:31 +08:00
giancarlo
8784a40a69 Add Lemon Squeezy Billing System 2024-04-01 21:43:18 +08:00