@soulbatical/tetra-core 0.1.62 → 0.1.63
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/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/shared/factories/QueryServiceFactory.d.ts +60 -1
- package/dist/shared/factories/QueryServiceFactory.d.ts.map +1 -1
- package/dist/shared/factories/QueryServiceFactory.js +21 -4
- package/dist/shared/factories/QueryServiceFactory.js.map +1 -1
- package/dist/shared/services/TableQueryService.d.ts +153 -0
- package/dist/shared/services/TableQueryService.d.ts.map +1 -0
- package/dist/shared/services/TableQueryService.js +425 -0
- package/dist/shared/services/TableQueryService.js.map +1 -0
- package/dist/shared/types/feature-config.d.ts +68 -0
- package/dist/shared/types/feature-config.d.ts.map +1 -1
- package/dist/shared/types/feature-config.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* } from '@tetra/core';
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
|
-
export type { FeatureConfig, FilterConfig, FilterUIConfig, CountConfig, CountConfigItem, ComputedFieldConfig, SQLComputedFieldConfig, ValidatorMapping, SortFieldConfig, PaginationConfig, EnrichmentConfig, DisplayConfig, PageDisplayConfig, ListDisplayConfig, CardDisplayConfig, CardAction, CreatorVisibilityConfig, ColumnConfig, FormFieldConfig } from './shared/types/feature-config.js';
|
|
28
|
+
export type { FeatureConfig, FilterConfig, FilterUIConfig, CountConfig, CountConfigItem, ComputedFieldConfig, SQLComputedFieldConfig, ValidatorMapping, SortFieldConfig, PaginationConfig, EnrichmentConfig, DisplayConfig, PageDisplayConfig, ListDisplayConfig, CardDisplayConfig, CardAction, CreatorVisibilityConfig, ColumnConfig, FormFieldConfig, TestingConfig } from './shared/types/feature-config.js';
|
|
29
29
|
export { generateValidators } from './shared/types/feature-config.js';
|
|
30
30
|
export type { IncludeConfig, QueryConfig } from './shared/types/query-config.js';
|
|
31
31
|
export type { AutoBoundQueryController, MethodNamesConfig } from './shared/controllers/types.js';
|
|
@@ -41,6 +41,7 @@ export { addMutationRoutes } from './shared/factories/MutationRouteFactory.js';
|
|
|
41
41
|
export { addBatchRoutes } from './shared/factories/BatchRouteFactory.js';
|
|
42
42
|
export { addPhaseRoutes } from './shared/factories/PhaseRouteFactory.js';
|
|
43
43
|
export { SimpleRPCQueryService } from './shared/services/SimpleRPCQueryService.js';
|
|
44
|
+
export { TableQueryService, createTableQueryService } from './shared/services/TableQueryService.js';
|
|
44
45
|
export { BaseCronService } from './shared/services/BaseCronService.js';
|
|
45
46
|
export type { CronServiceConfig as CronConfig, CronJobResult } from './shared/services/BaseCronService.js';
|
|
46
47
|
export { BasePhaseService } from './shared/services/BasePhaseService.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -38,6 +38,7 @@ export { addBatchRoutes } from './shared/factories/BatchRouteFactory.js';
|
|
|
38
38
|
export { addPhaseRoutes } from './shared/factories/PhaseRouteFactory.js';
|
|
39
39
|
// ─── Services ───────────────────────────────────────────────
|
|
40
40
|
export { SimpleRPCQueryService } from './shared/services/SimpleRPCQueryService.js';
|
|
41
|
+
export { TableQueryService, createTableQueryService } from './shared/services/TableQueryService.js';
|
|
41
42
|
export { BaseCronService } from './shared/services/BaseCronService.js';
|
|
42
43
|
export { BasePhaseService } from './shared/services/BasePhaseService.js';
|
|
43
44
|
export { CronRegistry } from './shared/services/CronRegistry.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,9 +45,45 @@ import { FeatureConfig } from '../types/feature-config.js';
|
|
|
45
45
|
* Creates a QueryService class from a FeatureConfig
|
|
46
46
|
*
|
|
47
47
|
* @param config - Feature configuration (defines all behavior)
|
|
48
|
+
* @param options - Optional: { mode: 'rpc' | 'table' }. Default: 'rpc' if RPC names present, 'table' otherwise
|
|
48
49
|
* @returns QueryService class constructor
|
|
50
|
+
*
|
|
51
|
+
* Mode 'table' (NEW — March 2026):
|
|
52
|
+
* Uses Supabase PostgREST queries (.from().select().eq().order().range())
|
|
53
|
+
* No SQL RPC migrations needed! Filters are applied in application code.
|
|
54
|
+
*
|
|
55
|
+
* Mode 'rpc' (legacy — October 2025):
|
|
56
|
+
* Uses Supabase .rpc() calls to database functions.
|
|
57
|
+
* Requires generated SQL migrations for get_*_results and get_*_counts.
|
|
49
58
|
*/
|
|
50
|
-
export declare function createQueryService<TFilters extends Record<string, any>, TItem, TCounts>(config: FeatureConfig<TItem
|
|
59
|
+
export declare function createQueryService<TFilters extends Record<string, any>, TItem, TCounts>(config: FeatureConfig<TItem>, options?: {
|
|
60
|
+
mode?: 'rpc' | 'table';
|
|
61
|
+
}): {
|
|
62
|
+
new (supabase: SupabaseClient, organizationId?: string): {
|
|
63
|
+
supabase: SupabaseClient;
|
|
64
|
+
config: FeatureConfig<TItem>;
|
|
65
|
+
organizationId?: string;
|
|
66
|
+
applyFilter(query: any, filter: import("../types/feature-config.js").FilterConfig, value: any, tableAlias?: string): any;
|
|
67
|
+
applyFilters(query: any, filters: TFilters): any;
|
|
68
|
+
applyOrgScope(query: any): any;
|
|
69
|
+
getResults(params: {
|
|
70
|
+
filters: TFilters;
|
|
71
|
+
limit: number;
|
|
72
|
+
offset: number;
|
|
73
|
+
sortBy: string;
|
|
74
|
+
sortOrder?: "asc" | "desc";
|
|
75
|
+
include?: string[];
|
|
76
|
+
}): Promise<{
|
|
77
|
+
items: TItem[];
|
|
78
|
+
count: number;
|
|
79
|
+
}>;
|
|
80
|
+
getCounts(filters: TFilters): Promise<Record<string, any>>;
|
|
81
|
+
getSingleItem(id: string, include?: string[]): Promise<TItem>;
|
|
82
|
+
getByIds(ids: string[], include?: string[]): Promise<TItem[]>;
|
|
83
|
+
buildSelectQuery(includes: string[]): string;
|
|
84
|
+
transformItems(items: TItem[], _include: string[]): TItem[] | Promise<TItem[]>;
|
|
85
|
+
};
|
|
86
|
+
} | {
|
|
51
87
|
new (supabase: SupabaseClient, organizationId?: string): {
|
|
52
88
|
countsRpcName: string;
|
|
53
89
|
resultsRpcName: string;
|
|
@@ -160,6 +196,29 @@ export declare function createQueryService<TFilters extends Record<string, any>,
|
|
|
160
196
|
* const counts = await orderService.getCounts(filters);
|
|
161
197
|
*/
|
|
162
198
|
export declare function createQueryServiceInstance<TFilters extends Record<string, any>, TItem, TCounts>(config: FeatureConfig<TItem>, supabase: SupabaseClient, organizationId?: string): {
|
|
199
|
+
supabase: SupabaseClient;
|
|
200
|
+
config: FeatureConfig<TItem>;
|
|
201
|
+
organizationId?: string;
|
|
202
|
+
applyFilter(query: any, filter: import("../types/feature-config.js").FilterConfig, value: any, tableAlias?: string): any;
|
|
203
|
+
applyFilters(query: any, filters: TFilters): any;
|
|
204
|
+
applyOrgScope(query: any): any;
|
|
205
|
+
getResults(params: {
|
|
206
|
+
filters: TFilters;
|
|
207
|
+
limit: number;
|
|
208
|
+
offset: number;
|
|
209
|
+
sortBy: string;
|
|
210
|
+
sortOrder?: "asc" | "desc";
|
|
211
|
+
include?: string[];
|
|
212
|
+
}): Promise<{
|
|
213
|
+
items: TItem[];
|
|
214
|
+
count: number;
|
|
215
|
+
}>;
|
|
216
|
+
getCounts(filters: TFilters): Promise<Record<string, any>>;
|
|
217
|
+
getSingleItem(id: string, include?: string[]): Promise<TItem>;
|
|
218
|
+
getByIds(ids: string[], include?: string[]): Promise<TItem[]>;
|
|
219
|
+
buildSelectQuery(includes: string[]): string;
|
|
220
|
+
transformItems(items: TItem[], _include: string[]): TItem[] | Promise<TItem[]>;
|
|
221
|
+
} | {
|
|
163
222
|
countsRpcName: string;
|
|
164
223
|
resultsRpcName: string;
|
|
165
224
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryServiceFactory.d.ts","sourceRoot":"","sources":["../../../src/shared/factories/QueryServiceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryServiceFactory.d.ts","sourceRoot":"","sources":["../../../src/shared/factories/QueryServiceFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SimpleRPCQueryService } from '../services/SimpleRPCQueryService.js';
|
|
2
|
+
import { createTableQueryService } from '../services/TableQueryService.js';
|
|
2
3
|
import { createLogger } from '../../utils/logger.js';
|
|
3
4
|
import { mapFiltersToRPC } from '../utils/config-driven-filters.js';
|
|
4
5
|
import { mapCountsFromRPC } from '../utils/response-mapper.js';
|
|
@@ -48,17 +49,33 @@ const logger = createLogger('database:query:factory');
|
|
|
48
49
|
* Creates a QueryService class from a FeatureConfig
|
|
49
50
|
*
|
|
50
51
|
* @param config - Feature configuration (defines all behavior)
|
|
52
|
+
* @param options - Optional: { mode: 'rpc' | 'table' }. Default: 'rpc' if RPC names present, 'table' otherwise
|
|
51
53
|
* @returns QueryService class constructor
|
|
54
|
+
*
|
|
55
|
+
* Mode 'table' (NEW — March 2026):
|
|
56
|
+
* Uses Supabase PostgREST queries (.from().select().eq().order().range())
|
|
57
|
+
* No SQL RPC migrations needed! Filters are applied in application code.
|
|
58
|
+
*
|
|
59
|
+
* Mode 'rpc' (legacy — October 2025):
|
|
60
|
+
* Uses Supabase .rpc() calls to database functions.
|
|
61
|
+
* Requires generated SQL migrations for get_*_results and get_*_counts.
|
|
52
62
|
*/
|
|
53
|
-
export function createQueryService(config) {
|
|
54
|
-
//
|
|
63
|
+
export function createQueryService(config, options) {
|
|
64
|
+
// Auto-detect mode: use 'table' if no RPC names configured
|
|
65
|
+
const mode = options?.mode || (config.countsRpcName && config.resultsRpcName ? 'rpc' : 'table');
|
|
66
|
+
if (mode === 'table') {
|
|
67
|
+
return createTableQueryService(config);
|
|
68
|
+
}
|
|
69
|
+
// RPC mode — validate config has required RPC names
|
|
55
70
|
if (!config.countsRpcName) {
|
|
56
71
|
throw new Error(`Missing countsRpcName in config for ${config.tableName}!\n` +
|
|
57
|
-
`Add to config: countsRpcName: 'get_${config.tableName}_counts'`
|
|
72
|
+
`Add to config: countsRpcName: 'get_${config.tableName}_counts'\n` +
|
|
73
|
+
`Or use table mode: createQueryService(config, { mode: 'table' })`);
|
|
58
74
|
}
|
|
59
75
|
if (!config.resultsRpcName) {
|
|
60
76
|
throw new Error(`Missing resultsRpcName in config for ${config.tableName}!\n` +
|
|
61
|
-
`Add to config: resultsRpcName: 'get_${config.tableName}_results'`
|
|
77
|
+
`Add to config: resultsRpcName: 'get_${config.tableName}_results'\n` +
|
|
78
|
+
`Or use table mode: createQueryService(config, { mode: 'table' })`);
|
|
62
79
|
}
|
|
63
80
|
return class ConfigDrivenQueryService extends SimpleRPCQueryService {
|
|
64
81
|
// RPC names from config (v3.0 - clean naming, no _simple)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryServiceFactory.js","sourceRoot":"","sources":["../../../src/shared/factories/QueryServiceFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryServiceFactory.js","sourceRoot":"","sources":["../../../src/shared/factories/QueryServiceFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { SupabaseClient } from '@supabase/supabase-js';
|
|
2
|
+
import { FeatureConfig, FilterConfig } from '../types/feature-config.js';
|
|
3
|
+
/**
|
|
4
|
+
* TableQueryService — Config-driven queries via PostgREST (no RPCs needed!)
|
|
5
|
+
*
|
|
6
|
+
* Instead of generating SQL RPC functions in the database, this service builds
|
|
7
|
+
* Supabase PostgREST queries dynamically from FeatureConfig at runtime.
|
|
8
|
+
*
|
|
9
|
+
* Benefits over RPC approach:
|
|
10
|
+
* - No SQL migrations needed for query logic
|
|
11
|
+
* - No parameter naming mismatches (p_org_id vs p_organizationid)
|
|
12
|
+
* - No duplicate timestamp conflicts in migrations
|
|
13
|
+
* - Instant setup — just define FeatureConfig and go
|
|
14
|
+
* - Easier to debug (PostgREST queries are visible in Supabase logs)
|
|
15
|
+
* - RLS is enforced automatically by Supabase
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const Service = createTableQueryService(feedbackFeatureConfig);
|
|
20
|
+
* const service = new Service(supabase, organizationId);
|
|
21
|
+
* const { items, count } = await service.getResults({ filters, limit, offset, sortBy });
|
|
22
|
+
* const counts = await service.getCounts(filters);
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* Created: March 19, 2026
|
|
26
|
+
*/
|
|
27
|
+
export declare class TableQueryService<TFilters extends Record<string, any> = Record<string, any>, TItem = Record<string, any>> {
|
|
28
|
+
supabase: SupabaseClient;
|
|
29
|
+
config: FeatureConfig<TItem>;
|
|
30
|
+
organizationId?: string;
|
|
31
|
+
constructor(supabase: SupabaseClient, config: FeatureConfig<TItem>, organizationId?: string);
|
|
32
|
+
/**
|
|
33
|
+
* Apply a single filter to a Supabase query builder
|
|
34
|
+
*/
|
|
35
|
+
applyFilter(query: any, filter: FilterConfig, value: any, tableAlias?: string): any;
|
|
36
|
+
/**
|
|
37
|
+
* Apply all filters from config to a query
|
|
38
|
+
*/
|
|
39
|
+
applyFilters(query: any, filters: TFilters): any;
|
|
40
|
+
/**
|
|
41
|
+
* Apply org scoping
|
|
42
|
+
*/
|
|
43
|
+
applyOrgScope(query: any): any;
|
|
44
|
+
/**
|
|
45
|
+
* GET filtered + paginated results
|
|
46
|
+
*
|
|
47
|
+
* Builds: SELECT * FROM table WHERE filters ORDER BY sort LIMIT x OFFSET y
|
|
48
|
+
*/
|
|
49
|
+
getResults(params: {
|
|
50
|
+
filters: TFilters;
|
|
51
|
+
limit: number;
|
|
52
|
+
offset: number;
|
|
53
|
+
sortBy: string;
|
|
54
|
+
sortOrder?: 'asc' | 'desc';
|
|
55
|
+
include?: string[];
|
|
56
|
+
}): Promise<{
|
|
57
|
+
items: TItem[];
|
|
58
|
+
count: number;
|
|
59
|
+
}>;
|
|
60
|
+
/**
|
|
61
|
+
* GET counts with breakdowns
|
|
62
|
+
*
|
|
63
|
+
* Builds individual count queries per count config entry.
|
|
64
|
+
* For 'total': SELECT count(*) FROM table WHERE filters
|
|
65
|
+
* For 'breakdown': SELECT status, count(*) FROM table WHERE filters GROUP BY status
|
|
66
|
+
*/
|
|
67
|
+
getCounts(filters: TFilters): Promise<Record<string, any>>;
|
|
68
|
+
/**
|
|
69
|
+
* GET single item by ID
|
|
70
|
+
*/
|
|
71
|
+
getSingleItem(id: string, include?: string[]): Promise<TItem | null>;
|
|
72
|
+
/**
|
|
73
|
+
* GET items by IDs
|
|
74
|
+
*/
|
|
75
|
+
getByIds(ids: string[], include?: string[]): Promise<TItem[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Build SELECT with includes (same as SimpleRPCQueryService)
|
|
78
|
+
*/
|
|
79
|
+
buildSelectQuery(includes: string[]): string;
|
|
80
|
+
/**
|
|
81
|
+
* Transform items hook (override in subclass for computed fields)
|
|
82
|
+
*/
|
|
83
|
+
transformItems(items: TItem[], _include: string[]): TItem[] | Promise<TItem[]>;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Factory function: create a TableQueryService class from FeatureConfig
|
|
87
|
+
*
|
|
88
|
+
* Usage:
|
|
89
|
+
* ```typescript
|
|
90
|
+
* const FeedbackService = createTableQueryService(feedbackFeatureConfig);
|
|
91
|
+
* const service = new FeedbackService(supabase, organizationId);
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export declare function createTableQueryService<TFilters extends Record<string, any> = Record<string, any>, TItem = Record<string, any>>(config: FeatureConfig<TItem>): {
|
|
95
|
+
new (supabase: SupabaseClient, organizationId?: string): {
|
|
96
|
+
supabase: SupabaseClient;
|
|
97
|
+
config: FeatureConfig<TItem>;
|
|
98
|
+
organizationId?: string;
|
|
99
|
+
/**
|
|
100
|
+
* Apply a single filter to a Supabase query builder
|
|
101
|
+
*/
|
|
102
|
+
applyFilter(query: any, filter: FilterConfig, value: any, tableAlias?: string): any;
|
|
103
|
+
/**
|
|
104
|
+
* Apply all filters from config to a query
|
|
105
|
+
*/
|
|
106
|
+
applyFilters(query: any, filters: TFilters): any;
|
|
107
|
+
/**
|
|
108
|
+
* Apply org scoping
|
|
109
|
+
*/
|
|
110
|
+
applyOrgScope(query: any): any;
|
|
111
|
+
/**
|
|
112
|
+
* GET filtered + paginated results
|
|
113
|
+
*
|
|
114
|
+
* Builds: SELECT * FROM table WHERE filters ORDER BY sort LIMIT x OFFSET y
|
|
115
|
+
*/
|
|
116
|
+
getResults(params: {
|
|
117
|
+
filters: TFilters;
|
|
118
|
+
limit: number;
|
|
119
|
+
offset: number;
|
|
120
|
+
sortBy: string;
|
|
121
|
+
sortOrder?: "asc" | "desc";
|
|
122
|
+
include?: string[];
|
|
123
|
+
}): Promise<{
|
|
124
|
+
items: TItem[];
|
|
125
|
+
count: number;
|
|
126
|
+
}>;
|
|
127
|
+
/**
|
|
128
|
+
* GET counts with breakdowns
|
|
129
|
+
*
|
|
130
|
+
* Builds individual count queries per count config entry.
|
|
131
|
+
* For 'total': SELECT count(*) FROM table WHERE filters
|
|
132
|
+
* For 'breakdown': SELECT status, count(*) FROM table WHERE filters GROUP BY status
|
|
133
|
+
*/
|
|
134
|
+
getCounts(filters: TFilters): Promise<Record<string, any>>;
|
|
135
|
+
/**
|
|
136
|
+
* GET single item by ID
|
|
137
|
+
*/
|
|
138
|
+
getSingleItem(id: string, include?: string[]): Promise<TItem>;
|
|
139
|
+
/**
|
|
140
|
+
* GET items by IDs
|
|
141
|
+
*/
|
|
142
|
+
getByIds(ids: string[], include?: string[]): Promise<TItem[]>;
|
|
143
|
+
/**
|
|
144
|
+
* Build SELECT with includes (same as SimpleRPCQueryService)
|
|
145
|
+
*/
|
|
146
|
+
buildSelectQuery(includes: string[]): string;
|
|
147
|
+
/**
|
|
148
|
+
* Transform items hook (override in subclass for computed fields)
|
|
149
|
+
*/
|
|
150
|
+
transformItems(items: TItem[], _include: string[]): TItem[] | Promise<TItem[]>;
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=TableQueryService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableQueryService.d.ts","sourceRoot":"","sources":["../../../src/shared/services/TableQueryService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
import { createLogger } from '../../utils/logger.js';
|
|
2
|
+
const logger = createLogger('database:query:table');
|
|
3
|
+
/**
|
|
4
|
+
* TableQueryService — Config-driven queries via PostgREST (no RPCs needed!)
|
|
5
|
+
*
|
|
6
|
+
* Instead of generating SQL RPC functions in the database, this service builds
|
|
7
|
+
* Supabase PostgREST queries dynamically from FeatureConfig at runtime.
|
|
8
|
+
*
|
|
9
|
+
* Benefits over RPC approach:
|
|
10
|
+
* - No SQL migrations needed for query logic
|
|
11
|
+
* - No parameter naming mismatches (p_org_id vs p_organizationid)
|
|
12
|
+
* - No duplicate timestamp conflicts in migrations
|
|
13
|
+
* - Instant setup — just define FeatureConfig and go
|
|
14
|
+
* - Easier to debug (PostgREST queries are visible in Supabase logs)
|
|
15
|
+
* - RLS is enforced automatically by Supabase
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const Service = createTableQueryService(feedbackFeatureConfig);
|
|
20
|
+
* const service = new Service(supabase, organizationId);
|
|
21
|
+
* const { items, count } = await service.getResults({ filters, limit, offset, sortBy });
|
|
22
|
+
* const counts = await service.getCounts(filters);
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* Created: March 19, 2026
|
|
26
|
+
*/
|
|
27
|
+
export class TableQueryService {
|
|
28
|
+
supabase;
|
|
29
|
+
config;
|
|
30
|
+
organizationId;
|
|
31
|
+
constructor(supabase, config, organizationId) {
|
|
32
|
+
this.supabase = supabase;
|
|
33
|
+
this.config = config;
|
|
34
|
+
this.organizationId = organizationId;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Apply a single filter to a Supabase query builder
|
|
38
|
+
*/
|
|
39
|
+
applyFilter(query, filter, value, tableAlias) {
|
|
40
|
+
if (value === null || value === undefined || value === '' || value === 'all') {
|
|
41
|
+
return query;
|
|
42
|
+
}
|
|
43
|
+
const column = filter.column || filter.name;
|
|
44
|
+
switch (filter.type) {
|
|
45
|
+
case 'enum':
|
|
46
|
+
case 'column': {
|
|
47
|
+
// Boolean mapping support (enum workaround for boolean columns)
|
|
48
|
+
if (filter.sqlGeneration?.booleanMapping) {
|
|
49
|
+
const mapped = filter.sqlGeneration.booleanMapping[String(value)];
|
|
50
|
+
if (mapped !== undefined) {
|
|
51
|
+
return query.eq(column, mapped);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return query.eq(column, value);
|
|
55
|
+
}
|
|
56
|
+
case 'boolean': {
|
|
57
|
+
const boolVal = value === 'true' || value === true;
|
|
58
|
+
return query.eq(column, boolVal);
|
|
59
|
+
}
|
|
60
|
+
case 'search': {
|
|
61
|
+
const searchFields = filter.sqlGeneration?.searchFields || [column];
|
|
62
|
+
const searchTerm = `%${String(value).replace(/[%_]/g, '\\$&')}%`;
|
|
63
|
+
if (searchFields.length === 1) {
|
|
64
|
+
return query.ilike(searchFields[0], searchTerm);
|
|
65
|
+
}
|
|
66
|
+
// Multiple search fields: use OR
|
|
67
|
+
const orConditions = searchFields
|
|
68
|
+
.map(field => `${field}.ilike.${searchTerm}`)
|
|
69
|
+
.join(',');
|
|
70
|
+
return query.or(orConditions);
|
|
71
|
+
}
|
|
72
|
+
case 'time': {
|
|
73
|
+
const now = new Date();
|
|
74
|
+
let startDate = null;
|
|
75
|
+
switch (String(value)) {
|
|
76
|
+
case 'today':
|
|
77
|
+
startDate = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
|
78
|
+
break;
|
|
79
|
+
case 'this_week':
|
|
80
|
+
case 'this-week':
|
|
81
|
+
case 'week': {
|
|
82
|
+
const dayOfWeek = now.getDay();
|
|
83
|
+
const diff = dayOfWeek === 0 ? 6 : dayOfWeek - 1; // Monday = start
|
|
84
|
+
startDate = new Date(now.getFullYear(), now.getMonth(), now.getDate() - diff);
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
case 'this_month':
|
|
88
|
+
case 'this-month':
|
|
89
|
+
case 'month':
|
|
90
|
+
startDate = new Date(now.getFullYear(), now.getMonth(), 1);
|
|
91
|
+
break;
|
|
92
|
+
case 'this_quarter':
|
|
93
|
+
case 'this-quarter':
|
|
94
|
+
case 'quarter': {
|
|
95
|
+
const quarterMonth = Math.floor(now.getMonth() / 3) * 3;
|
|
96
|
+
startDate = new Date(now.getFullYear(), quarterMonth, 1);
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
case 'this_year':
|
|
100
|
+
case 'this-year':
|
|
101
|
+
case 'year':
|
|
102
|
+
startDate = new Date(now.getFullYear(), 0, 1);
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
// Try to parse as ISO date
|
|
106
|
+
startDate = new Date(String(value));
|
|
107
|
+
if (isNaN(startDate.getTime()))
|
|
108
|
+
startDate = null;
|
|
109
|
+
}
|
|
110
|
+
if (startDate) {
|
|
111
|
+
return query.gte(column || 'created_at', startDate.toISOString());
|
|
112
|
+
}
|
|
113
|
+
return query;
|
|
114
|
+
}
|
|
115
|
+
case 'related': {
|
|
116
|
+
return query.eq(column, value);
|
|
117
|
+
}
|
|
118
|
+
case 'nullable': {
|
|
119
|
+
if (value === 'with') {
|
|
120
|
+
return query.not(column, 'is', null);
|
|
121
|
+
}
|
|
122
|
+
else if (value === 'without') {
|
|
123
|
+
return query.is(column, null);
|
|
124
|
+
}
|
|
125
|
+
return query;
|
|
126
|
+
}
|
|
127
|
+
case 'multiselect': {
|
|
128
|
+
const values = Array.isArray(value) ? value : String(value).split(',');
|
|
129
|
+
return query.in(column, values);
|
|
130
|
+
}
|
|
131
|
+
case 'array': {
|
|
132
|
+
const values = Array.isArray(value) ? value : [value];
|
|
133
|
+
return query.overlaps(column, values);
|
|
134
|
+
}
|
|
135
|
+
case 'numeric': {
|
|
136
|
+
// Support range: "10-50" or exact: "25"
|
|
137
|
+
const strVal = String(value);
|
|
138
|
+
if (strVal.includes('-')) {
|
|
139
|
+
const [min, max] = strVal.split('-').map(Number);
|
|
140
|
+
if (!isNaN(min))
|
|
141
|
+
query = query.gte(column, min);
|
|
142
|
+
if (!isNaN(max))
|
|
143
|
+
query = query.lte(column, max);
|
|
144
|
+
return query;
|
|
145
|
+
}
|
|
146
|
+
return query.eq(column, Number(value));
|
|
147
|
+
}
|
|
148
|
+
case 'daterange': {
|
|
149
|
+
// Support: "2026-01-01,2026-03-31"
|
|
150
|
+
const [from, to] = String(value).split(',');
|
|
151
|
+
if (from)
|
|
152
|
+
query = query.gte(column, from);
|
|
153
|
+
if (to)
|
|
154
|
+
query = query.lte(column, to);
|
|
155
|
+
return query;
|
|
156
|
+
}
|
|
157
|
+
default:
|
|
158
|
+
logger.warn({ filterType: filter.type, filterName: filter.name }, 'Unknown filter type');
|
|
159
|
+
return query;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Apply all filters from config to a query
|
|
164
|
+
*/
|
|
165
|
+
applyFilters(query, filters) {
|
|
166
|
+
if (!this.config.filters)
|
|
167
|
+
return query;
|
|
168
|
+
for (const filterConfig of this.config.filters) {
|
|
169
|
+
const value = filters[filterConfig.name];
|
|
170
|
+
query = this.applyFilter(query, filterConfig, value);
|
|
171
|
+
}
|
|
172
|
+
return query;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Apply org scoping
|
|
176
|
+
*/
|
|
177
|
+
applyOrgScope(query) {
|
|
178
|
+
if (this.config.organizationIdField && this.organizationId) {
|
|
179
|
+
// Support legacy feedback pattern: include items where org_id IS NULL
|
|
180
|
+
if (this.config.organizationIdField === 'organization_id') {
|
|
181
|
+
return query.or(`organization_id.eq.${this.organizationId},organization_id.is.null`);
|
|
182
|
+
}
|
|
183
|
+
return query.eq(this.config.organizationIdField, this.organizationId);
|
|
184
|
+
}
|
|
185
|
+
return query;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* GET filtered + paginated results
|
|
189
|
+
*
|
|
190
|
+
* Builds: SELECT * FROM table WHERE filters ORDER BY sort LIMIT x OFFSET y
|
|
191
|
+
*/
|
|
192
|
+
async getResults(params) {
|
|
193
|
+
const { filters, limit, offset, sortBy, sortOrder = 'desc', include = [] } = params;
|
|
194
|
+
try {
|
|
195
|
+
// Build select query (with includes/joins if configured)
|
|
196
|
+
const selectFields = include.length > 0 ? this.buildSelectQuery(include) : '*';
|
|
197
|
+
// Start query with exact count for pagination
|
|
198
|
+
let query = this.supabase
|
|
199
|
+
.from(this.config.tableName)
|
|
200
|
+
.select(selectFields, { count: 'exact' });
|
|
201
|
+
// Apply org scoping
|
|
202
|
+
query = this.applyOrgScope(query);
|
|
203
|
+
// Apply all filters
|
|
204
|
+
query = this.applyFilters(query, filters);
|
|
205
|
+
// Apply sorting
|
|
206
|
+
const ascending = sortOrder === 'asc';
|
|
207
|
+
query = query.order(sortBy, { ascending });
|
|
208
|
+
// Apply pagination
|
|
209
|
+
query = query.range(offset, offset + limit - 1);
|
|
210
|
+
const { data, error, count: totalCount } = await query;
|
|
211
|
+
if (error) {
|
|
212
|
+
logger.error({
|
|
213
|
+
error: error.message,
|
|
214
|
+
code: error.code,
|
|
215
|
+
feature: this.config.tableName,
|
|
216
|
+
filters,
|
|
217
|
+
}, `getResults failed for ${this.config.tableName}`);
|
|
218
|
+
throw error;
|
|
219
|
+
}
|
|
220
|
+
return {
|
|
221
|
+
items: (data || []),
|
|
222
|
+
count: totalCount || 0,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
logger.error({ error, feature: this.config.tableName }, 'getResults error');
|
|
227
|
+
throw error;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* GET counts with breakdowns
|
|
232
|
+
*
|
|
233
|
+
* Builds individual count queries per count config entry.
|
|
234
|
+
* For 'total': SELECT count(*) FROM table WHERE filters
|
|
235
|
+
* For 'breakdown': SELECT status, count(*) FROM table WHERE filters GROUP BY status
|
|
236
|
+
*/
|
|
237
|
+
async getCounts(filters) {
|
|
238
|
+
try {
|
|
239
|
+
const counts = {};
|
|
240
|
+
if (!this.config.counts) {
|
|
241
|
+
return { total: 0 };
|
|
242
|
+
}
|
|
243
|
+
// Build a base filtered query (reused for each count)
|
|
244
|
+
for (const [key, countConfig] of Object.entries(this.config.counts)) {
|
|
245
|
+
switch (countConfig.type) {
|
|
246
|
+
case 'total': {
|
|
247
|
+
let query = this.supabase
|
|
248
|
+
.from(this.config.tableName)
|
|
249
|
+
.select('*', { count: 'exact', head: true });
|
|
250
|
+
query = this.applyOrgScope(query);
|
|
251
|
+
query = this.applyFilters(query, filters);
|
|
252
|
+
const { count, error } = await query;
|
|
253
|
+
if (error) {
|
|
254
|
+
logger.error({ error: error.message, key }, 'Count total failed');
|
|
255
|
+
counts[key] = 0;
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
counts[key] = count || 0;
|
|
259
|
+
}
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
case 'breakdown': {
|
|
263
|
+
if (!countConfig.column)
|
|
264
|
+
break;
|
|
265
|
+
const column = countConfig.column;
|
|
266
|
+
// Get all distinct values + their counts
|
|
267
|
+
// PostgREST doesn't support GROUP BY natively, so we fetch the column
|
|
268
|
+
// and count in JS. For large tables, RPC is better — but for most SaaS
|
|
269
|
+
// tables (<100k rows), this is fast enough.
|
|
270
|
+
let query = this.supabase
|
|
271
|
+
.from(this.config.tableName)
|
|
272
|
+
.select(column);
|
|
273
|
+
query = this.applyOrgScope(query);
|
|
274
|
+
query = this.applyFilters(query, filters);
|
|
275
|
+
const { data, error } = await query;
|
|
276
|
+
if (error) {
|
|
277
|
+
logger.error({ error: error.message, key, column }, 'Count breakdown failed');
|
|
278
|
+
counts[key] = {};
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
// Count occurrences of each value
|
|
282
|
+
const breakdown = {};
|
|
283
|
+
for (const row of data || []) {
|
|
284
|
+
const val = String(row[column] ?? 'null');
|
|
285
|
+
breakdown[val] = (breakdown[val] || 0) + 1;
|
|
286
|
+
}
|
|
287
|
+
counts[key] = breakdown;
|
|
288
|
+
}
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
case 'nullable': {
|
|
292
|
+
if (!countConfig.column)
|
|
293
|
+
break;
|
|
294
|
+
const col = countConfig.column;
|
|
295
|
+
let withQuery = this.supabase
|
|
296
|
+
.from(this.config.tableName)
|
|
297
|
+
.select('*', { count: 'exact', head: true })
|
|
298
|
+
.not(col, 'is', null);
|
|
299
|
+
withQuery = this.applyOrgScope(withQuery);
|
|
300
|
+
withQuery = this.applyFilters(withQuery, filters);
|
|
301
|
+
let withoutQuery = this.supabase
|
|
302
|
+
.from(this.config.tableName)
|
|
303
|
+
.select('*', { count: 'exact', head: true })
|
|
304
|
+
.is(col, null);
|
|
305
|
+
withoutQuery = this.applyOrgScope(withoutQuery);
|
|
306
|
+
withoutQuery = this.applyFilters(withoutQuery, filters);
|
|
307
|
+
const [withResult, withoutResult] = await Promise.all([
|
|
308
|
+
withQuery, withoutQuery
|
|
309
|
+
]);
|
|
310
|
+
counts[key] = {
|
|
311
|
+
with: withResult.count || 0,
|
|
312
|
+
without: withoutResult.count || 0,
|
|
313
|
+
};
|
|
314
|
+
break;
|
|
315
|
+
}
|
|
316
|
+
default:
|
|
317
|
+
logger.debug({ key, type: countConfig.type }, 'Skipping unsupported count type');
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return counts;
|
|
321
|
+
}
|
|
322
|
+
catch (error) {
|
|
323
|
+
logger.error({ error, feature: this.config.tableName }, 'getCounts error');
|
|
324
|
+
throw error;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* GET single item by ID
|
|
329
|
+
*/
|
|
330
|
+
async getSingleItem(id, include = []) {
|
|
331
|
+
try {
|
|
332
|
+
const selectFields = include.length > 0 ? this.buildSelectQuery(include) : '*';
|
|
333
|
+
let query = this.supabase
|
|
334
|
+
.from(this.config.tableName)
|
|
335
|
+
.select(selectFields)
|
|
336
|
+
.eq('id', id);
|
|
337
|
+
query = this.applyOrgScope(query);
|
|
338
|
+
const { data, error } = await query.single();
|
|
339
|
+
if (error) {
|
|
340
|
+
if (error.code === 'PGRST116')
|
|
341
|
+
return null;
|
|
342
|
+
throw error;
|
|
343
|
+
}
|
|
344
|
+
return data;
|
|
345
|
+
}
|
|
346
|
+
catch (error) {
|
|
347
|
+
logger.error({ error, id, feature: this.config.tableName }, 'getSingleItem error');
|
|
348
|
+
throw error;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* GET items by IDs
|
|
353
|
+
*/
|
|
354
|
+
async getByIds(ids, include = []) {
|
|
355
|
+
if (ids.length === 0)
|
|
356
|
+
return [];
|
|
357
|
+
const selectFields = include.length > 0 ? this.buildSelectQuery(include) : '*';
|
|
358
|
+
let query = this.supabase
|
|
359
|
+
.from(this.config.tableName)
|
|
360
|
+
.select(selectFields)
|
|
361
|
+
.in('id', ids);
|
|
362
|
+
query = this.applyOrgScope(query);
|
|
363
|
+
const { data, error } = await query;
|
|
364
|
+
if (error) {
|
|
365
|
+
logger.error({ error, idsCount: ids.length }, 'getByIds error');
|
|
366
|
+
throw error;
|
|
367
|
+
}
|
|
368
|
+
return (data || []);
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Build SELECT with includes (same as SimpleRPCQueryService)
|
|
372
|
+
*/
|
|
373
|
+
buildSelectQuery(includes) {
|
|
374
|
+
let selectQuery = '*';
|
|
375
|
+
if (!this.config.includeMapping || includes.length === 0)
|
|
376
|
+
return selectQuery;
|
|
377
|
+
for (const include of includes) {
|
|
378
|
+
if (include.includes('.'))
|
|
379
|
+
continue;
|
|
380
|
+
let includeConfig = this.config.includeMapping[include];
|
|
381
|
+
let resolvedKey = include;
|
|
382
|
+
if (!includeConfig) {
|
|
383
|
+
const pluralKey = include + 's';
|
|
384
|
+
includeConfig = this.config.includeMapping[pluralKey];
|
|
385
|
+
if (includeConfig)
|
|
386
|
+
resolvedKey = pluralKey;
|
|
387
|
+
}
|
|
388
|
+
if (!includeConfig) {
|
|
389
|
+
const publicKey = include + 's_public';
|
|
390
|
+
includeConfig = this.config.includeMapping[publicKey];
|
|
391
|
+
if (includeConfig)
|
|
392
|
+
resolvedKey = publicKey;
|
|
393
|
+
}
|
|
394
|
+
if (!includeConfig)
|
|
395
|
+
continue;
|
|
396
|
+
const fields = includeConfig.fields.join(', ');
|
|
397
|
+
const actualTableName = includeConfig.tableName || resolvedKey;
|
|
398
|
+
selectQuery += `, ${include}:${actualTableName}!${includeConfig.foreignKey} (${fields})`;
|
|
399
|
+
}
|
|
400
|
+
return selectQuery;
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Transform items hook (override in subclass for computed fields)
|
|
404
|
+
*/
|
|
405
|
+
transformItems(items, _include) {
|
|
406
|
+
return items;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Factory function: create a TableQueryService class from FeatureConfig
|
|
411
|
+
*
|
|
412
|
+
* Usage:
|
|
413
|
+
* ```typescript
|
|
414
|
+
* const FeedbackService = createTableQueryService(feedbackFeatureConfig);
|
|
415
|
+
* const service = new FeedbackService(supabase, organizationId);
|
|
416
|
+
* ```
|
|
417
|
+
*/
|
|
418
|
+
export function createTableQueryService(config) {
|
|
419
|
+
return class ConfigDrivenTableQueryService extends TableQueryService {
|
|
420
|
+
constructor(supabase, organizationId) {
|
|
421
|
+
super(supabase, config, organizationId);
|
|
422
|
+
}
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
//# sourceMappingURL=TableQueryService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableQueryService.js","sourceRoot":"","sources":["../../../src/shared/services/TableQueryService.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,6 +91,21 @@ export interface FeatureConfig<TItem = any> extends QueryConfig<TItem> {
|
|
|
91
91
|
* Created: February 20, 2026
|
|
92
92
|
*/
|
|
93
93
|
formFields?: FormFieldConfig[];
|
|
94
|
+
/**
|
|
95
|
+
* E2E Testing configuration (Config-Driven v5.0 - Tetra)
|
|
96
|
+
* Auto-generates CRUD E2E tests via `tetra-generate-crud-tests`
|
|
97
|
+
* Created: March 18, 2026
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* testing: {
|
|
101
|
+
* restBasePath: '/api/admin/ad-campaigns',
|
|
102
|
+
* createBody: { name: 'Test Campaign', platform: 'facebook' },
|
|
103
|
+
* updateBody: { name: 'Updated Campaign' },
|
|
104
|
+
* updateMethod: 'PATCH',
|
|
105
|
+
* requiredFields: ['name', 'platform'],
|
|
106
|
+
* }
|
|
107
|
+
*/
|
|
108
|
+
testing?: TestingConfig;
|
|
94
109
|
/**
|
|
95
110
|
* 🔐 Access level for RPC functions (Security Hardening v2.0)
|
|
96
111
|
* Controls DATA visibility in SQL Generator
|
|
@@ -623,4 +638,57 @@ export interface CardAction {
|
|
|
623
638
|
relatedIdField?: string;
|
|
624
639
|
onClick?: string;
|
|
625
640
|
}
|
|
641
|
+
/**
|
|
642
|
+
* E2E Testing configuration
|
|
643
|
+
* Drives auto-generated CRUD tests via `tetra-generate-crud-tests`
|
|
644
|
+
*
|
|
645
|
+
* The generator creates tests for: list, create, read, update, delete
|
|
646
|
+
* plus validation tests for required fields.
|
|
647
|
+
*/
|
|
648
|
+
export interface TestingConfig {
|
|
649
|
+
/**
|
|
650
|
+
* REST API base path for this resource
|
|
651
|
+
* Falls back to FeatureConfig.restBasePath if not set
|
|
652
|
+
* @example '/api/admin/ad-campaigns'
|
|
653
|
+
*/
|
|
654
|
+
restBasePath?: string;
|
|
655
|
+
/**
|
|
656
|
+
* Body for POST (create) request
|
|
657
|
+
* Must include all required fields with valid test values
|
|
658
|
+
* @example { name: 'Test Campaign', platform: 'facebook' }
|
|
659
|
+
*/
|
|
660
|
+
createBody: Record<string, unknown>;
|
|
661
|
+
/**
|
|
662
|
+
* Body for PUT/PATCH (update) request
|
|
663
|
+
* Only include fields you want to change
|
|
664
|
+
* @example { name: 'Updated Campaign' }
|
|
665
|
+
*/
|
|
666
|
+
updateBody: Record<string, unknown>;
|
|
667
|
+
/**
|
|
668
|
+
* HTTP method for update: 'PUT' or 'PATCH'
|
|
669
|
+
* @default 'PUT'
|
|
670
|
+
*/
|
|
671
|
+
updateMethod?: 'PUT' | 'PATCH';
|
|
672
|
+
/**
|
|
673
|
+
* Expected HTTP status code for create
|
|
674
|
+
* @default 200
|
|
675
|
+
*/
|
|
676
|
+
createStatus?: number;
|
|
677
|
+
/**
|
|
678
|
+
* Required field names — generates validation tests
|
|
679
|
+
* (POST with each field missing should return 400/422)
|
|
680
|
+
* @example ['name', 'platform']
|
|
681
|
+
*/
|
|
682
|
+
requiredFields?: string[];
|
|
683
|
+
/**
|
|
684
|
+
* Skip specific CRUD operations
|
|
685
|
+
* Use for read-only resources or resources without delete
|
|
686
|
+
*/
|
|
687
|
+
skip?: {
|
|
688
|
+
create?: boolean;
|
|
689
|
+
read?: boolean;
|
|
690
|
+
update?: boolean;
|
|
691
|
+
delete?: boolean;
|
|
692
|
+
};
|
|
693
|
+
}
|
|
626
694
|
//# sourceMappingURL=feature-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-config.d.ts","sourceRoot":"","sources":["../../../src/shared/types/feature-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feature-config.d.ts","sourceRoot":"","sources":["../../../src/shared/types/feature-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-config.js","sourceRoot":"","sources":["../../../src/shared/types/feature-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"feature-config.js","sourceRoot":"","sources":["../../../src/shared/types/feature-config.ts"],"names":[],"mappings":"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"}
|