Skip to content

Cannot compile TypeScript project without "dom" library support #1081

Open
@KevinLiddle

Description

@KevinLiddle

Checklist

  • I have looked into the Readme, Examples, and FAQ and have not found a suitable solution or answer.
  • I have looked into the API documentation and have not found a suitable solution or answer.
  • I have searched the issues and have not found a suitable solution or answer.
  • I have searched the Auth0 Community forums and have not found a suitable solution or answer.
  • I agree to the terms within the Auth0 Code of Conduct.

Description

I'm building a node backend with TypeScript and I cannot compile the project after installing node-auth0 because it cannot find declarations for RequestInfo and RequestCredentials within node-auth0/src/lib/models.ts.

I was able to work around this by creating a type declaration file in my project like so

import * as undici_types from "undici-types";

declare global {
  type RequestInfo = undici_types.RequestInfo;
  type RequestCredentials = undici_types.RequestCredentials;
}

I'm not sure if the issue is with undici-types or with auth0 but I was breaking too much other stuff when I tried to fix this within auth0.

Reproduction

  1. Create a new node project with the following:

tsconfig.json

{
  "compilerOptions": {
    "lib": ["es2022"],
    "target": "es2022",
    "module": "commonjs",
    "moduleResolution": "node",
    "outDir": "build",
    "rootDir": ".",
    "baseUrl": ".",
    "resolveJsonModule": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "sourceMap": true,
    "allowJs": true,
    "noImplicitAny": false,
    "suppressImplicitAnyIndexErrors": true
  },
  "include": ["src"]
}

package.json

{
  "name": "testing",
  "version": "0.0.1",
  "main": "build/index.js",
  "description": "testing",
  "devDependencies": {
    "@types/node": "^22.2.0",
    "@types/node-fetch": "^2.6.12",
    "typescript": "^4.9.5"
  },
  "dependencies": {
    "auth0": "^4.18.0"
  },
  "scripts": {
    "build": "rm -rf ./build/ && tsc"
  }
}

src/index.ts

import { ManagementClient as Auth0ManagementClient } from "auth0";

const auth0Client = new Auth0ManagementClient({
  domain: "",
  clientId: "",
  clientSecret: "",
});

export default auth0Client;
  1. Run npm install && npm run build

Errors

node_modules/auth0/dist/cjs/lib/models.d.ts:6:36 - error TS2552: Cannot find name 'RequestInfo'. Did you mean 'RequestInit'?

6 export type FetchAPI = (url: URL | RequestInfo, init?: RequestInit) => Promise<Response>;
                                     ~~~~~~~~~~~

node_modules/auth0/dist/cjs/lib/models.d.ts:60:19 - error TS2304: Cannot find name 'RequestCredentials'.

60     credentials?: RequestCredentials;
                     ~~~~~~~~~~~~~~~~~~

node_modules/auth0/dist/cjs/lib/models.d.ts:99:16 - error TS2552: Cannot find name 'RequestInfo'. Did you mean 'RequestInit'?

99     url: URL | RequestInfo;
                  ~~~~~~~~~~~

node_modules/auth0/dist/cjs/lib/models.d.ts:104:16 - error TS2552: Cannot find name 'RequestInfo'. Did you mean 'RequestInit'?

104     url: URL | RequestInfo;
                   ~~~~~~~~~~~

node_modules/auth0/dist/cjs/lib/models.d.ts:109:16 - error TS2552: Cannot find name 'RequestInfo'. Did you mean 'RequestInit'?

109     url: URL | RequestInfo;
                   ~~~~~~~~~~~

node_modules/auth0/dist/cjs/lib/models.d.ts:115:16 - error TS2552: Cannot find name 'RequestInfo'. Did you mean 'RequestInit'?

115     url: URL | RequestInfo;
                   ~~~~~~~~~~~


Found 6 errors in the same file, starting at: node_modules/auth0/dist/cjs/lib/models.d.ts:6

Additional context

No response

node-auth0 version

4.18.0

Node.js version

22.2.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions