From bcf51749f5fbb249d230d682464675b25dcef0ab Mon Sep 17 00:00:00 2001 From: memosr Date: Sat, 25 Jul 2026 21:11:42 +0300 Subject: [PATCH] fix(prolink): export createProlinkUrl from Node builds createProlinkUrl was re-exported from the browser prolink build but not from index.node.ts, so importing it from @base-org/account/prolink in Node threw a SyntaxError. The root index.node.ts also did not re-export the prolink utilities, unlike src/index.ts. createProlinkUrl.ts has no imports and no compression dependency, so this cannot pull the brotli-wasm path into the Node bundle. Adds a regression test to the existing createProlinkUrl.test.ts. Addresses #368 --- packages/account-sdk/src/index.node.ts | 11 +++++++++++ .../prolink/createProlinkUrl.test.ts | 18 +++++++++++++++++- .../public-utilities/prolink/index.node.ts | 3 +++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/packages/account-sdk/src/index.node.ts b/packages/account-sdk/src/index.node.ts index 41c69bc8..54bc9ddf 100644 --- a/packages/account-sdk/src/index.node.ts +++ b/packages/account-sdk/src/index.node.ts @@ -44,3 +44,14 @@ export type { SubscriptionStatus, SubscriptionStatusOptions, } from './interface/payment/index.node.js'; + +// Prolink exports - Node version using Node.js zlib compression +export { + createProlinkUrl, + decodeProlink, + encodeProlink, +} from './interface/public-utilities/prolink/index.node.js'; +export type { + ProlinkDecoded, + ProlinkRequest, +} from './interface/public-utilities/prolink/index.node.js'; diff --git a/packages/account-sdk/src/interface/public-utilities/prolink/createProlinkUrl.test.ts b/packages/account-sdk/src/interface/public-utilities/prolink/createProlinkUrl.test.ts index 16772bb5..d111be77 100644 --- a/packages/account-sdk/src/interface/public-utilities/prolink/createProlinkUrl.test.ts +++ b/packages/account-sdk/src/interface/public-utilities/prolink/createProlinkUrl.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest'; import { createProlinkUrl } from './createProlinkUrl.js'; -import { encodeProlink } from './index.node.js'; +import { createProlinkUrl as createProlinkUrlFromNodeEntry, encodeProlink } from './index.node.js'; describe('createProlinkUrl', () => { const EXAMPLE_PROLINK = 'CAEQhUIgAigFcn0KFKqqqqqqqqqqqqqqqqqqqqqqqqqqEhQxlx8zf'; @@ -252,4 +252,20 @@ describe('createProlinkUrl', () => { expect(url.searchParams.get('p')).toBe(EXAMPLE_PROLINK); }); }); + + describe('node entry point re-export', () => { + it('should be importable from the node entry point and produce the same URL', async () => { + expect(typeof createProlinkUrlFromNodeEntry).toBe('function'); + + const prolink = await encodeProlink({ + method: 'personal_sign', + params: ['0xdeadbeef', '0xfe21034794a5A574B94fE4fDfD16e005F1C96e51'], + chainId: 8453, + }); + const result = createProlinkUrlFromNodeEntry(prolink); + + expect(result).toBe(createProlinkUrl(prolink)); + expect(new URL(result).searchParams.get('p')).toBe(prolink); + }); + }); }); diff --git a/packages/account-sdk/src/interface/public-utilities/prolink/index.node.ts b/packages/account-sdk/src/interface/public-utilities/prolink/index.node.ts index 5fd8e6e3..529242d6 100644 --- a/packages/account-sdk/src/interface/public-utilities/prolink/index.node.ts +++ b/packages/account-sdk/src/interface/public-utilities/prolink/index.node.ts @@ -205,5 +205,8 @@ export async function decodeProlink(payload: string): Promise { throw new Error(`Unsupported shortcut ID: ${rpcPayload.shortcutId}`); } +// Re-export universal link utilities +export { createProlinkUrl } from './createProlinkUrl.js'; + // Re-export types export type { ProlinkDecoded, ProlinkRequest } from './types.js';