@hatiolab/things-scene 10.0.0-beta.11 → 10.0.0-beta.111
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/CHANGELOG.md +77 -0
- package/dist-types/animation/animate.d.ts.map +1 -1
- package/dist-types/animation/animations/animation.d.ts +5 -3
- package/dist-types/animation/animations/animation.d.ts.map +1 -1
- package/dist-types/animation/animations/heartbeat.d.ts +0 -7
- package/dist-types/animation/animations/heartbeat.d.ts.map +1 -1
- package/dist-types/animation/animations/waypoint.d.ts +45 -4
- package/dist-types/animation/animations/waypoint.d.ts.map +1 -1
- package/dist-types/animation/interfaces.d.ts +1 -1
- package/dist-types/animation/interfaces.d.ts.map +1 -1
- package/dist-types/clock/frame-clock.d.ts +119 -0
- package/dist-types/clock/frame-clock.d.ts.map +1 -0
- package/dist-types/clock/index.d.ts +3 -0
- package/dist-types/clock/index.d.ts.map +1 -0
- package/dist-types/command/command-migrate.d.ts.map +1 -1
- package/dist-types/command/snapshot-commander.d.ts.map +1 -1
- package/dist-types/components/audio.d.ts +7 -3
- package/dist-types/components/audio.d.ts.map +1 -1
- package/dist-types/components/component-data.d.ts +24 -0
- package/dist-types/components/component-data.d.ts.map +1 -1
- package/dist-types/components/component-geometry.d.ts.map +1 -1
- package/dist-types/components/component.d.ts +14 -4
- package/dist-types/components/component.d.ts.map +1 -1
- package/dist-types/components/container-abstract.d.ts +48 -7
- package/dist-types/components/container-abstract.d.ts.map +1 -1
- package/dist-types/components/container.d.ts +6 -2
- package/dist-types/components/container.d.ts.map +1 -1
- package/dist-types/components/data/data.d.ts.map +1 -1
- package/dist-types/components/drawer/fill.d.ts.map +1 -1
- package/dist-types/components/drawer/stroke.d.ts.map +1 -1
- package/dist-types/components/ellipse.d.ts +7 -3
- package/dist-types/components/ellipse.d.ts.map +1 -1
- package/dist-types/components/generic-placeholders.d.ts +291 -0
- package/dist-types/components/generic-placeholders.d.ts.map +1 -0
- package/dist-types/components/geometry/snap-guide.d.ts +45 -0
- package/dist-types/components/geometry/snap-guide.d.ts.map +1 -0
- package/dist-types/components/geometry/transcoord.d.ts.map +1 -1
- package/dist-types/components/global-ref.d.ts.map +1 -1
- package/dist-types/components/group.d.ts +1 -0
- package/dist-types/components/group.d.ts.map +1 -1
- package/dist-types/components/html/shadow.d.ts +33 -1
- package/dist-types/components/html/shadow.d.ts.map +1 -1
- package/dist-types/components/html-overlay-container.d.ts +6 -2
- package/dist-types/components/html-overlay-container.d.ts.map +1 -1
- package/dist-types/components/html-overlay-element.d.ts +13 -5
- package/dist-types/components/html-overlay-element.d.ts.map +1 -1
- package/dist-types/components/image-view.d.ts +7 -3
- package/dist-types/components/image-view.d.ts.map +1 -1
- package/dist-types/components/index.d.ts +7 -0
- package/dist-types/components/index.d.ts.map +1 -1
- package/dist-types/components/info-window.d.ts +7 -3
- package/dist-types/components/info-window.d.ts.map +1 -1
- package/dist-types/components/line.d.ts +2 -1
- package/dist-types/components/line.d.ts.map +1 -1
- package/dist-types/components/local-ref.d.ts +7 -3
- package/dist-types/components/local-ref.d.ts.map +1 -1
- package/dist-types/components/mixins/connectable.d.ts +7 -3
- package/dist-types/components/mixins/connectable.d.ts.map +1 -1
- package/dist-types/components/mixins/data-source.d.ts +7 -3
- package/dist-types/components/mixins/data-source.d.ts.map +1 -1
- package/dist-types/components/mixins/gltf-component.d.ts +280 -0
- package/dist-types/components/mixins/gltf-component.d.ts.map +1 -0
- package/dist-types/components/mixins/html-element.d.ts +6 -2
- package/dist-types/components/mixins/html-element.d.ts.map +1 -1
- package/dist-types/components/mixins/move-handle.d.ts +7 -3
- package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
- package/dist-types/components/mixins/rect-path.d.ts +7 -3
- package/dist-types/components/mixins/rect-path.d.ts.map +1 -1
- package/dist-types/components/mixins/three-d-only.d.ts +247 -0
- package/dist-types/components/mixins/three-d-only.d.ts.map +1 -0
- package/dist-types/components/mixins/value-holder.d.ts +7 -3
- package/dist-types/components/mixins/value-holder.d.ts.map +1 -1
- package/dist-types/components/mutater/path.d.ts.map +1 -1
- package/dist-types/components/node.d.ts +7 -3
- package/dist-types/components/node.d.ts.map +1 -1
- package/dist-types/components/outline/path-outline.d.ts.map +1 -1
- package/dist-types/components/polygon-container.d.ts +65 -0
- package/dist-types/components/polygon-container.d.ts.map +1 -0
- package/dist-types/components/polygon.d.ts +2 -0
- package/dist-types/components/polygon.d.ts.map +1 -1
- package/dist-types/components/polyline.d.ts.map +1 -1
- package/dist-types/components/popup-container.d.ts +25 -0
- package/dist-types/components/popup-container.d.ts.map +1 -0
- package/dist-types/components/popup.d.ts +37 -3
- package/dist-types/components/popup.d.ts.map +1 -1
- package/dist-types/components/position/popup-position.d.ts +11 -0
- package/dist-types/components/position/popup-position.d.ts.map +1 -1
- package/dist-types/components/rect.d.ts +14 -6
- package/dist-types/components/rect.d.ts.map +1 -1
- package/dist-types/components/retention/retention-manager.d.ts +9 -1
- package/dist-types/components/retention/retention-manager.d.ts.map +1 -1
- package/dist-types/components/root-container.d.ts +17 -4
- package/dist-types/components/root-container.d.ts.map +1 -1
- package/dist-types/components/ruler.d.ts +7 -3
- package/dist-types/components/ruler.d.ts.map +1 -1
- package/dist-types/components/service-component.d.ts +268 -0
- package/dist-types/components/service-component.d.ts.map +1 -0
- package/dist-types/components/shape.d.ts.map +1 -1
- package/dist-types/components/text.d.ts +7 -3
- package/dist-types/components/text.d.ts.map +1 -1
- package/dist-types/core/memoize.d.ts.map +1 -1
- package/dist-types/decorator/decorator-registry.d.ts +14 -1
- package/dist-types/decorator/decorator-registry.d.ts.map +1 -1
- package/dist-types/decorator/decorators/animated-icon-decorator.d.ts.map +1 -1
- package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts.map +1 -1
- package/dist-types/decorator/decorators/data-spread-decorator.d.ts +16 -0
- package/dist-types/decorator/decorators/data-spread-decorator.d.ts.map +1 -1
- package/dist-types/diagnostics/contract-inspector.d.ts +103 -0
- package/dist-types/diagnostics/contract-inspector.d.ts.map +1 -0
- package/dist-types/diagnostics/data-lag-tracker.d.ts +44 -0
- package/dist-types/diagnostics/data-lag-tracker.d.ts.map +1 -0
- package/dist-types/diagnostics/inspector.d.ts +58 -4
- package/dist-types/diagnostics/inspector.d.ts.map +1 -1
- package/dist-types/diagnostics/load-tracker.d.ts +82 -0
- package/dist-types/diagnostics/load-tracker.d.ts.map +1 -0
- package/dist-types/diagnostics/loading-overlay.d.ts +41 -0
- package/dist-types/diagnostics/loading-overlay.d.ts.map +1 -0
- package/dist-types/diagnostics/metrics.d.ts +10 -0
- package/dist-types/diagnostics/metrics.d.ts.map +1 -1
- package/dist-types/effect/shadow.d.ts +3 -1
- package/dist-types/effect/shadow.d.ts.map +1 -1
- package/dist-types/event-map/index.d.ts +1 -0
- package/dist-types/event-map/index.d.ts.map +1 -1
- package/dist-types/event-map/transition-handler.d.ts +2 -0
- package/dist-types/event-map/transition-handler.d.ts.map +1 -0
- package/dist-types/interfaces/layout.d.ts +35 -1
- package/dist-types/interfaces/layout.d.ts.map +1 -1
- package/dist-types/interfaces/providers.d.ts +20 -3
- package/dist-types/interfaces/providers.d.ts.map +1 -1
- package/dist-types/interfaces/real-object.d.ts +8 -1
- package/dist-types/interfaces/real-object.d.ts.map +1 -1
- package/dist-types/interfaces/rendering.d.ts +86 -14
- package/dist-types/interfaces/rendering.d.ts.map +1 -1
- package/dist-types/interfaces/types.d.ts +20 -1
- package/dist-types/interfaces/types.d.ts.map +1 -1
- package/dist-types/layer/action/popup.d.ts +13 -0
- package/dist-types/layer/action/popup.d.ts.map +1 -1
- package/dist-types/layer/add-layer.d.ts +8 -0
- package/dist-types/layer/add-layer.d.ts.map +1 -1
- package/dist-types/layer/dual-canvas-layer.d.ts.map +1 -1
- package/dist-types/layer/index.d.ts +1 -0
- package/dist-types/layer/index.d.ts.map +1 -1
- package/dist-types/layer/layer.d.ts +1 -0
- package/dist-types/layer/layer.d.ts.map +1 -1
- package/dist-types/layer/model-layer.d.ts +67 -7
- package/dist-types/layer/model-layer.d.ts.map +1 -1
- package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
- package/dist-types/layer/modeling-layer.d.ts.map +1 -1
- package/dist-types/layer/selection/selected-finder.d.ts +1 -1
- package/dist-types/layer/selection/selected-finder.d.ts.map +1 -1
- package/dist-types/layer/selection-layer.d.ts.map +1 -1
- package/dist-types/layer/snap-guide-layer.d.ts +23 -0
- package/dist-types/layer/snap-guide-layer.d.ts.map +1 -0
- package/dist-types/layout/absolute.d.ts +2 -2
- package/dist-types/layout/card.d.ts +2 -2
- package/dist-types/layout/linear-horizontal.d.ts +2 -2
- package/dist-types/layout/linear-vertical.d.ts +2 -2
- package/dist-types/layout/table.d.ts +3 -3
- package/dist-types/math/component-pose.d.ts +51 -0
- package/dist-types/math/component-pose.d.ts.map +1 -0
- package/dist-types/math/index.d.ts +3 -0
- package/dist-types/math/index.d.ts.map +1 -0
- package/dist-types/math/pose6dof.d.ts +93 -0
- package/dist-types/math/pose6dof.d.ts.map +1 -0
- package/dist-types/navigation/index.d.ts +7 -0
- package/dist-types/navigation/index.d.ts.map +1 -0
- package/dist-types/navigation/nav-graph.d.ts +55 -0
- package/dist-types/navigation/nav-graph.d.ts.map +1 -0
- package/dist-types/navigation/path-planner.d.ts +29 -0
- package/dist-types/navigation/path-planner.d.ts.map +1 -0
- package/dist-types/navigation/reservation-table.d.ts +103 -0
- package/dist-types/navigation/reservation-table.d.ts.map +1 -0
- package/dist-types/navigation/types.d.ts +145 -0
- package/dist-types/navigation/types.d.ts.map +1 -0
- package/dist-types/placement/index.d.ts +3 -0
- package/dist-types/placement/index.d.ts.map +1 -0
- package/dist-types/placement/placement.d.ts +53 -0
- package/dist-types/placement/placement.d.ts.map +1 -0
- package/dist-types/search/index.d.ts +3 -0
- package/dist-types/search/index.d.ts.map +1 -0
- package/dist-types/search/scene-search-engine.d.ts +65 -0
- package/dist-types/search/scene-search-engine.d.ts.map +1 -0
- package/dist-types/search/search-overlay.d.ts +95 -0
- package/dist-types/search/search-overlay.d.ts.map +1 -0
- package/dist-types/things-scene/api/add-start.d.ts +25 -0
- package/dist-types/things-scene/api/add-start.d.ts.map +1 -1
- package/dist-types/things-scene/api/align.d.ts.map +1 -1
- package/dist-types/things-scene/api/distribute.d.ts.map +1 -1
- package/dist-types/things-scene/api/ids.d.ts +4 -1
- package/dist-types/things-scene/api/ids.d.ts.map +1 -1
- package/dist-types/things-scene/api/index.d.ts +1 -1
- package/dist-types/things-scene/api/index.d.ts.map +1 -1
- package/dist-types/things-scene/api/place.d.ts.map +1 -1
- package/dist-types/things-scene/application-context.d.ts +49 -0
- package/dist-types/things-scene/application-context.d.ts.map +1 -1
- package/dist-types/things-scene/create.d.ts +43 -3
- package/dist-types/things-scene/create.d.ts.map +1 -1
- package/dist-types/things-scene/index.d.ts +24 -0
- package/dist-types/things-scene/index.d.ts.map +1 -1
- package/dist-types/things-scene/scene.d.ts +108 -2
- package/dist-types/things-scene/scene.d.ts.map +1 -1
- package/dist-types/threed/arrow-3d.d.ts +13 -4
- package/dist-types/threed/arrow-3d.d.ts.map +1 -1
- package/dist-types/threed/environments/base-environment.d.ts +17 -0
- package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/cloudy-environment.d.ts +10 -0
- package/dist-types/threed/environments/cloudy-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/factory-environment.d.ts +3 -3
- package/dist-types/threed/environments/factory-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/home-environment.d.ts +3 -3
- package/dist-types/threed/environments/home-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/office-environment.d.ts +3 -3
- package/dist-types/threed/environments/office-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/rainy-environment.d.ts +10 -0
- package/dist-types/threed/environments/rainy-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/studio-environment.d.ts +2 -3
- package/dist-types/threed/environments/studio-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/sunny-environment.d.ts +10 -0
- package/dist-types/threed/environments/sunny-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/warehouse-environment.d.ts +3 -3
- package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -1
- package/dist-types/threed/factories/backdrop.d.ts +535 -0
- package/dist-types/threed/factories/backdrop.d.ts.map +1 -0
- package/dist-types/threed/factories/banner.d.ts +13 -4
- package/dist-types/threed/factories/banner.d.ts.map +1 -1
- package/dist-types/threed/factories/camera.d.ts +9 -3
- package/dist-types/threed/factories/camera.d.ts.map +1 -1
- package/dist-types/threed/factories/cube.d.ts +8 -3
- package/dist-types/threed/factories/cube.d.ts.map +1 -1
- package/dist-types/threed/factories/cylinder.d.ts +1 -0
- package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
- package/dist-types/threed/factories/decal.d.ts +510 -0
- package/dist-types/threed/factories/decal.d.ts.map +1 -0
- package/dist-types/threed/factories/floor-plate.d.ts +11 -0
- package/dist-types/threed/factories/floor-plate.d.ts.map +1 -0
- package/dist-types/threed/factories/gltf-object.d.ts +264 -38
- package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
- package/dist-types/threed/factories/group.d.ts +2 -0
- package/dist-types/threed/factories/group.d.ts.map +1 -0
- package/dist-types/threed/factories/light.d.ts +1 -0
- package/dist-types/threed/factories/light.d.ts.map +1 -1
- package/dist-types/threed/factories/line.d.ts +10 -0
- package/dist-types/threed/factories/line.d.ts.map +1 -0
- package/dist-types/threed/factories/ortholine.d.ts +10 -0
- package/dist-types/threed/factories/ortholine.d.ts.map +1 -0
- package/dist-types/threed/factories/polygon.d.ts +19 -0
- package/dist-types/threed/factories/polygon.d.ts.map +1 -1
- package/dist-types/threed/factories/polyline.d.ts +10 -0
- package/dist-types/threed/factories/polyline.d.ts.map +1 -0
- package/dist-types/threed/factories/rect.d.ts.map +1 -1
- package/dist-types/threed/factories/sphere.d.ts +6 -0
- package/dist-types/threed/factories/sphere.d.ts.map +1 -1
- package/dist-types/threed/factories/sprite.d.ts +8 -3
- package/dist-types/threed/factories/sprite.d.ts.map +1 -1
- package/dist-types/threed/factories/triangle.d.ts.map +1 -1
- package/dist-types/threed/factories/wall.d.ts +8 -3
- package/dist-types/threed/factories/wall.d.ts.map +1 -1
- package/dist-types/threed/floor/floor.d.ts.map +1 -1
- package/dist-types/threed/handle-3d.d.ts +21 -0
- package/dist-types/threed/handle-3d.d.ts.map +1 -0
- package/dist-types/threed/html/elements.d.ts.map +1 -1
- package/dist-types/threed/index.d.ts +24 -0
- package/dist-types/threed/index.d.ts.map +1 -1
- package/dist-types/threed/managers/box-selection-manager.d.ts +26 -0
- package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -0
- package/dist-types/threed/managers/camera-bookmark-manager.d.ts +127 -0
- package/dist-types/threed/managers/camera-bookmark-manager.d.ts.map +1 -0
- package/dist-types/threed/managers/camera-manager.d.ts +9 -3
- package/dist-types/threed/managers/camera-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/controls-manager.d.ts +25 -4
- package/dist-types/threed/managers/controls-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/event-manager3d.d.ts +8 -0
- package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
- package/dist-types/threed/managers/gizmo-manager.d.ts +6 -0
- package/dist-types/threed/managers/gizmo-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/gizmo-operation-manager.d.ts +55 -1
- package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/index.d.ts +4 -1
- package/dist-types/threed/managers/index.d.ts.map +1 -1
- package/dist-types/threed/managers/interaction-manager.d.ts +17 -0
- package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/light-manager.d.ts +15 -0
- package/dist-types/threed/managers/light-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/renderer-manager.d.ts +37 -0
- package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/scene-manager.d.ts +12 -2
- package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/types.d.ts +5 -2
- package/dist-types/threed/managers/types.d.ts.map +1 -1
- package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +155 -0
- package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
- package/dist-types/threed/material-3d.d.ts +5 -2
- package/dist-types/threed/material-3d.d.ts.map +1 -1
- package/dist-types/threed/ratio-lock-utils.d.ts +9 -0
- package/dist-types/threed/ratio-lock-utils.d.ts.map +1 -0
- package/dist-types/threed/real-object-dom-element.d.ts +2 -0
- package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
- package/dist-types/threed/real-object-dom-texture.d.ts +9 -0
- package/dist-types/threed/real-object-dom-texture.d.ts.map +1 -1
- package/dist-types/threed/real-object-external-model.d.ts +24 -0
- package/dist-types/threed/real-object-external-model.d.ts.map +1 -0
- package/dist-types/threed/real-object-extrude.d.ts +16 -1
- package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
- package/dist-types/threed/real-object-gltf.d.ts +21 -11
- package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
- package/dist-types/threed/real-object-group.d.ts +2 -0
- package/dist-types/threed/real-object-group.d.ts.map +1 -1
- package/dist-types/threed/real-object-line.d.ts +83 -0
- package/dist-types/threed/real-object-line.d.ts.map +1 -0
- package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
- package/dist-types/threed/real-object-plane-2d.d.ts +23 -0
- package/dist-types/threed/real-object-plane-2d.d.ts.map +1 -1
- package/dist-types/threed/real-object-service.d.ts +14 -0
- package/dist-types/threed/real-object-service.d.ts.map +1 -0
- package/dist-types/threed/real-object-sprite.d.ts +7 -1
- package/dist-types/threed/real-object-sprite.d.ts.map +1 -1
- package/dist-types/threed/real-object-text.d.ts +5 -0
- package/dist-types/threed/real-object-text.d.ts.map +1 -1
- package/dist-types/threed/real-object.d.ts +176 -7
- package/dist-types/threed/real-object.d.ts.map +1 -1
- package/dist-types/threed/text-editor-3d.d.ts +11 -0
- package/dist-types/threed/text-editor-3d.d.ts.map +1 -0
- package/dist-types/threed/texture/canvas-texture.d.ts +7 -0
- package/dist-types/threed/texture/canvas-texture.d.ts.map +1 -1
- package/dist-types/threed/texture/fillstyle-texture.d.ts +46 -0
- package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
- package/dist-types/threed/texture/text-texture.d.ts +15 -0
- package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
- package/dist-types/threed/three-capability.d.ts +148 -6
- package/dist-types/threed/three-capability.d.ts.map +1 -1
- package/dist-types/threed/three-container.d.ts +0 -1
- package/dist-types/threed/three-container.d.ts.map +1 -1
- package/dist-types/threed/three-dimensional-container.d.ts +0 -1
- package/dist-types/threed/three-dimensional-container.d.ts.map +1 -1
- package/dist-types/threed/utils/anchor.d.ts +33 -0
- package/dist-types/threed/utils/anchor.d.ts.map +1 -0
- package/dist-types/threed/utils/dispose.d.ts.map +1 -1
- package/dist-types/threed/utils/polygon-shape.d.ts +21 -0
- package/dist-types/threed/utils/polygon-shape.d.ts.map +1 -0
- package/dist-types/threed/utils/tether.d.ts +46 -0
- package/dist-types/threed/utils/tether.d.ts.map +1 -0
- package/dist-types/threed/z-priority.d.ts +27 -0
- package/dist-types/threed/z-priority.d.ts.map +1 -0
- package/dist-types/tracker/tracker.d.ts +57 -0
- package/dist-types/tracker/tracker.d.ts.map +1 -0
- package/dist-types/transfer/carrier-line-capability.d.ts +95 -0
- package/dist-types/transfer/carrier-line-capability.d.ts.map +1 -0
- package/dist-types/transfer/centering-slot-strategy.d.ts +8 -0
- package/dist-types/transfer/centering-slot-strategy.d.ts.map +1 -0
- package/dist-types/transfer/container-capacity.d.ts +348 -0
- package/dist-types/transfer/container-capacity.d.ts.map +1 -0
- package/dist-types/transfer/fixed-slot-strategy.d.ts +8 -0
- package/dist-types/transfer/fixed-slot-strategy.d.ts.map +1 -0
- package/dist-types/transfer/index.d.ts +21 -0
- package/dist-types/transfer/index.d.ts.map +1 -0
- package/dist-types/transfer/pickup-helpers.d.ts +65 -0
- package/dist-types/transfer/pickup-helpers.d.ts.map +1 -0
- package/dist-types/transfer/simulation-clock.d.ts +45 -0
- package/dist-types/transfer/simulation-clock.d.ts.map +1 -0
- package/dist-types/transfer/storage-rack-capability.d.ts +144 -0
- package/dist-types/transfer/storage-rack-capability.d.ts.map +1 -0
- package/dist-types/transfer/tracer.d.ts +35 -0
- package/dist-types/transfer/tracer.d.ts.map +1 -0
- package/dist-types/transfer/transfer.d.ts +224 -0
- package/dist-types/transfer/transfer.d.ts.map +1 -0
- package/dist-types/transfer/types.d.ts +389 -0
- package/dist-types/transfer/types.d.ts.map +1 -0
- package/dist-types/transition/transition-effect.d.ts +97 -0
- package/dist-types/transition/transition-effect.d.ts.map +1 -0
- package/dist-types/types/bounding.d.ts +1 -1
- package/dist-types/types/bounding.d.ts.map +1 -1
- package/dist-types/types/component.d.ts +6 -177
- package/dist-types/types/component.d.ts.map +1 -1
- package/dist-types/types/event.d.ts +57 -0
- package/dist-types/types/event.d.ts.map +1 -1
- package/dist-types/types/polygon-path-arc.d.ts +72 -0
- package/dist-types/types/polygon-path-arc.d.ts.map +1 -0
- package/dist-types/types/polygon-path.d.ts +153 -0
- package/dist-types/types/polygon-path.d.ts.map +1 -0
- package/package.json +13 -2
- package/things-scene-min.js +12 -13
- package/things-scene-min.js.map +1 -1
- package/things-scene-transfer.mjs +6 -0
- package/things-scene.mjs +8 -9
- package/things-scene.mjs.map +1 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import type { Pose6DOF } from '../math/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Rack slot 의 3D 주소. 일반적인 columned rack 의 (Y 층, X 가로 칸, Z 깊이) — 단
|
|
4
|
+
* 모든 rack 이 3 차원 grid 인 것은 아니다 (예: 1D linear bin shelf, 2D 평면 grid).
|
|
5
|
+
* 구현자가 unused 차원을 0 으로 두면 됨. opaque 한 key string (`level.bay.depth`)
|
|
6
|
+
* 으로 직렬화 / Map 키 사용.
|
|
7
|
+
*/
|
|
8
|
+
export interface StorageSlotAddress {
|
|
9
|
+
/** 층 (Y 축). 0 = 바닥 층. */
|
|
10
|
+
readonly level: number;
|
|
11
|
+
/** 가로 칸 (X 축, aisle 방향). 0 = aisle 시작. */
|
|
12
|
+
readonly bay: number;
|
|
13
|
+
/** 깊이 (Z 축, aisle 에서 안쪽). 0 = aisle 면 (가장 가까운 slot). */
|
|
14
|
+
readonly depth: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Slot 의 *현재 상태* — read-only. carrier 가 들어있으면 occupant 노출, 비어있으면
|
|
18
|
+
* null. capability 외부 (WMS, monitor, simulation viewer) 가 generic 활용.
|
|
19
|
+
*/
|
|
20
|
+
export interface StorageSlotState {
|
|
21
|
+
readonly address: StorageSlotAddress;
|
|
22
|
+
/**
|
|
23
|
+
* Crane fork 가 도달할 *world pose* — slot 의 입출고 자세. position = slot 의
|
|
24
|
+
* 들어가는 입구 (= depth=0 면) 의 중심, rotation = fork 가 들어갈 자세 (보통
|
|
25
|
+
* aisle 방향 ±Z).
|
|
26
|
+
*/
|
|
27
|
+
readonly pose: Pose6DOF;
|
|
28
|
+
/** Carrying 중인 박스/팰릿. null = empty. */
|
|
29
|
+
readonly occupant: unknown | null;
|
|
30
|
+
/**
|
|
31
|
+
* Slot 의 물리 제약. 선택. 구현자가 size / weight 제약을 노출하면 source 가
|
|
32
|
+
* pre-flight 매칭 가능.
|
|
33
|
+
*/
|
|
34
|
+
readonly capacity?: {
|
|
35
|
+
readonly maxWeight?: number;
|
|
36
|
+
readonly maxBounds?: {
|
|
37
|
+
width: number;
|
|
38
|
+
height: number;
|
|
39
|
+
depth: number;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Application 도메인 metadata. SKU, lot, expiry, owner 등. 구현자 자유. WMS 가
|
|
44
|
+
* `findSlotsWithSKU` 같은 query 결과의 부가 정보로 사용 가능.
|
|
45
|
+
*/
|
|
46
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Put (= 저장) 또는 Pick (= 출고) reservation. source (crane) 가 자기 movement
|
|
50
|
+
* 시작 전 capability 에게 받음. commit 후 slot.occupant 가 변경됨.
|
|
51
|
+
*
|
|
52
|
+
* `direction` 으로 의도 분리 — same address 라도 put vs pick 의 pose / 제약이
|
|
53
|
+
* 다를 수 있음 (예: AutoStore digging — pick 시 위의 박스들 먼저 옮겨야 함).
|
|
54
|
+
*/
|
|
55
|
+
export interface StorageReservation {
|
|
56
|
+
readonly address: StorageSlotAddress;
|
|
57
|
+
readonly pose: Pose6DOF;
|
|
58
|
+
readonly direction: 'put' | 'pick';
|
|
59
|
+
/** Capability 가 자기 식별 용 opaque token. source 는 의미 모름. */
|
|
60
|
+
readonly token: symbol;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Slot search 기준. 모든 필드 optional — 비우면 *아무* free slot 반환.
|
|
64
|
+
*/
|
|
65
|
+
export interface SlotSearchCriteria {
|
|
66
|
+
/** SKU / barcode / type 매칭 — 같은 SKU 의 인접 슬롯 우선 (consolidation). */
|
|
67
|
+
readonly sku?: string;
|
|
68
|
+
/** 특정 address 인근 (Manhattan distance) 선호 — crane 이동 거리 최소화. */
|
|
69
|
+
readonly near?: StorageSlotAddress;
|
|
70
|
+
/** Carrier 크기 / 무게 제약. capacity 와 매칭. */
|
|
71
|
+
readonly requires?: {
|
|
72
|
+
readonly minWeight?: number;
|
|
73
|
+
readonly minBounds?: {
|
|
74
|
+
width: number;
|
|
75
|
+
height: number;
|
|
76
|
+
depth: number;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* StorageRack capability contract.
|
|
82
|
+
*
|
|
83
|
+
* 구현자 (rack, AS/RS, AutoStore 등) 가 자기 sim 의 detail (선반 geometry, occupant
|
|
84
|
+
* map, SKU index, 다중 shuttle 큐잉) 모두 내부 구현으로 캡슐화. source (crane,
|
|
85
|
+
* shuttle, forklift) 는 이 interface 만 사용.
|
|
86
|
+
*/
|
|
87
|
+
export interface StorageRack {
|
|
88
|
+
/**
|
|
89
|
+
* 모든 slot 의 현재 상태. address key (`${level}.${bay}.${depth}`) → state.
|
|
90
|
+
* Read-only. 향후 *write* 확장 (sim state restore 등) plan.
|
|
91
|
+
*/
|
|
92
|
+
readonly slots: ReadonlyMap<string, StorageSlotState>;
|
|
93
|
+
/**
|
|
94
|
+
* Address 로 직접 조회. 없으면 null (= 존재하지 않는 address, 또는 dispose 된 슬롯).
|
|
95
|
+
*/
|
|
96
|
+
slotAt(address: StorageSlotAddress): StorageSlotState | null;
|
|
97
|
+
/**
|
|
98
|
+
* Putaway 용 free slot 검색. 정책 (LIFO/FIFO, optimal location, ABC 분류 등) 은
|
|
99
|
+
* 구현자 내부 — source 는 결과 address 만 받음. null = 빈 slot 없음.
|
|
100
|
+
*/
|
|
101
|
+
findFreeSlot(criteria?: SlotSearchCriteria): StorageSlotAddress | null;
|
|
102
|
+
/**
|
|
103
|
+
* 특정 SKU 가 저장된 slot 들 반환. retrieval order 정책 (FIFO 등) 적용된 순서.
|
|
104
|
+
* 빈 배열 = 해당 SKU 없음.
|
|
105
|
+
*/
|
|
106
|
+
findSlotsWithSKU(sku: string): readonly StorageSlotAddress[];
|
|
107
|
+
/**
|
|
108
|
+
* Putaway reservation — source 가 carrier 를 *어떤 address* 에 놓을지 commit
|
|
109
|
+
* 가능한 약속. null = 그 address 가 currently 사용 불가 (이미 점유 / 제약 미충족).
|
|
110
|
+
*
|
|
111
|
+
* Side-effect: capability 가 slot 을 *예약 마크* (다른 reservation 차단). 단
|
|
112
|
+
* occupant 는 commit 시점에 변경.
|
|
113
|
+
*/
|
|
114
|
+
reservePut(address: StorageSlotAddress, item: unknown): StorageReservation | null;
|
|
115
|
+
/**
|
|
116
|
+
* Retrieval reservation — source 가 특정 address 의 박스를 *꺼낼* 약속.
|
|
117
|
+
* `expected` (optional) 로 occupant 확인 (예: WMS 의 SKU 가 실제 박스와 일치 검증).
|
|
118
|
+
* null = 그 address 가 비어있음 / 예상 박스 다름 / digging 필요 시그널.
|
|
119
|
+
*/
|
|
120
|
+
reservePick(address: StorageSlotAddress, expected?: unknown): StorageReservation | null;
|
|
121
|
+
/**
|
|
122
|
+
* Reservation 확정 — slot.occupant 가 갱신. put 이면 item 이 occupant 로 들어가고,
|
|
123
|
+
* pick 이면 occupant 가 빠지고 occupant 가 source 에게 ownership 이전.
|
|
124
|
+
*
|
|
125
|
+
* idempotent — 같은 token 으로 중복 호출 시 noop (구현자 자유).
|
|
126
|
+
*/
|
|
127
|
+
commitReservation(reservation: StorageReservation, item: unknown): void;
|
|
128
|
+
/**
|
|
129
|
+
* Reservation 취소 — 마크된 slot 해제. commit 후 호출 시 noop (idempotent).
|
|
130
|
+
* source 가 movement 도중 abort 했을 때 호출.
|
|
131
|
+
*/
|
|
132
|
+
releaseReservation(reservation: StorageReservation): void;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Duck typing — target 이 StorageRack 노출 했는지 check. capability registry 없이
|
|
136
|
+
* runtime 매칭. 새 rack type 추가 시 *이 함수 외 다른 코드 변경 없음*.
|
|
137
|
+
*/
|
|
138
|
+
export declare function isStorageRack(target: unknown): target is StorageRack;
|
|
139
|
+
/**
|
|
140
|
+
* Address ↔ string key 변환 — Map 키 / 직렬화 / 로그 출력 표준.
|
|
141
|
+
*/
|
|
142
|
+
export declare function addressKey(address: StorageSlotAddress): string;
|
|
143
|
+
export declare function parseAddressKey(key: string): StorageSlotAddress | null;
|
|
144
|
+
//# sourceMappingURL=storage-rack-capability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-rack-capability.d.ts","sourceRoot":"","sources":["../../src/transfer/storage-rack-capability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Transfer, TransferTraceEvent } from './transfer.js';
|
|
2
|
+
/**
|
|
3
|
+
* tracer.log 의 호출자가 채우는 정보. atSimMs 는 자동.
|
|
4
|
+
* component 인자는 *componentId/componentType 추출* 위해. 직접 안 채워도 됨.
|
|
5
|
+
*/
|
|
6
|
+
export interface TraceLogInput {
|
|
7
|
+
role: 'source' | 'target' | 'carrier' | 'transfer';
|
|
8
|
+
contract: string;
|
|
9
|
+
component?: any;
|
|
10
|
+
componentId?: string;
|
|
11
|
+
componentType?: string;
|
|
12
|
+
args?: any;
|
|
13
|
+
result?: any;
|
|
14
|
+
error?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const transferTracer: {
|
|
17
|
+
/** Transfer 시작 시 호출 — 이후 log 호출은 *그 Transfer 의 trace 에 push*. */
|
|
18
|
+
beginContext(transfer: Transfer): void;
|
|
19
|
+
/** Transfer 완료/거부 시 호출 — standalone mode 로 복귀. */
|
|
20
|
+
endContext(): void;
|
|
21
|
+
/** 현재 active transfer (있다면). 디버깅용. */
|
|
22
|
+
current(): Transfer | null;
|
|
23
|
+
/**
|
|
24
|
+
* Contract 호출 시점 트레이스. ContainerCapacity 의 각 method 안에서 호출.
|
|
25
|
+
* active Transfer 가 있으면 그 trace 에, 없으면 standalone stream 에 push.
|
|
26
|
+
*/
|
|
27
|
+
log(input: TraceLogInput): void;
|
|
28
|
+
/** Standalone trace events (Transfer 우회 호출의 누적). */
|
|
29
|
+
standaloneEvents(): readonly TransferTraceEvent[];
|
|
30
|
+
/** Standalone listener 등록. */
|
|
31
|
+
onStandalone(listener: (event: TransferTraceEvent) => void): () => void;
|
|
32
|
+
/** standalone stream 초기화. */
|
|
33
|
+
clearStandalone(): void;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/transfer/tracer.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAiBjE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,cAAc;IACzB,iEAAiE;2BAC1C,QAAQ,GAAG,IAAI;IAItC,kDAAkD;kBACpC,IAAI;IAIlB,sCAAsC;eAC3B,QAAQ,GAAG,IAAI;IAI1B;;;OAGG;eACQ,aAAa,GAAG,IAAI;IAwB/B,oDAAoD;wBAChC,SAAS,kBAAkB,EAAE;IAIjD,8BAA8B;2BACP,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,MAAM,IAAI;IAKvE,6BAA6B;uBACV,IAAI;CAGxB,CAAA"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import type { Transferable, TransferOptions } from './types.js';
|
|
2
|
+
export type TransferPhase = 'pending' | 'planning' | 'physical' | 'handoff' | 'committed' | 'rolled-back';
|
|
3
|
+
export interface TransferTimeline {
|
|
4
|
+
initiatedAt: number;
|
|
5
|
+
planStartAt?: number;
|
|
6
|
+
planEndAt?: number;
|
|
7
|
+
physicalStartAt?: number;
|
|
8
|
+
physicalEndAt?: number;
|
|
9
|
+
handoffAt?: number;
|
|
10
|
+
committedAt?: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Transfer 의 negotiation / interaction 세부 trace. 각 contract method 호출 시점에
|
|
14
|
+
* Transfer.execute 가 기록 — 어떤 컴포넌트의 어떤 contract 가 호출되었고 결과가
|
|
15
|
+
* 무엇이었는지 시각화.
|
|
16
|
+
*
|
|
17
|
+
* role : 'source' | 'target' | 'carrier' | 'transfer'
|
|
18
|
+
* contract : 호출한 contract 이름 (e.g. 'canAccept', 'findSlot', 'accept', 'physical')
|
|
19
|
+
* componentId: 호출 대상 컴포넌트의 id
|
|
20
|
+
* componentType: 컴포넌트의 type
|
|
21
|
+
* atSimMs : sim time 기준 호출 시점
|
|
22
|
+
* args : 인자의 *serializable summary* (carrier id, slot id 등)
|
|
23
|
+
* result : 반환값의 *serializable summary* (ok / reason / slotId 등)
|
|
24
|
+
* error : throw 시 메시지
|
|
25
|
+
*/
|
|
26
|
+
export interface TransferTraceEvent {
|
|
27
|
+
role: 'source' | 'target' | 'carrier' | 'transfer';
|
|
28
|
+
contract: string;
|
|
29
|
+
componentId?: string;
|
|
30
|
+
componentType?: string;
|
|
31
|
+
atSimMs: number;
|
|
32
|
+
args?: any;
|
|
33
|
+
result?: any;
|
|
34
|
+
error?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface TransferReceipt {
|
|
37
|
+
transferId: string;
|
|
38
|
+
source: any;
|
|
39
|
+
target: any;
|
|
40
|
+
carrier: any;
|
|
41
|
+
/** Phase G7 — 직렬화 용. live refs 가 GC 되어도 보존되는 식별자. */
|
|
42
|
+
sourceId?: string;
|
|
43
|
+
targetId?: string;
|
|
44
|
+
carrierId?: string;
|
|
45
|
+
phase: TransferPhase;
|
|
46
|
+
timeline: TransferTimeline;
|
|
47
|
+
slotId?: string;
|
|
48
|
+
rejectReason?: string;
|
|
49
|
+
/** Phase G10 — negotiation / interaction trace events. */
|
|
50
|
+
traceEvents?: TransferTraceEvent[];
|
|
51
|
+
/**
|
|
52
|
+
* Phase G11 — open-ended metadata. physical phase 가 *target-specific* 정보를
|
|
53
|
+
* 기록 (예: sorter 의 carrierId, cross-belt-line 의 carrier index). panel 의
|
|
54
|
+
* 컬럼 등 진단 시각화에서 사용.
|
|
55
|
+
*/
|
|
56
|
+
meta?: Record<string, unknown>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* TransferReceipt 의 직렬화 형태 — live ref 제외, ID 만. JSON.stringify 안전.
|
|
60
|
+
* Phase G7 의 snapshot/replay 용.
|
|
61
|
+
*/
|
|
62
|
+
export interface TransferReceiptJSON {
|
|
63
|
+
transferId: string;
|
|
64
|
+
sourceId?: string;
|
|
65
|
+
targetId?: string;
|
|
66
|
+
carrierId?: string;
|
|
67
|
+
phase: TransferPhase;
|
|
68
|
+
timeline: TransferTimeline;
|
|
69
|
+
slotId?: string;
|
|
70
|
+
rejectReason?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Receipt 의 plain JSON 변환. live ref 제외, undefined 필드 omit (JSON
|
|
74
|
+
* round-trip 결정성 보장).
|
|
75
|
+
*/
|
|
76
|
+
export declare function receiptToJSON(receipt: TransferReceipt): TransferReceiptJSON;
|
|
77
|
+
/**
|
|
78
|
+
* Source 가 physical 단계에서 사용하는 운반 함수. logical-only source
|
|
79
|
+
* (Conveyor.dispatch 등) 는 noop 으로 즉시 resolve.
|
|
80
|
+
*
|
|
81
|
+
* 호출 시점: Transfer 의 physical phase 진입.
|
|
82
|
+
* 반환: physical 운반 완료 (carrier 가 target.deliveryPose 에 도달) 시 resolve.
|
|
83
|
+
*/
|
|
84
|
+
export type PhysicalRunner = () => Promise<void>;
|
|
85
|
+
export interface TransferLogStats {
|
|
86
|
+
total: number;
|
|
87
|
+
byPhase: Record<string, number>;
|
|
88
|
+
committed: number;
|
|
89
|
+
rolledBack: number;
|
|
90
|
+
rejectionRate: number;
|
|
91
|
+
avgTransferDurationMs: number;
|
|
92
|
+
}
|
|
93
|
+
export interface TransferInit {
|
|
94
|
+
source: any;
|
|
95
|
+
target: Transferable;
|
|
96
|
+
carrier: any;
|
|
97
|
+
options?: TransferOptions;
|
|
98
|
+
/** physical 운반자 (RobotArm, AGV 등). 미지정 시 즉시 통과. */
|
|
99
|
+
physical?: PhysicalRunner;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Transfer — 한 carrier 의 source → target 이동 사건.
|
|
103
|
+
*
|
|
104
|
+
* 사용:
|
|
105
|
+
* const t = new Transfer({ source, target, carrier, options })
|
|
106
|
+
* const receipt = await t.execute()
|
|
107
|
+
*
|
|
108
|
+
* 또는 Transferable.dispatch 가 내부적으로:
|
|
109
|
+
* const t = new Transfer({ source: this, target, carrier, options })
|
|
110
|
+
* await t.execute()
|
|
111
|
+
*/
|
|
112
|
+
export declare class Transfer {
|
|
113
|
+
readonly id: string;
|
|
114
|
+
readonly source: any;
|
|
115
|
+
readonly target: Transferable;
|
|
116
|
+
readonly carrier: any;
|
|
117
|
+
readonly options: TransferOptions;
|
|
118
|
+
readonly physical: PhysicalRunner | null;
|
|
119
|
+
private _phase;
|
|
120
|
+
private _timeline;
|
|
121
|
+
private _slot;
|
|
122
|
+
private _rejectReason?;
|
|
123
|
+
private _traceEvents;
|
|
124
|
+
/**
|
|
125
|
+
* Phase G11 — target-specific metadata. physical phase 가 *sorter carrier
|
|
126
|
+
* index* 등 contract 외 진단 정보 기록. receipt 의 meta 로 시각화.
|
|
127
|
+
*/
|
|
128
|
+
readonly meta: Record<string, unknown>;
|
|
129
|
+
constructor(init: TransferInit);
|
|
130
|
+
/**
|
|
131
|
+
* Transfer trace 에 contract 호출 이벤트 push. Transfer.execute 가 명시 contract
|
|
132
|
+
* 호출 시 직접 사용 + ContainerCapacity.receive 등 *내부 contract* 도 *current
|
|
133
|
+
* transfer* 의 trace 에 push 가능 (currentTransfer module-level singleton).
|
|
134
|
+
*/
|
|
135
|
+
pushTrace(event: Omit<TransferTraceEvent, 'atSimMs'> & {
|
|
136
|
+
atSimMs?: number;
|
|
137
|
+
}): void;
|
|
138
|
+
get phase(): TransferPhase;
|
|
139
|
+
get timeline(): Readonly<TransferTimeline>;
|
|
140
|
+
/**
|
|
141
|
+
* 5-phase 실행. 각 phase 진입 시 timeline 갱신, 완료 시 receipt 반환.
|
|
142
|
+
*
|
|
143
|
+
* Negotiate / Plan 단계에서 거부 → rolled-back receipt.
|
|
144
|
+
* Physical 단계에서 throw → rolled-back receipt.
|
|
145
|
+
* Handoff 이후 throw 는 일관성 깨질 수 있으므로 그대로 propagate.
|
|
146
|
+
*/
|
|
147
|
+
execute(): Promise<TransferReceipt>;
|
|
148
|
+
/**
|
|
149
|
+
* Sync 흐름 (= _tickLiveItems 매 frame iteration 안에서 dispatch) 전용 변형.
|
|
150
|
+
* physical / handoff 가 sync function 일 때만 동작 — async 면 *fire-and-forget*
|
|
151
|
+
* 으로 백그라운드 실행 (receipt 는 sync committed 표시).
|
|
152
|
+
*
|
|
153
|
+
* Async transfer 가 매 frame 동기 iteration 안에서 *sync 결과 필요* (= 박스 처리
|
|
154
|
+
* 끝 신호) 한 케이스. _tryDispatchToSorter / _ejectComponent 의 sync 흐름과 호환.
|
|
155
|
+
*/
|
|
156
|
+
executeSync(): TransferReceipt;
|
|
157
|
+
private _executeImpl;
|
|
158
|
+
/**
|
|
159
|
+
* physical / planning 도중 외부 취소. handoff 이후엔 호출 금지 (이미 commit 됨).
|
|
160
|
+
* 현재 구현은 phase 만 표시하고 carrier 의 상태는 건드리지 않음 — physical
|
|
161
|
+
* 운반자가 자체 cancel 책임.
|
|
162
|
+
*/
|
|
163
|
+
rollback(): void;
|
|
164
|
+
private _buildReceipt;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* 모든 Transfer 의 receipt 를 기록하는 singleton. observability 의 기반.
|
|
168
|
+
* Phase G7 — JSON snapshot/load 지원으로 외부 도구 (Chrome extension 등) 에서
|
|
169
|
+
* 라이브 또는 저장된 로그를 동일하게 시각화할 수 있다.
|
|
170
|
+
*/
|
|
171
|
+
declare class TransferLogImpl {
|
|
172
|
+
private _entries;
|
|
173
|
+
private _maxEntries;
|
|
174
|
+
private _listeners;
|
|
175
|
+
append(receipt: TransferReceipt): void;
|
|
176
|
+
/** 모든 receipt 반환 (read-only 사본). */
|
|
177
|
+
entries(): readonly TransferReceipt[];
|
|
178
|
+
/** carrier 별 transfer 이력. live ref 매칭 우선, fallback 으로 carrierId. */
|
|
179
|
+
forCarrier(carrier: any): readonly TransferReceipt[];
|
|
180
|
+
/** carrierId 로 직접 조회 (snapshot 복원 후 등 live ref 가 없을 때). */
|
|
181
|
+
forCarrierId(carrierId: string): readonly TransferReceipt[];
|
|
182
|
+
/** sourceId 로 조회 — 특정 vehicle / source 의 transfer 이력. */
|
|
183
|
+
forSourceId(sourceId: string): readonly TransferReceipt[];
|
|
184
|
+
/** targetId 로 조회 — 특정 holder 의 receive 이력. */
|
|
185
|
+
forTargetId(targetId: string): readonly TransferReceipt[];
|
|
186
|
+
/** phase 별 필터 (e.g. 'rolled-back' 만 — 실패 진단). */
|
|
187
|
+
forPhase(phase: TransferPhase): readonly TransferReceipt[];
|
|
188
|
+
/**
|
|
189
|
+
* sim-time 범위로 필터. transfer 의 initiatedAt 이 [startSimMs, endSimMs] 안에 있는지.
|
|
190
|
+
* 'overlap' 모드 — initiatedAt..committedAt 윈도우가 query 윈도우와 겹치면 포함.
|
|
191
|
+
*/
|
|
192
|
+
inTimeRange(startSimMs: number, endSimMs: number, mode?: 'init' | 'overlap'): readonly TransferReceipt[];
|
|
193
|
+
/** rejectReason 별 그룹화 — 실패 패턴 진단. */
|
|
194
|
+
groupByRejectReason(): Map<string, readonly TransferReceipt[]>;
|
|
195
|
+
/** 통계 — 전체 / phase 별 / 거부율 / 평균 transfer 시간 등. */
|
|
196
|
+
stats(): TransferLogStats;
|
|
197
|
+
/** 새 receipt 마다 호출되는 listener 등록. */
|
|
198
|
+
subscribe(listener: (receipt: TransferReceipt) => void): () => void;
|
|
199
|
+
clear(): void;
|
|
200
|
+
setMaxEntries(n: number): void;
|
|
201
|
+
/**
|
|
202
|
+
* 모든 receipt 를 JSON 안전한 plain object 배열로. live ref 제외, ID 만 포함.
|
|
203
|
+
* JSON.stringify(transferLog.toJSON()) 안전.
|
|
204
|
+
*/
|
|
205
|
+
toJSON(): TransferReceiptJSON[];
|
|
206
|
+
/**
|
|
207
|
+
* JSON 배열에서 entries 복원 (기존 entries 대체). 외부 viewer (extension) 가
|
|
208
|
+
* 저장된 로그를 로드해서 시각화할 때 사용.
|
|
209
|
+
*
|
|
210
|
+
* 복원된 receipt 는 source/target/carrier 의 live ref 가 undefined — ID 만으로
|
|
211
|
+
* 추적 (forCarrierId, sourceId, targetId 등). listener 에는 알림 안 함 (load
|
|
212
|
+
* 는 silent).
|
|
213
|
+
*/
|
|
214
|
+
fromJSON(json: TransferReceiptJSON[]): void;
|
|
215
|
+
/**
|
|
216
|
+
* 저장된 로그를 listener 에게 순서대로 다시 발화 — extension 이 세션 시작 시
|
|
217
|
+
* 기존 entries 도 받고 싶을 때. listener 가 새 receipt 와 replayed receipt 를
|
|
218
|
+
* 구분 못 하므로 호출자가 의도적으로 사용.
|
|
219
|
+
*/
|
|
220
|
+
replayTo(listener: (receipt: TransferReceipt) => void): void;
|
|
221
|
+
}
|
|
222
|
+
export declare const transferLog: TransferLogImpl;
|
|
223
|
+
export {};
|
|
224
|
+
//# sourceMappingURL=transfer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../src/transfer/transfer.ts"],"names":[],"mappings":"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"}
|