Skip to content

feat(bindings): add component data-binding contracts - #56

Merged
artiphishle merged 6 commits into
mainfrom
feat/component-data-binding-contracts
May 19, 2026
Merged

feat(bindings): add component data-binding contracts#56
artiphishle merged 6 commits into
mainfrom
feat/component-data-binding-contracts

Conversation

@artiphishle

Copy link
Copy Markdown
Contributor

Summary

Implements #48.

Replaces the old node-local prop binding model with app-level component data-binding contracts.

Adds/reworks:

  • ComponentInstanceId
  • ComponentTypeId
  • BindingOperationRef
  • BindingValueSource
  • BindingValueExpression
  • BindingFallback
  • BindingLifecycleBehavior
  • PropBinding
  • BindingInputValue
  • BindingInputMap
  • BindingCondition
  • EventBindingTarget
  • EventBinding
  • ComponentDataBinding
  • ComponentDataBindingRegistry
  • AppManifest.dataSources
  • AppManifest.dataBindings

Removes from the public model:

  • NodePropBinding
  • DbCollectionQueryBinding
  • special source: 'db.collection' binding source
  • node-local UiNode.bindings
  • node-local UiNode.events
  • old action-binding contract layer from types.ts

Scope intentionally excluded

  • no Runtime resolver implementation
  • no Studio UI migration
  • no ZORA metadata migration
  • no @ankhorage/data-sources implementation

Those are follow-up repo-local tasks.

Verification

I could not run local validation from this session because the environment cannot reliably clone/resolve GitHub repositories.

Please run before merge:

bun install
bun run build
bun run lint:fix
bun run test

Notes

DB-backed reads are now represented through data-source operation references instead of the old direct db.collection binding source. Runtime lifecycle/cache state remains outside the serializable binding contracts.

@artiphishle artiphishle self-assigned this May 19, 2026
@artiphishle
artiphishle marked this pull request as ready for review May 19, 2026 20:11
@artiphishle
artiphishle merged commit 440f28e into main May 19, 2026
1 check passed
@artiphishle
artiphishle deleted the feat/component-data-binding-contracts branch May 19, 2026 20:11
@artiphishle artiphishle linked an issue May 19, 2026 that may be closed by this pull request
18 tasks
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.

02 — Replace current bindings.ts with shared component data-binding contracts

1 participant