fresh icon indicating copy to clipboard operation
fresh copied to clipboard

`@supabase/postgres-js` breaks due to commonjs

Open marvinhagemeister opened this issue 5 months ago • 9 comments

error: Uncaught (in promise) TypeError: Class extends value #<Object> is not a constructor or null
    at eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js, <anonymous>:6:429)

marvinhagemeister avatar Sep 16 '25 08:09 marvinhagemeister

Full trace:

Task start vite

  VITE v7.1.5  ready in 821 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h + enter to show help
9:55:49 AM [vite] (ssr) Error when evaluating SSR module fresh:server_entry: Class extends value #<Object> is not a constructor or null
      at eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js:6:429)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/cjs/index.js:11:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs:9:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js:5:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/supabase-js/dist/module/index.js:10:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/lib/supabase.ts:4:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/lib/auth.ts:7:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/routes/_middleware.ts:4:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (fresh-route::__middleware:8:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (fresh:server-snapshot:29:32)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
error: Uncaught (in promise) TypeError: Class extends value #<Object> is not a constructor or null
    at eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js, <anonymous>:6:429)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/cjs/index.js, <anonymous>:11:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs, <anonymous>:9:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js, <anonymous>:5:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/supabase-js/dist/module/index.js, <anonymous>:10:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/lib/supabase.ts, <anonymous>:4:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/lib/auth.ts, <anonymous>:7:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/routes/_middleware.ts, <anonymous>:4:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (fresh-route::__middleware, <anonymous>:8:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (fresh:server-snapshot, <anonymous>:29:32)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)

MauScheff avatar Sep 16 '25 08:09 MauScheff

For some reason, when package.json contains

"exports": {
    ".": {
        "default": "./src/index.js",
        "module": "./src/index.mjs"
    }
}

Fresh+vite prefers default commonjs export instead of module, this breaks many other packages, e.g opentelemetry

CertainLach avatar Sep 16 '25 13:09 CertainLach

Yeah, on top of that those "module" entries are not ESM. They are CJS with ESM syntax.

marvinhagemeister avatar Sep 16 '25 13:09 marvinhagemeister

Yeah, on top of that those "module" entries are not ESM. They are CJS with ESM syntax.

Huh? You mean they are non-spec compliant, e.g importing files without extensions/with automatic /index.js completion, or something else?

CertainLach avatar Sep 16 '25 21:09 CertainLach

That and the @supabase/postgres-js package in particular really hates ESM. This is what their ESM entrypoint looks like:

import index from '../cjs/index.js'
const {
  PostgrestClient,
  PostgrestQueryBuilder,
  PostgrestFilterBuilder,
  PostgrestTransformBuilder,
  PostgrestBuilder,
  PostgrestError,
} = index

export {
  PostgrestBuilder,
  PostgrestClient,
  PostgrestFilterBuilder,
  PostgrestQueryBuilder,
  PostgrestTransformBuilder,
  PostgrestError,
}

// compatibility with CJS output
export default {
  PostgrestClient,
  PostgrestQueryBuilder,
  PostgrestFilterBuilder,
  PostgrestTransformBuilder,
  PostgrestBuilder,
  PostgrestError,
}

I think they just ran some sort of linter that complained that they don't have a "module" condition and did this to silence the linter rather than providing a proper ESM variant of their code.

marvinhagemeister avatar Sep 17 '25 11:09 marvinhagemeister

Opentelemetry seems to use almost proper es modules in exports.module (except it requires sloppy imports)

Except vite is using default export instead, and as far as I can see, fresh commonjs transform does something weird to them

CertainLach avatar Sep 17 '25 16:09 CertainLach

It's still breaking for me on 2.1.1 - I'm blocked.

❯ deno run dev
Task dev vite

  VITE v7.1.5  ready in 1611 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h + enter to show help
10:31:48 PM [vite] (ssr) Error when evaluating SSR module fresh:server_entry: Class extends value #<Object> is not a constructor or null
      at eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js:6:429)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/cjs/index.js:13:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs:10:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js:5:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/supabase-js/dist/module/index.js:11:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/lib/supabase.ts:4:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/lib/auth.ts:7:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (/Users/mau/Development/vibechain/packages/app/routes/_middleware.ts:4:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (fresh-route::__middleware:8:31)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
      at async eval (fresh:server-snapshot:29:32)
      at async ESModulesEvaluator.runInlinedModule (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
      at async SSRCompatModuleRunner.directRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
      at async SSRCompatModuleRunner.cachedRequest (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
error: Uncaught (in promise) TypeError: Class extends value #<Object> is not a constructor or null
    at eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js, <anonymous>:6:429)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/cjs/index.js, <anonymous>:13:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs, <anonymous>:10:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js, <anonymous>:5:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/node_modules/.deno/@[email protected]/node_modules/@supabase/supabase-js/dist/module/index.js, <anonymous>:11:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/lib/supabase.ts, <anonymous>:4:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/lib/auth.ts, <anonymous>:7:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (/Users/mau/Development/vibechain/packages/app/routes/_middleware.ts, <anonymous>:4:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (fresh-route::__middleware, <anonymous>:8:31)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)
    at async eval (fresh:server-snapshot, <anonymous>:29:32)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:910:3)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1119:59)
    at async SSRCompatModuleRunner.directRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:18863:22)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/mau/Development/vibechain/packages/app/node_modules/.deno/[email protected]/node_modules/vite/dist/node/module-runner.js:1037:73)

importing like this: (deno.json)

 "@supabase/supabase-js": "npm:@supabase/supabase-js@^2.57.4",

And using like this:

import { createClient, type SupabaseClient } from "@supabase/supabase-js";

let cachedAnon: SupabaseClient | null = null;
let cachedServer: SupabaseClient | null = null;

export function getSupabaseAnon(): SupabaseClient {
  if (cachedAnon) return cachedAnon;
  const url = Deno.env.get("SUPABASE_URL");
  const anon = Deno.env.get("SUPABASE_ANON_KEY");
  if (!url || !anon) {
    throw new Error(
      "Missing SUPABASE_URL or SUPABASE_ANON_KEY env for Integration",
    );
  }
  cachedAnon = createClient(url, anon, {
    auth: { persistSession: false, autoRefreshToken: false },
  });
  return cachedAnon;
}

// Prefer service role when available for server-side operations (RLS-safe).
export function getSupabaseServer(): SupabaseClient {
  if (cachedServer) return cachedServer;
  const url = Deno.env.get("SUPABASE_URL");
  const serviceKey = Deno.env.get("SUPABASE_SERVICE_ROLE_KEY") ||
    Deno.env.get("SUPABASE_ANON_KEY");
  if (!url || !serviceKey) {
    throw new Error(
      "Missing SUPABASE_URL or SUPABASE_SERVICE_ROLE_KEY/ANON_KEY env for Integration",
    );
  }
  cachedServer = createClient(url, serviceKey, {
    auth: { persistSession: false, autoRefreshToken: false },
  });
  return cachedServer;
}

MauScheff avatar Sep 19 '25 20:09 MauScheff

A workaround has been suggested of excluding from bundling in vite.config if you only use the module server side. That suggestion allowed me to get the app to work, however, whenever I hit the ignored import line using the App (server side, like in an API endpoint), I see in devtools a 500 error, and the console logs that the module wasn't found. I don't understand how the workaround is supposed to include the module somehow after excluding it from the bundle. (these workaround is documented in https://github.com/denoland/fresh/issues/3478)

MauScheff avatar Oct 01 '25 13:10 MauScheff

This now works with Fresh 2.1.2! Thank yo so much @marvinhagemeister 🎉

MauScheff avatar Oct 16 '25 08:10 MauScheff