Skip to content

Conversation

@prosdev
Copy link
Contributor

@prosdev prosdev commented Dec 25, 2025

Implements Issue #9 - Integrate Plugins into Core

Changes

  • Auto-register storage, debug, frequency, and banner plugins in ExperienceRuntime constructor
  • Move shared types to plugins package to resolve circular dependency
  • Update core to depend on plugins package (proper dependency direction)
  • Bundle all dependencies in IIFE build for script tag usage
  • Remove default export to fix rollup named/default export warning
  • Configure Biome to allow any in specs contracts
  • Update pre-commit hook to match sdk-kit pattern (only lint staged files)

Technical Details

Circular Dependency Resolution

  • Created with shared type definitions
  • Plugins no longer depend on core
  • Core imports types and implementations from plugins

Build Configuration

  • Core bundles: @lytics/sdk-kit, @lytics/sdk-kit-plugins, @prosdevlab/experience-sdk-plugins
  • Pre-commit builds packages before typecheck (needed for workspace deps)
  • Dist files cleaned up after pre-commit checks

Testing

  • All 120 tests passing
  • Build successful (ESM + IIFE)
  • Typecheck passing
  • Linter clean

Closes #9

- Auto-register storage, debug, frequency, and banner plugins in ExperienceRuntime constructor
- Move shared types to plugins package to resolve circular dependency
- Update core to depend on plugins package
- Bundle all dependencies in IIFE build for script tag usage
- Remove default export to fix named/default export warning
- Configure Biome to allow any in specs contracts
- Update pre-commit hook to only lint staged files (matches sdk-kit pattern)

All plugins now work seamlessly with the runtime. Closes #9
@prosdev prosdev merged commit 3002a11 into main Dec 25, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Phase 0] Task 4.1: Integrate Plugins into Core

2 participants