@clerk/express 2.1.26-canary.v20260611183231 → 2.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_utils = require('./utils-B5JAEPFC.js');
2
+ const require_utils = require('./utils-9QZhseBn.js');
3
3
  let _clerk_backend = require("@clerk/backend");
4
4
  let stream = require("stream");
5
5
  let _clerk_backend_internal = require("@clerk/backend/internal");
@@ -21,7 +21,7 @@ const clerkClient = new Proxy(clerkClientSingleton, {
21
21
  };
22
22
  const client = (0, _clerk_backend.createClerkClient)({
23
23
  ...env,
24
- userAgent: `@clerk/express@2.1.26-canary.v20260611183231`
24
+ userAgent: `@clerk/express@2.1.26`
25
25
  });
26
26
  if (env.secretKey) clerkClientSingleton = client;
27
27
  return client[property];
@@ -121,7 +121,7 @@ const resolveDefaultClerkClient = (options) => {
121
121
  ...require_utils.loadClientEnv(),
122
122
  ...options.apiUrl ? { apiUrl: options.apiUrl } : {},
123
123
  ...options.apiVersion ? { apiVersion: options.apiVersion } : {},
124
- userAgent: `@clerk/express@2.1.26-canary.v20260611183231`
124
+ userAgent: `@clerk/express@2.1.26`
125
125
  });
126
126
  };
127
127
  const authenticateAndDecorateRequest = (options = {}) => {
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { a as requestHasAuthObject, i as loadClientEnv, n as incomingMessageToRequest, o as requestToProxyRequest, r as loadApiEnv, t as brandRequestAuth } from "./utils-Crveunhz.mjs";
1
+ import { a as requestHasAuthObject, i as loadClientEnv, n as incomingMessageToRequest, o as requestToProxyRequest, r as loadApiEnv, t as brandRequestAuth } from "./utils-Dmw8RyYk.mjs";
2
2
  import { createClerkClient } from "@clerk/backend";
3
3
  import { Readable } from "stream";
4
4
  import { AuthStatus, createClerkRequest, getAuthObjectForAcceptedToken } from "@clerk/backend/internal";
@@ -22,7 +22,7 @@ const clerkClient = new Proxy(clerkClientSingleton, {
22
22
  };
23
23
  const client = createClerkClient({
24
24
  ...env,
25
- userAgent: `@clerk/express@2.1.26-canary.v20260611183231`
25
+ userAgent: `@clerk/express@2.1.26`
26
26
  });
27
27
  if (env.secretKey) clerkClientSingleton = client;
28
28
  return client[property];
@@ -122,7 +122,7 @@ const resolveDefaultClerkClient = (options) => {
122
122
  ...loadClientEnv(),
123
123
  ...options.apiUrl ? { apiUrl: options.apiUrl } : {},
124
124
  ...options.apiVersion ? { apiVersion: options.apiVersion } : {},
125
- userAgent: `@clerk/express@2.1.26-canary.v20260611183231`
125
+ userAgent: `@clerk/express@2.1.26`
126
126
  });
127
127
  };
128
128
  const authenticateAndDecorateRequest = (options = {}) => {
@@ -39,7 +39,7 @@ const loadApiEnv = () => {
39
39
  jwtKey: process.env.CLERK_JWT_KEY || "",
40
40
  sdkMetadata: {
41
41
  name: "@clerk/express",
42
- version: "2.1.26-canary.v20260611183231",
42
+ version: "2.1.26",
43
43
  environment: process.env.NODE_ENV
44
44
  },
45
45
  telemetry: {
@@ -119,4 +119,4 @@ Object.defineProperty(exports, 'requestToProxyRequest', {
119
119
  return requestToProxyRequest;
120
120
  }
121
121
  });
122
- //# sourceMappingURL=utils-B5JAEPFC.js.map
122
+ //# sourceMappingURL=utils-9QZhseBn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils-B5JAEPFC.js","names":["Readable"],"sources":["../src/utils.ts"],"sourcesContent":["import { isTruthy } from '@clerk/shared/underscore';\nimport type { Request as ExpressRequest } from 'express';\nimport { Readable } from 'stream';\n\nimport type { ExpressRequestWithAuth } from './types';\n\n/**\n * Brand attached to the `req.auth` handler installed by Clerk middleware.\n * `req.auth` is a property name shared with other auth libraries (express-jwt,\n * passport, express-openid-connect), so its mere presence proves nothing about\n * whether Clerk authenticated the request. `Symbol.for` registers the brand\n * globally so it stays stable across multiple copies of this package loaded in\n * the same process.\n */\nconst clerkAuthBrand = Symbol.for('@clerk/express.auth');\n\nexport const brandRequestAuth = <T extends (...args: never[]) => unknown>(authHandler: T): T =>\n Object.assign(authHandler, { [clerkAuthBrand]: true });\n\nexport const requestHasAuthObject = (req: ExpressRequest): req is ExpressRequestWithAuth => {\n const auth = (req as Partial<ExpressRequestWithAuth>).auth;\n return typeof auth === 'function' && (auth as unknown as Record<symbol, unknown>)[clerkAuthBrand] === true;\n};\n\nexport const loadClientEnv = () => {\n return {\n publishableKey: process.env.CLERK_PUBLISHABLE_KEY || '',\n __internal_clerkJSUrl: process.env.CLERK_JS || process.env.CLERK_JS_URL || '',\n __internal_clerkJSVersion: process.env.CLERK_JS_VERSION || '',\n __internal_clerkUIUrl: process.env.CLERK_UI_URL || '',\n __internal_clerkUIVersion: process.env.CLERK_UI_VERSION || '',\n prefetchUI: process.env.CLERK_PREFETCH_UI === 'false' ? false : undefined,\n };\n};\n\nexport const loadApiEnv = () => {\n return {\n secretKey: process.env.CLERK_SECRET_KEY || '',\n machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY || '',\n apiUrl: process.env.CLERK_API_URL || 'https://api.clerk.com',\n apiVersion: process.env.CLERK_API_VERSION || 'v1',\n domain: process.env.CLERK_DOMAIN || '',\n proxyUrl: process.env.CLERK_PROXY_URL || '',\n signInUrl: process.env.CLERK_SIGN_IN_URL || '',\n isSatellite: isTruthy(process.env.CLERK_IS_SATELLITE),\n jwtKey: process.env.CLERK_JWT_KEY || '',\n sdkMetadata: {\n name: PACKAGE_NAME,\n version: PACKAGE_VERSION,\n environment: process.env.NODE_ENV,\n },\n telemetry: {\n disabled: isTruthy(process.env.CLERK_TELEMETRY_DISABLED),\n debug: isTruthy(process.env.CLERK_TELEMETRY_DEBUG),\n },\n };\n};\n\nexport const incomingMessageToRequest = (req: ExpressRequest): Request => {\n const headers = Object.keys(req.headers).reduce((acc, key) => Object.assign(acc, { [key]: req?.headers[key] }), {});\n // @ts-ignore Optimistic attempt to get the protocol in case\n // req extends IncomingMessage in a useful way. No guarantee\n // it'll work.\n const protocol = req.connection?.encrypted ? 'https' : 'http';\n const dummyOriginReqUrl = new URL(req.originalUrl || req.url || '', `${protocol}://clerk-dummy`);\n return new Request(dummyOriginReqUrl, {\n method: req.method,\n headers: new Headers(headers),\n });\n};\n\n/**\n * Converts an Express request to a Fetch API Request with body streaming support.\n * This is used for proxying requests where the body needs to be forwarded.\n */\nexport const requestToProxyRequest = (req: ExpressRequest): Request => {\n const headers = new Headers();\n Object.entries(req.headers).forEach(([key, value]) => {\n if (value) {\n headers.set(key, Array.isArray(value) ? value.join(', ') : value);\n }\n });\n\n const protocol = req.protocol || (req.secure ? 'https' : 'http');\n const host = req.get('host') || 'localhost';\n const url = new URL(req.originalUrl || req.url, `${protocol}://${host}`);\n\n const hasBody = ['POST', 'PUT', 'PATCH'].includes(req.method);\n\n return new Request(url.toString(), {\n method: req.method,\n headers,\n body: hasBody ? (Readable.toWeb(req) as ReadableStream) : undefined,\n // @ts-expect-error - duplex required for streaming bodies but not in all TS definitions\n duplex: hasBody ? 'half' : undefined,\n });\n};\n"],"mappings":";;;;;;;;;;;;AAcA,MAAM,iBAAiB,OAAO,IAAI,qBAAqB;AAEvD,MAAa,oBAA6D,gBACxE,OAAO,OAAO,aAAa,GAAG,iBAAiB,KAAK,CAAC;AAEvD,MAAa,wBAAwB,QAAuD;CAC1F,MAAM,OAAQ,IAAwC;CACtD,OAAO,OAAO,SAAS,cAAe,KAA4C,oBAAoB;AACxG;AAEA,MAAa,sBAAsB;CACjC,OAAO;EACL,gBAAgB,QAAQ,IAAI,yBAAyB;EACrD,uBAAuB,QAAQ,IAAI,YAAY,QAAQ,IAAI,gBAAgB;EAC3E,2BAA2B,QAAQ,IAAI,oBAAoB;EAC3D,uBAAuB,QAAQ,IAAI,gBAAgB;EACnD,2BAA2B,QAAQ,IAAI,oBAAoB;EAC3D,YAAY,QAAQ,IAAI,sBAAsB,UAAU,QAAQ;CAClE;AACF;AAEA,MAAa,mBAAmB;CAC9B,OAAO;EACL,WAAW,QAAQ,IAAI,oBAAoB;EAC3C,kBAAkB,QAAQ,IAAI,4BAA4B;EAC1D,QAAQ,QAAQ,IAAI,iBAAiB;EACrC,YAAY,QAAQ,IAAI,qBAAqB;EAC7C,QAAQ,QAAQ,IAAI,gBAAgB;EACpC,UAAU,QAAQ,IAAI,mBAAmB;EACzC,WAAW,QAAQ,IAAI,qBAAqB;EAC5C,oDAAsB,QAAQ,IAAI,kBAAkB;EACpD,QAAQ,QAAQ,IAAI,iBAAiB;EACrC,aAAa;GACX;GACA;GACA,aAAa,QAAQ,IAAI;EAC3B;EACA,WAAW;GACT,iDAAmB,QAAQ,IAAI,wBAAwB;GACvD,8CAAgB,QAAQ,IAAI,qBAAqB;EACnD;CACF;AACF;AAEA,MAAa,4BAA4B,QAAiC;CACxE,MAAM,UAAU,OAAO,KAAK,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,OAAO,OAAO,KAAK,GAAG,MAAM,KAAK,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;CAIlH,MAAM,WAAW,IAAI,YAAY,YAAY,UAAU;CACvD,MAAM,oBAAoB,IAAI,IAAI,IAAI,eAAe,IAAI,OAAO,IAAI,GAAG,SAAS,eAAe;CAC/F,OAAO,IAAI,QAAQ,mBAAmB;EACpC,QAAQ,IAAI;EACZ,SAAS,IAAI,QAAQ,OAAO;CAC9B,CAAC;AACH;;;;;AAMA,MAAa,yBAAyB,QAAiC;CACrE,MAAM,UAAU,IAAI,QAAQ;CAC5B,OAAO,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EACpD,IAAI,OACF,QAAQ,IAAI,KAAK,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK;CAEpE,CAAC;CAED,MAAM,WAAW,IAAI,aAAa,IAAI,SAAS,UAAU;CACzD,MAAM,OAAO,IAAI,IAAI,MAAM,KAAK;CAChC,MAAM,MAAM,IAAI,IAAI,IAAI,eAAe,IAAI,KAAK,GAAG,SAAS,KAAK,MAAM;CAEvE,MAAM,UAAU;EAAC;EAAQ;EAAO;CAAO,CAAC,CAAC,SAAS,IAAI,MAAM;CAE5D,OAAO,IAAI,QAAQ,IAAI,SAAS,GAAG;EACjC,QAAQ,IAAI;EACZ;EACA,MAAM,UAAWA,gBAAS,MAAM,GAAG,IAAuB;EAE1D,QAAQ,UAAU,SAAS;CAC7B,CAAC;AACH"}
1
+ {"version":3,"file":"utils-9QZhseBn.js","names":["Readable"],"sources":["../src/utils.ts"],"sourcesContent":["import { isTruthy } from '@clerk/shared/underscore';\nimport type { Request as ExpressRequest } from 'express';\nimport { Readable } from 'stream';\n\nimport type { ExpressRequestWithAuth } from './types';\n\n/**\n * Brand attached to the `req.auth` handler installed by Clerk middleware.\n * `req.auth` is a property name shared with other auth libraries (express-jwt,\n * passport, express-openid-connect), so its mere presence proves nothing about\n * whether Clerk authenticated the request. `Symbol.for` registers the brand\n * globally so it stays stable across multiple copies of this package loaded in\n * the same process.\n */\nconst clerkAuthBrand = Symbol.for('@clerk/express.auth');\n\nexport const brandRequestAuth = <T extends (...args: never[]) => unknown>(authHandler: T): T =>\n Object.assign(authHandler, { [clerkAuthBrand]: true });\n\nexport const requestHasAuthObject = (req: ExpressRequest): req is ExpressRequestWithAuth => {\n const auth = (req as Partial<ExpressRequestWithAuth>).auth;\n return typeof auth === 'function' && (auth as unknown as Record<symbol, unknown>)[clerkAuthBrand] === true;\n};\n\nexport const loadClientEnv = () => {\n return {\n publishableKey: process.env.CLERK_PUBLISHABLE_KEY || '',\n __internal_clerkJSUrl: process.env.CLERK_JS || process.env.CLERK_JS_URL || '',\n __internal_clerkJSVersion: process.env.CLERK_JS_VERSION || '',\n __internal_clerkUIUrl: process.env.CLERK_UI_URL || '',\n __internal_clerkUIVersion: process.env.CLERK_UI_VERSION || '',\n prefetchUI: process.env.CLERK_PREFETCH_UI === 'false' ? false : undefined,\n };\n};\n\nexport const loadApiEnv = () => {\n return {\n secretKey: process.env.CLERK_SECRET_KEY || '',\n machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY || '',\n apiUrl: process.env.CLERK_API_URL || 'https://api.clerk.com',\n apiVersion: process.env.CLERK_API_VERSION || 'v1',\n domain: process.env.CLERK_DOMAIN || '',\n proxyUrl: process.env.CLERK_PROXY_URL || '',\n signInUrl: process.env.CLERK_SIGN_IN_URL || '',\n isSatellite: isTruthy(process.env.CLERK_IS_SATELLITE),\n jwtKey: process.env.CLERK_JWT_KEY || '',\n sdkMetadata: {\n name: PACKAGE_NAME,\n version: PACKAGE_VERSION,\n environment: process.env.NODE_ENV,\n },\n telemetry: {\n disabled: isTruthy(process.env.CLERK_TELEMETRY_DISABLED),\n debug: isTruthy(process.env.CLERK_TELEMETRY_DEBUG),\n },\n };\n};\n\nexport const incomingMessageToRequest = (req: ExpressRequest): Request => {\n const headers = Object.keys(req.headers).reduce((acc, key) => Object.assign(acc, { [key]: req?.headers[key] }), {});\n // @ts-ignore Optimistic attempt to get the protocol in case\n // req extends IncomingMessage in a useful way. No guarantee\n // it'll work.\n const protocol = req.connection?.encrypted ? 'https' : 'http';\n const dummyOriginReqUrl = new URL(req.originalUrl || req.url || '', `${protocol}://clerk-dummy`);\n return new Request(dummyOriginReqUrl, {\n method: req.method,\n headers: new Headers(headers),\n });\n};\n\n/**\n * Converts an Express request to a Fetch API Request with body streaming support.\n * This is used for proxying requests where the body needs to be forwarded.\n */\nexport const requestToProxyRequest = (req: ExpressRequest): Request => {\n const headers = new Headers();\n Object.entries(req.headers).forEach(([key, value]) => {\n if (value) {\n headers.set(key, Array.isArray(value) ? value.join(', ') : value);\n }\n });\n\n const protocol = req.protocol || (req.secure ? 'https' : 'http');\n const host = req.get('host') || 'localhost';\n const url = new URL(req.originalUrl || req.url, `${protocol}://${host}`);\n\n const hasBody = ['POST', 'PUT', 'PATCH'].includes(req.method);\n\n return new Request(url.toString(), {\n method: req.method,\n headers,\n body: hasBody ? (Readable.toWeb(req) as ReadableStream) : undefined,\n // @ts-expect-error - duplex required for streaming bodies but not in all TS definitions\n duplex: hasBody ? 'half' : undefined,\n });\n};\n"],"mappings":";;;;;;;;;;;;AAcA,MAAM,iBAAiB,OAAO,IAAI,qBAAqB;AAEvD,MAAa,oBAA6D,gBACxE,OAAO,OAAO,aAAa,GAAG,iBAAiB,KAAK,CAAC;AAEvD,MAAa,wBAAwB,QAAuD;CAC1F,MAAM,OAAQ,IAAwC;CACtD,OAAO,OAAO,SAAS,cAAe,KAA4C,oBAAoB;AACxG;AAEA,MAAa,sBAAsB;CACjC,OAAO;EACL,gBAAgB,QAAQ,IAAI,yBAAyB;EACrD,uBAAuB,QAAQ,IAAI,YAAY,QAAQ,IAAI,gBAAgB;EAC3E,2BAA2B,QAAQ,IAAI,oBAAoB;EAC3D,uBAAuB,QAAQ,IAAI,gBAAgB;EACnD,2BAA2B,QAAQ,IAAI,oBAAoB;EAC3D,YAAY,QAAQ,IAAI,sBAAsB,UAAU,QAAQ;CAClE;AACF;AAEA,MAAa,mBAAmB;CAC9B,OAAO;EACL,WAAW,QAAQ,IAAI,oBAAoB;EAC3C,kBAAkB,QAAQ,IAAI,4BAA4B;EAC1D,QAAQ,QAAQ,IAAI,iBAAiB;EACrC,YAAY,QAAQ,IAAI,qBAAqB;EAC7C,QAAQ,QAAQ,IAAI,gBAAgB;EACpC,UAAU,QAAQ,IAAI,mBAAmB;EACzC,WAAW,QAAQ,IAAI,qBAAqB;EAC5C,oDAAsB,QAAQ,IAAI,kBAAkB;EACpD,QAAQ,QAAQ,IAAI,iBAAiB;EACrC,aAAa;GACX;GACA;GACA,aAAa,QAAQ,IAAI;EAC3B;EACA,WAAW;GACT,iDAAmB,QAAQ,IAAI,wBAAwB;GACvD,8CAAgB,QAAQ,IAAI,qBAAqB;EACnD;CACF;AACF;AAEA,MAAa,4BAA4B,QAAiC;CACxE,MAAM,UAAU,OAAO,KAAK,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,OAAO,OAAO,KAAK,GAAG,MAAM,KAAK,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;CAIlH,MAAM,WAAW,IAAI,YAAY,YAAY,UAAU;CACvD,MAAM,oBAAoB,IAAI,IAAI,IAAI,eAAe,IAAI,OAAO,IAAI,GAAG,SAAS,eAAe;CAC/F,OAAO,IAAI,QAAQ,mBAAmB;EACpC,QAAQ,IAAI;EACZ,SAAS,IAAI,QAAQ,OAAO;CAC9B,CAAC;AACH;;;;;AAMA,MAAa,yBAAyB,QAAiC;CACrE,MAAM,UAAU,IAAI,QAAQ;CAC5B,OAAO,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EACpD,IAAI,OACF,QAAQ,IAAI,KAAK,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK;CAEpE,CAAC;CAED,MAAM,WAAW,IAAI,aAAa,IAAI,SAAS,UAAU;CACzD,MAAM,OAAO,IAAI,IAAI,MAAM,KAAK;CAChC,MAAM,MAAM,IAAI,IAAI,IAAI,eAAe,IAAI,KAAK,GAAG,SAAS,KAAK,MAAM;CAEvE,MAAM,UAAU;EAAC;EAAQ;EAAO;CAAO,CAAC,CAAC,SAAS,IAAI,MAAM;CAE5D,OAAO,IAAI,QAAQ,IAAI,SAAS,GAAG;EACjC,QAAQ,IAAI;EACZ;EACA,MAAM,UAAWA,gBAAS,MAAM,GAAG,IAAuB;EAE1D,QAAQ,UAAU,SAAS;CAC7B,CAAC;AACH"}
@@ -39,7 +39,7 @@ const loadApiEnv = () => {
39
39
  jwtKey: process.env.CLERK_JWT_KEY || "",
40
40
  sdkMetadata: {
41
41
  name: "@clerk/express",
42
- version: "2.1.26-canary.v20260611183231",
42
+ version: "2.1.26",
43
43
  environment: process.env.NODE_ENV
44
44
  },
45
45
  telemetry: {
@@ -84,4 +84,4 @@ const requestToProxyRequest = (req) => {
84
84
 
85
85
  //#endregion
86
86
  export { requestHasAuthObject as a, loadClientEnv as i, incomingMessageToRequest as n, requestToProxyRequest as o, loadApiEnv as r, brandRequestAuth as t };
87
- //# sourceMappingURL=utils-Crveunhz.mjs.map
87
+ //# sourceMappingURL=utils-Dmw8RyYk.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils-Crveunhz.mjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import { isTruthy } from '@clerk/shared/underscore';\nimport type { Request as ExpressRequest } from 'express';\nimport { Readable } from 'stream';\n\nimport type { ExpressRequestWithAuth } from './types';\n\n/**\n * Brand attached to the `req.auth` handler installed by Clerk middleware.\n * `req.auth` is a property name shared with other auth libraries (express-jwt,\n * passport, express-openid-connect), so its mere presence proves nothing about\n * whether Clerk authenticated the request. `Symbol.for` registers the brand\n * globally so it stays stable across multiple copies of this package loaded in\n * the same process.\n */\nconst clerkAuthBrand = Symbol.for('@clerk/express.auth');\n\nexport const brandRequestAuth = <T extends (...args: never[]) => unknown>(authHandler: T): T =>\n Object.assign(authHandler, { [clerkAuthBrand]: true });\n\nexport const requestHasAuthObject = (req: ExpressRequest): req is ExpressRequestWithAuth => {\n const auth = (req as Partial<ExpressRequestWithAuth>).auth;\n return typeof auth === 'function' && (auth as unknown as Record<symbol, unknown>)[clerkAuthBrand] === true;\n};\n\nexport const loadClientEnv = () => {\n return {\n publishableKey: process.env.CLERK_PUBLISHABLE_KEY || '',\n __internal_clerkJSUrl: process.env.CLERK_JS || process.env.CLERK_JS_URL || '',\n __internal_clerkJSVersion: process.env.CLERK_JS_VERSION || '',\n __internal_clerkUIUrl: process.env.CLERK_UI_URL || '',\n __internal_clerkUIVersion: process.env.CLERK_UI_VERSION || '',\n prefetchUI: process.env.CLERK_PREFETCH_UI === 'false' ? false : undefined,\n };\n};\n\nexport const loadApiEnv = () => {\n return {\n secretKey: process.env.CLERK_SECRET_KEY || '',\n machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY || '',\n apiUrl: process.env.CLERK_API_URL || 'https://api.clerk.com',\n apiVersion: process.env.CLERK_API_VERSION || 'v1',\n domain: process.env.CLERK_DOMAIN || '',\n proxyUrl: process.env.CLERK_PROXY_URL || '',\n signInUrl: process.env.CLERK_SIGN_IN_URL || '',\n isSatellite: isTruthy(process.env.CLERK_IS_SATELLITE),\n jwtKey: process.env.CLERK_JWT_KEY || '',\n sdkMetadata: {\n name: PACKAGE_NAME,\n version: PACKAGE_VERSION,\n environment: process.env.NODE_ENV,\n },\n telemetry: {\n disabled: isTruthy(process.env.CLERK_TELEMETRY_DISABLED),\n debug: isTruthy(process.env.CLERK_TELEMETRY_DEBUG),\n },\n };\n};\n\nexport const incomingMessageToRequest = (req: ExpressRequest): Request => {\n const headers = Object.keys(req.headers).reduce((acc, key) => Object.assign(acc, { [key]: req?.headers[key] }), {});\n // @ts-ignore Optimistic attempt to get the protocol in case\n // req extends IncomingMessage in a useful way. No guarantee\n // it'll work.\n const protocol = req.connection?.encrypted ? 'https' : 'http';\n const dummyOriginReqUrl = new URL(req.originalUrl || req.url || '', `${protocol}://clerk-dummy`);\n return new Request(dummyOriginReqUrl, {\n method: req.method,\n headers: new Headers(headers),\n });\n};\n\n/**\n * Converts an Express request to a Fetch API Request with body streaming support.\n * This is used for proxying requests where the body needs to be forwarded.\n */\nexport const requestToProxyRequest = (req: ExpressRequest): Request => {\n const headers = new Headers();\n Object.entries(req.headers).forEach(([key, value]) => {\n if (value) {\n headers.set(key, Array.isArray(value) ? value.join(', ') : value);\n }\n });\n\n const protocol = req.protocol || (req.secure ? 'https' : 'http');\n const host = req.get('host') || 'localhost';\n const url = new URL(req.originalUrl || req.url, `${protocol}://${host}`);\n\n const hasBody = ['POST', 'PUT', 'PATCH'].includes(req.method);\n\n return new Request(url.toString(), {\n method: req.method,\n headers,\n body: hasBody ? (Readable.toWeb(req) as ReadableStream) : undefined,\n // @ts-expect-error - duplex required for streaming bodies but not in all TS definitions\n duplex: hasBody ? 'half' : undefined,\n });\n};\n"],"mappings":";;;;;;;;;;;;AAcA,MAAM,iBAAiB,OAAO,IAAI,qBAAqB;AAEvD,MAAa,oBAA6D,gBACxE,OAAO,OAAO,aAAa,GAAG,iBAAiB,KAAK,CAAC;AAEvD,MAAa,wBAAwB,QAAuD;CAC1F,MAAM,OAAQ,IAAwC;CACtD,OAAO,OAAO,SAAS,cAAe,KAA4C,oBAAoB;AACxG;AAEA,MAAa,sBAAsB;CACjC,OAAO;EACL,gBAAgB,QAAQ,IAAI,yBAAyB;EACrD,uBAAuB,QAAQ,IAAI,YAAY,QAAQ,IAAI,gBAAgB;EAC3E,2BAA2B,QAAQ,IAAI,oBAAoB;EAC3D,uBAAuB,QAAQ,IAAI,gBAAgB;EACnD,2BAA2B,QAAQ,IAAI,oBAAoB;EAC3D,YAAY,QAAQ,IAAI,sBAAsB,UAAU,QAAQ;CAClE;AACF;AAEA,MAAa,mBAAmB;CAC9B,OAAO;EACL,WAAW,QAAQ,IAAI,oBAAoB;EAC3C,kBAAkB,QAAQ,IAAI,4BAA4B;EAC1D,QAAQ,QAAQ,IAAI,iBAAiB;EACrC,YAAY,QAAQ,IAAI,qBAAqB;EAC7C,QAAQ,QAAQ,IAAI,gBAAgB;EACpC,UAAU,QAAQ,IAAI,mBAAmB;EACzC,WAAW,QAAQ,IAAI,qBAAqB;EAC5C,aAAa,SAAS,QAAQ,IAAI,kBAAkB;EACpD,QAAQ,QAAQ,IAAI,iBAAiB;EACrC,aAAa;GACX;GACA;GACA,aAAa,QAAQ,IAAI;EAC3B;EACA,WAAW;GACT,UAAU,SAAS,QAAQ,IAAI,wBAAwB;GACvD,OAAO,SAAS,QAAQ,IAAI,qBAAqB;EACnD;CACF;AACF;AAEA,MAAa,4BAA4B,QAAiC;CACxE,MAAM,UAAU,OAAO,KAAK,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,OAAO,OAAO,KAAK,GAAG,MAAM,KAAK,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;CAIlH,MAAM,WAAW,IAAI,YAAY,YAAY,UAAU;CACvD,MAAM,oBAAoB,IAAI,IAAI,IAAI,eAAe,IAAI,OAAO,IAAI,GAAG,SAAS,eAAe;CAC/F,OAAO,IAAI,QAAQ,mBAAmB;EACpC,QAAQ,IAAI;EACZ,SAAS,IAAI,QAAQ,OAAO;CAC9B,CAAC;AACH;;;;;AAMA,MAAa,yBAAyB,QAAiC;CACrE,MAAM,UAAU,IAAI,QAAQ;CAC5B,OAAO,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EACpD,IAAI,OACF,QAAQ,IAAI,KAAK,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK;CAEpE,CAAC;CAED,MAAM,WAAW,IAAI,aAAa,IAAI,SAAS,UAAU;CACzD,MAAM,OAAO,IAAI,IAAI,MAAM,KAAK;CAChC,MAAM,MAAM,IAAI,IAAI,IAAI,eAAe,IAAI,KAAK,GAAG,SAAS,KAAK,MAAM;CAEvE,MAAM,UAAU;EAAC;EAAQ;EAAO;CAAO,CAAC,CAAC,SAAS,IAAI,MAAM;CAE5D,OAAO,IAAI,QAAQ,IAAI,SAAS,GAAG;EACjC,QAAQ,IAAI;EACZ;EACA,MAAM,UAAW,SAAS,MAAM,GAAG,IAAuB;EAE1D,QAAQ,UAAU,SAAS;CAC7B,CAAC;AACH"}
1
+ {"version":3,"file":"utils-Dmw8RyYk.mjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import { isTruthy } from '@clerk/shared/underscore';\nimport type { Request as ExpressRequest } from 'express';\nimport { Readable } from 'stream';\n\nimport type { ExpressRequestWithAuth } from './types';\n\n/**\n * Brand attached to the `req.auth` handler installed by Clerk middleware.\n * `req.auth` is a property name shared with other auth libraries (express-jwt,\n * passport, express-openid-connect), so its mere presence proves nothing about\n * whether Clerk authenticated the request. `Symbol.for` registers the brand\n * globally so it stays stable across multiple copies of this package loaded in\n * the same process.\n */\nconst clerkAuthBrand = Symbol.for('@clerk/express.auth');\n\nexport const brandRequestAuth = <T extends (...args: never[]) => unknown>(authHandler: T): T =>\n Object.assign(authHandler, { [clerkAuthBrand]: true });\n\nexport const requestHasAuthObject = (req: ExpressRequest): req is ExpressRequestWithAuth => {\n const auth = (req as Partial<ExpressRequestWithAuth>).auth;\n return typeof auth === 'function' && (auth as unknown as Record<symbol, unknown>)[clerkAuthBrand] === true;\n};\n\nexport const loadClientEnv = () => {\n return {\n publishableKey: process.env.CLERK_PUBLISHABLE_KEY || '',\n __internal_clerkJSUrl: process.env.CLERK_JS || process.env.CLERK_JS_URL || '',\n __internal_clerkJSVersion: process.env.CLERK_JS_VERSION || '',\n __internal_clerkUIUrl: process.env.CLERK_UI_URL || '',\n __internal_clerkUIVersion: process.env.CLERK_UI_VERSION || '',\n prefetchUI: process.env.CLERK_PREFETCH_UI === 'false' ? false : undefined,\n };\n};\n\nexport const loadApiEnv = () => {\n return {\n secretKey: process.env.CLERK_SECRET_KEY || '',\n machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY || '',\n apiUrl: process.env.CLERK_API_URL || 'https://api.clerk.com',\n apiVersion: process.env.CLERK_API_VERSION || 'v1',\n domain: process.env.CLERK_DOMAIN || '',\n proxyUrl: process.env.CLERK_PROXY_URL || '',\n signInUrl: process.env.CLERK_SIGN_IN_URL || '',\n isSatellite: isTruthy(process.env.CLERK_IS_SATELLITE),\n jwtKey: process.env.CLERK_JWT_KEY || '',\n sdkMetadata: {\n name: PACKAGE_NAME,\n version: PACKAGE_VERSION,\n environment: process.env.NODE_ENV,\n },\n telemetry: {\n disabled: isTruthy(process.env.CLERK_TELEMETRY_DISABLED),\n debug: isTruthy(process.env.CLERK_TELEMETRY_DEBUG),\n },\n };\n};\n\nexport const incomingMessageToRequest = (req: ExpressRequest): Request => {\n const headers = Object.keys(req.headers).reduce((acc, key) => Object.assign(acc, { [key]: req?.headers[key] }), {});\n // @ts-ignore Optimistic attempt to get the protocol in case\n // req extends IncomingMessage in a useful way. No guarantee\n // it'll work.\n const protocol = req.connection?.encrypted ? 'https' : 'http';\n const dummyOriginReqUrl = new URL(req.originalUrl || req.url || '', `${protocol}://clerk-dummy`);\n return new Request(dummyOriginReqUrl, {\n method: req.method,\n headers: new Headers(headers),\n });\n};\n\n/**\n * Converts an Express request to a Fetch API Request with body streaming support.\n * This is used for proxying requests where the body needs to be forwarded.\n */\nexport const requestToProxyRequest = (req: ExpressRequest): Request => {\n const headers = new Headers();\n Object.entries(req.headers).forEach(([key, value]) => {\n if (value) {\n headers.set(key, Array.isArray(value) ? value.join(', ') : value);\n }\n });\n\n const protocol = req.protocol || (req.secure ? 'https' : 'http');\n const host = req.get('host') || 'localhost';\n const url = new URL(req.originalUrl || req.url, `${protocol}://${host}`);\n\n const hasBody = ['POST', 'PUT', 'PATCH'].includes(req.method);\n\n return new Request(url.toString(), {\n method: req.method,\n headers,\n body: hasBody ? (Readable.toWeb(req) as ReadableStream) : undefined,\n // @ts-expect-error - duplex required for streaming bodies but not in all TS definitions\n duplex: hasBody ? 'half' : undefined,\n });\n};\n"],"mappings":";;;;;;;;;;;;AAcA,MAAM,iBAAiB,OAAO,IAAI,qBAAqB;AAEvD,MAAa,oBAA6D,gBACxE,OAAO,OAAO,aAAa,GAAG,iBAAiB,KAAK,CAAC;AAEvD,MAAa,wBAAwB,QAAuD;CAC1F,MAAM,OAAQ,IAAwC;CACtD,OAAO,OAAO,SAAS,cAAe,KAA4C,oBAAoB;AACxG;AAEA,MAAa,sBAAsB;CACjC,OAAO;EACL,gBAAgB,QAAQ,IAAI,yBAAyB;EACrD,uBAAuB,QAAQ,IAAI,YAAY,QAAQ,IAAI,gBAAgB;EAC3E,2BAA2B,QAAQ,IAAI,oBAAoB;EAC3D,uBAAuB,QAAQ,IAAI,gBAAgB;EACnD,2BAA2B,QAAQ,IAAI,oBAAoB;EAC3D,YAAY,QAAQ,IAAI,sBAAsB,UAAU,QAAQ;CAClE;AACF;AAEA,MAAa,mBAAmB;CAC9B,OAAO;EACL,WAAW,QAAQ,IAAI,oBAAoB;EAC3C,kBAAkB,QAAQ,IAAI,4BAA4B;EAC1D,QAAQ,QAAQ,IAAI,iBAAiB;EACrC,YAAY,QAAQ,IAAI,qBAAqB;EAC7C,QAAQ,QAAQ,IAAI,gBAAgB;EACpC,UAAU,QAAQ,IAAI,mBAAmB;EACzC,WAAW,QAAQ,IAAI,qBAAqB;EAC5C,aAAa,SAAS,QAAQ,IAAI,kBAAkB;EACpD,QAAQ,QAAQ,IAAI,iBAAiB;EACrC,aAAa;GACX;GACA;GACA,aAAa,QAAQ,IAAI;EAC3B;EACA,WAAW;GACT,UAAU,SAAS,QAAQ,IAAI,wBAAwB;GACvD,OAAO,SAAS,QAAQ,IAAI,qBAAqB;EACnD;CACF;AACF;AAEA,MAAa,4BAA4B,QAAiC;CACxE,MAAM,UAAU,OAAO,KAAK,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,OAAO,OAAO,KAAK,GAAG,MAAM,KAAK,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;CAIlH,MAAM,WAAW,IAAI,YAAY,YAAY,UAAU;CACvD,MAAM,oBAAoB,IAAI,IAAI,IAAI,eAAe,IAAI,OAAO,IAAI,GAAG,SAAS,eAAe;CAC/F,OAAO,IAAI,QAAQ,mBAAmB;EACpC,QAAQ,IAAI;EACZ,SAAS,IAAI,QAAQ,OAAO;CAC9B,CAAC;AACH;;;;;AAMA,MAAa,yBAAyB,QAAiC;CACrE,MAAM,UAAU,IAAI,QAAQ;CAC5B,OAAO,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EACpD,IAAI,OACF,QAAQ,IAAI,KAAK,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK;CAEpE,CAAC;CAED,MAAM,WAAW,IAAI,aAAa,IAAI,SAAS,UAAU;CACzD,MAAM,OAAO,IAAI,IAAI,MAAM,KAAK;CAChC,MAAM,MAAM,IAAI,IAAI,IAAI,eAAe,IAAI,KAAK,GAAG,SAAS,KAAK,MAAM;CAEvE,MAAM,UAAU;EAAC;EAAQ;EAAO;CAAO,CAAC,CAAC,SAAS,IAAI,MAAM;CAE5D,OAAO,IAAI,QAAQ,IAAI,SAAS,GAAG;EACjC,QAAQ,IAAI;EACZ;EACA,MAAM,UAAW,SAAS,MAAM,GAAG,IAAuB;EAE1D,QAAQ,UAAU,SAAS;CAC7B,CAAC;AACH"}
package/dist/webhooks.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_utils = require('./utils-B5JAEPFC.js');
2
+ const require_utils = require('./utils-9QZhseBn.js');
3
3
  let _clerk_backend_webhooks = require("@clerk/backend/webhooks");
4
4
 
5
5
  //#region src/webhooks.ts
package/dist/webhooks.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { n as incomingMessageToRequest } from "./utils-Crveunhz.mjs";
1
+ import { n as incomingMessageToRequest } from "./utils-Dmw8RyYk.mjs";
2
2
  import { verifyWebhook as verifyWebhook$1 } from "@clerk/backend/webhooks";
3
3
 
4
4
  export * from "@clerk/backend/webhooks"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clerk/express",
3
- "version": "2.1.26-canary.v20260611183231",
3
+ "version": "2.1.26",
4
4
  "description": "Clerk server SDK for usage with Express",
5
5
  "keywords": [
6
6
  "clerk",
@@ -62,8 +62,8 @@
62
62
  ],
63
63
  "dependencies": {
64
64
  "tslib": "2.8.1",
65
- "@clerk/backend": "3.7.0-canary.v20260611183231",
66
- "@clerk/shared": "4.17.1-canary.v20260611183231"
65
+ "@clerk/backend": "^3.7.0",
66
+ "@clerk/shared": "^4.17.1"
67
67
  },
68
68
  "devDependencies": {
69
69
  "@types/express": "^4.17.25",