From c42a0fd2f6488153a499c4b2e45f00843eb39469 Mon Sep 17 00:00:00 2001 From: jithinraj <7850727+jithinraj@users.noreply.github.com> Date: Sat, 21 Feb 2026 23:45:44 +0530 Subject: [PATCH 1/5] chore: promote surfaces/workers/_shared to workspace package (#355) Move surfaces/workers/_shared/core/ into packages/worker-shared/ as a private workspace package (@peac/worker-shared). This eliminates the Vitest v4 strict mode workaround that required root devDeps for @peac/contracts and @peac/mappings-tap. - Created packages/worker-shared/ (private, not published) - Updated all 3 worker surfaces (cloudflare, akamai, fastly) to import from @peac/worker-shared instead of relative ../../_shared/core/ - Removed @peac/contracts and @peac/mappings-tap from root devDeps - Deleted surfaces/workers/_shared/ and surfaces/_shared/contracts/ --- package.json | 2 -- packages/worker-shared/package.json | 22 ++++++++++++++ .../worker-shared/src}/config.ts | 0 .../worker-shared/src}/errors.ts | 0 .../worker-shared/src}/hash.ts | 0 .../worker-shared/src}/index.ts | 0 .../worker-shared/src}/types.ts | 0 .../worker-shared/src}/verification.ts | 0 packages/worker-shared/tsconfig.json | 8 +++++ pnpm-lock.yaml | 24 +++++++++++---- surfaces/_shared/contracts/error-contract.ts | 30 ------------------- surfaces/_shared/contracts/index.ts | 22 -------------- surfaces/workers/akamai/package.json | 3 +- surfaces/workers/akamai/src/config.ts | 4 +-- surfaces/workers/akamai/src/errors.ts | 2 +- surfaces/workers/akamai/src/index.ts | 2 +- surfaces/workers/akamai/src/replay-store.ts | 2 +- surfaces/workers/akamai/src/types.ts | 2 +- surfaces/workers/cloudflare/package.json | 3 +- surfaces/workers/cloudflare/src/config.ts | 4 +-- surfaces/workers/cloudflare/src/errors.ts | 2 +- surfaces/workers/cloudflare/src/index.ts | 2 +- .../workers/cloudflare/src/replay-store.ts | 2 +- surfaces/workers/cloudflare/src/types.ts | 2 +- surfaces/workers/fastly/package.json | 3 +- surfaces/workers/fastly/src/config.ts | 4 +-- surfaces/workers/fastly/src/errors.ts | 2 +- surfaces/workers/fastly/src/index.ts | 2 +- surfaces/workers/fastly/src/replay-store.ts | 2 +- surfaces/workers/fastly/src/types.ts | 2 +- 30 files changed, 72 insertions(+), 81 deletions(-) create mode 100644 packages/worker-shared/package.json rename {surfaces/workers/_shared/core => packages/worker-shared/src}/config.ts (100%) rename {surfaces/workers/_shared/core => packages/worker-shared/src}/errors.ts (100%) rename {surfaces/workers/_shared/core => packages/worker-shared/src}/hash.ts (100%) rename {surfaces/workers/_shared/core => packages/worker-shared/src}/index.ts (100%) rename {surfaces/workers/_shared/core => packages/worker-shared/src}/types.ts (100%) rename {surfaces/workers/_shared/core => packages/worker-shared/src}/verification.ts (100%) create mode 100644 packages/worker-shared/tsconfig.json delete mode 100644 surfaces/_shared/contracts/error-contract.ts delete mode 100644 surfaces/_shared/contracts/index.ts diff --git a/package.json b/package.json index 030eca609..c8bd2c6d2 100644 --- a/package.json +++ b/package.json @@ -62,8 +62,6 @@ "version:bump": "node scripts/bump-version.mjs" }, "devDependencies": { - "@peac/contracts": "workspace:^", - "@peac/mappings-tap": "workspace:^", "@types/node": "^22.19.11", "@eslint/js": "^10.0.1", "ajv": "^8.18.0", diff --git a/packages/worker-shared/package.json b/packages/worker-shared/package.json new file mode 100644 index 000000000..258ce5fe9 --- /dev/null +++ b/packages/worker-shared/package.json @@ -0,0 +1,22 @@ +{ + "name": "@peac/worker-shared", + "version": "0.10.13", + "private": true, + "description": "Shared runtime-neutral TAP verification logic for edge worker surfaces", + "type": "module", + "main": "./src/index.ts", + "types": "./src/index.ts", + "exports": { + ".": { + "types": "./src/index.ts", + "import": "./src/index.ts" + } + }, + "scripts": {}, + "author": "PEAC Protocol Contributors", + "license": "Apache-2.0", + "dependencies": { + "@peac/contracts": "workspace:*", + "@peac/mappings-tap": "workspace:*" + } +} diff --git a/surfaces/workers/_shared/core/config.ts b/packages/worker-shared/src/config.ts similarity index 100% rename from surfaces/workers/_shared/core/config.ts rename to packages/worker-shared/src/config.ts diff --git a/surfaces/workers/_shared/core/errors.ts b/packages/worker-shared/src/errors.ts similarity index 100% rename from surfaces/workers/_shared/core/errors.ts rename to packages/worker-shared/src/errors.ts diff --git a/surfaces/workers/_shared/core/hash.ts b/packages/worker-shared/src/hash.ts similarity index 100% rename from surfaces/workers/_shared/core/hash.ts rename to packages/worker-shared/src/hash.ts diff --git a/surfaces/workers/_shared/core/index.ts b/packages/worker-shared/src/index.ts similarity index 100% rename from surfaces/workers/_shared/core/index.ts rename to packages/worker-shared/src/index.ts diff --git a/surfaces/workers/_shared/core/types.ts b/packages/worker-shared/src/types.ts similarity index 100% rename from surfaces/workers/_shared/core/types.ts rename to packages/worker-shared/src/types.ts diff --git a/surfaces/workers/_shared/core/verification.ts b/packages/worker-shared/src/verification.ts similarity index 100% rename from surfaces/workers/_shared/core/verification.ts rename to packages/worker-shared/src/verification.ts diff --git a/packages/worker-shared/tsconfig.json b/packages/worker-shared/tsconfig.json new file mode 100644 index 000000000..5285d28af --- /dev/null +++ b/packages/worker-shared/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist" + }, + "include": ["src"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2456b9ef..ac1c6fce8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,12 +15,6 @@ importers: '@eslint/js': specifier: ^10.0.1 version: 10.0.1(eslint@10.0.1) - '@peac/contracts': - specifier: workspace:^ - version: link:packages/contracts - '@peac/mappings-tap': - specifier: workspace:^ - version: link:packages/mappings/tap '@types/node': specifier: ^22.19.11 version: 22.19.11 @@ -1544,6 +1538,15 @@ importers: specifier: ^4.0.0 version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(tsx@4.21.0) + packages/worker-shared: + dependencies: + '@peac/contracts': + specifier: workspace:* + version: link:../contracts + '@peac/mappings-tap': + specifier: workspace:* + version: link:../mappings/tap + surfaces/analytics: dependencies: '@peac/kernel': @@ -1605,6 +1608,9 @@ importers: '@peac/mappings-tap': specifier: workspace:* version: link:../../../packages/mappings/tap + '@peac/worker-shared': + specifier: workspace:* + version: link:../../../packages/worker-shared devDependencies: typescript: specifier: ^5.3.0 @@ -1627,6 +1633,9 @@ importers: '@peac/mappings-tap': specifier: workspace:* version: link:../../../packages/mappings/tap + '@peac/worker-shared': + specifier: workspace:* + version: link:../../../packages/worker-shared devDependencies: '@cloudflare/workers-types': specifier: ^4.20260214.0 @@ -1655,6 +1664,9 @@ importers: '@peac/mappings-tap': specifier: workspace:* version: link:../../../packages/mappings/tap + '@peac/worker-shared': + specifier: workspace:* + version: link:../../../packages/worker-shared devDependencies: '@fastly/js-compute': specifier: ^3.0.0 diff --git a/surfaces/_shared/contracts/error-contract.ts b/surfaces/_shared/contracts/error-contract.ts deleted file mode 100644 index bc0cec15e..000000000 --- a/surfaces/_shared/contracts/error-contract.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * PEAC Surface Error Contract (Re-export) - * - * DEPRECATED: Import from @peac/contracts directly in new code. - * This re-export is kept for backwards compatibility only. - * - * @deprecated Import from @peac/contracts instead - * @see https://www.npmjs.com/package/@peac/contracts - */ - -export { - CANONICAL_ERROR_CODES, - CANONICAL_STATUS_MAPPINGS, - CANONICAL_TITLES, - PROBLEM_TYPE_BASE, - MODE_BEHAVIOR, - WWW_AUTHENTICATE_STATUSES, - ERROR_CATALOG, - problemTypeFor, - getStatusForCode, - requiresWwwAuthenticate, - buildWwwAuthenticate, - isPeacErrorCode, - type PeacErrorCode, - type PeacHttpStatus, - type VerificationMode, - type ErrorCatalogEntry, - type HandlerAction, - type ModeBehavior, -} from '@peac/contracts'; diff --git a/surfaces/_shared/contracts/index.ts b/surfaces/_shared/contracts/index.ts deleted file mode 100644 index 7c2869070..000000000 --- a/surfaces/_shared/contracts/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * PEAC Surface Contracts - * - * Shared contracts that all surface implementations must adhere to. - * Used for parity testing across Cloudflare Worker, Next.js, and future surfaces. - */ - -export { - CANONICAL_ERROR_CODES, - CANONICAL_STATUS_MAPPINGS, - CANONICAL_TITLES, - PROBLEM_TYPE_BASE, - MODE_BEHAVIOR, - WWW_AUTHENTICATE_STATUSES, - ERROR_CATALOG, - problemTypeFor, - getStatusForCode, - requiresWwwAuthenticate, - type PeacErrorCode, - type VerificationMode, - type ErrorCatalogEntry, -} from './error-contract.js'; diff --git a/surfaces/workers/akamai/package.json b/surfaces/workers/akamai/package.json index 16d7b1dff..31352061f 100644 --- a/surfaces/workers/akamai/package.json +++ b/surfaces/workers/akamai/package.json @@ -35,7 +35,8 @@ "@peac/contracts": "workspace:^", "@peac/http-signatures": "workspace:*", "@peac/jwks-cache": "workspace:*", - "@peac/mappings-tap": "workspace:*" + "@peac/mappings-tap": "workspace:*", + "@peac/worker-shared": "workspace:*" }, "devDependencies": { "typescript": "^5.3.0", diff --git a/surfaces/workers/akamai/src/config.ts b/surfaces/workers/akamai/src/config.ts index 0d46e9881..72fc3e070 100644 --- a/surfaces/workers/akamai/src/config.ts +++ b/surfaces/workers/akamai/src/config.ts @@ -8,7 +8,7 @@ */ import type { WorkerConfig, EWRequest } from './types.js'; -import { parseConfigFromEnv } from '../../_shared/core/index.js'; +import { parseConfigFromEnv } from '@peac/worker-shared'; /** * Parse config from Akamai Property Manager variables. @@ -44,4 +44,4 @@ export function parseConfigFromRecord(env: Record): } // Re-export config utilities from shared core -export { matchesBypassPath, isIssuerAllowed } from '../../_shared/core/index.js'; +export { matchesBypassPath, isIssuerAllowed } from '@peac/worker-shared'; diff --git a/surfaces/workers/akamai/src/errors.ts b/surfaces/workers/akamai/src/errors.ts index 4db437214..aaf7e0532 100644 --- a/surfaces/workers/akamai/src/errors.ts +++ b/surfaces/workers/akamai/src/errors.ts @@ -8,7 +8,7 @@ */ import type { ProblemDetails, EWRequestHandler } from './types.js'; -import { ErrorCodes, createProblemDetails } from '../../_shared/core/index.js'; +import { ErrorCodes, createProblemDetails } from '@peac/worker-shared'; // Re-export error codes from shared core export { ErrorCodes }; diff --git a/surfaces/workers/akamai/src/index.ts b/surfaces/workers/akamai/src/index.ts index 26030adab..0e9f99a18 100644 --- a/surfaces/workers/akamai/src/index.ts +++ b/surfaces/workers/akamai/src/index.ts @@ -36,7 +36,7 @@ import { handleVerification, type HandlerResult, type RequestLike, -} from '../../_shared/core/index.js'; +} from '@peac/worker-shared'; // Re-export types and utilities export type { diff --git a/surfaces/workers/akamai/src/replay-store.ts b/surfaces/workers/akamai/src/replay-store.ts index c3f133d57..2d6405f6c 100644 --- a/surfaces/workers/akamai/src/replay-store.ts +++ b/surfaces/workers/akamai/src/replay-store.ts @@ -15,7 +15,7 @@ */ import type { ReplayStore, ReplayContext, EdgeKVConfig } from './types.js'; -import { hashReplayKey } from '../../_shared/core/index.js'; +import { hashReplayKey } from '@peac/worker-shared'; // Re-export hash function for testing export { hashReplayKey }; diff --git a/surfaces/workers/akamai/src/types.ts b/surfaces/workers/akamai/src/types.ts index e58a77968..94673cfd8 100644 --- a/surfaces/workers/akamai/src/types.ts +++ b/surfaces/workers/akamai/src/types.ts @@ -14,7 +14,7 @@ export type { ReplayStore, VerificationResult, ProblemDetails, -} from '../../_shared/core/index.js'; +} from '@peac/worker-shared'; /** * Akamai EdgeWorkers environment configuration. diff --git a/surfaces/workers/cloudflare/package.json b/surfaces/workers/cloudflare/package.json index a7ef6abc2..b3bdf5b73 100644 --- a/surfaces/workers/cloudflare/package.json +++ b/surfaces/workers/cloudflare/package.json @@ -36,7 +36,8 @@ "@peac/contracts": "workspace:^", "@peac/http-signatures": "workspace:*", "@peac/jwks-cache": "workspace:*", - "@peac/mappings-tap": "workspace:*" + "@peac/mappings-tap": "workspace:*", + "@peac/worker-shared": "workspace:*" }, "devDependencies": { "@cloudflare/workers-types": "^4.20260214.0", diff --git a/surfaces/workers/cloudflare/src/config.ts b/surfaces/workers/cloudflare/src/config.ts index 21a990e1e..998ea7da3 100644 --- a/surfaces/workers/cloudflare/src/config.ts +++ b/surfaces/workers/cloudflare/src/config.ts @@ -8,12 +8,12 @@ */ import type { Env } from './types.js'; -import type { WorkerConfig } from '../../_shared/core/index.js'; +import type { WorkerConfig } from '@peac/worker-shared'; import { parseConfigFromEnv, matchesBypassPath, isIssuerAllowed, -} from '../../_shared/core/index.js'; +} from '@peac/worker-shared'; // Re-export shared utilities export { matchesBypassPath, isIssuerAllowed }; diff --git a/surfaces/workers/cloudflare/src/errors.ts b/surfaces/workers/cloudflare/src/errors.ts index 7562b63cf..cf4627d7c 100644 --- a/surfaces/workers/cloudflare/src/errors.ts +++ b/surfaces/workers/cloudflare/src/errors.ts @@ -8,7 +8,7 @@ */ import type { ProblemDetails } from './types.js'; -import { ErrorCodes, createProblemDetails } from '../../_shared/core/index.js'; +import { ErrorCodes, createProblemDetails } from '@peac/worker-shared'; // Re-export error codes from shared core export { ErrorCodes }; diff --git a/surfaces/workers/cloudflare/src/index.ts b/surfaces/workers/cloudflare/src/index.ts index aa1c3e61a..ed73ae62a 100644 --- a/surfaces/workers/cloudflare/src/index.ts +++ b/surfaces/workers/cloudflare/src/index.ts @@ -25,7 +25,7 @@ import { handleVerification, type HandlerResult, type RequestLike, -} from '../../_shared/core/index.js'; +} from '@peac/worker-shared'; // Re-export types and utilities export type { diff --git a/surfaces/workers/cloudflare/src/replay-store.ts b/surfaces/workers/cloudflare/src/replay-store.ts index a1906da28..c31405ac0 100644 --- a/surfaces/workers/cloudflare/src/replay-store.ts +++ b/surfaces/workers/cloudflare/src/replay-store.ts @@ -17,7 +17,7 @@ import type { ReplayStore, ReplayContext } from './types.js'; import type { Env } from './types.js'; -import { hashReplayKey } from '../../_shared/core/index.js'; +import { hashReplayKey } from '@peac/worker-shared'; // Re-export hash function for testing export { hashReplayKey }; diff --git a/surfaces/workers/cloudflare/src/types.ts b/surfaces/workers/cloudflare/src/types.ts index 88fd208d2..01eaa4f46 100644 --- a/surfaces/workers/cloudflare/src/types.ts +++ b/surfaces/workers/cloudflare/src/types.ts @@ -14,7 +14,7 @@ export type { ReplayStore, VerificationResult, ProblemDetails, -} from '../../_shared/core/index.js'; +} from '@peac/worker-shared'; /** * Cloudflare Worker environment bindings. diff --git a/surfaces/workers/fastly/package.json b/surfaces/workers/fastly/package.json index 005aa154b..056e285f0 100644 --- a/surfaces/workers/fastly/package.json +++ b/surfaces/workers/fastly/package.json @@ -35,7 +35,8 @@ "@peac/contracts": "workspace:^", "@peac/http-signatures": "workspace:*", "@peac/jwks-cache": "workspace:*", - "@peac/mappings-tap": "workspace:*" + "@peac/mappings-tap": "workspace:*", + "@peac/worker-shared": "workspace:*" }, "devDependencies": { "@fastly/js-compute": "^3.0.0", diff --git a/surfaces/workers/fastly/src/config.ts b/surfaces/workers/fastly/src/config.ts index 08ca765e7..1256f67c7 100644 --- a/surfaces/workers/fastly/src/config.ts +++ b/surfaces/workers/fastly/src/config.ts @@ -8,7 +8,7 @@ */ import type { WorkerConfig } from './types.js'; -import { parseConfigFromEnv } from '../../_shared/core/index.js'; +import { parseConfigFromEnv } from '@peac/worker-shared'; /** * Parse config from Fastly Edge Dictionary. @@ -80,4 +80,4 @@ function getDictionary(name: string): Map | null { } // Re-export config utilities from shared core -export { matchesBypassPath, isIssuerAllowed } from '../../_shared/core/index.js'; +export { matchesBypassPath, isIssuerAllowed } from '@peac/worker-shared'; diff --git a/surfaces/workers/fastly/src/errors.ts b/surfaces/workers/fastly/src/errors.ts index 9538d6815..c3b637496 100644 --- a/surfaces/workers/fastly/src/errors.ts +++ b/surfaces/workers/fastly/src/errors.ts @@ -8,7 +8,7 @@ */ import type { ProblemDetails } from './types.js'; -import { ErrorCodes, createProblemDetails } from '../../_shared/core/index.js'; +import { ErrorCodes, createProblemDetails } from '@peac/worker-shared'; // Re-export error codes from shared core export { ErrorCodes }; diff --git a/surfaces/workers/fastly/src/index.ts b/surfaces/workers/fastly/src/index.ts index c4365dea8..e44322245 100644 --- a/surfaces/workers/fastly/src/index.ts +++ b/surfaces/workers/fastly/src/index.ts @@ -25,7 +25,7 @@ import { handleVerification, type HandlerResult, type RequestLike, -} from '../../_shared/core/index.js'; +} from '@peac/worker-shared'; // Re-export types and utilities export type { diff --git a/surfaces/workers/fastly/src/replay-store.ts b/surfaces/workers/fastly/src/replay-store.ts index 4a24ae3d0..8fc88fdc3 100644 --- a/surfaces/workers/fastly/src/replay-store.ts +++ b/surfaces/workers/fastly/src/replay-store.ts @@ -15,7 +15,7 @@ */ import type { ReplayStore, ReplayContext } from './types.js'; -import { hashReplayKey } from '../../_shared/core/index.js'; +import { hashReplayKey } from '@peac/worker-shared'; // Re-export hash function for testing export { hashReplayKey }; diff --git a/surfaces/workers/fastly/src/types.ts b/surfaces/workers/fastly/src/types.ts index 3da83641d..3a77e094c 100644 --- a/surfaces/workers/fastly/src/types.ts +++ b/surfaces/workers/fastly/src/types.ts @@ -14,7 +14,7 @@ export type { ReplayStore, VerificationResult, ProblemDetails, -} from '../../_shared/core/index.js'; +} from '@peac/worker-shared'; /** * Fastly Compute environment configuration. From 6225727223e65ddddc5bd9de9ff35891afa1b68c Mon Sep 17 00:00:00 2001 From: jithinraj <7850727+jithinraj@users.noreply.github.com> Date: Sun, 22 Feb 2026 00:16:39 +0530 Subject: [PATCH 2/5] chore: dist-build worker-shared + format fix Convert @peac/worker-shared to a dist-built workspace package: - Point main/types/exports to dist/ (matching @peac/privacy pattern) - Add build, typecheck, clean scripts + typescript devDep - Add sideEffects: false - Add path alias in tsconfig.base.json for TS resolution Fix prettier formatting on 4 surface worker files. --- packages/worker-shared/package.json | 27 +++++++++++++++++------ packages/worker-shared/tsconfig.json | 9 ++++---- pnpm-lock.yaml | 4 ++++ surfaces/workers/akamai/src/index.ts | 6 +---- surfaces/workers/cloudflare/src/config.ts | 6 +---- surfaces/workers/cloudflare/src/index.ts | 6 +---- surfaces/workers/fastly/src/index.ts | 6 +---- tsconfig.base.json | 3 ++- 8 files changed, 35 insertions(+), 32 deletions(-) diff --git a/packages/worker-shared/package.json b/packages/worker-shared/package.json index 258ce5fe9..3703ea6f1 100644 --- a/packages/worker-shared/package.json +++ b/packages/worker-shared/package.json @@ -3,20 +3,33 @@ "version": "0.10.13", "private": true, "description": "Shared runtime-neutral TAP verification logic for edge worker surfaces", - "type": "module", - "main": "./src/index.ts", - "types": "./src/index.ts", + "main": "dist/index.js", + "types": "dist/index.d.ts", "exports": { ".": { - "types": "./src/index.ts", - "import": "./src/index.ts" + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" } }, - "scripts": {}, + "repository": { + "type": "git", + "url": "https://github.com/peacprotocol/peac.git", + "directory": "packages/worker-shared" + }, "author": "PEAC Protocol Contributors", "license": "Apache-2.0", + "scripts": { + "build": "tsc", + "typecheck": "tsc --noEmit", + "clean": "rm -rf dist" + }, "dependencies": { "@peac/contracts": "workspace:*", "@peac/mappings-tap": "workspace:*" - } + }, + "devDependencies": { + "typescript": "^5.3.3" + }, + "sideEffects": false } diff --git a/packages/worker-shared/tsconfig.json b/packages/worker-shared/tsconfig.json index 5285d28af..2d9f390c5 100644 --- a/packages/worker-shared/tsconfig.json +++ b/packages/worker-shared/tsconfig.json @@ -1,8 +1,9 @@ { - "extends": "../../tsconfig.base.json", + "extends": "../../tsconfig.json", "compilerOptions": { - "rootDir": "src", - "outDir": "dist" + "outDir": "./dist", + "rootDir": "./src" }, - "include": ["src"] + "include": ["src/**/*.ts"], + "exclude": ["node_modules", "dist"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac1c6fce8..7b8fd6161 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1546,6 +1546,10 @@ importers: '@peac/mappings-tap': specifier: workspace:* version: link:../mappings/tap + devDependencies: + typescript: + specifier: ^5.3.3 + version: 5.9.3 surfaces/analytics: dependencies: diff --git a/surfaces/workers/akamai/src/index.ts b/surfaces/workers/akamai/src/index.ts index 0e9f99a18..7886b0bc3 100644 --- a/surfaces/workers/akamai/src/index.ts +++ b/surfaces/workers/akamai/src/index.ts @@ -32,11 +32,7 @@ import { ErrorCodes, createErrorResponse, } from './errors.js'; -import { - handleVerification, - type HandlerResult, - type RequestLike, -} from '@peac/worker-shared'; +import { handleVerification, type HandlerResult, type RequestLike } from '@peac/worker-shared'; // Re-export types and utilities export type { diff --git a/surfaces/workers/cloudflare/src/config.ts b/surfaces/workers/cloudflare/src/config.ts index 998ea7da3..f59d6681d 100644 --- a/surfaces/workers/cloudflare/src/config.ts +++ b/surfaces/workers/cloudflare/src/config.ts @@ -9,11 +9,7 @@ import type { Env } from './types.js'; import type { WorkerConfig } from '@peac/worker-shared'; -import { - parseConfigFromEnv, - matchesBypassPath, - isIssuerAllowed, -} from '@peac/worker-shared'; +import { parseConfigFromEnv, matchesBypassPath, isIssuerAllowed } from '@peac/worker-shared'; // Re-export shared utilities export { matchesBypassPath, isIssuerAllowed }; diff --git a/surfaces/workers/cloudflare/src/index.ts b/surfaces/workers/cloudflare/src/index.ts index ed73ae62a..c7e0fac58 100644 --- a/surfaces/workers/cloudflare/src/index.ts +++ b/surfaces/workers/cloudflare/src/index.ts @@ -21,11 +21,7 @@ import type { Env, WorkerConfig } from './types.js'; import { parseConfig } from './config.js'; import { createReplayStore } from './replay-store.js'; import { createErrorResponse, createChallengeResponse, ErrorCodes } from './errors.js'; -import { - handleVerification, - type HandlerResult, - type RequestLike, -} from '@peac/worker-shared'; +import { handleVerification, type HandlerResult, type RequestLike } from '@peac/worker-shared'; // Re-export types and utilities export type { diff --git a/surfaces/workers/fastly/src/index.ts b/surfaces/workers/fastly/src/index.ts index e44322245..c2da0fad3 100644 --- a/surfaces/workers/fastly/src/index.ts +++ b/surfaces/workers/fastly/src/index.ts @@ -21,11 +21,7 @@ import type { WorkerConfig, FastlyBackendConfig } from './types.js'; import { parseConfig } from './config.js'; import { createReplayStore } from './replay-store.js'; import { createErrorResponse, createChallengeResponse, ErrorCodes } from './errors.js'; -import { - handleVerification, - type HandlerResult, - type RequestLike, -} from '@peac/worker-shared'; +import { handleVerification, type HandlerResult, type RequestLike } from '@peac/worker-shared'; // Re-export types and utilities export type { diff --git a/tsconfig.base.json b/tsconfig.base.json index fcc3030ec..1aadf7db2 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -54,7 +54,8 @@ "@peac/mappings-mcp": ["./packages/mappings/mcp/src"], "@peac/mappings-ucp": ["./packages/mappings/ucp/src"], "@peac/mappings-aipref": ["./packages/mappings/aipref/src"], - "@peac/mcp-server": ["./packages/mcp-server/src"] + "@peac/mcp-server": ["./packages/mcp-server/src"], + "@peac/worker-shared": ["./packages/worker-shared/src"] } }, "exclude": ["node_modules", "dist", "build", "lib", "coverage"] From d4016563714db9080ffdf4341cad55bf5dbf1604 Mon Sep 17 00:00:00 2001 From: jithinraj <7850727+jithinraj@users.noreply.github.com> Date: Sun, 22 Feb 2026 00:44:23 +0530 Subject: [PATCH 3/5] fix: revert worker-shared to source exports for ESM resolution Dist-built exports broke ESM resolution chain for transitive deps (@peac/mappings-tap exports). Source exports are the correct pattern for private workspace-only packages that are never published to npm. - Restore "type": "module" for ESM resolution - Point main/types/exports to ./src/index.ts - Override composite: false (avoids TS6307 with path aliases) - Remove dist-related scripts and devDependencies --- packages/worker-shared/package.json | 19 ++++++++----------- packages/worker-shared/tsconfig.json | 8 +++----- pnpm-lock.yaml | 4 ---- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/packages/worker-shared/package.json b/packages/worker-shared/package.json index 3703ea6f1..7fc55ac9a 100644 --- a/packages/worker-shared/package.json +++ b/packages/worker-shared/package.json @@ -3,13 +3,14 @@ "version": "0.10.13", "private": true, "description": "Shared runtime-neutral TAP verification logic for edge worker surfaces", - "main": "dist/index.js", - "types": "dist/index.d.ts", + "type": "module", + "main": "./src/index.ts", + "types": "./src/index.ts", "exports": { ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js", - "default": "./dist/index.js" + "types": "./src/index.ts", + "import": "./src/index.ts", + "default": "./src/index.ts" } }, "repository": { @@ -20,16 +21,12 @@ "author": "PEAC Protocol Contributors", "license": "Apache-2.0", "scripts": { - "build": "tsc", - "typecheck": "tsc --noEmit", - "clean": "rm -rf dist" + "build": "tsc --noEmit", + "typecheck": "tsc --noEmit" }, "dependencies": { "@peac/contracts": "workspace:*", "@peac/mappings-tap": "workspace:*" }, - "devDependencies": { - "typescript": "^5.3.3" - }, "sideEffects": false } diff --git a/packages/worker-shared/tsconfig.json b/packages/worker-shared/tsconfig.json index 2d9f390c5..3e0f4d7dd 100644 --- a/packages/worker-shared/tsconfig.json +++ b/packages/worker-shared/tsconfig.json @@ -1,9 +1,7 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "composite": false }, - "include": ["src/**/*.ts"], - "exclude": ["node_modules", "dist"] + "include": ["src"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b8fd6161..ac1c6fce8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1546,10 +1546,6 @@ importers: '@peac/mappings-tap': specifier: workspace:* version: link:../mappings/tap - devDependencies: - typescript: - specifier: ^5.3.3 - version: 5.9.3 surfaces/analytics: dependencies: From f10659fde27568cffcc89aafb7f62869d802c9f8 Mon Sep 17 00:00:00 2001 From: jithinraj <7850727+jithinraj@users.noreply.github.com> Date: Sun, 22 Feb 2026 01:07:28 +0530 Subject: [PATCH 4/5] chore: add cross-platform clean script to worker-shared Source-exports package has no build artifacts, so clean is a no-op. Uses node -e for cross-platform compatibility. --- packages/worker-shared/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/worker-shared/package.json b/packages/worker-shared/package.json index 7fc55ac9a..9301dce44 100644 --- a/packages/worker-shared/package.json +++ b/packages/worker-shared/package.json @@ -22,7 +22,8 @@ "license": "Apache-2.0", "scripts": { "build": "tsc --noEmit", - "typecheck": "tsc --noEmit" + "typecheck": "tsc --noEmit", + "clean": "node -e \"/* no-op: source-exports package has no build artifacts */\"" }, "dependencies": { "@peac/contracts": "workspace:*", From 76ac2b898c90bf6f293f67cc7eee9b9dec119b6e Mon Sep 17 00:00:00 2001 From: jithinraj <7850727+jithinraj@users.noreply.github.com> Date: Sun, 22 Feb 2026 01:41:10 +0530 Subject: [PATCH 5/5] chore: noEmit true in worker-shared tsconfig (clarify source-exports intent) --- packages/worker-shared/tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/worker-shared/tsconfig.json b/packages/worker-shared/tsconfig.json index 3e0f4d7dd..5e3cc116e 100644 --- a/packages/worker-shared/tsconfig.json +++ b/packages/worker-shared/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "composite": false + "composite": false, + "noEmit": true }, "include": ["src"] }