@soulbatical/tetra-core 0.1.63 → 0.2.1

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.
Files changed (57) hide show
  1. package/README.md +212 -53
  2. package/dist/affiliate.d.ts +11 -0
  3. package/dist/affiliate.d.ts.map +1 -0
  4. package/dist/affiliate.js +10 -0
  5. package/dist/affiliate.js.map +1 -0
  6. package/dist/auth.d.ts +8 -0
  7. package/dist/auth.d.ts.map +1 -0
  8. package/dist/auth.js +7 -0
  9. package/dist/auth.js.map +1 -0
  10. package/dist/billing.d.ts +8 -0
  11. package/dist/billing.d.ts.map +1 -0
  12. package/dist/billing.js +7 -0
  13. package/dist/billing.js.map +1 -0
  14. package/dist/core/createApp.d.ts +1 -1
  15. package/dist/email.d.ts +9 -0
  16. package/dist/email.d.ts.map +1 -0
  17. package/dist/email.js +8 -0
  18. package/dist/email.js.map +1 -0
  19. package/dist/generators.d.ts +15 -0
  20. package/dist/generators.d.ts.map +1 -0
  21. package/dist/generators.js +12 -0
  22. package/dist/generators.js.map +1 -0
  23. package/dist/mcp.d.ts +8 -0
  24. package/dist/mcp.d.ts.map +1 -0
  25. package/dist/mcp.js +7 -0
  26. package/dist/mcp.js.map +1 -0
  27. package/dist/middleware/securityMiddleware.d.ts +1 -1
  28. package/dist/middleware/validateQueryParams.d.ts +1 -1
  29. package/dist/middleware/validateQueryParams.d.ts.map +1 -1
  30. package/dist/middleware/validateQueryParams.js +1 -1
  31. package/dist/middleware/validateQueryParams.js.map +1 -1
  32. package/dist/planner.d.ts +8 -0
  33. package/dist/planner.d.ts.map +1 -0
  34. package/dist/planner.js +7 -0
  35. package/dist/planner.js.map +1 -0
  36. package/dist/shared/controllers/BaseMutationController.d.ts +1 -1
  37. package/dist/shared/controllers/BaseMutationController.d.ts.map +1 -1
  38. package/dist/shared/controllers/BaseQueryController.d.ts +4 -4
  39. package/dist/shared/factories/QueryServiceFactory.d.ts +16 -14
  40. package/dist/shared/factories/QueryServiceFactory.d.ts.map +1 -1
  41. package/dist/shared/factories/QueryServiceFactory.js +1 -1
  42. package/dist/shared/factories/QueryServiceFactory.js.map +1 -1
  43. package/dist/shared/planner/PlannerService.js.map +1 -1
  44. package/dist/shared/services/SimpleRPCQueryService.d.ts +2 -2
  45. package/dist/shared/services/SimpleRPCQueryService.d.ts.map +1 -1
  46. package/dist/shared/services/TableQueryService.d.ts +4 -4
  47. package/dist/shared/services/TableQueryService.d.ts.map +1 -1
  48. package/dist/shared/utils/response-mapper.js +2 -2
  49. package/dist/shared/utils/response-mapper.js.map +1 -1
  50. package/dist/shared/validators/featureConfigValidator.d.ts.map +1 -1
  51. package/dist/shared/validators/featureConfigValidator.js +6 -5
  52. package/dist/shared/validators/featureConfigValidator.js.map +1 -1
  53. package/dist/storage.d.ts +8 -0
  54. package/dist/storage.d.ts.map +1 -0
  55. package/dist/storage.js +7 -0
  56. package/dist/storage.js.map +1 -0
  57. package/package.json +48 -5
package/README.md CHANGED
@@ -2,95 +2,254 @@
2
2
 
3
3
  The foundation framework for Tetra platform projects (Soulbatical BV) — config-driven Express + Supabase + TypeScript.
4
4
 
5
- ## Authentication Middleware
5
+ ## Installation
6
6
 
7
- Provides universal JWT authentication via Supabase with pluggable user enrichment.
7
+ ```bash
8
+ npm install @soulbatical/tetra-core
9
+ ```
10
+
11
+ Only install the peer dependencies you actually use. Most are optional:
12
+
13
+ ```bash
14
+ # Always needed
15
+ npm install express @supabase/supabase-js
16
+
17
+ # Only if you use billing
18
+ npm install stripe # and/or @mollie/api-client
19
+
20
+ # Only if you use storage (image uploads)
21
+ npm install multer sharp
22
+
23
+ # Only if you use MCP server
24
+ npm install @modelcontextprotocol/sdk
25
+
26
+ # Only if you use structured logging
27
+ npm install pino
28
+ ```
29
+
30
+ ## Subpath Exports
31
+
32
+ Import only the modules you need. Each subpath isolates its heavy dependencies:
33
+
34
+ ```typescript
35
+ // Main barrel — core framework (controllers, factories, middleware, validators, db clients)
36
+ import { createApp, authenticateToken, BaseQueryController, addQueryRoutes } from '@soulbatical/tetra-core';
37
+
38
+ // Frontend hooks + components (React, for Next.js frontends)
39
+ import { useFeature, DataTable, FilterBar } from '@soulbatical/tetra-core/frontend';
40
+
41
+ // Billing — Stripe + Mollie integration
42
+ import { BillingService, addBillingRoutes } from '@soulbatical/tetra-core/billing';
43
+
44
+ // Storage — file upload + image processing (multer + sharp)
45
+ import { addStorageUploadRoutes, ImageProcessingService } from '@soulbatical/tetra-core/storage';
46
+
47
+ // MCP — expose backend as Model Context Protocol server
48
+ import { addMcpRoutes, addMcpAuthRoutes } from '@soulbatical/tetra-core/mcp';
49
+
50
+ // Email — Mailgun, SMTP, Gmail OAuth
51
+ import { EmailService, sendMailgunEmail, GmailClient } from '@soulbatical/tetra-core/email';
52
+
53
+ // Planner — scheduling, availability, Google Calendar
54
+ import { PlannerService, addPlannerRoutes } from '@soulbatical/tetra-core/planner';
55
+
56
+ // Affiliate — attribution, tracking, commissions
57
+ import { AffiliateAttributionService, addAffiliateAdminRoutes } from '@soulbatical/tetra-core/affiliate';
58
+
59
+ // Auth — public auth routes (login, register, invite, magic link)
60
+ import { addPublicAuthRoutes } from '@soulbatical/tetra-core/auth';
61
+
62
+ // Generators — RLS + RPC SQL generation from FeatureConfig
63
+ import { RPCGenerator, generateRLS, runRLSCheck } from '@soulbatical/tetra-core/generators';
64
+ ```
65
+
66
+ | Subpath | What you get | Extra peer deps |
67
+ |---------|-------------|-----------------|
68
+ | `.` | App bootstrap, controllers, factories, middleware, validators, DB clients, cron, logging, crypto | express, @supabase/supabase-js |
69
+ | `./frontend` | useFeature, DataTable, FilterBar (React hooks + components) | react, @tanstack/react-table |
70
+ | `./billing` | BillingService, Stripe/Mollie routes + webhooks | stripe, @mollie/api-client |
71
+ | `./storage` | Upload routes, image processing, storage proxy | multer, sharp |
72
+ | `./mcp` | MCP server routes, auth, token management | @modelcontextprotocol/sdk |
73
+ | `./email` | EmailService, Mailgun, SMTP, Gmail OAuth | — (nodemailer is a hard dep) |
74
+ | `./planner` | PlannerService, Google Calendar, availability, booking | — |
75
+ | `./affiliate` | Attribution, click tracking, commission routes | — |
76
+ | `./auth` | Public auth routes (login, register, invite, magic link) | — |
77
+ | `./generators` | RPCGenerator, RLS generator, RLS auditor/checker | — |
78
+
79
+ ## Core Concepts
80
+
81
+ ### App Bootstrap
82
+
83
+ ```typescript
84
+ import { createApp } from '@soulbatical/tetra-core';
85
+
86
+ const app = createApp({
87
+ name: 'my-app',
88
+ cors: { origin: process.env.FRONTEND_URL },
89
+ security: { rateLimit: { windowMs: 15 * 60 * 1000, max: 100 } },
90
+ });
91
+ ```
92
+
93
+ ### Database Clients
94
+
95
+ Six access levels, each with appropriate RLS behavior:
96
+
97
+ | Client | When | RLS |
98
+ |--------|------|-----|
99
+ | `publicDB()` | Public endpoints, no auth | Yes |
100
+ | `userDB(req)` | User's own data | Yes |
101
+ | `adminDB(req)` | Org-wide (admin routes) | Yes |
102
+ | `systemDB(ctx)` | Cron, webhooks (never user code) | Bypass |
103
+ | `superadminDB` | Platform admin | Bypass |
104
+ | `webhookDB(src)` | External webhooks | Bypass |
105
+
106
+ ```typescript
107
+ import { userDB, adminDB, systemDB } from '@soulbatical/tetra-core';
108
+
109
+ // In a controller
110
+ const db = userDB(req);
111
+ const { data } = await db.from('tracks').select('*');
112
+ ```
8
113
 
9
- ### Setup
114
+ ### Authentication Middleware
10
115
 
11
116
  ```typescript
12
- import { configureAuth } from '@soulbatical/tetra-core';
117
+ import { configureAuth, authenticateToken, requireRole, requireOrgAdmin } from '@soulbatical/tetra-core';
13
118
 
14
119
  configureAuth({
120
+ supabaseUrl: process.env.SUPABASE_URL!,
121
+ supabaseServiceKey: process.env.SUPABASE_SERVICE_ROLE_KEY!,
122
+ jwtSecret: process.env.SUPABASE_JWT_SECRET!,
15
123
  loadUserContext: async (supabaseUser, token) => {
16
- // Anonymous users (Supabase Anonymous Sign-Ins)
17
124
  if (supabaseUser.is_anonymous) {
18
- return {
19
- id: supabaseUser.id,
20
- is_anonymous: true,
21
- };
125
+ return { id: supabaseUser.id, is_anonymous: true };
22
126
  }
23
-
24
- // Regular users: enrich from database
25
127
  const session = await sessionService.getUserSession(supabaseUser.id);
26
- if (!session) return null; // reject
27
- return {
28
- email: session.email,
29
- organizationId: session.active_organization_id,
30
- is_superadmin: session.is_superadmin,
31
- role: session.role,
32
- };
128
+ return session ? { email: session.email, organizationId: session.active_organization_id, role: session.role } : null;
33
129
  },
34
- roleHierarchy: { viewer: 1, member: 2, admin: 3 },
35
- orgAccessExemptPaths: ['/current/organization'],
36
130
  });
37
- ```
38
131
 
39
- ### Middleware
132
+ // Routes
133
+ router.get('/profile', authenticateToken, controller.get);
134
+ router.get('/admin/users', authenticateToken, requireOrgAdmin, controller.list);
135
+ router.delete('/admin/users/:id', authenticateToken, requireRole('admin', 'owner'), controller.delete);
136
+ ```
40
137
 
41
138
  | Middleware | Purpose |
42
139
  |-----------|---------|
43
140
  | `authenticateToken` | Verify JWT, reject if missing/invalid |
44
- | `authenticateTokenOnly` | Verify JWT if present, continue without user if not (alias: `optionalAuth`) |
141
+ | `authenticateTokenOnly` / `optionalAuth` | Verify JWT if present, continue without user if not |
45
142
  | `requireSuperAdmin` | Require superadmin flag |
46
143
  | `requireOrgAdmin` | Require admin/owner role in active org |
47
144
  | `requireRole(...roles)` | Require specific role(s) |
48
145
  | `validateOrganizationAccess` | Block org ID override attacks |
49
146
 
50
- ### AuthenticatedUser Interface
147
+ ### Feature Config System
148
+
149
+ One config drives everything — filters, counts, sorting, pagination, RPC names, REST paths:
51
150
 
52
151
  ```typescript
53
- interface AuthenticatedUser {
54
- id: string;
55
- email?: string;
56
- organizationId?: string;
57
- active_organization_id?: string;
58
- organizationIds: string[];
59
- role?: string;
60
- is_superadmin?: boolean;
61
- is_anonymous?: boolean; // true for Supabase Anonymous Sign-In users
62
- [key: string]: any;
63
- }
152
+ import type { FeatureConfig } from '@soulbatical/tetra-core';
153
+
154
+ export const trackConfig: FeatureConfig = {
155
+ tableName: 'tracks',
156
+ organizationIdField: 'organization_id',
157
+ resultsRpcName: 'get_tracks_results',
158
+ countsRpcName: 'get_tracks_counts',
159
+ detailRpcName: 'get_tracks_detail',
160
+ restBasePath: '/api/admin/tracks',
161
+ filters: [
162
+ { key: 'status', type: 'enum', column: 'status', options: ['active', 'completed', 'paused'] },
163
+ { key: 'search', type: 'search', columns: ['name', 'description'] },
164
+ { key: 'period', type: 'time', column: 'created_at' },
165
+ ],
166
+ counts: {
167
+ total: { type: 'total' },
168
+ byStatus: { type: 'enum', column: 'status' },
169
+ },
170
+ sortFields: [
171
+ { key: 'created_at', column: 'created_at', label: 'Created', default: true, defaultOrder: 'desc' },
172
+ { key: 'name', column: 'name', label: 'Name' },
173
+ ],
174
+ pagination: { defaultLimit: 20, maxLimit: 100 },
175
+ };
64
176
  ```
65
177
 
66
- ### Anonymous Users (v0.1.18+)
178
+ ### Controllers + Route Factories
179
+
180
+ ```typescript
181
+ import { BaseQueryController, BaseMutationController, addQueryRoutes, addMutationRoutes } from '@soulbatical/tetra-core';
182
+
183
+ class TrackQueryController extends BaseQueryController { /* overrides only */ }
184
+ class TrackMutationController extends BaseMutationController { /* overrides only */ }
185
+
186
+ addQueryRoutes(router, { config: trackConfig, controller: trackQueryController });
187
+ addMutationRoutes(router, { config: trackConfig, controller: trackMutationController });
188
+ // Generates: GET /list, GET /:id, GET /counts, POST, PUT/:id, DELETE/:id
189
+ ```
67
190
 
68
- Supabase Anonymous Sign-Ins create real authenticated users with `is_anonymous: true` in the JWT. This enables:
191
+ ### RPC Generator
69
192
 
70
- - Guest shopping carts with proper RLS (no session_id workarounds)
71
- - Seamless upgrade to real accounts (UUID stays the same)
72
- - All `authenticated` role RLS policies work for anonymous users
193
+ Generate SQL from your FeatureConfig never write list/filter/count queries by hand:
73
194
 
74
- **Pattern in `loadUserContext`:**
75
195
  ```typescript
76
- if (supabaseUser.is_anonymous) {
77
- return { id: supabaseUser.id, is_anonymous: true };
78
- }
196
+ import { RPCGenerator, DetailRPCGenerator } from '@soulbatical/tetra-core/generators';
197
+
198
+ const generator = new RPCGenerator(trackConfig, {
199
+ aliasMap: { tracks: 't', users_public: 'u' },
200
+ });
201
+ const { resultsSQL, countsSQL } = generator.generate();
202
+ generator.writeMigrations({ force: true });
203
+ ```
204
+
205
+ ### RLS Generator + Auditor
206
+
207
+ ```typescript
208
+ import { generateRLS, runRLSCheck } from '@soulbatical/tetra-core/generators';
209
+
210
+ const rls = generateRLS({ tableName: 'tracks', tableType: 'org_owned' });
211
+ const report = await runRLSCheck(supabase); // 26 audit checks
212
+ ```
213
+
214
+ ### Permissions (Config-driven RBAC)
215
+
216
+ ```typescript
217
+ import { registerFeaturePermissions, requirePermission } from '@soulbatical/tetra-core';
218
+
219
+ registerFeaturePermissions('tracks', {
220
+ admin: { view: true, create: true, edit: true, delete: true },
221
+ coach: { view: true, create: true, edit: 'own', delete: false },
222
+ client: { view: 'own', create: false, edit: false, delete: false },
223
+ });
224
+
225
+ router.delete('/:id', requirePermission('tracks', 'delete'), controller.delete);
79
226
  ```
80
227
 
81
- Anonymous users skip the database profile lookup (they don't have one). The `is_anonymous` flag is available on `req.user` for controllers that need to differentiate.
228
+ ### Entitlements (Plan-based Feature Gating)
82
229
 
83
- ### Usage in Routes
230
+ ```typescript
231
+ import { requireFeature, requireWithinLimit } from '@soulbatical/tetra-core';
232
+
233
+ router.post('/', requireFeature('tracks'), requireWithinLimit('tracks', 'maxTracks'), controller.create);
234
+ ```
235
+
236
+ ### Error Handling (RFC 7807)
84
237
 
85
238
  ```typescript
86
- import { authenticateToken, authenticateTokenOnly, requireSuperAdmin } from '@soulbatical/tetra-core';
239
+ import { RFC7807ErrorResponse, handleControllerError } from '@soulbatical/tetra-core';
87
240
 
88
- // Public route with optional auth (anonymous + real users get JWT validated)
89
- router.get('/cart', authenticateTokenOnly, cartController.getCart);
241
+ // Standardized error responses never use custom formats
242
+ throw new RFC7807ErrorResponse(404, 'Track not found', { trackId });
243
+ ```
90
244
 
91
- // Protected route (must be authenticated)
92
- router.get('/profile', authenticateToken, profileController.get);
245
+ ### Cron Services
246
+
247
+ ```typescript
248
+ import { BaseCronService, CronRegistry } from '@soulbatical/tetra-core';
249
+
250
+ class TrackReminderCron extends BaseCronService {
251
+ async run() { /* your logic */ }
252
+ }
93
253
 
94
- // Admin route
95
- router.get('/admin/orders', authenticateToken, requireOrgAdmin, adminController.list);
254
+ CronRegistry.register(new TrackReminderCron({ schedule: '0 9 * * *', name: 'track-reminders' }));
96
255
  ```
@@ -0,0 +1,11 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
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/auth.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @soulbatical/tetra-core/auth
3
+ *
4
+ * Public auth routes (login, register, invite, magic link). Requires @supabase/supabase-js.
5
+ */
6
+ export { addPublicAuthRoutes } from './shared/auth/routes.js';
7
+ export type { PublicAuthRoutesConfig, OnNewUserResult, OAuthProvider, InviteConfig, MagicLinkConfig, UserProfileOrg } from './shared/auth/types.js';
8
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/auth.js ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @soulbatical/tetra-core/auth
3
+ *
4
+ * Public auth routes (login, register, invite, magic link). Requires @supabase/supabase-js.
5
+ */
6
+ export { addPublicAuthRoutes } from './shared/auth/routes.js';
7
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,7 @@
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
@@ -0,0 +1 @@
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"}
@@ -79,7 +79,7 @@ export declare function createApp(config: CreateAppConfig): {
79
79
  publicContentRateLimiter: import("express-rate-limit").RateLimitRequestHandler;
80
80
  createRateLimiter: (windowMs?: number, max?: number) => import("express-rate-limit").RateLimitRequestHandler;
81
81
  smartRateLimiter: (limiter: any) => (req: Request, res: Response, next: NextFunction) => any;
82
- limitRequestSize: (req: Request, res: Response, next: NextFunction) => express.Response<any, Record<string, any>>;
82
+ limitRequestSize: (req: Request, res: Response, next: NextFunction) => express.Response<any, Record<string, any>> | undefined;
83
83
  sanitizeInput: (req: Request, res: Response, next: NextFunction) => void;
84
84
  };
85
85
  };
@@ -0,0 +1,9 @@
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
@@ -0,0 +1 @@
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 ADDED
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,15 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,12 @@
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
@@ -0,0 +1 @@
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 ADDED
@@ -0,0 +1,8 @@
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 } from './shared/mcp/index.js';
7
+ export type { McpRoutesConfig, McpAuthRoutesConfig, McpToolDefinition, McpToolResult, McpToolHandler, TenantContext as McpTenantContext } from './shared/mcp/index.js';
8
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
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,MAAM,uBAAuB,CAAC;AACpN,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/mcp.js ADDED
@@ -0,0 +1,7 @@
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 } from './shared/mcp/index.js';
7
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
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,MAAM,uBAAuB,CAAC"}
@@ -62,7 +62,7 @@ export declare function configureSecurity(config?: SecurityConfig): {
62
62
  publicContentRateLimiter: import("express-rate-limit").RateLimitRequestHandler;
63
63
  createRateLimiter: (windowMs?: number, max?: number) => import("express-rate-limit").RateLimitRequestHandler;
64
64
  smartRateLimiter: (limiter: any) => (req: Request, res: Response, next: NextFunction) => any;
65
- limitRequestSize: (req: Request, res: Response, next: NextFunction) => Response<any, Record<string, any>>;
65
+ limitRequestSize: (req: Request, res: Response, next: NextFunction) => Response<any, Record<string, any>> | undefined;
66
66
  sanitizeInput: (req: Request, res: Response, next: NextFunction) => void;
67
67
  };
68
68
  //# sourceMappingURL=securityMiddleware.d.ts.map
@@ -53,7 +53,7 @@ export declare function validateFields(query: any, config: QueryValidationConfig
53
53
  */
54
54
  export declare function validateQueryParams(config: QueryValidationConfig): (req: Request & {
55
55
  validatedQuery?: any;
56
- }, res: Response, next: NextFunction) => Response<any, Record<string, any>>;
56
+ }, res: Response, next: NextFunction) => Response<any, Record<string, any>> | undefined;
57
57
  /**
58
58
  * Pre-configured validators for common endpoints
59
59
  * Agentrook features will be added here as they are implemented.
@@ -1 +1 @@
1
- {"version":3,"file":"validateQueryParams.d.ts","sourceRoot":"","sources":["../../src/middleware/validateQueryParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAsB,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAetF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAElC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAG3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAEpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAG9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAGzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;IAGvD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,qBAAqB,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA2CjD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,qBAAqB,GAC5B;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAsEjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,qBAAqB,GAC5B,MAAM,EAAE,GAAG,SAAS,CAsBtB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,IACvD,KAAK,OAAO,GAAG;IAAE,cAAc,CAAC,EAAE,GAAG,CAAA;CAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,wCAkKnF;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAElE,CAAC"}
1
+ {"version":3,"file":"validateQueryParams.d.ts","sourceRoot":"","sources":["../../src/middleware/validateQueryParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAsB,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAetF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAElC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAG3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAEpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAG9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAGzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;IAGvD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,qBAAqB,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA2CjD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,qBAAqB,GAC5B;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAsEjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,qBAAqB,GAC5B,MAAM,EAAE,GAAG,SAAS,CAsBtB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,IACvD,KAAK,OAAO,GAAG;IAAE,cAAc,CAAC,EAAE,GAAG,CAAA;CAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,oDAkKnF;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAElE,CAAC"}
@@ -152,7 +152,7 @@ export function validateFields(query, config) {
152
152
  let fields = [];
153
153
  // Handle comma-separated string
154
154
  if (typeof query.fields === 'string') {
155
- fields = query.fields.split(',').map(f => f.trim());
155
+ fields = query.fields.split(',').map((f) => f.trim());
156
156
  }
157
157
  // Handle array
158
158
  else if (Array.isArray(query.fields)) {
@@ -1 +1 @@
1
- {"version":3,"file":"validateQueryParams.js","sourceRoot":"","sources":["../../src/middleware/validateQueryParams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateQueryParams.js","sourceRoot":"","sources":["../../src/middleware/validateQueryParams.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,7 @@
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
@@ -0,0 +1 @@
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"}