Registry API Refactoring (#144)

* Refactor core to use a flexible registry pattern

- Introduce a new registry mechanism for mailer providers
- Extract mailer provider enum to a separate file
- Implement dynamic mailer loading using a registry
- Update package dependencies and exports
- Improve modularity and extensibility of mailer implementation

* Refactor monitoring and billing services to use a flexible registry pattern

- Introduce a shared registry mechanism for dynamic service loading
- Replace static switch-based implementations with a registry-based approach
- Update instrumentation, CMS, and monitoring services to use the new registry
- Improve modularity and extensibility of service implementations
- Add Zod-based type-safe provider validation

* Simplify async registration in monitoring and billing services

- Remove unnecessary async wrappers for no-op registrations
- Update type definitions to support both async and sync registration functions
- Standardize registration approach for Paddle and Sentry providers

* Remove Tailwind package from packages where it is not being needed

* Remove Tailwind config references from pnpm-lock.yaml

* Update instrumentation registry to support dynamic monitoring providers

- Modify type definition to use NonNullable MonitoringProvider
- Import MonitoringProvider type from get-monitoring-provider
- Enhance type safety for instrumentation registration
This commit is contained in:
Giancarlo Buomprisco
2025-02-05 17:38:43 +07:00
committed by GitHub
parent 3140f0cf21
commit 4a47df81db
31 changed files with 414 additions and 287 deletions

60
pnpm-lock.yaml generated
View File

@@ -237,9 +237,6 @@ importers:
'@kit/prettier-config':
specifier: workspace:*
version: link:../../tooling/prettier
'@kit/tailwind-config':
specifier: workspace:*
version: link:../../tooling/tailwind
'@kit/tsconfig':
specifier: workspace:*
version: link:../../tooling/typescript
@@ -443,6 +440,9 @@ importers:
'@kit/prettier-config':
specifier: workspace:*
version: link:../../../tooling/prettier
'@kit/shared':
specifier: workspace:*
version: link:../../shared
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
@@ -555,9 +555,6 @@ importers:
'@kit/supabase':
specifier: workspace:*
version: link:../supabase
'@kit/tailwind-config':
specifier: workspace:*
version: link:../../tooling/tailwind
'@kit/team-accounts':
specifier: workspace:*
version: link:../features/team-accounts
@@ -964,9 +961,6 @@ importers:
'@kit/shared':
specifier: workspace:*
version: link:../shared
'@kit/tailwind-config':
specifier: workspace:*
version: link:../../tooling/tailwind
'@kit/tsconfig':
specifier: workspace:*
version: link:../../tooling/typescript
@@ -991,6 +985,9 @@ importers:
'@kit/eslint-config':
specifier: workspace:*
version: link:../../../tooling/eslint
'@kit/mailers-shared':
specifier: workspace:*
version: link:../shared
'@kit/nodemailer':
specifier: workspace:*
version: link:../nodemailer
@@ -1000,9 +997,9 @@ importers:
'@kit/resend':
specifier: workspace:*
version: link:../resend
'@kit/tailwind-config':
'@kit/shared':
specifier: workspace:*
version: link:../../../tooling/tailwind
version: link:../../shared
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
@@ -1028,9 +1025,6 @@ importers:
'@kit/prettier-config':
specifier: workspace:*
version: link:../../../tooling/prettier
'@kit/tailwind-config':
specifier: workspace:*
version: link:../../../tooling/tailwind
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
@@ -1052,9 +1046,6 @@ importers:
'@kit/prettier-config':
specifier: workspace:*
version: link:../../../tooling/prettier
'@kit/tailwind-config':
specifier: workspace:*
version: link:../../../tooling/tailwind
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
@@ -1073,9 +1064,6 @@ importers:
'@kit/prettier-config':
specifier: workspace:*
version: link:../../../tooling/prettier
'@kit/tailwind-config':
specifier: workspace:*
version: link:../../../tooling/tailwind
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
@@ -1100,9 +1088,9 @@ importers:
'@kit/sentry':
specifier: workspace:*
version: link:../sentry
'@kit/tailwind-config':
'@kit/shared':
specifier: workspace:*
version: link:../../../tooling/tailwind
version: link:../../shared
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
@@ -1112,6 +1100,9 @@ importers:
react:
specifier: 19.0.0
version: 19.0.0
zod:
specifier: ^3.24.1
version: 3.24.1
packages/monitoring/baselime:
dependencies:
@@ -1131,9 +1122,6 @@ importers:
'@kit/prettier-config':
specifier: workspace:*
version: link:../../../tooling/prettier
'@kit/tailwind-config':
specifier: workspace:*
version: link:../../../tooling/tailwind
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
@@ -1155,9 +1143,6 @@ importers:
'@kit/prettier-config':
specifier: workspace:*
version: link:../../../tooling/prettier
'@kit/tailwind-config':
specifier: workspace:*
version: link:../../../tooling/tailwind
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
@@ -1183,9 +1168,6 @@ importers:
'@kit/prettier-config':
specifier: workspace:*
version: link:../../../tooling/prettier
'@kit/tailwind-config':
specifier: workspace:*
version: link:../../../tooling/tailwind
'@kit/tsconfig':
specifier: workspace:*
version: link:../../../tooling/typescript
@@ -1213,9 +1195,6 @@ importers:
'@kit/supabase':
specifier: workspace:*
version: link:../supabase
'@kit/tailwind-config':
specifier: workspace:*
version: link:../../tooling/tailwind
'@kit/tsconfig':
specifier: workspace:*
version: link:../../tooling/typescript
@@ -1241,9 +1220,6 @@ importers:
'@kit/prettier-config':
specifier: workspace:*
version: link:../../tooling/prettier
'@kit/tailwind-config':
specifier: workspace:*
version: link:../../tooling/tailwind
'@kit/tsconfig':
specifier: workspace:*
version: link:../../tooling/typescript
@@ -4122,9 +4098,6 @@ packages:
'@types/eslint@8.56.12':
resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==}
'@types/eslint@9.6.1':
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
'@types/estree-jsx@1.0.5':
resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
@@ -11437,7 +11410,7 @@ snapshots:
'@types/eslint-scope@3.7.7':
dependencies:
'@types/eslint': 9.6.1
'@types/eslint': 8.56.12
'@types/estree': 1.0.6
'@types/eslint@8.56.12':
@@ -11445,11 +11418,6 @@ snapshots:
'@types/estree': 1.0.6
'@types/json-schema': 7.0.15
'@types/eslint@9.6.1':
dependencies:
'@types/estree': 1.0.6
'@types/json-schema': 7.0.15
'@types/estree-jsx@1.0.5':
dependencies:
'@types/estree': 1.0.6