@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.
- package/README.md +212 -53
- package/dist/affiliate.d.ts +11 -0
- package/dist/affiliate.d.ts.map +1 -0
- package/dist/affiliate.js +10 -0
- package/dist/affiliate.js.map +1 -0
- package/dist/auth.d.ts +8 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +7 -0
- package/dist/auth.js.map +1 -0
- package/dist/billing.d.ts +8 -0
- package/dist/billing.d.ts.map +1 -0
- package/dist/billing.js +7 -0
- package/dist/billing.js.map +1 -0
- package/dist/core/createApp.d.ts +1 -1
- package/dist/email.d.ts +9 -0
- package/dist/email.d.ts.map +1 -0
- package/dist/email.js +8 -0
- package/dist/email.js.map +1 -0
- package/dist/generators.d.ts +15 -0
- package/dist/generators.d.ts.map +1 -0
- package/dist/generators.js +12 -0
- package/dist/generators.js.map +1 -0
- package/dist/mcp.d.ts +8 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +7 -0
- package/dist/mcp.js.map +1 -0
- package/dist/middleware/securityMiddleware.d.ts +1 -1
- package/dist/middleware/validateQueryParams.d.ts +1 -1
- package/dist/middleware/validateQueryParams.d.ts.map +1 -1
- package/dist/middleware/validateQueryParams.js +1 -1
- package/dist/middleware/validateQueryParams.js.map +1 -1
- package/dist/planner.d.ts +8 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +7 -0
- package/dist/planner.js.map +1 -0
- package/dist/shared/controllers/BaseMutationController.d.ts +1 -1
- package/dist/shared/controllers/BaseMutationController.d.ts.map +1 -1
- package/dist/shared/controllers/BaseQueryController.d.ts +4 -4
- package/dist/shared/factories/QueryServiceFactory.d.ts +16 -14
- package/dist/shared/factories/QueryServiceFactory.d.ts.map +1 -1
- package/dist/shared/factories/QueryServiceFactory.js +1 -1
- package/dist/shared/factories/QueryServiceFactory.js.map +1 -1
- package/dist/shared/planner/PlannerService.js.map +1 -1
- package/dist/shared/services/SimpleRPCQueryService.d.ts +2 -2
- package/dist/shared/services/SimpleRPCQueryService.d.ts.map +1 -1
- package/dist/shared/services/TableQueryService.d.ts +4 -4
- package/dist/shared/services/TableQueryService.d.ts.map +1 -1
- package/dist/shared/utils/response-mapper.js +2 -2
- package/dist/shared/utils/response-mapper.js.map +1 -1
- package/dist/shared/validators/featureConfigValidator.d.ts.map +1 -1
- package/dist/shared/validators/featureConfigValidator.js +6 -5
- package/dist/shared/validators/featureConfigValidator.js.map +1 -1
- package/dist/storage.d.ts +8 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +7 -0
- package/dist/storage.js.map +1 -0
- 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
|
-
##
|
|
5
|
+
## Installation
|
|
6
6
|
|
|
7
|
-
|
|
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
|
-
###
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
###
|
|
147
|
+
### Feature Config System
|
|
148
|
+
|
|
149
|
+
One config drives everything — filters, counts, sorting, pagination, RPC names, REST paths:
|
|
51
150
|
|
|
52
151
|
```typescript
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
###
|
|
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
|
-
|
|
191
|
+
### RPC Generator
|
|
69
192
|
|
|
70
|
-
|
|
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
|
-
|
|
77
|
-
|
|
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
|
-
|
|
228
|
+
### Entitlements (Plan-based Feature Gating)
|
|
82
229
|
|
|
83
|
-
|
|
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 {
|
|
239
|
+
import { RFC7807ErrorResponse, handleControllerError } from '@soulbatical/tetra-core';
|
|
87
240
|
|
|
88
|
-
//
|
|
89
|
-
|
|
241
|
+
// Standardized error responses — never use custom formats
|
|
242
|
+
throw new RFC7807ErrorResponse(404, 'Track not found', { trackId });
|
|
243
|
+
```
|
|
90
244
|
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
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
package/dist/auth.js.map
ADDED
|
@@ -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"}
|
package/dist/billing.js
ADDED
|
@@ -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"}
|
package/dist/core/createApp.d.ts
CHANGED
|
@@ -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
|
};
|
package/dist/email.d.ts
ADDED
|
@@ -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
|
package/dist/mcp.js.map
ADDED
|
@@ -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,
|
|
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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAiB,MAAM,mCAAmC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,MAAM,MAAM,GAAG,YAAY,CAAC,4BAA4B,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,qBAAqB,GAA4D;IACrF,IAAI,EAAE;QACJ,WAAW,EAAE,aAAa;QAC1B,MAAM,EAAE,iDAAiD;KAC1D;CACF,CAAC;AAgDF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,8CAA8C;IAC9C,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;SACnB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAU,EACV,MAA6B;IAE7B,kEAAkE;IAClE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;IAExC,8CAA8C;IAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;IAClD,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACrD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,8BAA8B,CAAC,CAAC;QAC1E,IAAI,GAAG,CAAC,CAAC;IACX,CAAC;IAED,mCAAmC;IACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC;IACpD,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;IACnE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,6BAA6B,CAAC,CAAC;QAC3E,KAAK,GAAG,CAAC,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,4BAA4B,CAAC,CAAC;QACpF,KAAK,GAAG,QAAQ,CAAC;IACnB,CAAC;IAED,+BAA+B;IAC/B,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAElC,+DAA+D;IAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAgB,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QACnE,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC;YAC1C,KAAK;YACL,MAAM,EAAE,YAAY;SACrB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAU,EACV,MAA6B;IAE7B,MAAM,MAAM,GAAoD,EAAE,CAAC;IAEnE,kDAAkD;IAClD,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzE,+CAA+C;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAgB,CAAC;QAEtC,2EAA2E;QAC3E,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,yDAAyD;YACzD,2EAA2E;YAC3E,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,iEAAiE,CAAC,CAAC;YAC5F,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,mDAAmD;QACnD,IAAI,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,8BAA8B,CAAC,CAAC;YACnG,oFAAoF;YACpF,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,MAAM,SAAS,GAAI,KAAK,CAAC,SAAoB,CAAC,WAAW,EAAE,CAAC;QAC5D,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAChD,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,8BAA8B,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;QAClC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBACvB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,mCAAmC,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBACvB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,mCAAmC,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,mCAAmC,CAAC,CAAC;QAChH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAU,EACV,MAA6B;IAE7B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,GAAa,EAAE,CAAC;IAE1B,gCAAgC;IAChC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,eAAe;SACV,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,gCAAgC;IAChC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxC,MAAM,CAAC,aAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CACtC,CAAC;IAEF,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA6B;IAC/D,OAAO,CAAC,GAAuC,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACpF,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,yBAAyB,CAAC,CAAC;YAE5D,+DAA+D;YAC/D,KAAK,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAC5E,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC7C,MAAM,YAAY,GAAG,yBAAyB,eAAe,kCAAkC,IAAI,CAAC,WAAW,sBAAsB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACnJ,MAAM,CAAC,KAAK,CAAC;wBACX,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,eAAe;wBACf,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC;qBAC1C,EAAE,+BAA+B,CAAC,CAAC;oBAEpC,OAAO,oBAAoB,CAAC,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE;wBACxD,UAAU,EAAE,eAAe;wBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC;qBAC1C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,6DAA6D;YAC7D,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa;gBACzC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC1C,CAAC,CAAC,EAAE,CAAC;YAEP,6CAA6C;YAC7C,MAAM,aAAa,GAAG;gBACpB,GAAG,cAAc;gBACjB,GAAG,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;aACnC,CAAC;YAEF,mFAAmF;YACnF,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAa,EAAE,iBAAiB;mBAC7D,MAAM,CAAC,kBAAkB;mBACzB,EAAE,CAAC;YAER,MAAM,eAAe,GAAG;gBACtB,GAAG,MAAM;gBACT,kBAAkB;aACnB,CAAC;YAEF,wBAAwB;YACxB,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAElE,cAAc;YACd,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAEzD,6BAA6B;YAC7B,MAAM,cAAc,GAAQ;gBAC1B,GAAG,UAAU;gBACb,GAAG,OAAO;aACX,CAAC;YAEF,wBAAwB;YACxB,IAAI,eAAe,CAAC,WAAW,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAgB,CAAC;gBAC1C,cAAc,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAEnD,oCAAoC;gBACpC,IAAI,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC;oBACxD,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,IAAI,GAAG,CAAC;oBACvD,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;oBACrD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,0BAA0B;oBACrD,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,oCAAoC;YACpC,IAAI,eAAe,CAAC,aAAa,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;gBAC1D,IAAI,MAAM,EAAE,CAAC;oBACX,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC;gBACjC,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC/D,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;wBACnC,IAAI,CAAC;4BACH,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;4BACnD,cAAc,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC;wBACzC,CAAC;wBAAC,OAAO,KAAU,EAAE,CAAC;4BACpB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC;4BACjE,OAAO,oBAAoB,CAAC,UAAU,CAAC,GAAG,EACxC,sBAAsB,KAAK,MAAM,KAAK,CAAC,OAAO,EAAE,EAChD,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,+DAA+D;YAC/D,wCAAwC;YACxC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAa,CAAC;gBACzC,cAAc,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACjG,CAAC;YAED,sCAAsC;YACtC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,OAAiB,CAAC;gBACjD,cAAc,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,+EAA+E;YAC/E,0FAA0F;YAC1F,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACjI,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC;gBAE7E,yDAAyD;gBACzD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACnD,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CACvD,CAAC;gBAEF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,kBAAkB;wBAClB,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;wBAC9C,UAAU,EAAE,oCAAoC;qBACjD,EAAE,2CAA2C,CAAC,CAAC;oBAEhD,uDAAuD;oBACvD,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBACjD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAC5D,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;4BACpD,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACvD,CAAC;wBACF,OAAO,OAAO,CAAC,CAAC,CAAC,iBAAiB,OAAO,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC7E,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAEnB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3B,OAAO,oBAAoB,CAAC,UAAU,CAAC,GAAG,EACxC,kCAAkC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACjE,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAChE,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,oCAAoC;YACpC,GAAG,CAAC,cAAc,GAAG,cAAc,CAAC;YAEpC,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAE3D,IAAI,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAClD,oBAAoB,CAAC,UAAU,CAAC,GAAG,EACjC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAC7C,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA0C;AACrE,8EAA8E;CAC/E,CAAC"}
|
|
@@ -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"}
|
package/dist/planner.js
ADDED
|
@@ -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"}
|