From f294020d0bc437ca73874b3112889e91280807db Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sun, 12 Oct 2025 15:43:19 +0000 Subject: [PATCH] Fix Novu API import error --- supabase/functions/create-novu-subscriber/index.ts | 7 +++---- supabase/functions/deno.d.ts | 2 +- supabase/functions/migrate-novu-users/index.ts | 7 +++---- supabase/functions/trigger-notification/index.ts | 14 ++++++++------ .../functions/update-novu-preferences/index.ts | 7 +++---- supabase/functions/update-novu-subscriber/index.ts | 7 +++---- 6 files changed, 21 insertions(+), 23 deletions(-) diff --git a/supabase/functions/create-novu-subscriber/index.ts b/supabase/functions/create-novu-subscriber/index.ts index c308b2d6..b8e950c4 100644 --- a/supabase/functions/create-novu-subscriber/index.ts +++ b/supabase/functions/create-novu-subscriber/index.ts @@ -1,5 +1,5 @@ import { serve } from "https://deno.land/std@0.168.0/http/server.ts"; -import { Novu } from "npm:@novu/api@0.0.7"; +import { Novu } from "npm:@novu/api@1.6.0"; // TODO: In production, restrict CORS to specific domains // For now, allowing all origins for development flexibility @@ -21,9 +21,8 @@ serve(async (req) => { throw new Error('NOVU_API_KEY is not configured'); } - const novu = new Novu({ - apiKey: novuApiKey, - baseURL: Deno.env.get('VITE_NOVU_API_URL') || 'https://api.novu.co', + const novu = new Novu({ + secretKey: novuApiKey }); // Parse and validate request body diff --git a/supabase/functions/deno.d.ts b/supabase/functions/deno.d.ts index a5f4af89..7baea6d7 100644 --- a/supabase/functions/deno.d.ts +++ b/supabase/functions/deno.d.ts @@ -20,7 +20,7 @@ declare module 'https://esm.sh/@supabase/supabase-js@2.57.4' { export * from '@supabase/supabase-js'; } -declare module 'npm:@novu/api@0.0.7' { +declare module 'npm:@novu/api@1.6.0' { export * from '@novu/api'; } diff --git a/supabase/functions/migrate-novu-users/index.ts b/supabase/functions/migrate-novu-users/index.ts index 12bd30de..ad91a608 100644 --- a/supabase/functions/migrate-novu-users/index.ts +++ b/supabase/functions/migrate-novu-users/index.ts @@ -1,6 +1,6 @@ import { serve } from "https://deno.land/std@0.168.0/http/server.ts"; import { createClient } from "https://esm.sh/@supabase/supabase-js@2.57.4"; -import { Novu } from "npm:@novu/api@0.0.7"; +import { Novu } from "npm:@novu/api@1.6.0"; const corsHeaders = { 'Access-Control-Allow-Origin': '*', @@ -24,9 +24,8 @@ serve(async (req) => { // Create Supabase client with service role for admin access const supabase = createClient(supabaseUrl, supabaseServiceKey); - const novu = new Novu({ - apiKey: novuApiKey, - baseURL: Deno.env.get('VITE_NOVU_API_URL') || 'https://api.novu.co', + const novu = new Novu({ + secretKey: novuApiKey }); // Fetch users who don't have Novu subscriber IDs diff --git a/supabase/functions/trigger-notification/index.ts b/supabase/functions/trigger-notification/index.ts index 3b9cb875..0851a2db 100644 --- a/supabase/functions/trigger-notification/index.ts +++ b/supabase/functions/trigger-notification/index.ts @@ -1,5 +1,5 @@ import { serve } from "https://deno.land/std@0.168.0/http/server.ts"; -import { Novu } from "npm:@novu/api@0.0.7"; +import { Novu } from "npm:@novu/api@1.6.0"; const corsHeaders = { 'Access-Control-Allow-Origin': '*', @@ -18,17 +18,19 @@ serve(async (req) => { throw new Error('NOVU_API_KEY is not configured'); } - const novu = new Novu({ - apiKey: novuApiKey, - baseURL: Deno.env.get('VITE_NOVU_API_URL') || 'https://api.novu.co', + const novu = new Novu({ + secretKey: novuApiKey }); const { workflowId, subscriberId, payload, overrides } = await req.json(); console.log('Triggering notification:', { workflowId, subscriberId }); - const result = await novu.events.trigger(workflowId, { - to: subscriberId, + const result = await novu.trigger({ + to: { + subscriberId, + }, + workflowId, payload, overrides, }); diff --git a/supabase/functions/update-novu-preferences/index.ts b/supabase/functions/update-novu-preferences/index.ts index ccb6db9f..306e7dbe 100644 --- a/supabase/functions/update-novu-preferences/index.ts +++ b/supabase/functions/update-novu-preferences/index.ts @@ -1,5 +1,5 @@ import { serve } from "https://deno.land/std@0.168.0/http/server.ts"; -import { Novu } from "npm:@novu/api@0.0.7"; +import { Novu } from "npm:@novu/api@1.6.0"; import { createClient } from "https://esm.sh/@supabase/supabase-js@2.57.4"; const corsHeaders = { @@ -21,9 +21,8 @@ serve(async (req) => { throw new Error('NOVU_API_KEY is not configured'); } - const novu = new Novu({ - apiKey: novuApiKey, - baseURL: Deno.env.get('VITE_NOVU_API_URL') || 'https://api.novu.co', + const novu = new Novu({ + secretKey: novuApiKey }); const supabase = createClient(supabaseUrl, supabaseServiceKey); diff --git a/supabase/functions/update-novu-subscriber/index.ts b/supabase/functions/update-novu-subscriber/index.ts index 3c41fa1a..1226e376 100644 --- a/supabase/functions/update-novu-subscriber/index.ts +++ b/supabase/functions/update-novu-subscriber/index.ts @@ -1,5 +1,5 @@ import { serve } from "https://deno.land/std@0.168.0/http/server.ts"; -import { Novu } from "npm:@novu/api@0.0.7"; +import { Novu } from "npm:@novu/api@1.6.0"; const corsHeaders = { 'Access-Control-Allow-Origin': '*', @@ -18,9 +18,8 @@ serve(async (req) => { throw new Error('NOVU_API_KEY is not configured'); } - const novu = new Novu({ - apiKey: novuApiKey, - baseURL: Deno.env.get('VITE_NOVU_API_URL') || 'https://api.novu.co', + const novu = new Novu({ + secretKey: novuApiKey }); const { subscriberId, email, firstName, lastName, phone, avatar, data } = await req.json();