PulseTrade.Comm.Spa.Dynamic.Contracts 0.1.0-alpha16

This is a prerelease version of PulseTrade.Comm.Spa.Dynamic.Contracts.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package PulseTrade.Comm.Spa.Dynamic.Contracts --version 0.1.0-alpha16
                    
NuGet\Install-Package PulseTrade.Comm.Spa.Dynamic.Contracts -Version 0.1.0-alpha16
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PulseTrade.Comm.Spa.Dynamic.Contracts" Version="0.1.0-alpha16" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PulseTrade.Comm.Spa.Dynamic.Contracts" Version="0.1.0-alpha16" />
                    
Directory.Packages.props
<PackageReference Include="PulseTrade.Comm.Spa.Dynamic.Contracts" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PulseTrade.Comm.Spa.Dynamic.Contracts --version 0.1.0-alpha16
                    
#r "nuget: PulseTrade.Comm.Spa.Dynamic.Contracts, 0.1.0-alpha16"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PulseTrade.Comm.Spa.Dynamic.Contracts@0.1.0-alpha16
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PulseTrade.Comm.Spa.Dynamic.Contracts&version=0.1.0-alpha16&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=PulseTrade.Comm.Spa.Dynamic.Contracts&version=0.1.0-alpha16&prerelease
                    
Install as a Cake Tool

PulseTrade.Comm.Spa.Dynamic.Contracts

SDUI runtime/frame/action vocabulary、strict server codec、validation limits、pure reducer與poll lifecycle。方案 1 讓同一套 RuntimeFrame/reducer 產生 WebSharper browser metadata,並提供 loopback WebSocket 專用的 typed-JSON codec;package 仍不依賴 PTCS、fCell2、PTMD、SQL 或 provider SDK。

Data flow

host adapter -> RuntimeFrame -> RuntimeCodec/Validation -> RuntimeReducer -> Renderer model
local action -> reducer effect
remote action/poll/resync -> typed SduiAction -> host adapter

RuntimeCodec 的既有 System.Text.Json wire 與 BrowserRuntimeCodec 的 WebSharper typed-JSON wire 是兩條明確分離的 encoding;兩者共用相同 RuntimeFrame/RuntimeClientFrame 型別,但 JSON bytes 不可交叉解碼。Interactive mutation 另用 ptcs-dynamic-action.v1DynamicActionClientFrame / DynamicActionServerFrame,以 RequestIdExpectedDocumentRevision 與 explicit result 建立 correlation;action result 不屬於 authoritative RuntimePayload

SourceSnapshotEnvelope / SourceEventEnvelope 是跨 domain 的 ordering seam。SourceProjection只驗stream identity、epoch、sequence、source revision並在gap/conflict/reducer reject時要求authoritative snapshot;payload reducer仍由domain owner adapter注入,package不擁有MDCQ、TradeCore、FsStl、SOR或FCell2型別。source revision不會直接提升browser DocumentRevision

DynamicTemplateSchemaEditorValueKind描述Text/Integer/Decimal/Boolean/Choice/Scale/List/Group,不包含domain union或provider client。DynamicEditorValidation遞迴限制depth/fields/choices/list items,驗default value型別與safe payload;同template的不同參數實例以TaRowSpec.RowId區分,document validator拒絕重複RowId。

TaWorkspaceDocument.EditorSchemas是authoritative editor catalog,與Rows共用DocumentRevision。可重新設定的row以TaRowEditorBinding.attachTemplateKey + EditorInputValue[]寫入TaRowSpec.Options["ptcs.dynamic.editor.binding.v1"]tryResolve只在binding與catalog schema都有效時回傳editor state。legacy row沒有binding仍可顯示與移除,但不會被猜成可編輯。

DynamicTemplateSchemaCodec.toValue/fromValue提供transport-neutral SduiValue representation,供PTCS與Interactive adapter傳遞catalog;consumer須將invalid catalog視為整體錯誤,不可靜默刪除壞項後繼續。

DynamicActionLifecycle只管理單一pending request與correlated result。revision conflict不送出request;accepted/rejected只清除相符request並保存bounded feedback,均不直接修改authoritative document。Host完成resource prepare/swap後,必須以新的RuntimeFrame發布document revision。

Error與invalid/gapped frame保留last-good document/data/view;duplicate frame no-op;sequence gap、identity mismatch或patch base mismatch只產生typed resync effect。

Current exact package:PulseTrade.Comm.Spa.Dynamic.Contracts 0.1.0-alpha15,exact依賴FSharp.Core [10.1.302];所有browser call graph module與schema codec均攜帶WebSharper metadata。

Browser-facing numeric使用JSON number/float,query range使用canonical ISO-8601 string。host/server必須重新驗證range並轉成domain DateTimeOffset;Contracts不把browser parser當authorization或domain validation。

Security boundary

  • protocol/case/row/action allowlist。
  • frame bytes、rows、patch operations/items hard limits。
  • shared contract拒絕script、selector與arbitrary URL key/value。
  • contract只傳typed data/effect,不傳credential、SQL、DOM selector或transport URL。
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on PulseTrade.Comm.Spa.Dynamic.Contracts:

Package Downloads
PulseTrade.Comm.Spa.Dynamic.Ptcs

PTCS same-session transient adapter for PulseTrade Dynamic SDUI runtime.

PulseTrade.Comm.Spa.Dynamic.Ptcs.Client

Pure WebSharper same-origin PTCS transient client adapter for Dynamic TA Research.

PulseTrade.Comm.Spa.Dynamic.Renderer

Pure WebSharper renderer for transport-neutral PulseTrade Dynamic SDUI runtime documents.

PulseTrade.MarketData.E2EQuotation.Dynamic.Adapter

E2EQuotation-specific mapper for transport-neutral Dynamic TA runtime frames and actions.

PulseTrade.MarketData.E2EQuotation.Dynamic.Browser

Bounded pure WebSharper E2EQuotation adapter for the shared Dynamic TA renderer.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-alpha5 457 7/12/2026
0.1.0-alpha16 43 9/6/2026