@honua/react 0.0.20-alpha.0
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/LICENSE +201 -0
- package/README.md +9 -0
- package/contract/analytics-sources.d.ts +149 -0
- package/contract/analytics-sources.d.ts.map +1 -0
- package/contract/analytics-sources.js +235 -0
- package/contract/edit-session.d.ts +203 -0
- package/contract/edit-session.d.ts.map +1 -0
- package/contract/edit-session.js +760 -0
- package/contract/edit-sketch.d.ts +91 -0
- package/contract/edit-sketch.d.ts.map +1 -0
- package/contract/edit-sketch.js +281 -0
- package/contract/index.d.ts +61 -0
- package/contract/index.d.ts.map +1 -0
- package/contract/index.js +51 -0
- package/contract/jobs.d.ts +149 -0
- package/contract/jobs.d.ts.map +1 -0
- package/contract/jobs.js +40 -0
- package/contract/source.d.ts +423 -0
- package/contract/source.d.ts.map +1 -0
- package/contract/source.js +3802 -0
- package/contract/spatial-aggregation.d.ts +336 -0
- package/contract/spatial-aggregation.d.ts.map +1 -0
- package/contract/spatial-aggregation.js +298 -0
- package/contract/temporal.d.ts +455 -0
- package/contract/temporal.d.ts.map +1 -0
- package/contract/temporal.js +146 -0
- package/contract/tiles.d.ts +370 -0
- package/contract/tiles.d.ts.map +1 -0
- package/contract/tiles.js +519 -0
- package/contract/types.d.ts +665 -0
- package/contract/types.d.ts.map +1 -0
- package/contract/types.js +175 -0
- package/contract/widget-source.d.ts +205 -0
- package/contract/widget-source.d.ts.map +1 -0
- package/contract/widget-source.js +1473 -0
- package/control-plane/client.d.ts +95 -0
- package/control-plane/client.d.ts.map +1 -0
- package/control-plane/client.js +374 -0
- package/control-plane/index.d.ts +18 -0
- package/control-plane/index.d.ts.map +1 -0
- package/control-plane/index.js +14 -0
- package/control-plane/types.d.ts +233 -0
- package/control-plane/types.d.ts.map +1 -0
- package/control-plane/types.js +7 -0
- package/core/batch.d.ts +37 -0
- package/core/batch.d.ts.map +1 -0
- package/core/batch.js +79 -0
- package/core/cache-state.d.ts +79 -0
- package/core/cache-state.d.ts.map +1 -0
- package/core/cache-state.js +87 -0
- package/core/client.d.ts +577 -0
- package/core/client.d.ts.map +1 -0
- package/core/client.js +1664 -0
- package/core/compatibility.d.ts +18 -0
- package/core/compatibility.d.ts.map +1 -0
- package/core/compatibility.js +245 -0
- package/core/errors.d.ts +107 -0
- package/core/errors.d.ts.map +1 -0
- package/core/errors.js +156 -0
- package/core/esri-geojson.d.ts +66 -0
- package/core/esri-geojson.d.ts.map +1 -0
- package/core/esri-geojson.js +363 -0
- package/core/geoservices.d.ts +34 -0
- package/core/geoservices.d.ts.map +1 -0
- package/core/geoservices.js +434 -0
- package/core/grpc-adapter.d.ts +23 -0
- package/core/grpc-adapter.d.ts.map +1 -0
- package/core/grpc-adapter.js +688 -0
- package/core/odata.d.ts +347 -0
- package/core/odata.d.ts.map +1 -0
- package/core/odata.js +913 -0
- package/core/ogc-conformance.d.ts +35 -0
- package/core/ogc-conformance.d.ts.map +1 -0
- package/core/ogc-conformance.js +134 -0
- package/core/ogc-features.d.ts +23 -0
- package/core/ogc-features.d.ts.map +1 -0
- package/core/ogc-features.js +114 -0
- package/core/ogc-maps.d.ts +49 -0
- package/core/ogc-maps.d.ts.map +1 -0
- package/core/ogc-maps.js +126 -0
- package/core/ogc-processes.d.ts +118 -0
- package/core/ogc-processes.d.ts.map +1 -0
- package/core/ogc-processes.js +423 -0
- package/core/ogc-records.d.ts +75 -0
- package/core/ogc-records.d.ts.map +1 -0
- package/core/ogc-records.js +251 -0
- package/core/ogc-tiles.d.ts +125 -0
- package/core/ogc-tiles.d.ts.map +1 -0
- package/core/ogc-tiles.js +183 -0
- package/core/path-utils.d.ts +69 -0
- package/core/path-utils.d.ts.map +1 -0
- package/core/path-utils.js +123 -0
- package/core/pbf-decoder.d.ts +39 -0
- package/core/pbf-decoder.d.ts.map +1 -0
- package/core/pbf-decoder.js +702 -0
- package/core/process-runner.d.ts +104 -0
- package/core/process-runner.d.ts.map +1 -0
- package/core/process-runner.js +315 -0
- package/core/protocol-transport.d.ts +76 -0
- package/core/protocol-transport.d.ts.map +1 -0
- package/core/protocol-transport.js +15 -0
- package/core/query-builder.d.ts +261 -0
- package/core/query-builder.d.ts.map +1 -0
- package/core/query-builder.js +538 -0
- package/core/request-pipeline.d.ts +88 -0
- package/core/request-pipeline.d.ts.map +1 -0
- package/core/request-pipeline.js +273 -0
- package/core/spatial-filter.d.ts +93 -0
- package/core/spatial-filter.d.ts.map +1 -0
- package/core/spatial-filter.js +153 -0
- package/core/stac.d.ts +55 -0
- package/core/stac.d.ts.map +1 -0
- package/core/stac.js +229 -0
- package/core/surfaces.d.ts +527 -0
- package/core/surfaces.d.ts.map +1 -0
- package/core/surfaces.js +1917 -0
- package/core/terrain-elevation.d.ts +114 -0
- package/core/terrain-elevation.d.ts.map +1 -0
- package/core/terrain-elevation.js +150 -0
- package/core/types.d.ts +1355 -0
- package/core/types.d.ts.map +1 -0
- package/core/types.js +13 -0
- package/core/wfs-capabilities.d.ts +143 -0
- package/core/wfs-capabilities.d.ts.map +1 -0
- package/core/wfs-capabilities.js +478 -0
- package/core/wfs-filter.d.ts +118 -0
- package/core/wfs-filter.d.ts.map +1 -0
- package/core/wfs-filter.js +634 -0
- package/core/wfs.d.ts +219 -0
- package/core/wfs.d.ts.map +1 -0
- package/core/wfs.js +406 -0
- package/core/wire-shared.d.ts +32 -0
- package/core/wire-shared.d.ts.map +1 -0
- package/core/wire-shared.js +76 -0
- package/core/wms-axis.d.ts +36 -0
- package/core/wms-axis.d.ts.map +1 -0
- package/core/wms-axis.js +73 -0
- package/core/wms-capabilities.d.ts +110 -0
- package/core/wms-capabilities.d.ts.map +1 -0
- package/core/wms-capabilities.js +559 -0
- package/core/wms-types.d.ts +128 -0
- package/core/wms-types.d.ts.map +1 -0
- package/core/wms-types.js +32 -0
- package/core/wms.d.ts +144 -0
- package/core/wms.d.ts.map +1 -0
- package/core/wms.js +338 -0
- package/core/wmts-capabilities.d.ts +82 -0
- package/core/wmts-capabilities.d.ts.map +1 -0
- package/core/wmts-capabilities.js +402 -0
- package/core/wmts.d.ts +103 -0
- package/core/wmts.d.ts.map +1 -0
- package/core/wmts.js +332 -0
- package/core/xml-text.d.ts +20 -0
- package/core/xml-text.d.ts.map +1 -0
- package/core/xml-text.js +85 -0
- package/esri-compat/basemap-gallery.d.ts +38 -0
- package/esri-compat/basemap-gallery.d.ts.map +1 -0
- package/esri-compat/basemap-gallery.js +159 -0
- package/esri-compat/basemap-layer-list.d.ts +35 -0
- package/esri-compat/basemap-layer-list.d.ts.map +1 -0
- package/esri-compat/basemap-layer-list.js +139 -0
- package/esri-compat/basemap.d.ts +32 -0
- package/esri-compat/basemap.d.ts.map +1 -0
- package/esri-compat/basemap.js +84 -0
- package/esri-compat/bookmarks.d.ts +36 -0
- package/esri-compat/bookmarks.d.ts.map +1 -0
- package/esri-compat/bookmarks.js +108 -0
- package/esri-compat/class-breaks-renderer.d.ts +50 -0
- package/esri-compat/class-breaks-renderer.d.ts.map +1 -0
- package/esri-compat/class-breaks-renderer.js +164 -0
- package/esri-compat/color.d.ts +22 -0
- package/esri-compat/color.d.ts.map +1 -0
- package/esri-compat/color.js +106 -0
- package/esri-compat/controls.d.ts +174 -0
- package/esri-compat/controls.d.ts.map +1 -0
- package/esri-compat/controls.js +479 -0
- package/esri-compat/coordinate-conversion.d.ts +41 -0
- package/esri-compat/coordinate-conversion.d.ts.map +1 -0
- package/esri-compat/coordinate-conversion.js +125 -0
- package/esri-compat/directions.d.ts +45 -0
- package/esri-compat/directions.d.ts.map +1 -0
- package/esri-compat/directions.js +123 -0
- package/esri-compat/editor.d.ts +47 -0
- package/esri-compat/editor.d.ts.map +1 -0
- package/esri-compat/editor.js +170 -0
- package/esri-compat/esri-config.d.ts +16 -0
- package/esri-compat/esri-config.d.ts.map +1 -0
- package/esri-compat/esri-config.js +23 -0
- package/esri-compat/esri-request.d.ts +17 -0
- package/esri-compat/esri-request.d.ts.map +1 -0
- package/esri-compat/esri-request.js +127 -0
- package/esri-compat/event-bus.d.ts +106 -0
- package/esri-compat/event-bus.d.ts.map +1 -0
- package/esri-compat/event-bus.js +90 -0
- package/esri-compat/expand.d.ts +36 -0
- package/esri-compat/expand.d.ts.map +1 -0
- package/esri-compat/expand.js +97 -0
- package/esri-compat/extent.d.ts +43 -0
- package/esri-compat/extent.d.ts.map +1 -0
- package/esri-compat/extent.js +140 -0
- package/esri-compat/feature-filter.d.ts +55 -0
- package/esri-compat/feature-filter.d.ts.map +1 -0
- package/esri-compat/feature-filter.js +109 -0
- package/esri-compat/feature-form.d.ts +64 -0
- package/esri-compat/feature-form.d.ts.map +1 -0
- package/esri-compat/feature-form.js +137 -0
- package/esri-compat/feature-layer.d.ts +173 -0
- package/esri-compat/feature-layer.d.ts.map +1 -0
- package/esri-compat/feature-layer.js +661 -0
- package/esri-compat/feature-set.d.ts +32 -0
- package/esri-compat/feature-set.d.ts.map +1 -0
- package/esri-compat/feature-set.js +80 -0
- package/esri-compat/feature-table.d.ts +141 -0
- package/esri-compat/feature-table.d.ts.map +1 -0
- package/esri-compat/feature-table.js +500 -0
- package/esri-compat/feature-templates.d.ts +41 -0
- package/esri-compat/feature-templates.d.ts.map +1 -0
- package/esri-compat/feature-templates.js +97 -0
- package/esri-compat/feature.d.ts +33 -0
- package/esri-compat/feature.d.ts.map +1 -0
- package/esri-compat/feature.js +83 -0
- package/esri-compat/geojson-layer.d.ts +86 -0
- package/esri-compat/geojson-layer.d.ts.map +1 -0
- package/esri-compat/geojson-layer.js +191 -0
- package/esri-compat/geometry-engine.d.ts +107 -0
- package/esri-compat/geometry-engine.d.ts.map +1 -0
- package/esri-compat/geometry-engine.js +266 -0
- package/esri-compat/graphic.d.ts +46 -0
- package/esri-compat/graphic.d.ts.map +1 -0
- package/esri-compat/graphic.js +103 -0
- package/esri-compat/graphics-layer.d.ts +49 -0
- package/esri-compat/graphics-layer.d.ts.map +1 -0
- package/esri-compat/graphics-layer.js +185 -0
- package/esri-compat/group-layer.d.ts +48 -0
- package/esri-compat/group-layer.d.ts.map +1 -0
- package/esri-compat/group-layer.js +212 -0
- package/esri-compat/identify.d.ts +71 -0
- package/esri-compat/identify.d.ts.map +1 -0
- package/esri-compat/identify.js +299 -0
- package/esri-compat/identity-manager.d.ts +31 -0
- package/esri-compat/identity-manager.d.ts.map +1 -0
- package/esri-compat/identity-manager.js +115 -0
- package/esri-compat/imagery-layer.d.ts +78 -0
- package/esri-compat/imagery-layer.d.ts.map +1 -0
- package/esri-compat/imagery-layer.js +167 -0
- package/esri-compat/label-class.d.ts +31 -0
- package/esri-compat/label-class.d.ts.map +1 -0
- package/esri-compat/label-class.js +102 -0
- package/esri-compat/layer-list.d.ts +77 -0
- package/esri-compat/layer-list.d.ts.map +1 -0
- package/esri-compat/layer-list.js +342 -0
- package/esri-compat/legend.d.ts +53 -0
- package/esri-compat/legend.d.ts.map +1 -0
- package/esri-compat/legend.js +254 -0
- package/esri-compat/map-image-layer.d.ts +162 -0
- package/esri-compat/map-image-layer.d.ts.map +1 -0
- package/esri-compat/map-image-layer.js +709 -0
- package/esri-compat/map-view.d.ts +323 -0
- package/esri-compat/map-view.d.ts.map +1 -0
- package/esri-compat/map-view.js +1175 -0
- package/esri-compat/map.d.ts +47 -0
- package/esri-compat/map.d.ts.map +1 -0
- package/esri-compat/map.js +209 -0
- package/esri-compat/measurement-2d.d.ts +61 -0
- package/esri-compat/measurement-2d.d.ts.map +1 -0
- package/esri-compat/measurement-2d.js +184 -0
- package/esri-compat/measurement.d.ts +45 -0
- package/esri-compat/measurement.d.ts.map +1 -0
- package/esri-compat/measurement.js +193 -0
- package/esri-compat/oauth-info.d.ts +35 -0
- package/esri-compat/oauth-info.d.ts.map +1 -0
- package/esri-compat/oauth-info.js +115 -0
- package/esri-compat/picture-marker-symbol.d.ts +35 -0
- package/esri-compat/picture-marker-symbol.d.ts.map +1 -0
- package/esri-compat/picture-marker-symbol.js +126 -0
- package/esri-compat/point.d.ts +31 -0
- package/esri-compat/point.d.ts.map +1 -0
- package/esri-compat/point.js +102 -0
- package/esri-compat/polygon.d.ts +31 -0
- package/esri-compat/polygon.d.ts.map +1 -0
- package/esri-compat/polygon.js +107 -0
- package/esri-compat/polyline.d.ts +31 -0
- package/esri-compat/polyline.d.ts.map +1 -0
- package/esri-compat/polyline.js +107 -0
- package/esri-compat/popup-template.d.ts +55 -0
- package/esri-compat/popup-template.d.ts.map +1 -0
- package/esri-compat/popup-template.js +128 -0
- package/esri-compat/popup.d.ts +54 -0
- package/esri-compat/popup.d.ts.map +1 -0
- package/esri-compat/popup.js +312 -0
- package/esri-compat/print.d.ts +47 -0
- package/esri-compat/print.d.ts.map +1 -0
- package/esri-compat/print.js +105 -0
- package/esri-compat/query.d.ts +58 -0
- package/esri-compat/query.d.ts.map +1 -0
- package/esri-compat/query.js +128 -0
- package/esri-compat/reactive-utils.d.ts +24 -0
- package/esri-compat/reactive-utils.d.ts.map +1 -0
- package/esri-compat/reactive-utils.js +193 -0
- package/esri-compat/request.d.ts +41 -0
- package/esri-compat/request.d.ts.map +1 -0
- package/esri-compat/request.js +253 -0
- package/esri-compat/route-layer.d.ts +59 -0
- package/esri-compat/route-layer.d.ts.map +1 -0
- package/esri-compat/route-layer.js +223 -0
- package/esri-compat/route-task.d.ts +88 -0
- package/esri-compat/route-task.d.ts.map +1 -0
- package/esri-compat/route-task.js +225 -0
- package/esri-compat/scene-view.d.ts +41 -0
- package/esri-compat/scene-view.d.ts.map +1 -0
- package/esri-compat/scene-view.js +68 -0
- package/esri-compat/search.d.ts +112 -0
- package/esri-compat/search.d.ts.map +1 -0
- package/esri-compat/search.js +820 -0
- package/esri-compat/simple-fill-symbol.d.ts +27 -0
- package/esri-compat/simple-fill-symbol.d.ts.map +1 -0
- package/esri-compat/simple-fill-symbol.js +85 -0
- package/esri-compat/simple-line-symbol.d.ts +27 -0
- package/esri-compat/simple-line-symbol.d.ts.map +1 -0
- package/esri-compat/simple-line-symbol.js +85 -0
- package/esri-compat/simple-marker-symbol.d.ts +29 -0
- package/esri-compat/simple-marker-symbol.d.ts.map +1 -0
- package/esri-compat/simple-marker-symbol.js +92 -0
- package/esri-compat/simple-renderer.d.ts +29 -0
- package/esri-compat/simple-renderer.d.ts.map +1 -0
- package/esri-compat/simple-renderer.js +92 -0
- package/esri-compat/sketch.d.ts +64 -0
- package/esri-compat/sketch.d.ts.map +1 -0
- package/esri-compat/sketch.js +227 -0
- package/esri-compat/spatial-reference.d.ts +31 -0
- package/esri-compat/spatial-reference.d.ts.map +1 -0
- package/esri-compat/spatial-reference.js +102 -0
- package/esri-compat/swipe.d.ts +34 -0
- package/esri-compat/swipe.d.ts.map +1 -0
- package/esri-compat/swipe.js +93 -0
- package/esri-compat/table-list.d.ts +36 -0
- package/esri-compat/table-list.d.ts.map +1 -0
- package/esri-compat/table-list.js +126 -0
- package/esri-compat/text-symbol.d.ts +37 -0
- package/esri-compat/text-symbol.d.ts.map +1 -0
- package/esri-compat/text-symbol.js +123 -0
- package/esri-compat/tile-layer.d.ts +52 -0
- package/esri-compat/tile-layer.d.ts.map +1 -0
- package/esri-compat/tile-layer.js +168 -0
- package/esri-compat/time-slider.d.ts +70 -0
- package/esri-compat/time-slider.d.ts.map +1 -0
- package/esri-compat/time-slider.js +208 -0
- package/esri-compat/track.d.ts +51 -0
- package/esri-compat/track.d.ts.map +1 -0
- package/esri-compat/track.js +174 -0
- package/esri-compat/unique-value-renderer.d.ts +41 -0
- package/esri-compat/unique-value-renderer.d.ts.map +1 -0
- package/esri-compat/unique-value-renderer.js +127 -0
- package/esri-compat/url.d.ts +13 -0
- package/esri-compat/url.d.ts.map +1 -0
- package/esri-compat/url.js +68 -0
- package/esri-compat/vector-tile-layer.d.ts +47 -0
- package/esri-compat/vector-tile-layer.d.ts.map +1 -0
- package/esri-compat/vector-tile-layer.js +130 -0
- package/esri-compat/web-map.d.ts +14 -0
- package/esri-compat/web-map.d.ts.map +1 -0
- package/esri-compat/web-map.js +24 -0
- package/esri-compat/wfs-layer.d.ts +64 -0
- package/esri-compat/wfs-layer.d.ts.map +1 -0
- package/esri-compat/wfs-layer.js +145 -0
- package/esri-compat/wms-layer.d.ts +76 -0
- package/esri-compat/wms-layer.d.ts.map +1 -0
- package/esri-compat/wms-layer.js +157 -0
- package/exploration/context.d.ts +25 -0
- package/exploration/context.d.ts.map +1 -0
- package/exploration/context.js +396 -0
- package/exploration/index.d.ts +27 -0
- package/exploration/index.d.ts.map +1 -0
- package/exploration/index.js +24 -0
- package/exploration/presets.d.ts +27 -0
- package/exploration/presets.d.ts.map +1 -0
- package/exploration/presets.js +114 -0
- package/exploration/reducer.d.ts +23 -0
- package/exploration/reducer.d.ts.map +1 -0
- package/exploration/reducer.js +332 -0
- package/exploration/selection.d.ts +25 -0
- package/exploration/selection.d.ts.map +1 -0
- package/exploration/selection.js +34 -0
- package/exploration/selectors.d.ts +56 -0
- package/exploration/selectors.d.ts.map +1 -0
- package/exploration/selectors.js +110 -0
- package/exploration/types.d.ts +294 -0
- package/exploration/types.d.ts.map +1 -0
- package/exploration/types.js +33 -0
- package/expr/expression.d.ts +457 -0
- package/expr/expression.d.ts.map +1 -0
- package/expr/expression.js +663 -0
- package/expr/index.d.ts +32 -0
- package/expr/index.d.ts.map +1 -0
- package/expr/index.js +30 -0
- package/gen/honua/v1/feature_service_pb.d.ts +918 -0
- package/gen/honua/v1/feature_service_pb.d.ts.map +1 -0
- package/gen/honua/v1/feature_service_pb.js +375 -0
- package/generated-app/errors.d.ts +41 -0
- package/generated-app/errors.d.ts.map +1 -0
- package/generated-app/errors.js +41 -0
- package/generated-app/index.d.ts +17 -0
- package/generated-app/index.d.ts.map +1 -0
- package/generated-app/index.js +12 -0
- package/generated-app/manifest.d.ts +183 -0
- package/generated-app/manifest.d.ts.map +1 -0
- package/generated-app/manifest.js +14 -0
- package/generated-app/projection.d.ts +44 -0
- package/generated-app/projection.d.ts.map +1 -0
- package/generated-app/projection.js +234 -0
- package/generated-app/runtime.d.ts +215 -0
- package/generated-app/runtime.d.ts.map +1 -0
- package/generated-app/runtime.js +1196 -0
- package/interactions/detail-model.d.ts +54 -0
- package/interactions/detail-model.d.ts.map +1 -0
- package/interactions/detail-model.js +105 -0
- package/interactions/exploration-bindings.d.ts +120 -0
- package/interactions/exploration-bindings.d.ts.map +1 -0
- package/interactions/exploration-bindings.js +218 -0
- package/interactions/feature-state.d.ts +144 -0
- package/interactions/feature-state.d.ts.map +1 -0
- package/interactions/feature-state.js +169 -0
- package/interactions/hit-test.d.ts +112 -0
- package/interactions/hit-test.d.ts.map +1 -0
- package/interactions/hit-test.js +291 -0
- package/interactions/index.d.ts +31 -0
- package/interactions/index.d.ts.map +1 -0
- package/interactions/index.js +24 -0
- package/interactions/share-state.d.ts +36 -0
- package/interactions/share-state.d.ts.map +1 -0
- package/interactions/share-state.js +123 -0
- package/map/feature-service-adapter.d.ts +138 -0
- package/map/feature-service-adapter.d.ts.map +1 -0
- package/map/feature-service-adapter.js +279 -0
- package/map/honua-map.d.ts +203 -0
- package/map/honua-map.d.ts.map +1 -0
- package/map/honua-map.js +347 -0
- package/map/index.d.ts +27 -0
- package/map/index.d.ts.map +1 -0
- package/map/index.js +22 -0
- package/map/maplibre-target.d.ts +103 -0
- package/map/maplibre-target.d.ts.map +1 -0
- package/map/maplibre-target.js +164 -0
- package/map/webmap-maplibre.d.ts +60 -0
- package/map/webmap-maplibre.d.ts.map +1 -0
- package/map/webmap-maplibre.js +212 -0
- package/package.json +37 -0
- package/react/context.d.ts +32 -0
- package/react/context.d.ts.map +1 -0
- package/react/context.js +19 -0
- package/react/honua-layer.d.ts +35 -0
- package/react/honua-layer.d.ts.map +1 -0
- package/react/honua-layer.js +47 -0
- package/react/honua-map.d.ts +83 -0
- package/react/honua-map.d.ts.map +1 -0
- package/react/honua-map.js +109 -0
- package/react/honua-popup.d.ts +26 -0
- package/react/honua-popup.d.ts.map +1 -0
- package/react/honua-popup.js +34 -0
- package/react/hooks.d.ts +127 -0
- package/react/hooks.d.ts.map +1 -0
- package/react/hooks.js +206 -0
- package/react/index.d.ts +42 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +34 -0
- package/react/provider.d.ts +36 -0
- package/react/provider.d.ts.map +1 -0
- package/react/provider.js +35 -0
- package/react/query-cache.d.ts +76 -0
- package/react/query-cache.d.ts.map +1 -0
- package/react/query-cache.js +188 -0
- package/runtime/diff.d.ts +31 -0
- package/runtime/diff.d.ts.map +1 -0
- package/runtime/diff.js +143 -0
- package/runtime/errors.d.ts +40 -0
- package/runtime/errors.d.ts.map +1 -0
- package/runtime/errors.js +35 -0
- package/runtime/index.d.ts +59 -0
- package/runtime/index.d.ts.map +1 -0
- package/runtime/index.js +43 -0
- package/runtime/legend.d.ts +23 -0
- package/runtime/legend.d.ts.map +1 -0
- package/runtime/legend.js +38 -0
- package/runtime/load-package.d.ts +125 -0
- package/runtime/load-package.d.ts.map +1 -0
- package/runtime/load-package.js +264 -0
- package/runtime/map-package-fetch.d.ts +107 -0
- package/runtime/map-package-fetch.d.ts.map +1 -0
- package/runtime/map-package-fetch.js +336 -0
- package/runtime/map-package-realtime.d.ts +169 -0
- package/runtime/map-package-realtime.d.ts.map +1 -0
- package/runtime/map-package-realtime.js +350 -0
- package/runtime/map-package-validation.d.ts +43 -0
- package/runtime/map-package-validation.d.ts.map +1 -0
- package/runtime/map-package-validation.js +269 -0
- package/runtime/map-package-watch.d.ts +78 -0
- package/runtime/map-package-watch.d.ts.map +1 -0
- package/runtime/map-package-watch.js +695 -0
- package/runtime/map-package.d.ts +167 -0
- package/runtime/map-package.d.ts.map +1 -0
- package/runtime/map-package.js +15 -0
- package/runtime/ogc-styles.d.ts +110 -0
- package/runtime/ogc-styles.d.ts.map +1 -0
- package/runtime/ogc-styles.js +195 -0
- package/runtime/popups.d.ts +62 -0
- package/runtime/popups.d.ts.map +1 -0
- package/runtime/popups.js +95 -0
- package/runtime/query-tiles.d.ts +217 -0
- package/runtime/query-tiles.d.ts.map +1 -0
- package/runtime/query-tiles.js +801 -0
- package/runtime/runtime.d.ts +243 -0
- package/runtime/runtime.d.ts.map +1 -0
- package/runtime/runtime.js +1147 -0
- package/runtime/source-bridge.d.ts +99 -0
- package/runtime/source-bridge.d.ts.map +1 -0
- package/runtime/source-bridge.js +401 -0
- package/runtime/style-compose.d.ts +46 -0
- package/runtime/style-compose.d.ts.map +1 -0
- package/runtime/style-compose.js +144 -0
- package/runtime/style-interactions.d.ts +141 -0
- package/runtime/style-interactions.d.ts.map +1 -0
- package/runtime/style-interactions.js +574 -0
- package/runtime/style-spec-validation.d.ts +23 -0
- package/runtime/style-spec-validation.d.ts.map +1 -0
- package/runtime/style-spec-validation.js +357 -0
- package/studio/capability-manifest.d.ts +285 -0
- package/studio/capability-manifest.d.ts.map +1 -0
- package/studio/capability-manifest.js +59 -0
- package/studio/chart-spec.d.ts +85 -0
- package/studio/chart-spec.d.ts.map +1 -0
- package/studio/chart-spec.js +106 -0
- package/studio/index.d.ts +34 -0
- package/studio/index.d.ts.map +1 -0
- package/studio/index.js +27 -0
- package/studio/provenance.d.ts +131 -0
- package/studio/provenance.d.ts.map +1 -0
- package/studio/provenance.js +39 -0
- package/studio/publish.d.ts +64 -0
- package/studio/publish.d.ts.map +1 -0
- package/studio/publish.js +13 -0
- package/studio/types.d.ts +278 -0
- package/studio/types.d.ts.map +1 -0
- package/studio/types.js +71 -0
- package/studio/validate.d.ts +45 -0
- package/studio/validate.d.ts.map +1 -0
- package/studio/validate.js +255 -0
- package/studio/validation.d.ts +112 -0
- package/studio/validation.d.ts.map +1 -0
- package/studio/validation.js +42 -0
- package/style/factory.d.ts +30 -0
- package/style/factory.d.ts.map +1 -0
- package/style/factory.js +61 -0
- package/style/index.d.ts +25 -0
- package/style/index.d.ts.map +1 -0
- package/style/index.js +24 -0
- package/style/specification.d.ts +203 -0
- package/style/specification.d.ts.map +1 -0
- package/style/specification.js +178 -0
- package/style/wms-wmts-resolvers.d.ts +38 -0
- package/style/wms-wmts-resolvers.d.ts.map +1 -0
- package/style/wms-wmts-resolvers.js +92 -0
- package/webmap/contract.d.ts +28 -0
- package/webmap/contract.d.ts.map +1 -0
- package/webmap/contract.js +130 -0
- package/webmap/convert-basemap.d.ts +17 -0
- package/webmap/convert-basemap.d.ts.map +1 -0
- package/webmap/convert-basemap.js +78 -0
- package/webmap/convert-extent.d.ts +17 -0
- package/webmap/convert-extent.d.ts.map +1 -0
- package/webmap/convert-extent.js +114 -0
- package/webmap/convert-label.d.ts +13 -0
- package/webmap/convert-label.d.ts.map +1 -0
- package/webmap/convert-label.js +125 -0
- package/webmap/convert-layer.d.ts +22 -0
- package/webmap/convert-layer.d.ts.map +1 -0
- package/webmap/convert-layer.js +181 -0
- package/webmap/convert-popup.d.ts +34 -0
- package/webmap/convert-popup.d.ts.map +1 -0
- package/webmap/convert-popup.js +68 -0
- package/webmap/convert-renderer.d.ts +17 -0
- package/webmap/convert-renderer.d.ts.map +1 -0
- package/webmap/convert-renderer.js +161 -0
- package/webmap/convert-symbol.d.ts +17 -0
- package/webmap/convert-symbol.d.ts.map +1 -0
- package/webmap/convert-symbol.js +122 -0
- package/webmap/index.d.ts +44 -0
- package/webmap/index.d.ts.map +1 -0
- package/webmap/index.js +33 -0
- package/webmap/parse.d.ts +25 -0
- package/webmap/parse.d.ts.map +1 -0
- package/webmap/parse.js +83 -0
- package/webmap/types.d.ts +264 -0
- package/webmap/types.d.ts.map +1 -0
- package/webmap/types.js +13 -0
- package/webmap/warnings.d.ts +30 -0
- package/webmap/warnings.d.ts.map +1 -0
- package/webmap/warnings.js +37 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versioned manifest/profile consumed by `@honua/sdk-js/generated-app`.
|
|
3
|
+
*
|
|
4
|
+
* The manifest is the browser-safe projection of the canonical builder
|
|
5
|
+
* package: it does not define a new wire contract, it names the SDK widget
|
|
6
|
+
* bindings the preview runtime needs to hydrate one generated operations
|
|
7
|
+
* dashboard slice.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import type { AggregationMetric, FeatureId, WidgetTimeSeriesInterval } from "../contract/index.js";
|
|
12
|
+
import type { ExplorationState, FilterClause, LinkedViewPresetName } from "../exploration/index.js";
|
|
13
|
+
import type { HonuaMapPackage } from "../runtime/index.js";
|
|
14
|
+
export declare const HONUA_GENERATED_APP_MANIFEST_FORMAT_V1: "honua_generated_app_manifest.v1";
|
|
15
|
+
export declare const HONUA_GENERATED_APP_MANIFEST_ARTIFACT_KIND: "honua.generated-app.manifest";
|
|
16
|
+
export declare const HONUA_GENERATED_APP_MANIFEST_ARTIFACT_VERSION: 1;
|
|
17
|
+
export declare const HONUA_GENERATED_APP_PROFILE_OPERATIONS_DASHBOARD_V1: "operations-dashboard.v1";
|
|
18
|
+
export type HonuaGeneratedAppManifestFormat = typeof HONUA_GENERATED_APP_MANIFEST_FORMAT_V1;
|
|
19
|
+
export type HonuaGeneratedAppManifestArtifactKind = typeof HONUA_GENERATED_APP_MANIFEST_ARTIFACT_KIND;
|
|
20
|
+
export type HonuaGeneratedAppManifestArtifactVersion = typeof HONUA_GENERATED_APP_MANIFEST_ARTIFACT_VERSION;
|
|
21
|
+
export type HonuaGeneratedAppProfile = typeof HONUA_GENERATED_APP_PROFILE_OPERATIONS_DASHBOARD_V1;
|
|
22
|
+
export type HonuaGeneratedAppWidgetKind = "map" | "table" | "list" | "count" | "chart" | "filter";
|
|
23
|
+
export type HonuaGeneratedAppChartKind = "categories" | "histogram" | "time-series";
|
|
24
|
+
export interface HonuaGeneratedAppFieldBinding {
|
|
25
|
+
readonly sourceId?: string;
|
|
26
|
+
readonly primaryKey?: string;
|
|
27
|
+
readonly titleField?: string;
|
|
28
|
+
readonly subtitleField?: string;
|
|
29
|
+
readonly categoryField?: string;
|
|
30
|
+
readonly filterField?: string;
|
|
31
|
+
readonly tableFields?: ReadonlyArray<string>;
|
|
32
|
+
readonly searchFields?: ReadonlyArray<string>;
|
|
33
|
+
readonly layerId?: string;
|
|
34
|
+
readonly sourceLayer?: string;
|
|
35
|
+
readonly [extra: string]: unknown;
|
|
36
|
+
}
|
|
37
|
+
export interface HonuaGeneratedAppDataBinding {
|
|
38
|
+
readonly sourceId: string;
|
|
39
|
+
/**
|
|
40
|
+
* Maximum records the default preview loader requests from the source.
|
|
41
|
+
* Hosts that need larger/realtime result sets should pass a custom
|
|
42
|
+
* `featureLoader` to the runtime.
|
|
43
|
+
*/
|
|
44
|
+
readonly previewLimit?: number;
|
|
45
|
+
readonly [extra: string]: unknown;
|
|
46
|
+
}
|
|
47
|
+
export interface HonuaGeneratedAppWidgetBase {
|
|
48
|
+
readonly id: string;
|
|
49
|
+
readonly kind: HonuaGeneratedAppWidgetKind;
|
|
50
|
+
readonly title?: string;
|
|
51
|
+
readonly sourceId?: string;
|
|
52
|
+
readonly [extra: string]: unknown;
|
|
53
|
+
}
|
|
54
|
+
export interface HonuaGeneratedAppMapWidget extends HonuaGeneratedAppWidgetBase {
|
|
55
|
+
readonly kind: "map";
|
|
56
|
+
readonly layerId?: string;
|
|
57
|
+
readonly sourceLayer?: string;
|
|
58
|
+
readonly showLegend?: boolean;
|
|
59
|
+
readonly showSearch?: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface HonuaGeneratedAppTableWidget extends HonuaGeneratedAppWidgetBase {
|
|
62
|
+
readonly kind: "table" | "list";
|
|
63
|
+
readonly fields?: ReadonlyArray<string>;
|
|
64
|
+
readonly primaryKey?: string;
|
|
65
|
+
readonly titleField?: string;
|
|
66
|
+
readonly subtitleField?: string;
|
|
67
|
+
readonly pageSize?: number;
|
|
68
|
+
}
|
|
69
|
+
export interface HonuaGeneratedAppCountWidget extends HonuaGeneratedAppWidgetBase {
|
|
70
|
+
readonly kind: "count";
|
|
71
|
+
readonly label?: string;
|
|
72
|
+
}
|
|
73
|
+
export interface HonuaGeneratedAppChartWidget extends HonuaGeneratedAppWidgetBase {
|
|
74
|
+
readonly kind: "chart";
|
|
75
|
+
readonly chartKind?: HonuaGeneratedAppChartKind;
|
|
76
|
+
readonly groupBy?: string;
|
|
77
|
+
readonly field?: string;
|
|
78
|
+
readonly bins?: number;
|
|
79
|
+
readonly min?: number;
|
|
80
|
+
readonly max?: number;
|
|
81
|
+
readonly interval?: WidgetTimeSeriesInterval;
|
|
82
|
+
readonly start?: string | number;
|
|
83
|
+
readonly end?: string | number;
|
|
84
|
+
readonly fillMissing?: boolean;
|
|
85
|
+
readonly metric?: AggregationMetric;
|
|
86
|
+
}
|
|
87
|
+
export interface HonuaGeneratedAppFilterOption {
|
|
88
|
+
readonly value: string | number | boolean;
|
|
89
|
+
readonly label?: string;
|
|
90
|
+
}
|
|
91
|
+
export interface HonuaGeneratedAppFilterWidget extends HonuaGeneratedAppWidgetBase {
|
|
92
|
+
readonly kind: "filter";
|
|
93
|
+
readonly field: string;
|
|
94
|
+
readonly label?: string;
|
|
95
|
+
readonly options?: ReadonlyArray<HonuaGeneratedAppFilterOption>;
|
|
96
|
+
}
|
|
97
|
+
export type HonuaGeneratedAppWidget = HonuaGeneratedAppMapWidget | HonuaGeneratedAppTableWidget | HonuaGeneratedAppCountWidget | HonuaGeneratedAppChartWidget | HonuaGeneratedAppFilterWidget;
|
|
98
|
+
export interface HonuaGeneratedAppLayout {
|
|
99
|
+
readonly kind: "operations-dashboard";
|
|
100
|
+
readonly widgets: ReadonlyArray<HonuaGeneratedAppWidget>;
|
|
101
|
+
}
|
|
102
|
+
export interface HonuaGeneratedAppManifest {
|
|
103
|
+
readonly format: HonuaGeneratedAppManifestFormat;
|
|
104
|
+
readonly profile: HonuaGeneratedAppProfile;
|
|
105
|
+
readonly appId: string;
|
|
106
|
+
readonly title?: string;
|
|
107
|
+
readonly description?: string;
|
|
108
|
+
readonly version?: string;
|
|
109
|
+
readonly data: HonuaGeneratedAppDataBinding;
|
|
110
|
+
readonly mapPackageId?: string;
|
|
111
|
+
readonly mapPackage?: HonuaMapPackage;
|
|
112
|
+
readonly layout: HonuaGeneratedAppLayout;
|
|
113
|
+
readonly bindings?: HonuaGeneratedAppFieldBinding;
|
|
114
|
+
readonly initialState?: Partial<ExplorationState>;
|
|
115
|
+
readonly linkedViewPreset?: LinkedViewPresetName;
|
|
116
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
117
|
+
readonly [extra: string]: unknown;
|
|
118
|
+
}
|
|
119
|
+
export interface HonuaGeneratedAppManifestArtifact {
|
|
120
|
+
readonly artifactKind: HonuaGeneratedAppManifestArtifactKind;
|
|
121
|
+
readonly artifactVersion: HonuaGeneratedAppManifestArtifactVersion;
|
|
122
|
+
readonly manifest: HonuaGeneratedAppManifest;
|
|
123
|
+
readonly createdAt?: string;
|
|
124
|
+
readonly source?: string;
|
|
125
|
+
readonly [extra: string]: unknown;
|
|
126
|
+
}
|
|
127
|
+
export interface HonuaGeneratedAppAssetRef {
|
|
128
|
+
readonly id: string;
|
|
129
|
+
readonly kind: "map-package" | "app-package" | "manifest" | "file" | "artifact" | (string & {});
|
|
130
|
+
readonly url?: string;
|
|
131
|
+
readonly mediaType?: string;
|
|
132
|
+
readonly [extra: string]: unknown;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Structural `AppPackage` subset the SDK generated-app projection consumes.
|
|
136
|
+
* The canonical server object remains authoritative; this interface only names
|
|
137
|
+
* the `manifest_artifact` bridge and stable package identity the browser needs.
|
|
138
|
+
*/
|
|
139
|
+
export interface HonuaGeneratedAppPackage {
|
|
140
|
+
readonly id: string;
|
|
141
|
+
readonly version: string;
|
|
142
|
+
readonly assets?: ReadonlyArray<HonuaGeneratedAppAssetRef>;
|
|
143
|
+
readonly manifest_artifact?: HonuaGeneratedAppManifestArtifact | HonuaGeneratedAppManifest;
|
|
144
|
+
readonly manifestArtifact?: HonuaGeneratedAppManifestArtifact | HonuaGeneratedAppManifest;
|
|
145
|
+
readonly mapPackage?: HonuaMapPackage;
|
|
146
|
+
readonly metadata?: unknown;
|
|
147
|
+
readonly [extra: string]: unknown;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Structural `BuildSpec` subset used by the SDK projection helper. Canonical
|
|
151
|
+
* builders may carry richer fields; additive content is preserved on
|
|
152
|
+
* `manifest.metadata.buildSpec`.
|
|
153
|
+
*/
|
|
154
|
+
export interface HonuaGeneratedAppBuildSpec {
|
|
155
|
+
readonly id?: string;
|
|
156
|
+
readonly appId?: string;
|
|
157
|
+
readonly title?: string;
|
|
158
|
+
readonly description?: string;
|
|
159
|
+
readonly profile?: string;
|
|
160
|
+
readonly appProfile?: string;
|
|
161
|
+
readonly sourceId?: string;
|
|
162
|
+
readonly primarySourceId?: string;
|
|
163
|
+
readonly widgets?: ReadonlyArray<HonuaGeneratedAppWidget>;
|
|
164
|
+
readonly layout?: Partial<HonuaGeneratedAppLayout> & {
|
|
165
|
+
readonly widgets?: ReadonlyArray<HonuaGeneratedAppWidget>;
|
|
166
|
+
};
|
|
167
|
+
readonly bindings?: HonuaGeneratedAppFieldBinding;
|
|
168
|
+
readonly initialState?: Partial<ExplorationState>;
|
|
169
|
+
readonly linkedViewPreset?: LinkedViewPresetName;
|
|
170
|
+
readonly [extra: string]: unknown;
|
|
171
|
+
}
|
|
172
|
+
export interface HonuaGeneratedAppFeatureRecord<TAttributes extends Record<string, unknown> = Record<string, unknown>> {
|
|
173
|
+
readonly id: FeatureId;
|
|
174
|
+
readonly sourceId?: string;
|
|
175
|
+
readonly attributes: TAttributes;
|
|
176
|
+
readonly geometry?: unknown;
|
|
177
|
+
readonly [extra: string]: unknown;
|
|
178
|
+
}
|
|
179
|
+
export interface HonuaGeneratedAppFilterState {
|
|
180
|
+
readonly id: string;
|
|
181
|
+
readonly clause: FilterClause;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/generated-app/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versioned manifest/profile consumed by `@honua/sdk-js/generated-app`.
|
|
3
|
+
*
|
|
4
|
+
* The manifest is the browser-safe projection of the canonical builder
|
|
5
|
+
* package: it does not define a new wire contract, it names the SDK widget
|
|
6
|
+
* bindings the preview runtime needs to hydrate one generated operations
|
|
7
|
+
* dashboard slice.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
export const HONUA_GENERATED_APP_MANIFEST_FORMAT_V1 = "honua_generated_app_manifest.v1";
|
|
12
|
+
export const HONUA_GENERATED_APP_MANIFEST_ARTIFACT_KIND = "honua.generated-app.manifest";
|
|
13
|
+
export const HONUA_GENERATED_APP_MANIFEST_ARTIFACT_VERSION = 1;
|
|
14
|
+
export const HONUA_GENERATED_APP_PROFILE_OPERATIONS_DASHBOARD_V1 = "operations-dashboard.v1";
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Projection helpers from canonical builder/package artifacts into the
|
|
3
|
+
* SDK generated-app manifest. These helpers are structural on purpose:
|
|
4
|
+
* the canonical protobuf / server DTOs remain the source of truth, and this
|
|
5
|
+
* subpath only extracts the browser-safe fields needed by the preview runtime.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { HonuaMapPackage } from "../runtime/index.js";
|
|
10
|
+
import { type HonuaGeneratedAppBuildSpec, type HonuaGeneratedAppFieldBinding, type HonuaGeneratedAppManifest, type HonuaGeneratedAppManifestArtifact, type HonuaGeneratedAppPackage, type HonuaGeneratedAppWidget } from "./manifest.js";
|
|
11
|
+
export declare const HONUA_GENERATED_APP_DEFAULT_PREVIEW_LIMIT = 250;
|
|
12
|
+
export declare const HONUA_GENERATED_APP_MAX_PREVIEW_LIMIT = 1000;
|
|
13
|
+
export declare const HONUA_GENERATED_APP_MAX_WIDGETS = 64;
|
|
14
|
+
export interface ProjectBuildSpecToGeneratedAppManifestOptions {
|
|
15
|
+
readonly appId?: string;
|
|
16
|
+
readonly version?: string;
|
|
17
|
+
readonly sourceId?: string;
|
|
18
|
+
readonly mapPackage?: HonuaMapPackage;
|
|
19
|
+
readonly mapPackageId?: string;
|
|
20
|
+
readonly bindings?: HonuaGeneratedAppFieldBinding;
|
|
21
|
+
readonly widgets?: ReadonlyArray<HonuaGeneratedAppWidget>;
|
|
22
|
+
}
|
|
23
|
+
export interface ProjectMapPackageToGeneratedAppManifestOptions {
|
|
24
|
+
readonly appId?: string;
|
|
25
|
+
readonly title?: string;
|
|
26
|
+
readonly version?: string;
|
|
27
|
+
readonly sourceId?: string;
|
|
28
|
+
readonly bindings?: HonuaGeneratedAppFieldBinding;
|
|
29
|
+
readonly widgets?: ReadonlyArray<HonuaGeneratedAppWidget>;
|
|
30
|
+
}
|
|
31
|
+
export declare function createGeneratedAppManifestArtifact(manifest: HonuaGeneratedAppManifest, options?: {
|
|
32
|
+
readonly createdAt?: string;
|
|
33
|
+
readonly source?: string;
|
|
34
|
+
}): HonuaGeneratedAppManifestArtifact;
|
|
35
|
+
export declare function projectAppPackageToGeneratedAppManifest(pkg: HonuaGeneratedAppPackage, options?: {
|
|
36
|
+
readonly mapPackage?: HonuaMapPackage;
|
|
37
|
+
}): HonuaGeneratedAppManifest;
|
|
38
|
+
export declare function projectBuildSpecToGeneratedAppManifest(buildSpec: HonuaGeneratedAppBuildSpec, options?: ProjectBuildSpecToGeneratedAppManifestOptions): HonuaGeneratedAppManifest;
|
|
39
|
+
export declare function projectMapPackageToGeneratedAppManifest(mapPackage: HonuaMapPackage, options?: ProjectMapPackageToGeneratedAppManifestOptions): HonuaGeneratedAppManifest;
|
|
40
|
+
export declare function assertGeneratedAppManifest(manifest: HonuaGeneratedAppManifest): void;
|
|
41
|
+
export declare function clampGeneratedAppManifest(manifest: HonuaGeneratedAppManifest): HonuaGeneratedAppManifest;
|
|
42
|
+
export declare function clampGeneratedAppPreviewLimit(value: number | undefined): number | undefined;
|
|
43
|
+
export declare function clampGeneratedAppWidgets(widgets: ReadonlyArray<HonuaGeneratedAppWidget>): ReadonlyArray<HonuaGeneratedAppWidget>;
|
|
44
|
+
//# sourceMappingURL=projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/generated-app/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAKL,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAElC,KAAK,yBAAyB,EAC9B,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,yCAAyC,MAAM,CAAC;AAC7D,eAAO,MAAM,qCAAqC,OAAQ,CAAC;AAC3D,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAElD,MAAM,WAAW,6CAA6C;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,6BAA6B,CAAC;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,8CAA8C;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,6BAA6B,CAAC;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;CAC3D;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACtE,iCAAiC,CASnC;AAED,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,wBAAwB,EAC7B,OAAO,GAAE;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAA;CAAO,GACtD,yBAAyB,CAuB3B;AAED,wBAAgB,sCAAsC,CACpD,SAAS,EAAE,0BAA0B,EACrC,OAAO,GAAE,6CAAkD,GAC1D,yBAAyB,CAsD3B;AAED,wBAAgB,uCAAuC,CACrD,UAAU,EAAE,eAAe,EAC3B,OAAO,GAAE,8CAAmD,GAC3D,yBAAyB,CAgC3B;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI,CA2CpF;AA8DD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,yBAAyB,CAaxG;AAaD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAI3F;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,CAAC,uBAAuB,CAAC,GAC9C,aAAa,CAAC,uBAAuB,CAAC,CAExC"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Projection helpers from canonical builder/package artifacts into the
|
|
3
|
+
* SDK generated-app manifest. These helpers are structural on purpose:
|
|
4
|
+
* the canonical protobuf / server DTOs remain the source of truth, and this
|
|
5
|
+
* subpath only extracts the browser-safe fields needed by the preview runtime.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import { HonuaGeneratedAppError } from "./errors.js";
|
|
10
|
+
import { HONUA_GENERATED_APP_MANIFEST_ARTIFACT_KIND, HONUA_GENERATED_APP_MANIFEST_ARTIFACT_VERSION, HONUA_GENERATED_APP_MANIFEST_FORMAT_V1, HONUA_GENERATED_APP_PROFILE_OPERATIONS_DASHBOARD_V1, } from "./manifest.js";
|
|
11
|
+
export const HONUA_GENERATED_APP_DEFAULT_PREVIEW_LIMIT = 250;
|
|
12
|
+
export const HONUA_GENERATED_APP_MAX_PREVIEW_LIMIT = 1_000;
|
|
13
|
+
export const HONUA_GENERATED_APP_MAX_WIDGETS = 64;
|
|
14
|
+
export function createGeneratedAppManifestArtifact(manifest, options = {}) {
|
|
15
|
+
assertGeneratedAppManifest(manifest);
|
|
16
|
+
return {
|
|
17
|
+
artifactKind: HONUA_GENERATED_APP_MANIFEST_ARTIFACT_KIND,
|
|
18
|
+
artifactVersion: HONUA_GENERATED_APP_MANIFEST_ARTIFACT_VERSION,
|
|
19
|
+
manifest,
|
|
20
|
+
...(options.createdAt ? { createdAt: options.createdAt } : {}),
|
|
21
|
+
...(options.source ? { source: options.source } : {}),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function projectAppPackageToGeneratedAppManifest(pkg, options = {}) {
|
|
25
|
+
const artifact = pkg.manifest_artifact ?? pkg.manifestArtifact;
|
|
26
|
+
if (!artifact) {
|
|
27
|
+
throw new HonuaGeneratedAppError("missing-manifest-artifact", "AppPackage is missing manifest_artifact for generated-app preview", {
|
|
28
|
+
stage: "projection",
|
|
29
|
+
detail: { appId: pkg.id, path: "AppPackage.manifest_artifact" },
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
const manifest = extractManifestArtifact(artifact, pkg.id);
|
|
33
|
+
assertGeneratedAppManifest(manifest);
|
|
34
|
+
const mapPackage = manifest.mapPackage ?? options.mapPackage ?? pkg.mapPackage;
|
|
35
|
+
return clampGeneratedAppManifest({
|
|
36
|
+
...manifest,
|
|
37
|
+
appId: manifest.appId || pkg.id,
|
|
38
|
+
version: manifest.version ?? pkg.version,
|
|
39
|
+
...(mapPackage ? { mapPackage, mapPackageId: manifest.mapPackageId ?? mapPackage.mapPackageId } : {}),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
export function projectBuildSpecToGeneratedAppManifest(buildSpec, options = {}) {
|
|
43
|
+
const profile = buildSpec.profile ?? buildSpec.appProfile ?? HONUA_GENERATED_APP_PROFILE_OPERATIONS_DASHBOARD_V1;
|
|
44
|
+
if (profile !== HONUA_GENERATED_APP_PROFILE_OPERATIONS_DASHBOARD_V1) {
|
|
45
|
+
throw new HonuaGeneratedAppError("unsupported-profile", `unsupported generated app profile "${profile}"`, {
|
|
46
|
+
stage: "projection",
|
|
47
|
+
detail: {
|
|
48
|
+
appId: buildSpec.appId ?? buildSpec.id ?? options.appId,
|
|
49
|
+
expected: HONUA_GENERATED_APP_PROFILE_OPERATIONS_DASHBOARD_V1,
|
|
50
|
+
received: profile,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
const bindings = { ...(options.bindings ?? {}), ...(buildSpec.bindings ?? {}) };
|
|
55
|
+
const sourceId = options.sourceId ?? buildSpec.sourceId ?? buildSpec.primarySourceId ?? bindings.sourceId;
|
|
56
|
+
if (!sourceId) {
|
|
57
|
+
throw new HonuaGeneratedAppError("missing-binding", "BuildSpec projection requires a sourceId", {
|
|
58
|
+
stage: "projection",
|
|
59
|
+
detail: { appId: buildSpec.appId ?? buildSpec.id ?? options.appId, path: "BuildSpec.sourceId" },
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
const widgets = clampGeneratedAppWidgets(options.widgets ?? buildSpec.widgets ?? buildSpec.layout?.widgets ?? defaultOperationsWidgets(bindings));
|
|
63
|
+
const previewLimit = clampGeneratedAppPreviewLimit(buildSpec.data?.previewLimit);
|
|
64
|
+
return clampGeneratedAppManifest({
|
|
65
|
+
format: HONUA_GENERATED_APP_MANIFEST_FORMAT_V1,
|
|
66
|
+
profile: HONUA_GENERATED_APP_PROFILE_OPERATIONS_DASHBOARD_V1,
|
|
67
|
+
appId: options.appId ?? buildSpec.appId ?? buildSpec.id ?? "generated-app",
|
|
68
|
+
...(buildSpec.title ? { title: buildSpec.title } : {}),
|
|
69
|
+
...(buildSpec.description ? { description: buildSpec.description } : {}),
|
|
70
|
+
...(options.version ? { version: options.version } : {}),
|
|
71
|
+
data: {
|
|
72
|
+
sourceId,
|
|
73
|
+
...(previewLimit === undefined ? {} : { previewLimit }),
|
|
74
|
+
},
|
|
75
|
+
...((options.mapPackageId ?? options.mapPackage?.mapPackageId)
|
|
76
|
+
? { mapPackageId: options.mapPackageId ?? options.mapPackage?.mapPackageId }
|
|
77
|
+
: {}),
|
|
78
|
+
...(options.mapPackage ? { mapPackage: options.mapPackage } : {}),
|
|
79
|
+
layout: {
|
|
80
|
+
kind: "operations-dashboard",
|
|
81
|
+
widgets,
|
|
82
|
+
},
|
|
83
|
+
...(Object.keys(bindings).length > 0 ? { bindings } : {}),
|
|
84
|
+
...(buildSpec.initialState ? { initialState: buildSpec.initialState } : {}),
|
|
85
|
+
...(buildSpec.linkedViewPreset ? { linkedViewPreset: buildSpec.linkedViewPreset } : {}),
|
|
86
|
+
metadata: {
|
|
87
|
+
buildSpec,
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
export function projectMapPackageToGeneratedAppManifest(mapPackage, options = {}) {
|
|
92
|
+
const sourceId = options.sourceId ?? mapPackage.sourceBindings[0]?.sourceId;
|
|
93
|
+
if (!sourceId) {
|
|
94
|
+
throw new HonuaGeneratedAppError("missing-binding", "MapPackage projection requires at least one source binding", {
|
|
95
|
+
stage: "projection",
|
|
96
|
+
detail: { appId: options.appId, path: "MapPackage.sourceBindings" },
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
const bindings = {
|
|
100
|
+
sourceId,
|
|
101
|
+
layerId: firstLayerIdForSource(mapPackage, sourceId),
|
|
102
|
+
...(options.bindings ?? {}),
|
|
103
|
+
};
|
|
104
|
+
return clampGeneratedAppManifest({
|
|
105
|
+
format: HONUA_GENERATED_APP_MANIFEST_FORMAT_V1,
|
|
106
|
+
profile: HONUA_GENERATED_APP_PROFILE_OPERATIONS_DASHBOARD_V1,
|
|
107
|
+
appId: options.appId ?? mapPackage.previewArtifactId ?? mapPackage.mapPackageId,
|
|
108
|
+
title: options.title ?? mapPackage.templateId ?? "Generated operations dashboard",
|
|
109
|
+
...(options.version ? { version: options.version } : {}),
|
|
110
|
+
data: { sourceId },
|
|
111
|
+
mapPackageId: mapPackage.mapPackageId,
|
|
112
|
+
mapPackage,
|
|
113
|
+
layout: {
|
|
114
|
+
kind: "operations-dashboard",
|
|
115
|
+
widgets: options.widgets ?? defaultOperationsWidgets(bindings),
|
|
116
|
+
},
|
|
117
|
+
bindings,
|
|
118
|
+
metadata: {
|
|
119
|
+
mapPackageId: mapPackage.mapPackageId,
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
export function assertGeneratedAppManifest(manifest) {
|
|
124
|
+
if (manifest.format !== HONUA_GENERATED_APP_MANIFEST_FORMAT_V1) {
|
|
125
|
+
throw new HonuaGeneratedAppError("missing-manifest", `unsupported generated app manifest format "${String(manifest.format)}"`, {
|
|
126
|
+
stage: "manifest",
|
|
127
|
+
detail: {
|
|
128
|
+
appId: manifest.appId,
|
|
129
|
+
path: "GeneratedAppManifest.format",
|
|
130
|
+
expected: HONUA_GENERATED_APP_MANIFEST_FORMAT_V1,
|
|
131
|
+
received: manifest.format,
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
if (manifest.profile !== HONUA_GENERATED_APP_PROFILE_OPERATIONS_DASHBOARD_V1) {
|
|
136
|
+
throw new HonuaGeneratedAppError("unsupported-profile", `unsupported generated app profile "${String(manifest.profile)}"`, {
|
|
137
|
+
stage: "manifest",
|
|
138
|
+
detail: {
|
|
139
|
+
appId: manifest.appId,
|
|
140
|
+
path: "GeneratedAppManifest.profile",
|
|
141
|
+
expected: HONUA_GENERATED_APP_PROFILE_OPERATIONS_DASHBOARD_V1,
|
|
142
|
+
received: manifest.profile,
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
if (!manifest.data?.sourceId) {
|
|
147
|
+
throw new HonuaGeneratedAppError("missing-binding", "GeneratedAppManifest.data.sourceId is required", {
|
|
148
|
+
stage: "manifest",
|
|
149
|
+
detail: { appId: manifest.appId, path: "GeneratedAppManifest.data.sourceId" },
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
if (!manifest.layout || manifest.layout.kind !== "operations-dashboard" || !Array.isArray(manifest.layout.widgets)) {
|
|
153
|
+
throw new HonuaGeneratedAppError("missing-binding", "GeneratedAppManifest.layout.widgets is required", {
|
|
154
|
+
stage: "manifest",
|
|
155
|
+
detail: { appId: manifest.appId, path: "GeneratedAppManifest.layout.widgets" },
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function extractManifestArtifact(artifact, appId) {
|
|
160
|
+
if ("artifactKind" in artifact || "artifactVersion" in artifact) {
|
|
161
|
+
const manifestArtifact = artifact;
|
|
162
|
+
if (manifestArtifact.artifactKind !== HONUA_GENERATED_APP_MANIFEST_ARTIFACT_KIND) {
|
|
163
|
+
throw new HonuaGeneratedAppError("missing-manifest-artifact", "unsupported generated-app manifest artifact kind", {
|
|
164
|
+
stage: "projection",
|
|
165
|
+
detail: {
|
|
166
|
+
appId,
|
|
167
|
+
path: "AppPackage.manifest_artifact.artifactKind",
|
|
168
|
+
expected: HONUA_GENERATED_APP_MANIFEST_ARTIFACT_KIND,
|
|
169
|
+
received: manifestArtifact.artifactKind,
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
if (manifestArtifact.artifactVersion !== HONUA_GENERATED_APP_MANIFEST_ARTIFACT_VERSION) {
|
|
174
|
+
throw new HonuaGeneratedAppError("missing-manifest-artifact", "unsupported generated-app manifest artifact version", {
|
|
175
|
+
stage: "projection",
|
|
176
|
+
detail: {
|
|
177
|
+
appId,
|
|
178
|
+
path: "AppPackage.manifest_artifact.artifactVersion",
|
|
179
|
+
expected: HONUA_GENERATED_APP_MANIFEST_ARTIFACT_VERSION,
|
|
180
|
+
received: manifestArtifact.artifactVersion,
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return manifestArtifact.manifest;
|
|
185
|
+
}
|
|
186
|
+
return artifact;
|
|
187
|
+
}
|
|
188
|
+
function defaultOperationsWidgets(bindings) {
|
|
189
|
+
const sourceId = bindings.sourceId;
|
|
190
|
+
const filterField = bindings.filterField ?? bindings.categoryField ?? "category";
|
|
191
|
+
const categoryField = bindings.categoryField ?? bindings.filterField ?? "category";
|
|
192
|
+
const tableFields = bindings.tableFields;
|
|
193
|
+
const layerId = bindings.layerId;
|
|
194
|
+
return [
|
|
195
|
+
{ id: "map", kind: "map", title: "Map", sourceId, layerId },
|
|
196
|
+
{ id: "table", kind: "table", title: "Results", sourceId, fields: tableFields },
|
|
197
|
+
{ id: "count", kind: "count", title: "Count", sourceId },
|
|
198
|
+
{ id: "chart", kind: "chart", title: "By category", sourceId, groupBy: categoryField },
|
|
199
|
+
{ id: "filter", kind: "filter", title: "Filter", sourceId, field: filterField },
|
|
200
|
+
];
|
|
201
|
+
}
|
|
202
|
+
function firstLayerIdForSource(mapPackage, sourceId) {
|
|
203
|
+
return mapPackage.mapSpec.layers.find((layer) => layer.source === sourceId)?.id;
|
|
204
|
+
}
|
|
205
|
+
export function clampGeneratedAppManifest(manifest) {
|
|
206
|
+
const widgets = clampGeneratedAppWidgets(manifest.layout.widgets);
|
|
207
|
+
const previewLimit = clampGeneratedAppPreviewLimit(manifest.data.previewLimit);
|
|
208
|
+
const data = previewLimit === manifest.data.previewLimit ? manifest.data : dataWithPreviewLimit(manifest, previewLimit);
|
|
209
|
+
return {
|
|
210
|
+
...manifest,
|
|
211
|
+
data,
|
|
212
|
+
layout: {
|
|
213
|
+
...manifest.layout,
|
|
214
|
+
widgets,
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
function dataWithPreviewLimit(manifest, previewLimit) {
|
|
219
|
+
const { previewLimit: _previewLimit, ...rest } = manifest.data;
|
|
220
|
+
return {
|
|
221
|
+
...rest,
|
|
222
|
+
...(previewLimit === undefined ? {} : { previewLimit }),
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
export function clampGeneratedAppPreviewLimit(value) {
|
|
226
|
+
if (value === undefined)
|
|
227
|
+
return undefined;
|
|
228
|
+
if (!Number.isFinite(value))
|
|
229
|
+
return undefined;
|
|
230
|
+
return Math.max(1, Math.min(HONUA_GENERATED_APP_MAX_PREVIEW_LIMIT, Math.trunc(value)));
|
|
231
|
+
}
|
|
232
|
+
export function clampGeneratedAppWidgets(widgets) {
|
|
233
|
+
return widgets.length > HONUA_GENERATED_APP_MAX_WIDGETS ? widgets.slice(0, HONUA_GENERATED_APP_MAX_WIDGETS) : widgets;
|
|
234
|
+
}
|