From f08be960b0b9554ca2c7786d502af56af7e15462 Mon Sep 17 00:00:00 2001 From: Hermann_Kitio Date: Fri, 17 Apr 2026 01:04:16 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20imports=20ESM=20avec=20extensions=20.js?= =?UTF-8?q?=20=E2=80=94=20NodeNext=20compatible=20Render=20=E2=80=94=20117?= =?UTF-8?q?/117=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/settings.local.json | 3 ++- src/controllers/correctionController.ts | 8 ++++---- src/controllers/simulationController.ts | 8 ++++---- src/index.ts | 10 +++++----- src/lib/planController.ts | 6 +++--- src/middleware/auth.ts | 2 +- src/middleware/plan.ts | 6 +++--- src/routes/auth.ts | 4 ++-- src/routes/corrections.ts | 6 +++--- src/routes/plans.ts | 6 +++--- src/routes/simulations.ts | 12 ++++++------ src/routes/stripe.ts | 12 ++++++------ tsconfig.json | 4 ++-- 13 files changed, 44 insertions(+), 43 deletions(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 47b3190..b0b9237 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -1,7 +1,8 @@ { "permissions": { "allow": [ - "Bash(npm run:*)" + "Bash(npm run:*)", + "Bash(SUPABASE_URL=https://dummy.supabase.co SUPABASE_SERVICE_ROLE_KEY=dummy node -e \"import\\('./dist/index.js'\\).then\\(\\(\\) => { console.log\\('IMPORT_OK'\\); process.exit\\(0\\); }\\).catch\\(e => { console.error\\('IMPORT_FAIL:', e.message\\); process.exit\\(1\\); }\\)\")" ] } } diff --git a/src/controllers/correctionController.ts b/src/controllers/correctionController.ts index 1b0109f..06919bf 100644 --- a/src/controllers/correctionController.ts +++ b/src/controllers/correctionController.ts @@ -1,7 +1,7 @@ -import { supabase } from '../lib/supabase' -import { correctEE as deepseekCorrectEE, correctEO as deepseekCorrectEO } from '../lib/deepseek' -import type { EERapport, EORapport } from '../lib/deepseek' -import type { AuthProfile } from '../middleware/auth' +import { supabase } from '../lib/supabase.js' +import { correctEE as deepseekCorrectEE, correctEO as deepseekCorrectEO } from '../lib/deepseek.js' +import type { EERapport, EORapport } from '../lib/deepseek.js' +import type { AuthProfile } from '../middleware/auth.js' type CorrectionError = { error: true diff --git a/src/controllers/simulationController.ts b/src/controllers/simulationController.ts index de1cbeb..c7bcbe1 100644 --- a/src/controllers/simulationController.ts +++ b/src/controllers/simulationController.ts @@ -1,7 +1,7 @@ -import { supabase } from '../lib/supabase' -import { canUserSimulate, getPlanPermissions } from '../lib/access' -import type { Plan } from '../lib/access' -import type { AuthProfile } from '../middleware/auth' +import { supabase } from '../lib/supabase.js' +import { canUserSimulate, getPlanPermissions } from '../lib/access.js' +import type { Plan } from '../lib/access.js' +import type { AuthProfile } from '../middleware/auth.js' export type Tache = 'EE_T1' | 'EE_T2' | 'EE_T3' | 'EO_T1' | 'EO_T3' | 'EO_T2_LIVE' export type Mode = 'entrainement' | 'examen' diff --git a/src/index.ts b/src/index.ts index 7c12571..1e05f0a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,11 +1,11 @@ import 'dotenv/config' import { Hono } from 'hono' import { serve } from '@hono/node-server' -import authRoutes from './routes/auth' -import plansRoutes from './routes/plans' -import simulationsRoutes from './routes/simulations' -import correctionsRoutes from './routes/corrections' -import stripeRoutes from './routes/stripe' +import authRoutes from './routes/auth.js' +import plansRoutes from './routes/plans.js' +import simulationsRoutes from './routes/simulations.js' +import correctionsRoutes from './routes/corrections.js' +import stripeRoutes from './routes/stripe.js' const app = new Hono() diff --git a/src/lib/planController.ts b/src/lib/planController.ts index 96d15f1..fde8b64 100644 --- a/src/lib/planController.ts +++ b/src/lib/planController.ts @@ -1,6 +1,6 @@ -import { supabase } from './supabase' -import { PLANS } from './access' -import type { Plan } from './access' +import { supabase } from './supabase.js' +import { PLANS } from './access.js' +import type { Plan } from './access.js' export async function updateUserPlan( userId: string, diff --git a/src/middleware/auth.ts b/src/middleware/auth.ts index ecf25fa..72ed908 100644 --- a/src/middleware/auth.ts +++ b/src/middleware/auth.ts @@ -1,5 +1,5 @@ import type { Context, Next } from 'hono' -import { supabase } from '../lib/supabase' +import { supabase } from '../lib/supabase.js' export type AuthUser = { id: string diff --git a/src/middleware/plan.ts b/src/middleware/plan.ts index be7024b..8c7d42d 100644 --- a/src/middleware/plan.ts +++ b/src/middleware/plan.ts @@ -1,7 +1,7 @@ import type { Context, Next } from 'hono' -import { checkFeatureAccess, getPlanPermissions } from '../lib/access' -import type { Feature, Plan } from '../lib/access' -import type { AppVariables } from './auth' +import { checkFeatureAccess, getPlanPermissions } from '../lib/access.js' +import type { Feature, Plan } from '../lib/access.js' +import type { AppVariables } from './auth.js' /** * Vérifie que le profil de l'utilisateur (posé par authMiddleware) diff --git a/src/routes/auth.ts b/src/routes/auth.ts index 8cf5447..b17c701 100644 --- a/src/routes/auth.ts +++ b/src/routes/auth.ts @@ -1,6 +1,6 @@ import { Hono } from 'hono' -import { authMiddleware } from '../middleware/auth' -import type { AppVariables } from '../middleware/auth' +import { authMiddleware } from '../middleware/auth.js' +import type { AppVariables } from '../middleware/auth.js' const auth = new Hono<{ Variables: AppVariables }>() diff --git a/src/routes/corrections.ts b/src/routes/corrections.ts index 24031e7..b01dbe4 100644 --- a/src/routes/corrections.ts +++ b/src/routes/corrections.ts @@ -1,7 +1,7 @@ import { Hono } from 'hono' -import { authMiddleware } from '../middleware/auth' -import type { AppVariables } from '../middleware/auth' -import * as correctionController from '../controllers/correctionController' +import { authMiddleware } from '../middleware/auth.js' +import type { AppVariables } from '../middleware/auth.js' +import * as correctionController from '../controllers/correctionController.js' const VALID_TACHES_EE = ['EE_T1', 'EE_T2', 'EE_T3'] const VALID_TACHES_EO = ['EO_T1', 'EO_T3'] diff --git a/src/routes/plans.ts b/src/routes/plans.ts index 44ad750..37d4ec4 100644 --- a/src/routes/plans.ts +++ b/src/routes/plans.ts @@ -1,8 +1,8 @@ import { Hono } from 'hono' import Stripe from 'stripe' -import { authMiddleware } from '../middleware/auth' -import type { AppVariables } from '../middleware/auth' -import { getPlanPermissions, PLANS } from '../lib/access' +import { authMiddleware } from '../middleware/auth.js' +import type { AppVariables } from '../middleware/auth.js' +import { getPlanPermissions, PLANS } from '../lib/access.js' const plans = new Hono<{ Variables: AppVariables }>() diff --git a/src/routes/simulations.ts b/src/routes/simulations.ts index 82a583d..b72da77 100644 --- a/src/routes/simulations.ts +++ b/src/routes/simulations.ts @@ -1,10 +1,10 @@ import { Hono } from 'hono' -import { authMiddleware } from '../middleware/auth' -import type { AppVariables } from '../middleware/auth' -import { getPlanPermissions } from '../lib/access' -import type { Plan } from '../lib/access' -import * as simulationController from '../controllers/simulationController' -import type { Tache, Mode } from '../controllers/simulationController' +import { authMiddleware } from '../middleware/auth.js' +import type { AppVariables } from '../middleware/auth.js' +import { getPlanPermissions } from '../lib/access.js' +import type { Plan } from '../lib/access.js' +import * as simulationController from '../controllers/simulationController.js' +import type { Tache, Mode } from '../controllers/simulationController.js' const VALID_TACHES: Tache[] = ['EE_T1', 'EE_T2', 'EE_T3', 'EO_T1', 'EO_T3', 'EO_T2_LIVE'] const VALID_MODES: Mode[] = ['entrainement', 'examen'] diff --git a/src/routes/stripe.ts b/src/routes/stripe.ts index ba0bcfb..127ed15 100644 --- a/src/routes/stripe.ts +++ b/src/routes/stripe.ts @@ -1,15 +1,15 @@ import { Hono } from 'hono' import type Stripe from 'stripe' -import { authMiddleware } from '../middleware/auth' -import type { AppVariables } from '../middleware/auth' -import { createCheckoutSession, verifyStripeWebhook } from '../lib/stripe' +import { authMiddleware } from '../middleware/auth.js' +import type { AppVariables } from '../middleware/auth.js' +import { createCheckoutSession, verifyStripeWebhook } from '../lib/stripe.js' import { updateUserPlan, updateUserStripeInfo, findUserBySubscriptionId, -} from '../lib/planController' -import type { Plan } from '../lib/access' -import { PLANS } from '../lib/access' +} from '../lib/planController.js' +import type { Plan } from '../lib/access.js' +import { PLANS } from '../lib/access.js' const stripeRoutes = new Hono<{ Variables: AppVariables }>() diff --git a/tsconfig.json b/tsconfig.json index 391bfec..fda5de3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,8 @@ { "compilerOptions": { "target": "ES2022", - "module": "ESNext", - "moduleResolution": "Bundler", + "module": "NodeNext", + "moduleResolution": "NodeNext", "lib": ["ES2022"], "outDir": "./dist", "rootDir": "./src",