@soulbatical/tetra-core 0.10.4 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -38
- package/dist/core/createApp.d.ts +1 -1
- package/dist/core/createApp.d.ts.map +1 -1
- package/dist/core/createApp.js +77 -2
- package/dist/core/createApp.js.map +1 -1
- package/dist/core/dualWriteProxy.d.ts +7 -2
- package/dist/core/dualWriteProxy.d.ts.map +1 -1
- package/dist/core/dualWriteProxy.js +16 -5
- package/dist/core/dualWriteProxy.js.map +1 -1
- package/dist/core/routeContext.d.ts +24 -0
- package/dist/core/routeContext.d.ts.map +1 -1
- package/dist/core/routeContext.js +31 -4
- package/dist/core/routeContext.js.map +1 -1
- package/dist/core/systemDb.d.ts +2 -2
- package/dist/core/systemDb.js +2 -2
- package/dist/generators/rls-checker.d.ts +1 -1
- package/dist/generators/rls-checker.js +1 -1
- package/dist/generators/rls-exec-sql.d.ts +1 -1
- package/dist/generators/rls-exec-sql.js +1 -1
- package/dist/generators/rpc/index.d.ts +1 -1
- package/dist/generators/rpc/index.js +1 -1
- package/dist/index.d.ts +3 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -32
- package/dist/index.js.map +1 -1
- package/dist/middleware/securityMiddleware.d.ts +1 -1
- package/dist/middleware/securityMiddleware.d.ts.map +1 -1
- package/dist/middleware/validateBody.d.ts.map +1 -1
- package/dist/middleware/validateBody.js +51 -8
- package/dist/middleware/validateBody.js.map +1 -1
- package/dist/shared/rfc7807ErrorResponse.d.ts +7 -0
- package/dist/shared/rfc7807ErrorResponse.d.ts.map +1 -1
- package/dist/shared/rfc7807ErrorResponse.js +19 -5
- package/dist/shared/rfc7807ErrorResponse.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +16 -1
- package/dist/utils/logger.js.map +1 -1
- package/package.json +33 -77
- package/dist/affiliate.d.ts +0 -11
- package/dist/affiliate.d.ts.map +0 -1
- package/dist/affiliate.js +0 -10
- package/dist/affiliate.js.map +0 -1
- package/dist/billing.d.ts +0 -8
- package/dist/billing.d.ts.map +0 -1
- package/dist/billing.js +0 -7
- package/dist/billing.js.map +0 -1
- package/dist/email.d.ts +0 -9
- package/dist/email.d.ts.map +0 -1
- package/dist/email.js +0 -8
- package/dist/email.js.map +0 -1
- package/dist/generators/rls-exec-sql.sql +0 -57
- package/dist/generators.d.ts +0 -15
- package/dist/generators.d.ts.map +0 -1
- package/dist/generators.js +0 -12
- package/dist/generators.js.map +0 -1
- package/dist/mcp.d.ts +0 -8
- package/dist/mcp.d.ts.map +0 -1
- package/dist/mcp.js +0 -7
- package/dist/mcp.js.map +0 -1
- package/dist/planner.d.ts +0 -8
- package/dist/planner.d.ts.map +0 -1
- package/dist/planner.js +0 -7
- package/dist/planner.js.map +0 -1
- package/dist/shared/affiliate/AffiliateAttributionService.d.ts +0 -47
- package/dist/shared/affiliate/AffiliateAttributionService.d.ts.map +0 -1
- package/dist/shared/affiliate/AffiliateAttributionService.js +0 -308
- package/dist/shared/affiliate/AffiliateAttributionService.js.map +0 -1
- package/dist/shared/affiliate/AffiliateClickService.d.ts +0 -35
- package/dist/shared/affiliate/AffiliateClickService.d.ts.map +0 -1
- package/dist/shared/affiliate/AffiliateClickService.js +0 -87
- package/dist/shared/affiliate/AffiliateClickService.js.map +0 -1
- package/dist/shared/affiliate/affiliateFeatureConfig.d.ts +0 -11
- package/dist/shared/affiliate/affiliateFeatureConfig.d.ts.map +0 -1
- package/dist/shared/affiliate/affiliateFeatureConfig.js +0 -242
- package/dist/shared/affiliate/affiliateFeatureConfig.js.map +0 -1
- package/dist/shared/affiliate/index.d.ts +0 -11
- package/dist/shared/affiliate/index.d.ts.map +0 -1
- package/dist/shared/affiliate/index.js +0 -13
- package/dist/shared/affiliate/index.js.map +0 -1
- package/dist/shared/affiliate/routes.d.ts +0 -87
- package/dist/shared/affiliate/routes.d.ts.map +0 -1
- package/dist/shared/affiliate/routes.js +0 -404
- package/dist/shared/affiliate/routes.js.map +0 -1
- package/dist/shared/affiliate/types.d.ts +0 -170
- package/dist/shared/affiliate/types.d.ts.map +0 -1
- package/dist/shared/affiliate/types.js +0 -11
- package/dist/shared/affiliate/types.js.map +0 -1
- package/dist/shared/billing/BillingService.d.ts +0 -56
- package/dist/shared/billing/BillingService.d.ts.map +0 -1
- package/dist/shared/billing/BillingService.js +0 -588
- package/dist/shared/billing/BillingService.js.map +0 -1
- package/dist/shared/billing/SeatBillingService.d.ts +0 -106
- package/dist/shared/billing/SeatBillingService.d.ts.map +0 -1
- package/dist/shared/billing/SeatBillingService.js +0 -292
- package/dist/shared/billing/SeatBillingService.js.map +0 -1
- package/dist/shared/billing/index.d.ts +0 -30
- package/dist/shared/billing/index.d.ts.map +0 -1
- package/dist/shared/billing/index.js +0 -27
- package/dist/shared/billing/index.js.map +0 -1
- package/dist/shared/billing/routes.d.ts +0 -45
- package/dist/shared/billing/routes.d.ts.map +0 -1
- package/dist/shared/billing/routes.js +0 -184
- package/dist/shared/billing/routes.js.map +0 -1
- package/dist/shared/billing/seat-pricing.d.ts +0 -53
- package/dist/shared/billing/seat-pricing.d.ts.map +0 -1
- package/dist/shared/billing/seat-pricing.js +0 -81
- package/dist/shared/billing/seat-pricing.js.map +0 -1
- package/dist/shared/billing/types.d.ts +0 -109
- package/dist/shared/billing/types.d.ts.map +0 -1
- package/dist/shared/billing/types.js +0 -8
- package/dist/shared/billing/types.js.map +0 -1
- package/dist/shared/email/EmailService.d.ts +0 -64
- package/dist/shared/email/EmailService.d.ts.map +0 -1
- package/dist/shared/email/EmailService.js +0 -300
- package/dist/shared/email/EmailService.js.map +0 -1
- package/dist/shared/email/adminRoutes.d.ts +0 -30
- package/dist/shared/email/adminRoutes.d.ts.map +0 -1
- package/dist/shared/email/adminRoutes.js +0 -227
- package/dist/shared/email/adminRoutes.js.map +0 -1
- package/dist/shared/email/gmail.d.ts +0 -208
- package/dist/shared/email/gmail.d.ts.map +0 -1
- package/dist/shared/email/gmail.js +0 -626
- package/dist/shared/email/gmail.js.map +0 -1
- package/dist/shared/email/index.d.ts +0 -15
- package/dist/shared/email/index.d.ts.map +0 -1
- package/dist/shared/email/index.js +0 -18
- package/dist/shared/email/index.js.map +0 -1
- package/dist/shared/email/mailgun.d.ts +0 -18
- package/dist/shared/email/mailgun.d.ts.map +0 -1
- package/dist/shared/email/mailgun.js +0 -76
- package/dist/shared/email/mailgun.js.map +0 -1
- package/dist/shared/email/sanitize.d.ts +0 -25
- package/dist/shared/email/sanitize.d.ts.map +0 -1
- package/dist/shared/email/sanitize.js +0 -39
- package/dist/shared/email/sanitize.js.map +0 -1
- package/dist/shared/email/smtp.d.ts +0 -20
- package/dist/shared/email/smtp.d.ts.map +0 -1
- package/dist/shared/email/smtp.js +0 -53
- package/dist/shared/email/smtp.js.map +0 -1
- package/dist/shared/email/types.d.ts +0 -113
- package/dist/shared/email/types.d.ts.map +0 -1
- package/dist/shared/email/types.js +0 -7
- package/dist/shared/email/types.js.map +0 -1
- package/dist/shared/email/webhookRoutes.d.ts +0 -29
- package/dist/shared/email/webhookRoutes.d.ts.map +0 -1
- package/dist/shared/email/webhookRoutes.js +0 -125
- package/dist/shared/email/webhookRoutes.js.map +0 -1
- package/dist/shared/mcp/index.d.ts +0 -51
- package/dist/shared/mcp/index.d.ts.map +0 -1
- package/dist/shared/mcp/index.js +0 -51
- package/dist/shared/mcp/index.js.map +0 -1
- package/dist/shared/mcp/mcp-auth-routes.d.ts +0 -26
- package/dist/shared/mcp/mcp-auth-routes.d.ts.map +0 -1
- package/dist/shared/mcp/mcp-auth-routes.js +0 -141
- package/dist/shared/mcp/mcp-auth-routes.js.map +0 -1
- package/dist/shared/mcp/mcp-db.d.ts +0 -99
- package/dist/shared/mcp/mcp-db.d.ts.map +0 -1
- package/dist/shared/mcp/mcp-db.js +0 -106
- package/dist/shared/mcp/mcp-db.js.map +0 -1
- package/dist/shared/mcp/mcp-routes.d.ts +0 -29
- package/dist/shared/mcp/mcp-routes.d.ts.map +0 -1
- package/dist/shared/mcp/mcp-routes.js +0 -171
- package/dist/shared/mcp/mcp-routes.js.map +0 -1
- package/dist/shared/mcp/mcp-tokens-routes.d.ts +0 -35
- package/dist/shared/mcp/mcp-tokens-routes.d.ts.map +0 -1
- package/dist/shared/mcp/mcp-tokens-routes.js +0 -94
- package/dist/shared/mcp/mcp-tokens-routes.js.map +0 -1
- package/dist/shared/mcp/mcp-usage-routes.d.ts +0 -17
- package/dist/shared/mcp/mcp-usage-routes.d.ts.map +0 -1
- package/dist/shared/mcp/mcp-usage-routes.js +0 -81
- package/dist/shared/mcp/mcp-usage-routes.js.map +0 -1
- package/dist/shared/mcp/tenant-context.d.ts +0 -59
- package/dist/shared/mcp/tenant-context.d.ts.map +0 -1
- package/dist/shared/mcp/tenant-context.js +0 -136
- package/dist/shared/mcp/tenant-context.js.map +0 -1
- package/dist/shared/mcp/types.d.ts +0 -74
- package/dist/shared/mcp/types.d.ts.map +0 -1
- package/dist/shared/mcp/types.js +0 -7
- package/dist/shared/mcp/types.js.map +0 -1
- package/dist/shared/planner/GoogleCalendarService.d.ts +0 -137
- package/dist/shared/planner/GoogleCalendarService.d.ts.map +0 -1
- package/dist/shared/planner/GoogleCalendarService.js +0 -525
- package/dist/shared/planner/GoogleCalendarService.js.map +0 -1
- package/dist/shared/planner/PlannerService.d.ts +0 -264
- package/dist/shared/planner/PlannerService.d.ts.map +0 -1
- package/dist/shared/planner/PlannerService.js +0 -1393
- package/dist/shared/planner/PlannerService.js.map +0 -1
- package/dist/shared/planner/index.d.ts +0 -37
- package/dist/shared/planner/index.d.ts.map +0 -1
- package/dist/shared/planner/index.js +0 -35
- package/dist/shared/planner/index.js.map +0 -1
- package/dist/shared/planner/intervals.d.ts +0 -60
- package/dist/shared/planner/intervals.d.ts.map +0 -1
- package/dist/shared/planner/intervals.js +0 -141
- package/dist/shared/planner/intervals.js.map +0 -1
- package/dist/shared/planner/routes.d.ts +0 -69
- package/dist/shared/planner/routes.d.ts.map +0 -1
- package/dist/shared/planner/routes.js +0 -770
- package/dist/shared/planner/routes.js.map +0 -1
- package/dist/shared/planner/types.d.ts +0 -328
- package/dist/shared/planner/types.d.ts.map +0 -1
- package/dist/shared/planner/types.js +0 -9
- package/dist/shared/planner/types.js.map +0 -1
- package/dist/shared/storage/ImageProcessingService.d.ts +0 -32
- package/dist/shared/storage/ImageProcessingService.d.ts.map +0 -1
- package/dist/shared/storage/ImageProcessingService.js +0 -127
- package/dist/shared/storage/ImageProcessingService.js.map +0 -1
- package/dist/shared/storage/StorageProxyService.d.ts +0 -47
- package/dist/shared/storage/StorageProxyService.d.ts.map +0 -1
- package/dist/shared/storage/StorageProxyService.js +0 -196
- package/dist/shared/storage/StorageProxyService.js.map +0 -1
- package/dist/shared/storage/StorageUploadService.d.ts +0 -126
- package/dist/shared/storage/StorageUploadService.d.ts.map +0 -1
- package/dist/shared/storage/StorageUploadService.js +0 -206
- package/dist/shared/storage/StorageUploadService.js.map +0 -1
- package/dist/shared/storage/creative-urls.d.ts +0 -14
- package/dist/shared/storage/creative-urls.d.ts.map +0 -1
- package/dist/shared/storage/creative-urls.js +0 -30
- package/dist/shared/storage/creative-urls.js.map +0 -1
- package/dist/shared/storage/index.d.ts +0 -28
- package/dist/shared/storage/index.d.ts.map +0 -1
- package/dist/shared/storage/index.js +0 -27
- package/dist/shared/storage/index.js.map +0 -1
- package/dist/shared/storage/routes.d.ts +0 -42
- package/dist/shared/storage/routes.d.ts.map +0 -1
- package/dist/shared/storage/routes.js +0 -160
- package/dist/shared/storage/routes.js.map +0 -1
- package/dist/shared/storage/types.d.ts +0 -53
- package/dist/shared/storage/types.d.ts.map +0 -1
- package/dist/shared/storage/types.js +0 -2
- package/dist/shared/storage/types.js.map +0 -1
- package/dist/shared/telegram/index.d.ts +0 -4
- package/dist/shared/telegram/index.d.ts.map +0 -1
- package/dist/shared/telegram/index.js +0 -3
- package/dist/shared/telegram/index.js.map +0 -1
- package/dist/shared/telegram/routes.d.ts +0 -43
- package/dist/shared/telegram/routes.d.ts.map +0 -1
- package/dist/shared/telegram/routes.js +0 -868
- package/dist/shared/telegram/routes.js.map +0 -1
- package/dist/shared/telegram/types.d.ts +0 -168
- package/dist/shared/telegram/types.d.ts.map +0 -1
- package/dist/shared/telegram/types.js +0 -7
- package/dist/shared/telegram/types.js.map +0 -1
- package/dist/shared/telegram/utils.d.ts +0 -44
- package/dist/shared/telegram/utils.d.ts.map +0 -1
- package/dist/shared/telegram/utils.js +0 -121
- package/dist/shared/telegram/utils.js.map +0 -1
- package/dist/storage.d.ts +0 -9
- package/dist/storage.d.ts.map +0 -1
- package/dist/storage.js +0 -8
- package/dist/storage.js.map +0 -1
- package/dist/telemetry.d.ts +0 -9
- package/dist/telemetry.d.ts.map +0 -1
- package/dist/telemetry.js +0 -8
- package/dist/telemetry.js.map +0 -1
- package/scripts/postinstall.js +0 -79
- package/src/shared/affiliate/migrations/001_create_affiliates.sql +0 -49
- package/src/shared/affiliate/migrations/002_create_affiliate_commissions.sql +0 -31
- package/src/shared/affiliate/migrations/003_create_affiliate_clicks.sql +0 -26
- package/src/shared/affiliate/migrations/004_create_affiliate_payments.sql +0 -34
- package/src/shared/affiliate/migrations/005_create_affiliate_tier_history.sql +0 -19
- package/src/shared/affiliate/migrations/006_create_affiliate_rpc_functions.sql +0 -209
- package/src/shared/affiliate/migrations/007_create_affiliate_rls_policies.sql +0 -123
- package/src/shared/billing/migrations/00000000000001_billing.sql +0 -114
- package/src/shared/email/migrations/000_create_email_logs.sql +0 -27
- package/src/shared/email/migrations/001_create_email_templates.sql +0 -27
- package/src/shared/email/migrations/002_add_rls_baseline_policies.sql +0 -37
- package/src/shared/email/migrations/003_create_gmail_accounts.sql +0 -82
- package/src/shared/email/migrations/004_add_email_logs_tracking_columns.sql +0 -15
- package/src/shared/mcp/migrations/001_mcp_api_tokens.sql +0 -21
- package/src/shared/mcp/migrations/002_mcp_audit_log.sql +0 -16
package/package.json
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soulbatical/tetra-core",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"access": "public"
|
|
6
|
-
},
|
|
3
|
+
"version": "0.11.0",
|
|
4
|
+
"private": false,
|
|
7
5
|
"description": "The foundation framework for Tetra platform projects (Soulbatical BV) — config-driven Express + Supabase + TypeScript",
|
|
8
6
|
"type": "module",
|
|
9
7
|
"main": "dist/index.js",
|
|
@@ -15,61 +13,20 @@
|
|
|
15
13
|
"require": "./dist/index.js",
|
|
16
14
|
"default": "./dist/index.js"
|
|
17
15
|
},
|
|
18
|
-
"./frontend": {
|
|
19
|
-
"types": "./dist/frontend/index.d.ts",
|
|
20
|
-
"import": "./dist/frontend/index.js",
|
|
21
|
-
"require": "./dist/frontend/index.js",
|
|
22
|
-
"default": "./dist/frontend/index.js"
|
|
23
|
-
},
|
|
24
|
-
"./billing": {
|
|
25
|
-
"types": "./dist/billing.d.ts",
|
|
26
|
-
"import": "./dist/billing.js",
|
|
27
|
-
"default": "./dist/billing.js"
|
|
28
|
-
},
|
|
29
|
-
"./storage": {
|
|
30
|
-
"types": "./dist/storage.d.ts",
|
|
31
|
-
"import": "./dist/storage.js",
|
|
32
|
-
"default": "./dist/storage.js"
|
|
33
|
-
},
|
|
34
|
-
"./mcp": {
|
|
35
|
-
"types": "./dist/mcp.d.ts",
|
|
36
|
-
"import": "./dist/mcp.js",
|
|
37
|
-
"default": "./dist/mcp.js"
|
|
38
|
-
},
|
|
39
|
-
"./email": {
|
|
40
|
-
"types": "./dist/email.d.ts",
|
|
41
|
-
"import": "./dist/email.js",
|
|
42
|
-
"default": "./dist/email.js"
|
|
43
|
-
},
|
|
44
|
-
"./planner": {
|
|
45
|
-
"types": "./dist/planner.d.ts",
|
|
46
|
-
"import": "./dist/planner.js",
|
|
47
|
-
"default": "./dist/planner.js"
|
|
48
|
-
},
|
|
49
|
-
"./affiliate": {
|
|
50
|
-
"types": "./dist/affiliate.d.ts",
|
|
51
|
-
"import": "./dist/affiliate.js",
|
|
52
|
-
"default": "./dist/affiliate.js"
|
|
53
|
-
},
|
|
54
16
|
"./auth": {
|
|
55
17
|
"types": "./dist/auth.d.ts",
|
|
56
18
|
"import": "./dist/auth.js",
|
|
57
19
|
"default": "./dist/auth.js"
|
|
58
20
|
},
|
|
59
|
-
"./
|
|
60
|
-
"types": "./dist/
|
|
61
|
-
"import": "./dist/
|
|
62
|
-
"default": "./dist/
|
|
21
|
+
"./meta-api": {
|
|
22
|
+
"types": "./dist/shared/meta-api/index.d.ts",
|
|
23
|
+
"import": "./dist/shared/meta-api/index.js",
|
|
24
|
+
"default": "./dist/shared/meta-api/index.js"
|
|
63
25
|
},
|
|
64
26
|
"./license": {
|
|
65
27
|
"types": "./dist/license.d.ts",
|
|
66
28
|
"import": "./dist/license.js",
|
|
67
29
|
"default": "./dist/license.js"
|
|
68
|
-
},
|
|
69
|
-
"./telemetry": {
|
|
70
|
-
"types": "./dist/telemetry.d.ts",
|
|
71
|
-
"import": "./dist/telemetry.js",
|
|
72
|
-
"default": "./dist/telemetry.js"
|
|
73
30
|
}
|
|
74
31
|
},
|
|
75
32
|
"bin": {
|
|
@@ -78,15 +35,10 @@
|
|
|
78
35
|
"files": [
|
|
79
36
|
"dist",
|
|
80
37
|
"scripts",
|
|
81
|
-
"src/shared/auth/migrations"
|
|
82
|
-
"src/shared/affiliate/migrations",
|
|
83
|
-
"src/shared/email/migrations",
|
|
84
|
-
"src/shared/mcp/migrations",
|
|
85
|
-
"src/shared/billing/migrations"
|
|
38
|
+
"src/shared/auth/migrations"
|
|
86
39
|
],
|
|
87
40
|
"scripts": {
|
|
88
|
-
"build": "tsc",
|
|
89
|
-
"postinstall": "node scripts/postinstall.js || true",
|
|
41
|
+
"build": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\" && tsc",
|
|
90
42
|
"prepublishOnly": "npm run build && npm run typecheck && npx tetra-check-peers",
|
|
91
43
|
"check:peers": "npx tetra-check-peers",
|
|
92
44
|
"typecheck": "tsc --noEmit",
|
|
@@ -94,29 +46,26 @@
|
|
|
94
46
|
"test:watch": "vitest",
|
|
95
47
|
"enforce:api": "./scripts/enforce-api-standards.sh"
|
|
96
48
|
},
|
|
97
|
-
"optionalDependencies": {
|
|
98
|
-
"@soulbatical/tetra-dev-toolkit": "^1.22.4"
|
|
99
|
-
},
|
|
100
49
|
"dependencies": {
|
|
101
|
-
"express-rate-limit": "^8.2
|
|
102
|
-
"handlebars": "^4.7.8",
|
|
50
|
+
"express-rate-limit": "^8.3.2",
|
|
103
51
|
"helmet": "^8.1.0",
|
|
104
52
|
"node-cron": "^4.1.1",
|
|
105
|
-
"
|
|
106
|
-
"zod": "^3.22.4"
|
|
53
|
+
"zod": "^4.3.6"
|
|
107
54
|
},
|
|
108
55
|
"peerDependencies": {
|
|
109
56
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
110
57
|
"@mollie/api-client": "^4.0.0",
|
|
111
|
-
"@sentry/node": "
|
|
58
|
+
"@sentry/node": "^10.48.0",
|
|
59
|
+
"@soulbatical/tetra-contracts": "^0.1.0",
|
|
60
|
+
"@soulbatical/tetra-supabase": "^0.2.0",
|
|
112
61
|
"@supabase/supabase-js": "^2.93.3",
|
|
113
62
|
"@tanstack/react-table": "^8.0.0",
|
|
114
63
|
"express": "^4.21.0 || ^5.0.0",
|
|
115
64
|
"multer": "^1.4.5 || ^2.0.0",
|
|
116
|
-
"pino": "^
|
|
65
|
+
"pino": "^10.3.1",
|
|
117
66
|
"react": "^18.0.0 || ^19.0.0",
|
|
118
67
|
"sharp": ">=0.33.0",
|
|
119
|
-
"stripe": "^
|
|
68
|
+
"stripe": "^22.0.1"
|
|
120
69
|
},
|
|
121
70
|
"peerDependenciesMeta": {
|
|
122
71
|
"pino": {
|
|
@@ -140,6 +89,9 @@
|
|
|
140
89
|
"@mollie/api-client": {
|
|
141
90
|
"optional": true
|
|
142
91
|
},
|
|
92
|
+
"@soulbatical/tetra-contracts": {
|
|
93
|
+
"optional": false
|
|
94
|
+
},
|
|
143
95
|
"multer": {
|
|
144
96
|
"optional": true
|
|
145
97
|
},
|
|
@@ -148,22 +100,23 @@
|
|
|
148
100
|
}
|
|
149
101
|
},
|
|
150
102
|
"devDependencies": {
|
|
151
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
152
|
-
"@mollie/api-client": "^4.
|
|
153
|
-
"@sentry/node": "^
|
|
154
|
-
"@
|
|
103
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
104
|
+
"@mollie/api-client": "^4.5.0",
|
|
105
|
+
"@sentry/node": "^10.48.0",
|
|
106
|
+
"@soulbatical/tetra-contracts": "^0.1.0",
|
|
107
|
+
"@soulbatical/tetra-supabase": "^0.2.0",
|
|
108
|
+
"@supabase/supabase-js": "^2.103.2",
|
|
155
109
|
"@tanstack/react-table": "^8.21.3",
|
|
156
110
|
"@types/express": "^5.0.0",
|
|
157
|
-
"@types/node": "^
|
|
111
|
+
"@types/node": "^25.6.0",
|
|
158
112
|
"@types/node-cron": "^3.0.11",
|
|
159
|
-
"@types/nodemailer": "^7.0.11",
|
|
160
113
|
"@types/react": "^19.2.14",
|
|
161
114
|
"express": "^5.2.1",
|
|
162
|
-
"pino": "^
|
|
163
|
-
"react": "^19.2.
|
|
164
|
-
"stripe": "^
|
|
165
|
-
"typescript": "^
|
|
166
|
-
"vitest": "^4.1.
|
|
115
|
+
"pino": "^10.3.1",
|
|
116
|
+
"react": "^19.2.5",
|
|
117
|
+
"stripe": "^22.0.1",
|
|
118
|
+
"typescript": "^6.0.2",
|
|
119
|
+
"vitest": "^4.1.4"
|
|
167
120
|
},
|
|
168
121
|
"keywords": [
|
|
169
122
|
"tetra",
|
|
@@ -174,6 +127,9 @@
|
|
|
174
127
|
"multi-tenant",
|
|
175
128
|
"rls"
|
|
176
129
|
],
|
|
130
|
+
"publishConfig": {
|
|
131
|
+
"access": "public"
|
|
132
|
+
},
|
|
177
133
|
"author": "Albert Barth",
|
|
178
134
|
"license": "MIT"
|
|
179
135
|
}
|
package/dist/affiliate.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/affiliate
|
|
3
|
-
*
|
|
4
|
-
* Affiliate module (attribution, tracking, commissions).
|
|
5
|
-
*/
|
|
6
|
-
export { AffiliateAttributionService } from './shared/affiliate/AffiliateAttributionService.js';
|
|
7
|
-
export { AffiliateClickService } from './shared/affiliate/AffiliateClickService.js';
|
|
8
|
-
export { defaultAffiliateFeatureConfig } from './shared/affiliate/affiliateFeatureConfig.js';
|
|
9
|
-
export { addAffiliateAdminRoutes, addAffiliateUserRoutes, addAffiliatePublicRoutes } from './shared/affiliate/routes.js';
|
|
10
|
-
export type { AffiliateConfig, AffiliateTierConfig, AffiliateAttribution, AffiliateOrder, Affiliate, AffiliateCommission, AffiliateClick, AffiliatePayment, AffiliateTierHistory, AffiliateFilters, AffiliateDashboard, AffiliateDashboardStats, AffiliateDashboardCommission, AffiliateTierProgress } from './shared/affiliate/types.js';
|
|
11
|
-
//# sourceMappingURL=affiliate.d.ts.map
|
package/dist/affiliate.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"affiliate.d.ts","sourceRoot":"","sources":["../src/affiliate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACzH,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/affiliate.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/affiliate
|
|
3
|
-
*
|
|
4
|
-
* Affiliate module (attribution, tracking, commissions).
|
|
5
|
-
*/
|
|
6
|
-
export { AffiliateAttributionService } from './shared/affiliate/AffiliateAttributionService.js';
|
|
7
|
-
export { AffiliateClickService } from './shared/affiliate/AffiliateClickService.js';
|
|
8
|
-
export { defaultAffiliateFeatureConfig } from './shared/affiliate/affiliateFeatureConfig.js';
|
|
9
|
-
export { addAffiliateAdminRoutes, addAffiliateUserRoutes, addAffiliatePublicRoutes } from './shared/affiliate/routes.js';
|
|
10
|
-
//# sourceMappingURL=affiliate.js.map
|
package/dist/affiliate.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"affiliate.js","sourceRoot":"","sources":["../src/affiliate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/billing.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/billing
|
|
3
|
-
*
|
|
4
|
-
* Billing module (Stripe + Mollie). Requires stripe and/or @mollie/api-client.
|
|
5
|
-
*/
|
|
6
|
-
export { BillingService, addBillingRoutes, addBillingWebhookRoutes } from './shared/billing/index.js';
|
|
7
|
-
export type { PlanConfig, BillingConfig, BillingCycle, BillingProvider, SubscriptionStatus, SubscriptionRecord, BillingStatusResponse, BillingRouteOptions } from './shared/billing/index.js';
|
|
8
|
-
//# sourceMappingURL=billing.d.ts.map
|
package/dist/billing.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../src/billing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACtG,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/billing.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/billing
|
|
3
|
-
*
|
|
4
|
-
* Billing module (Stripe + Mollie). Requires stripe and/or @mollie/api-client.
|
|
5
|
-
*/
|
|
6
|
-
export { BillingService, addBillingRoutes, addBillingWebhookRoutes } from './shared/billing/index.js';
|
|
7
|
-
//# sourceMappingURL=billing.js.map
|
package/dist/billing.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../src/billing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/email.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/email
|
|
3
|
-
*
|
|
4
|
-
* Email module (Mailgun, SMTP, Gmail). Requires nodemailer (included as dep).
|
|
5
|
-
*/
|
|
6
|
-
export { EmailService, sendMailgunEmail, sendSmtpEmail, escapeHtml, addEmailAdminRoutes, addMailgunWebhookRoutes } from './shared/email/index.js';
|
|
7
|
-
export { GmailClient, getGmailClient, listGmailAccounts, clearGmailClientCache, disconnectGmail, getGmailAuthUrl, startGmailOAuth, getGmailAuthServerStatus, resetGmailAuthServerState, exchangeGmailCode, addGmailOAuthRoutes } from './shared/email/index.js';
|
|
8
|
-
export type { EmailAttachment, EmailConfig, SendEmailOpts, EmailTemplate, EmailLogEntry, MailgunResponse, SmtpResponse, EmailSendResponse, GmailOAuthConfig, GmailAuthServerStatus, GmailOAuthRoutesConfig, GmailSendResult, GmailSearchResult, GmailMessage, GmailAttachmentInfo, GmailProfile } from './shared/email/index.js';
|
|
9
|
-
//# sourceMappingURL=email.d.ts.map
|
package/dist/email.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../src/email.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClJ,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAChQ,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/email.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/email
|
|
3
|
-
*
|
|
4
|
-
* Email module (Mailgun, SMTP, Gmail). Requires nodemailer (included as dep).
|
|
5
|
-
*/
|
|
6
|
-
export { EmailService, sendMailgunEmail, sendSmtpEmail, escapeHtml, addEmailAdminRoutes, addMailgunWebhookRoutes } from './shared/email/index.js';
|
|
7
|
-
export { GmailClient, getGmailClient, listGmailAccounts, clearGmailClientCache, disconnectGmail, getGmailAuthUrl, startGmailOAuth, getGmailAuthServerStatus, resetGmailAuthServerState, exchangeGmailCode, addGmailOAuthRoutes } from './shared/email/index.js';
|
|
8
|
-
//# sourceMappingURL=email.js.map
|
package/dist/email.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../src/email.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClJ,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
-- ============================================================================
|
|
2
|
-
-- Tetra Core: exec_sql — Secure SQL Execution for RLS Checker
|
|
3
|
-
-- ============================================================================
|
|
4
|
-
-- This function allows the RLS checker to run audit queries against the DB.
|
|
5
|
-
--
|
|
6
|
-
-- SECURITY MODEL:
|
|
7
|
-
-- - SECURITY INVOKER (NOT definer) — runs as the calling role
|
|
8
|
-
-- - Only service_role should call this (via backend service client)
|
|
9
|
-
-- - anon and authenticated are explicitly REVOKED from EXECUTE
|
|
10
|
-
-- - search_path set to '' to prevent search_path injection
|
|
11
|
-
-- - Returns JSONB array so it works with any query shape
|
|
12
|
-
--
|
|
13
|
-
-- WHY THIS IS SAFE:
|
|
14
|
-
-- 1. service_role already bypasses RLS — this adds no new capability
|
|
15
|
-
-- 2. anon/authenticated CANNOT call it (REVOKE + no GRANT)
|
|
16
|
-
-- 3. Even if somehow called by authenticated, it runs as THAT role
|
|
17
|
-
-- (SECURITY INVOKER), so RLS still applies to their queries
|
|
18
|
-
-- 4. The function is just a thin wrapper around EXECUTE — it doesn't
|
|
19
|
-
-- escalate privileges
|
|
20
|
-
--
|
|
21
|
-
-- PREREQUISITE: Must be deployed BEFORE runRLSCheck() can work.
|
|
22
|
-
-- ============================================================================
|
|
23
|
-
|
|
24
|
-
-- Drop old versions if they exist
|
|
25
|
-
DROP FUNCTION IF EXISTS public.exec_sql(text);
|
|
26
|
-
DROP FUNCTION IF EXISTS public.execute_sql(text);
|
|
27
|
-
|
|
28
|
-
-- Create the function
|
|
29
|
-
CREATE OR REPLACE FUNCTION public.exec_sql(query text)
|
|
30
|
-
RETURNS jsonb
|
|
31
|
-
LANGUAGE plpgsql
|
|
32
|
-
VOLATILE
|
|
33
|
-
SECURITY INVOKER
|
|
34
|
-
SET search_path = ''
|
|
35
|
-
AS $$
|
|
36
|
-
DECLARE
|
|
37
|
-
result jsonb;
|
|
38
|
-
BEGIN
|
|
39
|
-
EXECUTE 'SELECT COALESCE(jsonb_agg(row_to_json(t)), ''[]''::jsonb) FROM (' || query || ') t'
|
|
40
|
-
INTO result;
|
|
41
|
-
RETURN result;
|
|
42
|
-
END;
|
|
43
|
-
$$;
|
|
44
|
-
|
|
45
|
-
-- CRITICAL: Revoke from all public-facing roles
|
|
46
|
-
REVOKE ALL ON FUNCTION public.exec_sql(text) FROM PUBLIC;
|
|
47
|
-
REVOKE ALL ON FUNCTION public.exec_sql(text) FROM anon;
|
|
48
|
-
REVOKE ALL ON FUNCTION public.exec_sql(text) FROM authenticated;
|
|
49
|
-
|
|
50
|
-
-- Only service_role (backend) and postgres (migrations) can use it
|
|
51
|
-
GRANT EXECUTE ON FUNCTION public.exec_sql(text) TO service_role;
|
|
52
|
-
GRANT EXECUTE ON FUNCTION public.exec_sql(text) TO postgres;
|
|
53
|
-
|
|
54
|
-
-- Add a comment explaining the security model
|
|
55
|
-
COMMENT ON FUNCTION public.exec_sql(text) IS
|
|
56
|
-
'Tetra RLS Checker: executes audit SQL. SECURITY INVOKER + only service_role can call. '
|
|
57
|
-
'anon/authenticated are explicitly revoked. Does NOT escalate privileges.';
|
package/dist/generators.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/generators
|
|
3
|
-
*
|
|
4
|
-
* RLS + RPC generators (SQL generation from config). No heavy external deps.
|
|
5
|
-
*/
|
|
6
|
-
export { generateRLS, generateRLSBatch } from './generators/rls-generator.js';
|
|
7
|
-
export type { RLSConfig, RLSTableType, RLSGeneratorResult } from './generators/rls-generator.js';
|
|
8
|
-
export { getAuditChecks, generateAuditSQL } from './generators/rls-auditor.js';
|
|
9
|
-
export type { AuditCheck } from './generators/rls-auditor.js';
|
|
10
|
-
export { runRLSCheck, runRLSCheckDebug } from './generators/rls-checker.js';
|
|
11
|
-
export type { RLSReport, RLSCheckResult, RLSViolation, RLSCategorySummary } from './generators/rls-checker.js';
|
|
12
|
-
export { generateExecSQL, checkExecSQLExists } from './generators/rls-exec-sql.js';
|
|
13
|
-
export { RPCGenerator, DetailRPCGenerator, validateConfig as validateRPCConfig, generateAuthCheck, generateAuthWhereClause, generateAuthDeclarations, generateTimestamp, getTableAlias, escapeIdentifier } from './generators/rpc/index.js';
|
|
14
|
-
export type { GeneratedSQL, FilterDefinition, RPCGeneratorOptions, DetailRPCGeneratorOptions, ValidationResult as RPCValidationResult, ValidationError as RPCValidationError, AccessLevel, CreatorVisibilityConfig as RPCCreatorVisibilityConfig } from './generators/rpc/index.js';
|
|
15
|
-
//# sourceMappingURL=generators.d.ts.map
|
package/dist/generators.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generators.d.ts","sourceRoot":"","sources":["../src/generators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGnF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,IAAI,iBAAiB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC5O,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,gBAAgB,IAAI,mBAAmB,EAAE,eAAe,IAAI,kBAAkB,EAAE,WAAW,EAAE,uBAAuB,IAAI,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/generators.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/generators
|
|
3
|
-
*
|
|
4
|
-
* RLS + RPC generators (SQL generation from config). No heavy external deps.
|
|
5
|
-
*/
|
|
6
|
-
export { generateRLS, generateRLSBatch } from './generators/rls-generator.js';
|
|
7
|
-
export { getAuditChecks, generateAuditSQL } from './generators/rls-auditor.js';
|
|
8
|
-
export { runRLSCheck, runRLSCheckDebug } from './generators/rls-checker.js';
|
|
9
|
-
export { generateExecSQL, checkExecSQLExists } from './generators/rls-exec-sql.js';
|
|
10
|
-
// RPC Generator
|
|
11
|
-
export { RPCGenerator, DetailRPCGenerator, validateConfig as validateRPCConfig, generateAuthCheck, generateAuthWhereClause, generateAuthDeclarations, generateTimestamp, getTableAlias, escapeIdentifier } from './generators/rpc/index.js';
|
|
12
|
-
//# sourceMappingURL=generators.js.map
|
package/dist/generators.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generators.js","sourceRoot":"","sources":["../src/generators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEnF,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,IAAI,iBAAiB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/mcp.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/mcp
|
|
3
|
-
*
|
|
4
|
-
* MCP Online module. Requires @modelcontextprotocol/sdk.
|
|
5
|
-
*/
|
|
6
|
-
export { addMcpRoutes, addMcpAuthRoutes, addMcpTokenRoutes, addMcpUsageRoutes, getMcpOrganizationId, getMcpTenantContext, runWithMcpTenant, validateMcpApiToken, generateMcpApiToken, mcpDB, mcpScopedDB } from './shared/mcp/index.js';
|
|
7
|
-
export type { McpRoutesConfig, McpAuthRoutesConfig, McpToolDefinition, McpToolResult, McpToolHandler, TenantContext, TenantContext as McpTenantContext, McpDBResult, McpDBLocalResult, McpDBOptions, GenerateMcpApiTokenOptions } from './shared/mcp/index.js';
|
|
8
|
-
//# sourceMappingURL=mcp.d.ts.map
|
package/dist/mcp.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxO,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,IAAI,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/mcp.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/mcp
|
|
3
|
-
*
|
|
4
|
-
* MCP Online module. Requires @modelcontextprotocol/sdk.
|
|
5
|
-
*/
|
|
6
|
-
export { addMcpRoutes, addMcpAuthRoutes, addMcpTokenRoutes, addMcpUsageRoutes, getMcpOrganizationId, getMcpTenantContext, runWithMcpTenant, validateMcpApiToken, generateMcpApiToken, mcpDB, mcpScopedDB } from './shared/mcp/index.js';
|
|
7
|
-
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/planner.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/planner
|
|
3
|
-
*
|
|
4
|
-
* Planner module (scheduling, availability, Google Calendar).
|
|
5
|
-
*/
|
|
6
|
-
export { PlannerService, GoogleCalendarService, addPlannerRoutes, addPlannerPublicRoutes, addPlannerCalendarRoutes, computeAvailableSlots, timeToMinutes, minutesToTime } from './shared/planner/index.js';
|
|
7
|
-
export type { PlannerConfig, PlannerCalendarConfig, PlannerRouteOptions, PlannerCallbackContext, AvailabilitySlotRecord, AvailabilitySlotInput, AppointmentRecord, AppointmentInput, SchedulerSettingsRecord, VacationRecord, CalendarTokenRecord, PublicBookingInput, PublicBookingVisitor, TimeSlot, DayAvailability, TeamAvailability, PublicSchedulerData } from './shared/planner/index.js';
|
|
8
|
-
//# sourceMappingURL=planner.d.ts.map
|
package/dist/planner.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../src/planner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC3M,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/planner.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @soulbatical/tetra-core/planner
|
|
3
|
-
*
|
|
4
|
-
* Planner module (scheduling, availability, Google Calendar).
|
|
5
|
-
*/
|
|
6
|
-
export { PlannerService, GoogleCalendarService, addPlannerRoutes, addPlannerPublicRoutes, addPlannerCalendarRoutes, computeAvailableSlots, timeToMinutes, minutesToTime } from './shared/planner/index.js';
|
|
7
|
-
//# sourceMappingURL=planner.js.map
|
package/dist/planner.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../src/planner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AffiliateAttributionService
|
|
3
|
-
*
|
|
4
|
-
* Generic affiliate attribution and commission engine.
|
|
5
|
-
* Internal referral only (voucher > URL > cookie).
|
|
6
|
-
* Config-driven tier upgrades.
|
|
7
|
-
*
|
|
8
|
-
* @module @soulbatical/tetra-core/affiliate
|
|
9
|
-
*/
|
|
10
|
-
import type { SupabaseClient } from '@supabase/supabase-js';
|
|
11
|
-
import type { Request } from 'express';
|
|
12
|
-
import type { AffiliateAttribution, AffiliateConfig, AffiliateOrder } from './types.js';
|
|
13
|
-
export declare class AffiliateAttributionService {
|
|
14
|
-
private supabase;
|
|
15
|
-
private organizationId?;
|
|
16
|
-
private config;
|
|
17
|
-
constructor(supabase: SupabaseClient, config?: Partial<AffiliateConfig>, organizationId?: string);
|
|
18
|
-
/**
|
|
19
|
-
* Determine affiliate attribution for an order.
|
|
20
|
-
* Priority: Voucher > URL (?ref=) > Cookie
|
|
21
|
-
*/
|
|
22
|
-
determineAttribution(req: Request, voucherCode?: string): Promise<AffiliateAttribution | null>;
|
|
23
|
-
/**
|
|
24
|
-
* Create a commission record for an affiliate sale.
|
|
25
|
-
* Updates affiliate stats and checks for tier upgrade.
|
|
26
|
-
*/
|
|
27
|
-
createCommission(order: AffiliateOrder, attribution: AffiliateAttribution): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* Generate a referral code for a new affiliate.
|
|
30
|
-
* Uses custom generator from config or default format.
|
|
31
|
-
*/
|
|
32
|
-
generateReferralCode(contactName: string): string;
|
|
33
|
-
private checkVoucherAttribution;
|
|
34
|
-
private checkUrlParameter;
|
|
35
|
-
private checkCookie;
|
|
36
|
-
/**
|
|
37
|
-
* Resolve an affiliate from referral code or ID.
|
|
38
|
-
*/
|
|
39
|
-
resolveAffiliate(reference: string, affiliateId: string | null): Promise<any>;
|
|
40
|
-
private updateAffiliateStats;
|
|
41
|
-
/**
|
|
42
|
-
* Check if affiliate qualifies for tier upgrade (config-driven).
|
|
43
|
-
*/
|
|
44
|
-
checkTierUpgrade(affiliateId: string, totalSales: number): Promise<void>;
|
|
45
|
-
private upgradeAffiliateTier;
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=AffiliateAttributionService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AffiliateAttributionService.d.ts","sourceRoot":"","sources":["../../../src/shared/affiliate/AffiliateAttributionService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA0BxF,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,MAAM,CAAkB;gBAG9B,QAAQ,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,cAAc,CAAC,EAAE,MAAM;IASzB;;;OAGG;IACG,oBAAoB,CACxB,GAAG,EAAE,OAAO,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAgCvC;;;OAGG;IACG,gBAAgB,CACpB,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,IAAI,CAAC;IA6DhB;;;OAGG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;YAOnC,uBAAuB;IAwBrC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,WAAW;IAiCnB;;OAEG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,GAAG,CAAC;YAkCD,oBAAoB;IAgBlC;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA8ChE,oBAAoB;CAkDnC"}
|