n8n-nodes-base
Version:
Base nodes of n8n
25 lines (23 loc) • 3.36 kB
JavaScript
/**
* ProfitWell Node - Version 1 - Zod Schema
* Discriminator: resource=metric, operation=get
*
* Use .parse() for strict validation or .safeParse() for error handling.
*
* Schema helpers (z, expressionSchema, etc.) are passed as parameters
* by the schema-validator, not imported from external files.
*
* @generated - CommonJS JavaScript for runtime loading
*/
module.exports = function getSchema({ parameters, z, expressionSchema, stringOrExpression, numberOrExpression, booleanOrExpression, resourceLocatorValueSchema, resourceMapperValueSchema, filterValueSchema, assignmentCollectionValueSchema, iDataObjectSchema, resolveSchema }) {
return z.object({
parameters: z.object({
resource: z.literal('metric').default('metric'),
operation: z.literal('get'),
type: z.union([z.literal('daily'), z.literal('monthly'), expressionSchema]).optional(),
month: resolveSchema({ parameters, schema: stringOrExpression, required: false, displayOptions: {"show":{"type":["daily"]}}, defaults: {"type":""} }),
simple: booleanOrExpression.optional(),
options: z.object({ plan_id: stringOrExpression.optional(), dailyMetrics: z.array(z.union([z.literal('active_customers'), z.literal('churned_customers'), z.literal('churned_recurring_revenue'), z.literal('cumulative_net_new_mrr'), z.literal('cumulative_new_trialing_customers'), z.literal('downgraded_customers'), z.literal('downgraded_recurring_revenue'), z.literal('future_churn_mrr'), z.literal('new_customers'), z.literal('new_recurring_revenue'), z.literal('reactivated_customers'), z.literal('reactivated_recurring_revenue'), z.literal('recurring_revenue'), z.literal('upgraded_customers'), z.literal('upgraded_recurring_revenue')])).optional(), monthlyMetrics: z.array(z.union([z.literal('active_customers'), z.literal('active_trialing_customers'), z.literal('average_revenue_per_user'), z.literal('churned_customers'), z.literal('churned_customers_cancellations'), z.literal('churned_customers_delinquent'), z.literal('churned_recurring_revenue'), z.literal('churned_recurring_revenue_cancellations'), z.literal('churned_recurring_revenue_delinquent'), z.literal('churned_trialing_customers'), z.literal('converted_customers'), z.literal('converted_recurring_revenue'), z.literal('customers_churn_cancellations_rate'), z.literal('customers_churn_delinquent_rate'), z.literal('customers_churn_rate'), z.literal('customer_conversion_rate'), z.literal('customers_retention_rate'), z.literal('downgraded_customers'), z.literal('downgrade_rate'), z.literal('downgraded_recurring_revenue'), z.literal('existing_customers'), z.literal('existing_recurring_revenue'), z.literal('existing_trialing_customers'), z.literal('growth_rate'), z.literal('lifetime_value'), z.literal('new_customers'), z.literal('new_recurring_revenue'), z.literal('new_trialing_customers'), z.literal('plan_change_rate'), z.literal('plan_changed_recurring_revenue'), z.literal('reactivated_customers'), z.literal('reactivated_recurring_revenue'), z.literal('recurring_revenue'), z.literal('revenue_churn_cancellations_rate'), z.literal('revenue_churn_delinquent_rate'), z.literal('revenue_churn_rate'), z.literal('revenue_retention_rate'), z.literal('upgrade_rate'), z.literal('upgraded_customers'), z.literal('upgraded_recurring_revenue')])).optional() }).optional(),
}).optional(),
});
};