@dreamboard-games/sdk 0.2.1-alpha.1 → 0.3.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{HandView-ncJIVLhN.d.ts → HandView-PYDmehVD.d.ts} +1 -1
- package/dist/{ResourceCounter-CTREyF73.d.ts → ResourceCounter-BTXklCEZ.d.ts} +1 -1
- package/dist/{ThemeProvider-BBMVT3KG.d.ts → ThemeProvider-DvMl17Ny.d.ts} +1 -1
- package/dist/{chunk-NKCRKGR2.js → chunk-3RQEICD3.js} +2 -2
- package/dist/{chunk-ZABVH7AO.js → chunk-ADYH6PVT.js} +1336 -1363
- package/dist/chunk-ADYH6PVT.js.map +1 -0
- package/dist/{chunk-PEI3FIL2.js → chunk-P7VMTJ5D.js} +2 -2
- package/dist/{chunk-PEI3FIL2.js.map → chunk-P7VMTJ5D.js.map} +1 -1
- package/dist/{chunk-WG4JQL3S.js → chunk-QZ6X4B5P.js} +1177 -1109
- package/dist/chunk-QZ6X4B5P.js.map +1 -0
- package/dist/{chunk-MZNVHMJ5.js → chunk-TXXLS3OI.js} +405 -309
- package/dist/chunk-TXXLS3OI.js.map +1 -0
- package/dist/{chunk-FDNZTDD6.js → chunk-W6SGFWXH.js} +48 -44
- package/dist/chunk-W6SGFWXH.js.map +1 -0
- package/dist/{chunk-MKXPVOUT.js → chunk-Y2AFYBMB.js} +48 -4
- package/dist/chunk-Y2AFYBMB.js.map +1 -0
- package/dist/{index-BwqPQtBu.d.ts → codegen.d.ts} +57 -565
- package/dist/{infrastructure/workspace-codegen.js → codegen.js} +3 -3
- package/dist/{components-BoiVSYqx.d.ts → components-DaIqi9QM.d.ts} +48 -37
- package/dist/{hex-board-view-1iAyJRFn.d.ts → hex-board-view-UCUjMALd.d.ts} +2 -2
- package/dist/{infrastructure/reducer-bundle-abi.d.ts → index.d-BGqVifr_.d.ts} +289 -10
- package/dist/index.js +1 -1
- package/dist/package-set.d.ts +2 -2
- package/dist/package-set.js +1 -1
- package/dist/primitive-props-BNHDkgd7.d.ts +16 -0
- package/dist/reducer-contract.d.ts +3 -0
- package/dist/{infrastructure/reducer-bundle-abi.js → reducer-contract.js} +4 -4
- package/dist/reducer.d.ts +185 -179
- package/dist/reducer.js +1363 -1372
- package/dist/reducer.js.map +1 -1
- package/dist/runtime/primitives.d.ts +9 -9
- package/dist/runtime/primitives.js +7 -7
- package/dist/runtime/runtime-api.d.ts +2 -0
- package/dist/runtime/runtime-api.js +1 -0
- package/dist/runtime/workspace-contract.d.ts +62 -17
- package/dist/runtime/workspace-contract.js +5 -6
- package/dist/{runtime-api-CPLm_XDG.d.ts → runtime-api-tGL3ArsB.d.ts} +103 -4
- package/dist/runtime.d.ts +11 -57
- package/dist/runtime.js +487 -8
- package/dist/runtime.js.map +1 -1
- package/dist/testing.d.ts +4 -4
- package/dist/testing.js.map +1 -1
- package/dist/types.d.ts +1531 -85
- package/dist/types.js +1 -3
- package/dist/types.js.map +1 -1
- package/dist/ui/components.d.ts +7 -8
- package/dist/ui/components.js +1 -1
- package/dist/ui/defaults.d.ts +1 -1
- package/dist/ui/{types/player-state.d.ts → player-state.d.ts} +2 -2
- package/dist/{ui-contract-rzKBwOLC.d.ts → ui-contract-SctM4ibF.d.ts} +155 -150
- package/dist/ui.d.ts +10 -11
- package/dist/ui.js +2 -2
- package/package.json +30 -75
- package/dist/bundle-CDd5FKeD.d.ts +0 -283
- package/dist/cards-Sl3b40Mv.d.ts +0 -13
- package/dist/chunk-326PGVAA.js +0 -34
- package/dist/chunk-326PGVAA.js.map +0 -1
- package/dist/chunk-FDNZTDD6.js.map +0 -1
- package/dist/chunk-I46YJSOD.js +0 -1
- package/dist/chunk-MKXPVOUT.js.map +0 -1
- package/dist/chunk-MZNVHMJ5.js.map +0 -1
- package/dist/chunk-T52J5RMF.js +0 -1
- package/dist/chunk-WG4JQL3S.js.map +0 -1
- package/dist/chunk-XV6D3ET4.js +0 -485
- package/dist/chunk-XV6D3ET4.js.map +0 -1
- package/dist/chunk-ZABVH7AO.js.map +0 -1
- package/dist/generated/runtime/primitives.d.ts +0 -13
- package/dist/generated/runtime/primitives.js +0 -181
- package/dist/generated/runtime/primitives.js.map +0 -1
- package/dist/generated/runtime-api.d.ts +0 -3
- package/dist/generated/runtime-api.js +0 -2
- package/dist/generated/runtime.d.ts +0 -15
- package/dist/generated/runtime.js +0 -19
- package/dist/generated/runtime.js.map +0 -1
- package/dist/generated/workspace-contract.d.ts +0 -15
- package/dist/generated/workspace-contract.js +0 -15
- package/dist/generated/workspace-contract.js.map +0 -1
- package/dist/infrastructure/reducer-bundle-abi.js.map +0 -1
- package/dist/infrastructure/workspace-codegen.d.ts +0 -53
- package/dist/infrastructure/workspace-codegen.js.map +0 -1
- package/dist/manifest-contract-BNHVGFtU.d.ts +0 -9
- package/dist/primitive-props-DpKs-GCr.d.ts +0 -11
- package/dist/runtime/types/runtime-api.d.ts +0 -1
- package/dist/runtime/types/runtime-api.js +0 -2
- package/dist/runtime/types/runtime-api.js.map +0 -1
- package/dist/runtime-api-3dshj6kK.d.ts +0 -101
- package/dist/slots-1GPGihk8.d.ts +0 -8
- package/src/browser-interaction/attributes.ts +0 -211
- package/src/browser-interaction/canonical.ts +0 -77
- package/src/browser-interaction/constants.ts +0 -77
- package/src/browser-interaction/effects.ts +0 -176
- package/src/browser-interaction/index.ts +0 -111
- package/src/browser-interaction/normalize.ts +0 -997
- package/src/browser-interaction/registry.ts +0 -70
- package/src/browser-interaction/resolve.ts +0 -596
- package/src/browser-interaction/schemas.ts +0 -152
- package/src/browser-interaction/types.ts +0 -304
- package/src/browser-interaction.ts +0 -1
- package/src/generated/reducer-contract/builders.ts +0 -90
- package/src/generated/reducer-contract/version.ts +0 -9
- package/src/generated/reducer-contract/wire.ts +0 -100
- package/src/generated/reducer-contract/zod.ts +0 -103
- package/src/generated/runtime/primitives.ts +0 -2
- package/src/generated/runtime-api.ts +0 -5
- package/src/generated/runtime.ts +0 -35
- package/src/generated/workspace-contract.ts +0 -2
- package/src/index.ts +0 -7
- package/src/infrastructure/reducer-bundle-abi.ts +0 -8
- package/src/infrastructure/reducer-contract/bundle.ts +0 -37
- package/src/infrastructure/workspace-codegen/hex-geometry.ts +0 -69
- package/src/infrastructure/workspace-codegen/index.ts +0 -64
- package/src/infrastructure/workspace-codegen/manifest-contract.ts +0 -6632
- package/src/infrastructure/workspace-codegen/manifest-validation.ts +0 -795
- package/src/infrastructure/workspace-codegen/ownership.ts +0 -131
- package/src/infrastructure/workspace-codegen/preset-card-sets.ts +0 -169
- package/src/infrastructure/workspace-codegen/seeds.ts +0 -1705
- package/src/infrastructure/workspace-codegen.ts +0 -1
- package/src/package-set.ts +0 -19
- package/src/reducer/authoring/contract.ts +0 -157
- package/src/reducer/authoring/effect.ts +0 -224
- package/src/reducer/authoring/game.ts +0 -23
- package/src/reducer/authoring/interaction.ts +0 -98
- package/src/reducer/authoring/phase.ts +0 -300
- package/src/reducer/authoring/types.ts +0 -70
- package/src/reducer/authoring/validation.ts +0 -382
- package/src/reducer/authoring/view-stage.ts +0 -68
- package/src/reducer/authoring.ts +0 -29
- package/src/reducer/bundle/ingress-bundle.ts +0 -491
- package/src/reducer/bundle/trusted/engine-instruction-resolver.ts +0 -254
- package/src/reducer/bundle/trusted/flow-instruction-resolver.ts +0 -73
- package/src/reducer/bundle/trusted/instruction-runner.ts +0 -414
- package/src/reducer/bundle/trusted/interaction-authorization.ts +0 -137
- package/src/reducer/bundle/trusted/interaction-collectors.ts +0 -859
- package/src/reducer/bundle/trusted/interaction-decision.ts +0 -747
- package/src/reducer/bundle/trusted/interaction-resolver.ts +0 -95
- package/src/reducer/bundle/trusted/interaction-types.ts +0 -174
- package/src/reducer/bundle/trusted/lifecycle-runner.ts +0 -427
- package/src/reducer/bundle/trusted/projection-builder.ts +0 -680
- package/src/reducer/bundle/trusted/projection-context.ts +0 -39
- package/src/reducer/bundle/trusted/rng-sampler.ts +0 -150
- package/src/reducer/bundle/trusted/runtime-registry.ts +0 -120
- package/src/reducer/bundle/trusted/runtime-scope.ts +0 -336
- package/src/reducer/bundle/trusted/simultaneous-player.ts +0 -97
- package/src/reducer/bundle/trusted/stage-resolver.ts +0 -87
- package/src/reducer/bundle/trusted/static-projection.ts +0 -116
- package/src/reducer/bundle/trusted/trusted-runtime-args.ts +0 -97
- package/src/reducer/bundle/trusted/trusted-runtime-result.ts +0 -39
- package/src/reducer/bundle/trusted/trusted-setup-profiles.ts +0 -43
- package/src/reducer/bundle/trusted/trusted-state-codec.ts +0 -48
- package/src/reducer/bundle/trusted-bundle.ts +0 -97
- package/src/reducer/bundle/types.ts +0 -171
- package/src/reducer/bundle.ts +0 -2
- package/src/reducer/client-param-schemas.ts +0 -57
- package/src/reducer/compose.ts +0 -34
- package/src/reducer/core/runtime-input.ts +0 -30
- package/src/reducer/core/runtime-instruction.ts +0 -59
- package/src/reducer/core/types.ts +0 -62
- package/src/reducer/definition-index.ts +0 -277
- package/src/reducer/derived.ts +0 -106
- package/src/reducer/effects.ts +0 -92
- package/src/reducer/engine/runtime-instruction-engine.ts +0 -155
- package/src/reducer/ingress/decode-runtime-input.ts +0 -7
- package/src/reducer/ingress/decode-session-state.ts +0 -9
- package/src/reducer/ingress/encode-session-state.ts +0 -6
- package/src/reducer/ingress/input-codec.ts +0 -18
- package/src/reducer/ingress/phase-schemas.ts +0 -62
- package/src/reducer/ingress/raw-types.ts +0 -107
- package/src/reducer/ingress/runtime-codec.ts +0 -14
- package/src/reducer/ingress/runtime-payload.ts +0 -13
- package/src/reducer/ingress/session-codec.ts +0 -392
- package/src/reducer/ingress/types.ts +0 -6
- package/src/reducer/inputs/boardInput.ts +0 -217
- package/src/reducer/inputs/boardTarget.ts +0 -190
- package/src/reducer/inputs/cardInput.ts +0 -86
- package/src/reducer/inputs/cardTarget.ts +0 -101
- package/src/reducer/inputs/choiceTarget.ts +0 -104
- package/src/reducer/inputs/defineInputs.ts +0 -71
- package/src/reducer/inputs/formInput.ts +0 -809
- package/src/reducer/inputs/many.ts +0 -120
- package/src/reducer/inputs/promptInput.ts +0 -87
- package/src/reducer/inputs/rngInput.ts +0 -58
- package/src/reducer/inputs/targetRule.ts +0 -123
- package/src/reducer/inputs.ts +0 -41
- package/src/reducer/model/definition.ts +0 -1072
- package/src/reducer/model/extract.ts +0 -745
- package/src/reducer/model/manifest.ts +0 -570
- package/src/reducer/model/queries.ts +0 -641
- package/src/reducer/model/runtime.ts +0 -264
- package/src/reducer/model/spec.ts +0 -1386
- package/src/reducer/model/table.ts +0 -260
- package/src/reducer/model.ts +0 -7
- package/src/reducer/ops.ts +0 -1034
- package/src/reducer/parse-utils.ts +0 -28
- package/src/reducer/per-player.ts +0 -422
- package/src/reducer/rng.ts +0 -69
- package/src/reducer/schema-helpers.ts +0 -185
- package/src/reducer/setup-bootstrap-helpers.ts +0 -171
- package/src/reducer/setup-bootstrap.ts +0 -481
- package/src/reducer/table-ops.ts +0 -2671
- package/src/reducer/table-queries.ts +0 -372
- package/src/reducer/transaction.ts +0 -120
- package/src/reducer.ts +0 -314
- package/src/runtime/primitives.ts +0 -1
- package/src/runtime/types/runtime-api.ts +0 -1
- package/src/runtime/workspace-contract.ts +0 -32
- package/src/runtime-internal/components/InteractionForm.tsx +0 -1647
- package/src/runtime-internal/components/PluginRuntime.tsx +0 -105
- package/src/runtime-internal/components/board/target-layer.ts +0 -72
- package/src/runtime-internal/context/ClientParamSchemaContext.tsx +0 -44
- package/src/runtime-internal/context/InteractionDraftContext.tsx +0 -279
- package/src/runtime-internal/context/PluginSessionContext.tsx +0 -47
- package/src/runtime-internal/context/PluginStateContext.tsx +0 -303
- package/src/runtime-internal/context/RuntimeContext.tsx +0 -96
- package/src/runtime-internal/defaults/components.tsx +0 -409
- package/src/runtime-internal/defaults/index.ts +0 -11
- package/src/runtime-internal/errors/ValidationError.ts +0 -29
- package/src/runtime-internal/hooks/useActivePlayers.ts +0 -33
- package/src/runtime-internal/hooks/useBoardInteractions.ts +0 -727
- package/src/runtime-internal/hooks/useGameSelector.ts +0 -105
- package/src/runtime-internal/hooks/useGameView.ts +0 -9
- package/src/runtime-internal/hooks/useInteractionByKey.ts +0 -354
- package/src/runtime-internal/hooks/useInteractionHandle.ts +0 -438
- package/src/runtime-internal/hooks/useIsMyTurn.ts +0 -20
- package/src/runtime-internal/hooks/useLobby.ts +0 -76
- package/src/runtime-internal/hooks/useMe.ts +0 -48
- package/src/runtime-internal/hooks/usePlayerInfo.ts +0 -28
- package/src/runtime-internal/hooks/usePlayerTurnOrder.ts +0 -23
- package/src/runtime-internal/hooks/usePluginRuntime.ts +0 -147
- package/src/runtime-internal/hooks/useSeatInbox.ts +0 -61
- package/src/runtime-internal/hooks/useSimultaneousPhase.ts +0 -10
- package/src/runtime-internal/index.ts +0 -42
- package/src/runtime-internal/internal.ts +0 -43
- package/src/runtime-internal/plugin-styles.css +0 -250
- package/src/runtime-internal/primitives/board.tsx +0 -530
- package/src/runtime-internal/primitives/dialog-lifecycle.ts +0 -58
- package/src/runtime-internal/primitives/dice.tsx +0 -79
- package/src/runtime-internal/primitives/game-ui-provider.tsx +0 -35
- package/src/runtime-internal/primitives/game.tsx +0 -387
- package/src/runtime-internal/primitives/hand-intent-adapter.ts +0 -147
- package/src/runtime-internal/primitives/hand-surface.tsx +0 -594
- package/src/runtime-internal/primitives/index.ts +0 -196
- package/src/runtime-internal/primitives/interaction-form-binding.tsx +0 -56
- package/src/runtime-internal/primitives/interaction-submit.ts +0 -90
- package/src/runtime-internal/primitives/interaction.tsx +0 -1146
- package/src/runtime-internal/primitives/phase.tsx +0 -43
- package/src/runtime-internal/primitives/player-roster.tsx +0 -302
- package/src/runtime-internal/primitives/primitive-props.tsx +0 -101
- package/src/runtime-internal/primitives/prompt.tsx +0 -255
- package/src/runtime-internal/primitives/ui.tsx +0 -60
- package/src/runtime-internal/primitives/zone.tsx +0 -791
- package/src/runtime-internal/reducer.ts +0 -30
- package/src/runtime-internal/runtime/createPluginRuntimeAPI.ts +0 -605
- package/src/runtime-internal/types/plugin-state.ts +0 -514
- package/src/runtime-internal/types/reducer-state.ts +0 -24
- package/src/runtime-internal/types/runtime-api.ts +0 -114
- package/src/runtime-internal/ui-contract.ts +0 -519
- package/src/runtime-internal/utils/browser-interaction-effects.ts +0 -240
- package/src/runtime-internal/utils/card-intent-adapter.ts +0 -546
- package/src/runtime-internal/utils/interaction-draft-digest.ts +0 -252
- package/src/runtime-internal/utils/interaction-inputs.ts +0 -492
- package/src/runtime-internal/utils/interaction-labels.ts +0 -23
- package/src/runtime-internal/utils/interaction-router.ts +0 -273
- package/src/runtime-internal/utils/interaction-status.ts +0 -74
- package/src/runtime-internal/utils/semantic-projection-digest.ts +0 -407
- package/src/runtime-internal/workspace-contract.ts +0 -1170
- package/src/runtime.ts +0 -34
- package/src/testing/create-expect-api.ts +0 -352
- package/src/testing/create-test-runtime.ts +0 -381
- package/src/testing/definitions.ts +0 -127
- package/src/testing/index.ts +0 -3
- package/src/testing.ts +0 -1
- package/src/type-stubs/manifest-contract.d.ts +0 -42
- package/src/type-stubs/manifest-contract.js +0 -72
- package/src/type-stubs/ui-contract.d.ts +0 -5
- package/src/type-stubs/ui-contract.js +0 -1
- package/src/types/authoring-card-properties.type-test.ts +0 -266
- package/src/types/authoring.ts +0 -1282
- package/src/types/cards.ts +0 -19
- package/src/types/contracts.ts +0 -1550
- package/src/types/generated-helpers.ts +0 -35
- package/src/types/index.ts +0 -147
- package/src/types/slots.ts +0 -11
- package/src/types.ts +0 -1
- package/src/ui/components/ActionButton.tsx +0 -97
- package/src/ui/components/ActionPanel.tsx +0 -315
- package/src/ui/components/Card.tsx +0 -378
- package/src/ui/components/CardDragSurface.tsx +0 -1076
- package/src/ui/components/ChromeSuppressionContext.tsx +0 -70
- package/src/ui/components/CostDisplay.tsx +0 -145
- package/src/ui/components/DiceRoller.tsx +0 -581
- package/src/ui/components/Drawer.tsx +0 -180
- package/src/ui/components/ErrorBoundary.tsx +0 -275
- package/src/ui/components/GameEndDisplay.tsx +0 -398
- package/src/ui/components/GameSkeleton.tsx +0 -260
- package/src/ui/components/Hand.tsx +0 -468
- package/src/ui/components/HandDock.tsx +0 -299
- package/src/ui/components/HandView.tsx +0 -441
- package/src/ui/components/MobileHandTray.tsx +0 -381
- package/src/ui/components/MoreActions.tsx +0 -143
- package/src/ui/components/PhaseIndicator.tsx +0 -341
- package/src/ui/components/PlayArea.tsx +0 -146
- package/src/ui/components/PrimaryActionButton.tsx +0 -336
- package/src/ui/components/PrimaryButton.tsx +0 -45
- package/src/ui/components/ResourceCounter.tsx +0 -270
- package/src/ui/components/StagingZone.tsx +0 -134
- package/src/ui/components/ThemedButton.tsx +0 -113
- package/src/ui/components/Toast.tsx +0 -264
- package/src/ui/components/board/HexGrid.tsx +0 -1297
- package/src/ui/components/board/NetworkGraph.tsx +0 -476
- package/src/ui/components/board/SlotSystem.tsx +0 -388
- package/src/ui/components/board/SquareGrid.tsx +0 -1165
- package/src/ui/components/board/TrackBoard.tsx +0 -496
- package/src/ui/components/board/ZoneMap.tsx +0 -448
- package/src/ui/components/board/hex-board-view.ts +0 -123
- package/src/ui/components/board/index.ts +0 -142
- package/src/ui/components/board/interaction-accessibility.ts +0 -21
- package/src/ui/components/board/target-layer.ts +0 -67
- package/src/ui/components/card-render-content.type-test.ts +0 -27
- package/src/ui/components/hand-layout-math.ts +0 -163
- package/src/ui/components/hand-pointer-engine.ts +0 -413
- package/src/ui/components/index.ts +0 -245
- package/src/ui/components.ts +0 -1
- package/src/ui/defaults/components.tsx +0 -106
- package/src/ui/defaults/index.ts +0 -8
- package/src/ui/defaults.ts +0 -1
- package/src/ui/errors/ValidationError.ts +0 -29
- package/src/ui/helpers/cards.ts +0 -19
- package/src/ui/helpers/track-board.ts +0 -211
- package/src/ui/hooks/useBoardTopology.ts +0 -316
- package/src/ui/hooks/useCards.ts +0 -10
- package/src/ui/hooks/useHandCardPointer.ts +0 -381
- package/src/ui/hooks/useHandLayout.ts +0 -378
- package/src/ui/hooks/useHandPresentation.ts +0 -121
- package/src/ui/hooks/useHexBoard.ts +0 -74
- package/src/ui/hooks/useHexGrid.ts +0 -185
- package/src/ui/hooks/useIsMobile.ts +0 -35
- package/src/ui/hooks/usePanZoom.ts +0 -278
- package/src/ui/hooks/useSquareBoard.ts +0 -124
- package/src/ui/hooks/useSquareGrid.ts +0 -328
- package/src/ui/index.ts +0 -98
- package/src/ui/internal/ui/alert.tsx +0 -51
- package/src/ui/internal/ui/button.tsx +0 -58
- package/src/ui/internal/ui/dialog.tsx +0 -134
- package/src/ui/internal/ui/input.tsx +0 -21
- package/src/ui/internal/ui/label.tsx +0 -21
- package/src/ui/internal/ui/select.tsx +0 -129
- package/src/ui/internal/ui/tooltip.tsx +0 -54
- package/src/ui/internal/ui/utils.ts +0 -5
- package/src/ui/plugin-styles.css +0 -250
- package/src/ui/primitives/dialog-lifecycle.ts +0 -58
- package/src/ui/primitives/dice.tsx +0 -79
- package/src/ui/primitives/primitive-props.tsx +0 -101
- package/src/ui/theme/ThemeProvider.tsx +0 -252
- package/src/ui/theme/board.ts +0 -61
- package/src/ui/theme/css-vars.ts +0 -105
- package/src/ui/theme/derive.ts +0 -240
- package/src/ui/theme/index.ts +0 -61
- package/src/ui/theme/presets/arcade.ts +0 -261
- package/src/ui/theme/presets/studio.ts +0 -261
- package/src/ui/theme/presets/tabletop.ts +0 -266
- package/src/ui/theme/tokens.ts +0 -392
- package/src/ui/types/hex-color.ts +0 -20
- package/src/ui/types/player-state.ts +0 -463
- package/src/ui/types/tiled-board.ts +0 -785
- package/src/ui/types/visual-state.ts +0 -137
- package/src/ui.ts +0 -1
- /package/dist/{chunk-NKCRKGR2.js.map → chunk-3RQEICD3.js.map} +0 -0
- /package/dist/{chunk-I46YJSOD.js.map → codegen.js.map} +0 -0
- /package/dist/{chunk-T52J5RMF.js.map → reducer-contract.js.map} +0 -0
- /package/dist/{generated → runtime}/runtime-api.js.map +0 -0
- /package/dist/ui/{types/player-state.js → player-state.js} +0 -0
- /package/dist/ui/{types/player-state.js.map → player-state.js.map} +0 -0
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import {
|
|
3
|
-
BROWSER_INTERACTION_ACTUATOR_KINDS,
|
|
4
|
-
BROWSER_INTERACTION_CANDIDATE_STATES,
|
|
5
|
-
BROWSER_INTERACTION_READINESS_VALUES,
|
|
6
|
-
DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_NAME,
|
|
7
|
-
DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_VERSION,
|
|
8
|
-
GAMEPLAY_BROWSER_INTERACTION_SURFACE,
|
|
9
|
-
} from "./constants.js";
|
|
10
|
-
|
|
11
|
-
const jsonValueSchema: z.ZodType<unknown> = z.lazy(() =>
|
|
12
|
-
z.union([
|
|
13
|
-
z.null(),
|
|
14
|
-
z.boolean(),
|
|
15
|
-
z.number().finite(),
|
|
16
|
-
z.string(),
|
|
17
|
-
z.array(jsonValueSchema),
|
|
18
|
-
z.record(z.string(), jsonValueSchema),
|
|
19
|
-
]),
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
export const browserInteractionEffectSchema = z
|
|
23
|
-
.object({
|
|
24
|
-
kind: z.string().min(1),
|
|
25
|
-
})
|
|
26
|
-
.catchall(jsonValueSchema);
|
|
27
|
-
|
|
28
|
-
export const browserInteractionEffectPatternSchema = z.union([
|
|
29
|
-
z.object({
|
|
30
|
-
kind: z.literal("exact"),
|
|
31
|
-
effect: browserInteractionEffectSchema,
|
|
32
|
-
}),
|
|
33
|
-
z.object({
|
|
34
|
-
kind: z.literal("match"),
|
|
35
|
-
effectKind: z.string().min(1),
|
|
36
|
-
fields: z.record(z.string(), jsonValueSchema).optional(),
|
|
37
|
-
scalar: z
|
|
38
|
-
.object({
|
|
39
|
-
field: z.string().min(1),
|
|
40
|
-
min: z.number().finite().optional(),
|
|
41
|
-
max: z.number().finite().optional(),
|
|
42
|
-
integer: z.boolean().optional(),
|
|
43
|
-
})
|
|
44
|
-
.optional(),
|
|
45
|
-
}),
|
|
46
|
-
]);
|
|
47
|
-
|
|
48
|
-
export const gameplaySemanticEffectSchema = z.union([
|
|
49
|
-
z.object({
|
|
50
|
-
kind: z.literal("setCandidate"),
|
|
51
|
-
inputKey: z.string(),
|
|
52
|
-
candidateValue: jsonValueSchema,
|
|
53
|
-
beforeSelected: z.boolean(),
|
|
54
|
-
afterSelected: z.boolean(),
|
|
55
|
-
}),
|
|
56
|
-
z.object({
|
|
57
|
-
kind: z.literal("adjustResource"),
|
|
58
|
-
inputKey: z.string(),
|
|
59
|
-
resourceKey: jsonValueSchema,
|
|
60
|
-
delta: z.union([z.literal(-1), z.literal(1)]),
|
|
61
|
-
}),
|
|
62
|
-
z.object({
|
|
63
|
-
kind: z.literal("setScalar"),
|
|
64
|
-
inputKey: z.string(),
|
|
65
|
-
value: z.number().finite(),
|
|
66
|
-
}),
|
|
67
|
-
z.object({
|
|
68
|
-
kind: z.literal("commit"),
|
|
69
|
-
}),
|
|
70
|
-
z.object({
|
|
71
|
-
kind: z.literal("invoke"),
|
|
72
|
-
}),
|
|
73
|
-
]);
|
|
74
|
-
|
|
75
|
-
export const browserInteractionDiagnosticSchema = z.object({
|
|
76
|
-
code: z.string(),
|
|
77
|
-
severity: z.enum(["error", "warning"]),
|
|
78
|
-
message: z.string(),
|
|
79
|
-
surface: z.string().optional(),
|
|
80
|
-
scopeId: z.string().optional(),
|
|
81
|
-
interactionKey: z.string().optional(),
|
|
82
|
-
intent: z.string().optional(),
|
|
83
|
-
actuatorId: z.string().optional(),
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
export const browserInteractionActuatorSchema = z.object({
|
|
87
|
-
actuatorId: z.string(),
|
|
88
|
-
intent: z.string(),
|
|
89
|
-
inputKey: z.string().optional(),
|
|
90
|
-
candidateValue: jsonValueSchema.optional(),
|
|
91
|
-
candidateValueKey: z.string().optional(),
|
|
92
|
-
candidateState: z.enum(BROWSER_INTERACTION_CANDIDATE_STATES).optional(),
|
|
93
|
-
enabled: z.boolean(),
|
|
94
|
-
actuatorKind: z.enum(BROWSER_INTERACTION_ACTUATOR_KINDS),
|
|
95
|
-
semanticEffects: z.array(browserInteractionEffectSchema),
|
|
96
|
-
acceptedEffectPatterns: z.array(browserInteractionEffectPatternSchema),
|
|
97
|
-
preparationPatterns: z.array(browserInteractionEffectPatternSchema),
|
|
98
|
-
prepares: z
|
|
99
|
-
.object({
|
|
100
|
-
intent: z.string(),
|
|
101
|
-
inputKey: z.string().optional(),
|
|
102
|
-
candidateValue: jsonValueSchema.optional(),
|
|
103
|
-
candidateValueKey: z.string().optional(),
|
|
104
|
-
actuatorKind: z.enum(BROWSER_INTERACTION_ACTUATOR_KINDS).optional(),
|
|
105
|
-
})
|
|
106
|
-
.optional(),
|
|
107
|
-
diagnostics: z.array(browserInteractionDiagnosticSchema),
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
export const browserGameplayInteractionSchema = z.object({
|
|
111
|
-
interactionKey: z.string(),
|
|
112
|
-
interactionId: z.string(),
|
|
113
|
-
descriptorDigest: z.string().optional(),
|
|
114
|
-
draftDigest: z.string().optional(),
|
|
115
|
-
readiness: z.enum(BROWSER_INTERACTION_READINESS_VALUES),
|
|
116
|
-
actuators: z.array(browserInteractionActuatorSchema),
|
|
117
|
-
diagnostics: z.array(browserInteractionDiagnosticSchema),
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
export const browserGameplaySurfaceSnapshotSchema = z.object({
|
|
121
|
-
surface: z.literal(GAMEPLAY_BROWSER_INTERACTION_SURFACE),
|
|
122
|
-
scopeId: z.string(),
|
|
123
|
-
interactions: z.array(browserGameplayInteractionSchema),
|
|
124
|
-
diagnostics: z.array(browserInteractionDiagnosticSchema),
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
export const browserSemanticSurfaceSnapshotSchema = z.object({
|
|
128
|
-
surface: z.string(),
|
|
129
|
-
scopeId: z.string(),
|
|
130
|
-
interactions: z.array(browserGameplayInteractionSchema),
|
|
131
|
-
diagnostics: z.array(browserInteractionDiagnosticSchema),
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
export const browserUnknownSurfaceSnapshotSchema = z.object({
|
|
135
|
-
surface: z.string(),
|
|
136
|
-
scopeId: z.string(),
|
|
137
|
-
diagnostics: z.array(browserInteractionDiagnosticSchema),
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
export const browserInteractionSnapshotSchema = z.object({
|
|
141
|
-
protocol: z.object({
|
|
142
|
-
name: z.literal(DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_NAME),
|
|
143
|
-
version: z.literal(DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_VERSION),
|
|
144
|
-
}),
|
|
145
|
-
surfaces: z.array(
|
|
146
|
-
z.union([
|
|
147
|
-
browserSemanticSurfaceSnapshotSchema,
|
|
148
|
-
browserUnknownSurfaceSnapshotSchema,
|
|
149
|
-
]),
|
|
150
|
-
),
|
|
151
|
-
diagnostics: z.array(browserInteractionDiagnosticSchema),
|
|
152
|
-
});
|
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
BROWSER_INTERACTION_ACTUATOR_KINDS,
|
|
3
|
-
BROWSER_INTERACTION_CANDIDATE_STATES,
|
|
4
|
-
BROWSER_INTERACTION_READINESS_VALUES,
|
|
5
|
-
BROWSER_INTERACTION_RECORD_ROLES,
|
|
6
|
-
GAMEPLAY_BROWSER_INTERACTION_EFFECT_KINDS,
|
|
7
|
-
GAMEPLAY_BROWSER_INTERACTION_INTENTS,
|
|
8
|
-
GAMEPLAY_BROWSER_INTERACTION_SURFACE,
|
|
9
|
-
} from "./constants.js";
|
|
10
|
-
import type { CanonicalBrowserInteractionValue } from "./canonical.js";
|
|
11
|
-
|
|
12
|
-
export type BrowserInteractionSurface = string;
|
|
13
|
-
export type BrowserInteractionIntent = string;
|
|
14
|
-
export type BrowserInteractionRole =
|
|
15
|
-
(typeof BROWSER_INTERACTION_RECORD_ROLES)[number];
|
|
16
|
-
export type GameplayBrowserInteractionSurface =
|
|
17
|
-
typeof GAMEPLAY_BROWSER_INTERACTION_SURFACE;
|
|
18
|
-
export type GameplayBrowserInteractionIntent =
|
|
19
|
-
(typeof GAMEPLAY_BROWSER_INTERACTION_INTENTS)[number];
|
|
20
|
-
export type GameplayBrowserInteractionEffectKind =
|
|
21
|
-
(typeof GAMEPLAY_BROWSER_INTERACTION_EFFECT_KINDS)[number];
|
|
22
|
-
export type BrowserInteractionReadiness =
|
|
23
|
-
(typeof BROWSER_INTERACTION_READINESS_VALUES)[number];
|
|
24
|
-
export type BrowserInteractionCandidateState =
|
|
25
|
-
(typeof BROWSER_INTERACTION_CANDIDATE_STATES)[number];
|
|
26
|
-
export type BrowserInteractionActuatorKind =
|
|
27
|
-
(typeof BROWSER_INTERACTION_ACTUATOR_KINDS)[number];
|
|
28
|
-
|
|
29
|
-
export interface BrowserInteractionProtocolIdentity {
|
|
30
|
-
readonly name: "dreamboard-browser-interaction";
|
|
31
|
-
readonly version: "2.0.0";
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export type BrowserInteractionSurfaceEffect = {
|
|
35
|
-
readonly kind: string;
|
|
36
|
-
readonly [key: string]: CanonicalBrowserInteractionValue;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export interface BrowserInteractionScalarPattern {
|
|
40
|
-
readonly field: string;
|
|
41
|
-
readonly min?: number;
|
|
42
|
-
readonly max?: number;
|
|
43
|
-
readonly integer?: boolean;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export type BrowserInteractionEffectPattern<
|
|
47
|
-
Effect extends BrowserInteractionSurfaceEffect =
|
|
48
|
-
BrowserInteractionSurfaceEffect,
|
|
49
|
-
> =
|
|
50
|
-
| {
|
|
51
|
-
readonly kind: "exact";
|
|
52
|
-
readonly effect: Effect;
|
|
53
|
-
}
|
|
54
|
-
| {
|
|
55
|
-
readonly kind: "match";
|
|
56
|
-
readonly effectKind: Effect["kind"] & string;
|
|
57
|
-
readonly fields?: Readonly<
|
|
58
|
-
Record<string, CanonicalBrowserInteractionValue>
|
|
59
|
-
>;
|
|
60
|
-
readonly scalar?: BrowserInteractionScalarPattern;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
export type GameplaySemanticEffect =
|
|
64
|
-
| {
|
|
65
|
-
readonly kind: "setCandidate";
|
|
66
|
-
readonly inputKey: string;
|
|
67
|
-
readonly candidateValue: CanonicalBrowserInteractionValue;
|
|
68
|
-
readonly beforeSelected: boolean;
|
|
69
|
-
readonly afterSelected: boolean;
|
|
70
|
-
}
|
|
71
|
-
| {
|
|
72
|
-
readonly kind: "adjustResource";
|
|
73
|
-
readonly inputKey: string;
|
|
74
|
-
readonly resourceKey: CanonicalBrowserInteractionValue;
|
|
75
|
-
readonly delta: -1 | 1;
|
|
76
|
-
}
|
|
77
|
-
| {
|
|
78
|
-
readonly kind: "setScalar";
|
|
79
|
-
readonly inputKey: string;
|
|
80
|
-
readonly value: number;
|
|
81
|
-
}
|
|
82
|
-
| {
|
|
83
|
-
readonly kind: "commit";
|
|
84
|
-
}
|
|
85
|
-
| {
|
|
86
|
-
readonly kind: "invoke";
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
export type GameplaySemanticEffectPattern =
|
|
90
|
-
BrowserInteractionEffectPattern<GameplaySemanticEffect>;
|
|
91
|
-
|
|
92
|
-
export interface BrowserInteractionDiagnostic {
|
|
93
|
-
readonly code:
|
|
94
|
-
| "ambiguous-actuator"
|
|
95
|
-
| "ambiguous-effect-match"
|
|
96
|
-
| "ambiguous-preparation-pattern"
|
|
97
|
-
| "disabled-effect-actuator"
|
|
98
|
-
| "duplicate-accepted-effect-pattern-match"
|
|
99
|
-
| "duplicate-enabled-actuator"
|
|
100
|
-
| "duplicate-enabled-effect-actuator"
|
|
101
|
-
| "effect-actuator-kind-incompatibility"
|
|
102
|
-
| "effect-intent-incompatibility"
|
|
103
|
-
| "invalid-candidate"
|
|
104
|
-
| "invalid-effect-payload"
|
|
105
|
-
| "invalid-effect-pattern"
|
|
106
|
-
| "invalid-protocol"
|
|
107
|
-
| "invalid-record"
|
|
108
|
-
| "invalid-scalar-argument"
|
|
109
|
-
| "missing-effect"
|
|
110
|
-
| "orphan-actuator"
|
|
111
|
-
| "preparation-cycle"
|
|
112
|
-
| "surface-intent-collision"
|
|
113
|
-
| "unknown-surface-effect"
|
|
114
|
-
| "unknown-intent"
|
|
115
|
-
| "unknown-surface"
|
|
116
|
-
| "unavailable-actuator";
|
|
117
|
-
readonly severity: "error" | "warning";
|
|
118
|
-
readonly message: string;
|
|
119
|
-
readonly surface?: BrowserInteractionSurface;
|
|
120
|
-
readonly scopeId?: string;
|
|
121
|
-
readonly interactionKey?: string;
|
|
122
|
-
readonly intent?: BrowserInteractionIntent;
|
|
123
|
-
readonly actuatorId?: string;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
export interface BrowserInteractionRawRecord {
|
|
127
|
-
readonly attributes: Readonly<
|
|
128
|
-
Record<string, string | boolean | null | undefined>
|
|
129
|
-
>;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export interface BrowserInteractionPreparationTarget {
|
|
133
|
-
readonly intent: BrowserInteractionIntent;
|
|
134
|
-
readonly inputKey?: string;
|
|
135
|
-
readonly candidateValue?: CanonicalBrowserInteractionValue;
|
|
136
|
-
readonly candidateValueKey?: string;
|
|
137
|
-
readonly actuatorKind?: BrowserInteractionActuatorKind;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
export interface BrowserInteractionActuator {
|
|
141
|
-
readonly actuatorId: string;
|
|
142
|
-
readonly intent: BrowserInteractionIntent;
|
|
143
|
-
readonly descriptorDigest?: string;
|
|
144
|
-
readonly draftDigest?: string;
|
|
145
|
-
readonly inputKey?: string;
|
|
146
|
-
readonly candidateValue?: CanonicalBrowserInteractionValue;
|
|
147
|
-
readonly candidateValueKey?: string;
|
|
148
|
-
readonly candidateState?: BrowserInteractionCandidateState;
|
|
149
|
-
readonly enabled: boolean;
|
|
150
|
-
readonly actuatorKind: BrowserInteractionActuatorKind;
|
|
151
|
-
readonly semanticEffects: readonly BrowserInteractionSurfaceEffect[];
|
|
152
|
-
readonly acceptedEffectPatterns: readonly BrowserInteractionEffectPattern[];
|
|
153
|
-
readonly preparationPatterns: readonly BrowserInteractionEffectPattern[];
|
|
154
|
-
readonly prepares?: BrowserInteractionPreparationTarget;
|
|
155
|
-
readonly diagnostics: readonly BrowserInteractionDiagnostic[];
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export interface BrowserInteractionEntity {
|
|
159
|
-
readonly interactionKey: string;
|
|
160
|
-
readonly interactionId: string;
|
|
161
|
-
readonly descriptorDigest?: string;
|
|
162
|
-
readonly draftDigest?: string;
|
|
163
|
-
readonly readiness: BrowserInteractionReadiness;
|
|
164
|
-
readonly actuators: readonly BrowserInteractionActuator[];
|
|
165
|
-
readonly diagnostics: readonly BrowserInteractionDiagnostic[];
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export type BrowserGameplayInteraction = BrowserInteractionEntity;
|
|
169
|
-
|
|
170
|
-
export interface BrowserInteractionSemanticSurfaceSnapshot<
|
|
171
|
-
Surface extends BrowserInteractionSurface = BrowserInteractionSurface,
|
|
172
|
-
> {
|
|
173
|
-
readonly surface: Surface;
|
|
174
|
-
readonly scopeId: string;
|
|
175
|
-
readonly interactions: readonly BrowserInteractionEntity[];
|
|
176
|
-
readonly diagnostics: readonly BrowserInteractionDiagnostic[];
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
export type BrowserSemanticSurfaceSnapshot<
|
|
180
|
-
Surface extends BrowserInteractionSurface = BrowserInteractionSurface,
|
|
181
|
-
> = BrowserInteractionSemanticSurfaceSnapshot<Surface>;
|
|
182
|
-
|
|
183
|
-
export interface BrowserGameplaySurfaceSnapshot {
|
|
184
|
-
readonly surface: GameplayBrowserInteractionSurface;
|
|
185
|
-
readonly scopeId: string;
|
|
186
|
-
readonly interactions: readonly BrowserGameplayInteraction[];
|
|
187
|
-
readonly diagnostics: readonly BrowserInteractionDiagnostic[];
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
export interface BrowserInteractionUnknownSurfaceSnapshot {
|
|
191
|
-
readonly surface: BrowserInteractionSurface;
|
|
192
|
-
readonly scopeId: string;
|
|
193
|
-
readonly interactions?: never;
|
|
194
|
-
readonly diagnostics: readonly BrowserInteractionDiagnostic[];
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
export type BrowserInteractionSurfaceSnapshot =
|
|
198
|
-
| BrowserGameplaySurfaceSnapshot
|
|
199
|
-
| BrowserInteractionSemanticSurfaceSnapshot
|
|
200
|
-
| BrowserInteractionUnknownSurfaceSnapshot;
|
|
201
|
-
|
|
202
|
-
export interface BrowserInteractionSnapshot {
|
|
203
|
-
readonly protocol: BrowserInteractionProtocolIdentity;
|
|
204
|
-
readonly surfaces: readonly BrowserInteractionSurfaceSnapshot[];
|
|
205
|
-
readonly diagnostics: readonly BrowserInteractionDiagnostic[];
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
export interface BrowserInteractionSurfaceDefinition<
|
|
209
|
-
Surface extends BrowserInteractionSurface = BrowserInteractionSurface,
|
|
210
|
-
Intent extends BrowserInteractionIntent = BrowserInteractionIntent,
|
|
211
|
-
EffectKind extends string = string,
|
|
212
|
-
> {
|
|
213
|
-
readonly surface: Surface;
|
|
214
|
-
readonly intents: readonly Intent[];
|
|
215
|
-
readonly effectKinds?: readonly EffectKind[];
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
export interface BrowserInteractionRegistry {
|
|
219
|
-
readonly surfaces: ReadonlyMap<
|
|
220
|
-
BrowserInteractionSurface,
|
|
221
|
-
BrowserInteractionSurfaceDefinition
|
|
222
|
-
>;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
export interface BrowserInteractionIntentRequest {
|
|
226
|
-
readonly surface: BrowserInteractionSurface;
|
|
227
|
-
readonly scopeId?: string;
|
|
228
|
-
readonly interactionKey?: string;
|
|
229
|
-
readonly interactionId?: string;
|
|
230
|
-
readonly intent: BrowserInteractionIntent;
|
|
231
|
-
readonly inputKey?: string;
|
|
232
|
-
readonly candidateValue?: unknown;
|
|
233
|
-
readonly candidateValueKey?: string;
|
|
234
|
-
readonly actuatorKind?: BrowserInteractionActuatorKind;
|
|
235
|
-
readonly allowDisabled?: boolean;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
export interface BrowserInteractionEffectRequest<
|
|
239
|
-
Effect extends BrowserInteractionSurfaceEffect =
|
|
240
|
-
BrowserInteractionSurfaceEffect,
|
|
241
|
-
> {
|
|
242
|
-
readonly surface: BrowserInteractionSurface;
|
|
243
|
-
readonly scopeId?: string;
|
|
244
|
-
readonly interactionKey?: string;
|
|
245
|
-
readonly interactionId?: string;
|
|
246
|
-
readonly effect: Effect;
|
|
247
|
-
readonly allowDisabled?: boolean;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
export type GameplayBrowserInteractionEffectRequest =
|
|
251
|
-
BrowserInteractionEffectRequest<GameplaySemanticEffect>;
|
|
252
|
-
|
|
253
|
-
export interface BrowserInteractionResolutionSuccess {
|
|
254
|
-
readonly ok: true;
|
|
255
|
-
readonly actuator: BrowserInteractionActuator;
|
|
256
|
-
readonly surface: BrowserInteractionSurface;
|
|
257
|
-
readonly scopeId: string;
|
|
258
|
-
readonly interactionKey: string;
|
|
259
|
-
readonly diagnostics: readonly BrowserInteractionDiagnostic[];
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
export interface BrowserInteractionResolutionFailure {
|
|
263
|
-
readonly ok: false;
|
|
264
|
-
readonly code:
|
|
265
|
-
| "ambiguous"
|
|
266
|
-
| "invalid-snapshot"
|
|
267
|
-
| "not-found"
|
|
268
|
-
| "preparation-required"
|
|
269
|
-
| "unavailable";
|
|
270
|
-
readonly diagnostics: readonly BrowserInteractionDiagnostic[];
|
|
271
|
-
readonly preparation?: readonly BrowserInteractionActuator[];
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
export type BrowserInteractionResolution =
|
|
275
|
-
| BrowserInteractionResolutionSuccess
|
|
276
|
-
| BrowserInteractionResolutionFailure;
|
|
277
|
-
|
|
278
|
-
export interface BrowserInteractionEffectResolutionSuccess {
|
|
279
|
-
readonly ok: true;
|
|
280
|
-
readonly actuator: BrowserInteractionActuator;
|
|
281
|
-
readonly surface: BrowserInteractionSurface;
|
|
282
|
-
readonly scopeId: string;
|
|
283
|
-
readonly interactionKey: string;
|
|
284
|
-
readonly match: "exact" | "accepted-pattern";
|
|
285
|
-
readonly effect: BrowserInteractionSurfaceEffect;
|
|
286
|
-
readonly diagnostics: readonly BrowserInteractionDiagnostic[];
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
export interface BrowserInteractionEffectResolutionFailure {
|
|
290
|
-
readonly ok: false;
|
|
291
|
-
readonly code:
|
|
292
|
-
| "ambiguous"
|
|
293
|
-
| "invalid-effect"
|
|
294
|
-
| "invalid-snapshot"
|
|
295
|
-
| "not-found"
|
|
296
|
-
| "preparation-required"
|
|
297
|
-
| "unavailable";
|
|
298
|
-
readonly diagnostics: readonly BrowserInteractionDiagnostic[];
|
|
299
|
-
readonly preparation?: readonly BrowserInteractionActuator[];
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
export type BrowserInteractionEffectResolution =
|
|
303
|
-
| BrowserInteractionEffectResolutionSuccess
|
|
304
|
-
| BrowserInteractionEffectResolutionFailure;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./browser-interaction/index.js";
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// @generated by packages/reducer-contract/scripts/generate-ts.mjs
|
|
2
|
-
// DO NOT EDIT BY HAND. Edit schema/reducer-runtime.schema.json and rerun `pnpm generate`.
|
|
3
|
-
|
|
4
|
-
/* eslint-disable */
|
|
5
|
-
import type * as Wire from "./wire";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Typed effect constructors. Authors MUST go through these; hand-constructing
|
|
9
|
-
* Wire.Effect objects is banned by convention because it's how wire drift
|
|
10
|
-
* re-enters the codebase.
|
|
11
|
-
*
|
|
12
|
-
* The `effectId` is minted by the runtime (see createEffectIdMinter below),
|
|
13
|
-
* not by the author. Each builder returns a `PendingEffect` that carries
|
|
14
|
-
* the optional continuation; the reducer bundle's accept materializer splits
|
|
15
|
-
* pending effects into the wire's `effects[]` + `continuations` map.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
export type PendingEffect = Wire.Effect & {
|
|
19
|
-
readonly __continuation?: Wire.ContinuationToken;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export type EffectIdMinter = () => Wire.EffectId;
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Produces sequential, deterministic effect ids scoped to a single accept
|
|
26
|
-
* payload: "ef0", "ef1", ... . Uniqueness only needs to be local to the
|
|
27
|
-
* payload because the host consumes and discards them per dispatch.
|
|
28
|
-
*/
|
|
29
|
-
export function createEffectIdMinter(): EffectIdMinter {
|
|
30
|
-
let i = 0;
|
|
31
|
-
return () => `ef${i++}` as Wire.EffectId;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export type EffectBuilders = {
|
|
35
|
-
transition(args: { to: string }, continuation?: Wire.ContinuationToken): PendingEffect;
|
|
36
|
-
rollDie(args: { dieId: string }, continuation?: Wire.ContinuationToken): PendingEffect;
|
|
37
|
-
shuffleSharedZone(args: { zoneId: string }, continuation?: Wire.ContinuationToken): PendingEffect;
|
|
38
|
-
shufflePlayerZone(args: { zoneId: string; playerId: string }, continuation?: Wire.ContinuationToken): PendingEffect;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export function createEffectBuilders(mint: EffectIdMinter): EffectBuilders {
|
|
42
|
-
return {
|
|
43
|
-
transition(args, continuation) {
|
|
44
|
-
const effect = { effectId: mint(), type: "transition" as const, to: args.to };
|
|
45
|
-
return continuation === undefined
|
|
46
|
-
? (effect as PendingEffect)
|
|
47
|
-
: Object.assign(effect, { __continuation: continuation });
|
|
48
|
-
},
|
|
49
|
-
rollDie(args, continuation) {
|
|
50
|
-
const effect = { effectId: mint(), type: "rollDie" as const, dieId: args.dieId };
|
|
51
|
-
return continuation === undefined
|
|
52
|
-
? (effect as PendingEffect)
|
|
53
|
-
: Object.assign(effect, { __continuation: continuation });
|
|
54
|
-
},
|
|
55
|
-
shuffleSharedZone(args, continuation) {
|
|
56
|
-
const effect = { effectId: mint(), type: "shuffleSharedZone" as const, zoneId: args.zoneId };
|
|
57
|
-
return continuation === undefined
|
|
58
|
-
? (effect as PendingEffect)
|
|
59
|
-
: Object.assign(effect, { __continuation: continuation });
|
|
60
|
-
},
|
|
61
|
-
shufflePlayerZone(args, continuation) {
|
|
62
|
-
const effect = { effectId: mint(), type: "shufflePlayerZone" as const, zoneId: args.zoneId, playerId: args.playerId };
|
|
63
|
-
return continuation === undefined
|
|
64
|
-
? (effect as PendingEffect)
|
|
65
|
-
: Object.assign(effect, { __continuation: continuation });
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Takes a list of PendingEffects and splits them into the canonical wire
|
|
72
|
-
* shape: `effects[]` (stripped of `__continuation`) + `continuations` map
|
|
73
|
-
* keyed by effectId. Use at the boundary where reduce/dispatch results leave
|
|
74
|
-
* author code and enter the wire.
|
|
75
|
-
*/
|
|
76
|
-
export function materializeAccept(pending: ReadonlyArray<PendingEffect>): {
|
|
77
|
-
effects: Wire.Effect[];
|
|
78
|
-
continuations: Wire.ContinuationMap;
|
|
79
|
-
} {
|
|
80
|
-
const effects: Wire.Effect[] = [];
|
|
81
|
-
const continuations: Wire.ContinuationMap = {};
|
|
82
|
-
for (const pe of pending) {
|
|
83
|
-
const { __continuation, ...effect } = pe as PendingEffect & { __continuation?: Wire.ContinuationToken };
|
|
84
|
-
effects.push(effect as Wire.Effect);
|
|
85
|
-
if (__continuation !== undefined) {
|
|
86
|
-
continuations[(effect as Wire.Effect).effectId] = __continuation;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return { effects, continuations };
|
|
90
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
// @generated by packages/reducer-contract/scripts/generate-ts.mjs
|
|
2
|
-
// DO NOT EDIT BY HAND. Edit schema/reducer-runtime.schema.json and rerun `pnpm generate`.
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* The wire-protocol version this package implements. Bumped in lockstep with
|
|
6
|
-
* any breaking change to schema/reducer-runtime.schema.json. At bundle load
|
|
7
|
-
* time hosts refuse bundles whose major version differs.
|
|
8
|
-
*/
|
|
9
|
-
export const REDUCER_CONTRACT_VERSION = "0.2.0" as const;
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
// @generated by packages/reducer-contract/scripts/generate-ts.mjs
|
|
2
|
-
// DO NOT EDIT BY HAND. Edit schema/reducer-runtime.schema.json and rerun `pnpm generate`.
|
|
3
|
-
|
|
4
|
-
/* eslint-disable */
|
|
5
|
-
|
|
6
|
-
export type ReducerContractVersion = string;
|
|
7
|
-
|
|
8
|
-
export type EffectId = string;
|
|
9
|
-
|
|
10
|
-
export type ContinuationToken = { "id": string; "data": JsonValue };
|
|
11
|
-
|
|
12
|
-
export type ContinuationMap = Record<string, ContinuationToken>;
|
|
13
|
-
|
|
14
|
-
export type JsonValue = string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue };
|
|
15
|
-
|
|
16
|
-
export type ReducerSetupSelection = { "profileId": string; "optionValues": Record<string, string | null> };
|
|
17
|
-
|
|
18
|
-
export type RngState = { "seed": number | null; "cursor": number; "trace": Array<string> };
|
|
19
|
-
|
|
20
|
-
export type ReducerFlowState = { "currentPhase": string; "turn": number; "round": number; "activePlayers": Array<string> };
|
|
21
|
-
|
|
22
|
-
export type RuntimeSimultaneousSubmission = { "interactionId": string; "params": JsonValue };
|
|
23
|
-
|
|
24
|
-
export type RuntimeSimultaneousCurrent = { "phaseName": string; "actors": Array<string>; "submissions": Record<string, RuntimeSimultaneousSubmission> };
|
|
25
|
-
|
|
26
|
-
export type RuntimeSimultaneousState = { "current": RuntimeSimultaneousCurrent | null };
|
|
27
|
-
|
|
28
|
-
export type TransitionRecord = { "from": string; "to": string };
|
|
29
|
-
|
|
30
|
-
export type ReducerRuntimeState = { "rng": RngState; "setup": ReducerSetupSelection | null; "simultaneous": RuntimeSimultaneousState; "lastTransition": TransitionRecord | null };
|
|
31
|
-
|
|
32
|
-
export type ReducerDomainState = { "table": JsonValue; "publicState": JsonValue; "privateState": Record<string, JsonValue>; "hiddenState": JsonValue; "flow": ReducerFlowState; "phase": JsonValue };
|
|
33
|
-
|
|
34
|
-
export type ReducerSessionState = { "domain": ReducerDomainState; "runtime": ReducerRuntimeState };
|
|
35
|
-
|
|
36
|
-
export type GameInput = GameInputInteraction;
|
|
37
|
-
|
|
38
|
-
export type GameInputInteraction = { "kind": "interaction"; "playerId": string; "interactionId": string; "params": JsonValue };
|
|
39
|
-
|
|
40
|
-
export type Effect = EffectTransition | EffectRollDie | EffectShuffleSharedZone | EffectShufflePlayerZone;
|
|
41
|
-
|
|
42
|
-
export type EffectTransition = { "effectId": EffectId; "type": "transition"; "to": string };
|
|
43
|
-
|
|
44
|
-
export type EffectRollDie = { "effectId": EffectId; "type": "rollDie"; "dieId": string };
|
|
45
|
-
|
|
46
|
-
export type EffectShuffleSharedZone = { "effectId": EffectId; "type": "shuffleSharedZone"; "zoneId": string };
|
|
47
|
-
|
|
48
|
-
export type EffectShufflePlayerZone = { "effectId": EffectId; "type": "shufflePlayerZone"; "zoneId": string; "playerId": string };
|
|
49
|
-
|
|
50
|
-
export type ReducerInputValidationResult = { "valid": boolean; "errorCode"?: string; "message"?: string };
|
|
51
|
-
|
|
52
|
-
export type InitializeRequest = { "table": JsonValue; "playerIds": Array<string>; "rngSeed"?: number | null; "setup"?: ReducerSetupSelection | null };
|
|
53
|
-
|
|
54
|
-
export type InitializePhaseRequest = { "state": ReducerSessionState; "to": string };
|
|
55
|
-
|
|
56
|
-
export type ValidateInputRequest = { "state": ReducerSessionState; "input": GameInput };
|
|
57
|
-
|
|
58
|
-
export type ReduceRequest = { "state": ReducerSessionState; "input": GameInput };
|
|
59
|
-
|
|
60
|
-
export type DispatchRequest = { "state": ReducerSessionState; "input": GameInput };
|
|
61
|
-
|
|
62
|
-
export type ReduceResult = ReduceResultReject | ReduceResultAccept;
|
|
63
|
-
|
|
64
|
-
export type ReduceResultReject = { "kind": "reject"; "errorCode": string; "message"?: string };
|
|
65
|
-
|
|
66
|
-
export type ReduceResultAccept = { "kind": "accept"; "state": ReducerSessionState; "effects": Array<Effect>; "continuations": ContinuationMap };
|
|
67
|
-
|
|
68
|
-
export type DispatchTrace = DispatchTraceAcceptedClientInput | DispatchTraceAppliedEffect | DispatchTraceRngConsumption;
|
|
69
|
-
|
|
70
|
-
export type DispatchTraceAcceptedClientInput = { "kind": "acceptedClientInput"; "input": GameInput };
|
|
71
|
-
|
|
72
|
-
export type DispatchTraceAppliedEffect = { "kind": "appliedEffect"; "effect": Effect; "continuation"?: ContinuationToken };
|
|
73
|
-
|
|
74
|
-
export type DispatchTraceRngConsumption = { "kind": "rngConsumption"; "operation": string; "traceEntry": string };
|
|
75
|
-
|
|
76
|
-
export type DispatchResult = DispatchResultReject | DispatchResultAccept;
|
|
77
|
-
|
|
78
|
-
export type DispatchResultReject = { "kind": "reject"; "errorCode": string; "message"?: string };
|
|
79
|
-
|
|
80
|
-
export type DispatchResultAccept = { "kind": "accept"; "state": ReducerSessionState; "trace": Array<DispatchTrace> };
|
|
81
|
-
|
|
82
|
-
export type ReducerRuntimeLogEntry = ReducerRuntimeLogEntryAcceptedClientInput | ReducerRuntimeLogEntryAppliedEffect | ReducerRuntimeLogEntryRngConsumption | ReducerRuntimeLogEntryStateCommit;
|
|
83
|
-
|
|
84
|
-
export type ReducerRuntimeLogEntryAcceptedClientInput = { "kind": "acceptedClientInput"; "version": number; "input": GameInput };
|
|
85
|
-
|
|
86
|
-
export type ReducerRuntimeLogEntryAppliedEffect = { "kind": "appliedEffect"; "version": number; "effect": Effect; "continuation": ContinuationToken | null };
|
|
87
|
-
|
|
88
|
-
export type ReducerRuntimeLogEntryRngConsumption = { "kind": "rngConsumption"; "version": number; "operation": string; "traceEntry": string };
|
|
89
|
-
|
|
90
|
-
export type ReducerRuntimeLogEntryStateCommit = { "kind": "stateCommit"; "version": number; "state": ReducerSessionState };
|
|
91
|
-
|
|
92
|
-
export type SeatProjection = { "view"?: JsonValue; "availableInteractionRefs"?: JsonValue; "zones"?: JsonValue };
|
|
93
|
-
|
|
94
|
-
export type SimultaneousPhaseProjection = { "phaseName": string; "interactionId": string; "actorIds": Array<string>; "sealedPlayerIds": Array<string>; "pendingPlayerIds": Array<string> };
|
|
95
|
-
|
|
96
|
-
export type SeatProjectionBundle = { "currentStage"?: string | null; "stageSeats"?: Array<string>; "simultaneousPhase"?: SimultaneousPhaseProjection | null; "interactionsByRef"?: JsonValue; "seats": Record<string, SeatProjection> };
|
|
97
|
-
|
|
98
|
-
export type ProjectSeatsDynamicRequest = { "state": ReducerSessionState; "playerIds": Array<string>; "viewId"?: string; "projectionMode"?: "full" | "actionsOnly" | null };
|
|
99
|
-
|
|
100
|
-
export type BoardStaticProjection = { "view": JsonValue; "hash": string; "manifestVersion": string };
|