Entry points
Every import path the package exports and what belongs in each one.
The package is ESM-only and split by where code runs, so the proxy never loads Payload and route handlers never load admin views.
| Import path | Runs in | Main exports |
|---|---|---|
@delmaredigital/payload-experiments | Payload config, collections | createExperimentsPlugin, createExperimentBlock, xpGoalField, createArmSelectField, defineFlagPoint, defineMetricSource, contentDone, EXPERIMENT_BLOCK_SLUG, all public types |
/runtime/proxy | Proxy runtime module | defineExperimentsProxyRuntime, createPostgresManifestLoader, createHttpManifestLoader |
/runtime/server | Server runtime module | defineExperimentsServerRuntime |
/proxy | proxy.ts | createExperimentProxy, resolveExperiments, applyExperiments |
/rsc | Server Components, route handlers, hooks | See Server helpers |
/client | Client components | See Client exports |
/blocks | Block renderers | controlOnlyBlocks, segmentExperimentBlocks, EXPERIMENT_BLOCK_SLUG |
/puck | Puck render config | See Puck and field exports |
/puck/editor | Puck editor config (client) | See Puck and field exports |
/admin/client | Admin client components | Form-state helpers for the Experiment block, XP_IF_UPDATED_AT_HEADER |
/admin/rsc | Admin server views | The Tests views, registered through the import map |
/puck/editor.css, /admin/theme.css, /admin/ui.css | Stylesheets | See Puck |
The /admin/* entry points are wired by payload generate:importmap; you rarely import them yourself. Regenerate the import map after every upgrade that changes them.

