@soulbatical/tetra-core 0.1.62 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/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/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/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/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/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/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 +41 -1
|
@@ -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/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/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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"}
|
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"}
|
|
@@ -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"}
|
|
@@ -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
|