@honua/app-platform 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 +11 -0
- package/app/index.d.ts +164 -0
- package/app/index.d.ts.map +1 -0
- package/app/index.js +424 -0
- package/app-controller/controller.d.ts +425 -0
- package/app-controller/controller.d.ts.map +1 -0
- package/app-controller/controller.js +1173 -0
- package/app-controller/index.d.ts +14 -0
- package/app-controller/index.d.ts.map +1 -0
- package/app-controller/index.js +12 -0
- package/app-workspace/index.d.ts +421 -0
- package/app-workspace/index.d.ts.map +1 -0
- package/app-workspace/index.js +722 -0
- package/collaboration/client.d.ts +40 -0
- package/collaboration/client.d.ts.map +1 -0
- package/collaboration/client.js +299 -0
- package/collaboration/errors.d.ts +15 -0
- package/collaboration/errors.d.ts.map +1 -0
- package/collaboration/errors.js +17 -0
- package/collaboration/fixture.d.ts +41 -0
- package/collaboration/fixture.d.ts.map +1 -0
- package/collaboration/fixture.js +362 -0
- package/collaboration/index.d.ts +18 -0
- package/collaboration/index.d.ts.map +1 -0
- package/collaboration/index.js +14 -0
- package/collaboration/types.d.ts +240 -0
- package/collaboration/types.d.ts.map +1 -0
- package/collaboration/types.js +1 -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 +63 -0
- package/contract/index.d.ts.map +1 -0
- package/contract/index.js +52 -0
- package/contract/jobs.d.ts +149 -0
- package/contract/jobs.d.ts.map +1 -0
- package/contract/jobs.js +40 -0
- package/contract/pmtiles.d.ts +162 -0
- package/contract/pmtiles.d.ts.map +1 -0
- package/contract/pmtiles.js +155 -0
- package/contract/source.d.ts +447 -0
- package/contract/source.d.ts.map +1 -0
- package/contract/source.js +3909 -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 +694 -0
- package/contract/types.d.ts.map +1 -0
- package/contract/types.js +183 -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/controls/basemap-style-binding.d.ts +54 -0
- package/controls/basemap-style-binding.d.ts.map +1 -0
- package/controls/basemap-style-binding.js +199 -0
- package/controls/basemap-switcher.d.ts +95 -0
- package/controls/basemap-switcher.d.ts.map +1 -0
- package/controls/basemap-switcher.js +379 -0
- package/controls/element-utils.d.ts +48 -0
- package/controls/element-utils.d.ts.map +1 -0
- package/controls/element-utils.js +78 -0
- package/controls/index.d.ts +33 -0
- package/controls/index.d.ts.map +1 -0
- package/controls/index.js +30 -0
- package/controls/layer-list.d.ts +98 -0
- package/controls/layer-list.d.ts.map +1 -0
- package/controls/layer-list.js +375 -0
- package/controls/legend-derive.d.ts +53 -0
- package/controls/legend-derive.d.ts.map +1 -0
- package/controls/legend-derive.js +196 -0
- package/controls/legend.d.ts +104 -0
- package/controls/legend.d.ts.map +1 -0
- package/controls/legend.js +381 -0
- package/controls/swipe-control.d.ts +80 -0
- package/controls/swipe-control.d.ts.map +1 -0
- package/controls/swipe-control.js +368 -0
- package/controls/types.d.ts +227 -0
- package/controls/types.d.ts.map +1 -0
- package/controls/types.js +11 -0
- package/core/auth/client-credentials-provider.d.ts +51 -0
- package/core/auth/client-credentials-provider.d.ts.map +1 -0
- package/core/auth/client-credentials-provider.js +115 -0
- package/core/auth/credential-store.d.ts +52 -0
- package/core/auth/credential-store.d.ts.map +1 -0
- package/core/auth/credential-store.js +82 -0
- package/core/auth/index.d.ts +23 -0
- package/core/auth/index.d.ts.map +1 -0
- package/core/auth/index.js +20 -0
- package/core/auth/oauth2-provider.d.ts +114 -0
- package/core/auth/oauth2-provider.d.ts.map +1 -0
- package/core/auth/oauth2-provider.js +408 -0
- package/core/auth/pkce.d.ts +25 -0
- package/core/auth/pkce.d.ts.map +1 -0
- package/core/auth/pkce.js +46 -0
- package/core/auth/static-providers.d.ts +20 -0
- package/core/auth/static-providers.d.ts.map +1 -0
- package/core/auth/static-providers.js +26 -0
- package/core/auth/token-endpoint.d.ts +40 -0
- package/core/auth/token-endpoint.d.ts.map +1 -0
- package/core/auth/token-endpoint.js +133 -0
- package/core/auth/types.d.ts +144 -0
- package/core/auth/types.d.ts.map +1 -0
- package/core/auth/types.js +8 -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 +607 -0
- package/core/client.d.ts.map +1 -0
- package/core/client.js +1716 -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 +139 -0
- package/core/errors.d.ts.map +1 -0
- package/core/errors.js +176 -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/geoparquet-sql.d.ts +162 -0
- package/core/geoparquet-sql.d.ts.map +1 -0
- package/core/geoparquet-sql.js +333 -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-endpoint-layout.d.ts +70 -0
- package/core/ogc-endpoint-layout.d.ts.map +1 -0
- package/core/ogc-endpoint-layout.js +173 -0
- package/core/ogc-features.d.ts +23 -0
- package/core/ogc-features.d.ts.map +1 -0
- package/core/ogc-features.js +129 -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-static.d.ts +51 -0
- package/core/stac-static.d.ts.map +1 -0
- package/core/stac-static.js +195 -0
- package/core/stac.d.ts +67 -0
- package/core/stac.d.ts.map +1 -0
- package/core/stac.js +259 -0
- package/core/surfaces.d.ts +540 -0
- package/core/surfaces.d.ts.map +1 -0
- package/core/surfaces.js +1964 -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 +1404 -0
- package/core/types.d.ts.map +1 -0
- package/core/types.js +13 -0
- package/core/wfs-capabilities.d.ts +153 -0
- package/core/wfs-capabilities.d.ts.map +1 -0
- package/core/wfs-capabilities.js +490 -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 +232 -0
- package/core/wfs.d.ts.map +1 -0
- package/core/wfs.js +426 -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 +74 -0
- package/esri-compat/identity-manager.d.ts.map +1 -0
- package/esri-compat/identity-manager.js +245 -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 +50 -0
- package/esri-compat/oauth-info.d.ts.map +1 -0
- package/esri-compat/oauth-info.js +142 -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/filter-registry/index.d.ts +145 -0
- package/filter-registry/index.d.ts.map +1 -0
- package/filter-registry/index.js +531 -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/geocoding/index.d.ts +106 -0
- package/geocoding/index.d.ts.map +1 -0
- package/geocoding/index.js +278 -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/operate/client.d.ts +94 -0
- package/operate/client.d.ts.map +1 -0
- package/operate/client.js +361 -0
- package/operate/index.d.ts +22 -0
- package/operate/index.d.ts.map +1 -0
- package/operate/index.js +19 -0
- package/operate/types.d.ts +397 -0
- package/operate/types.d.ts.map +1 -0
- package/operate/types.js +17 -0
- package/operator/client.d.ts +60 -0
- package/operator/client.d.ts.map +1 -0
- package/operator/client.js +20 -0
- package/operator/controllers/approval.d.ts +52 -0
- package/operator/controllers/approval.d.ts.map +1 -0
- package/operator/controllers/approval.js +123 -0
- package/operator/controllers/base.d.ts +27 -0
- package/operator/controllers/base.d.ts.map +1 -0
- package/operator/controllers/base.js +53 -0
- package/operator/controllers/builder-workspace.d.ts +55 -0
- package/operator/controllers/builder-workspace.d.ts.map +1 -0
- package/operator/controllers/builder-workspace.js +108 -0
- package/operator/controllers/chat.d.ts +61 -0
- package/operator/controllers/chat.d.ts.map +1 -0
- package/operator/controllers/chat.js +154 -0
- package/operator/controllers/clarification.d.ts +52 -0
- package/operator/controllers/clarification.d.ts.map +1 -0
- package/operator/controllers/clarification.js +121 -0
- package/operator/controllers/execution.d.ts +60 -0
- package/operator/controllers/execution.d.ts.map +1 -0
- package/operator/controllers/execution.js +286 -0
- package/operator/controllers/index.d.ts +23 -0
- package/operator/controllers/index.d.ts.map +1 -0
- package/operator/controllers/index.js +15 -0
- package/operator/controllers/map-workspace.d.ts +85 -0
- package/operator/controllers/map-workspace.d.ts.map +1 -0
- package/operator/controllers/map-workspace.js +296 -0
- package/operator/controllers/plan-review.d.ts +66 -0
- package/operator/controllers/plan-review.d.ts.map +1 -0
- package/operator/controllers/plan-review.js +124 -0
- package/operator/errors.d.ts +62 -0
- package/operator/errors.d.ts.map +1 -0
- package/operator/errors.js +75 -0
- package/operator/i18n/index.d.ts +10 -0
- package/operator/i18n/index.d.ts.map +1 -0
- package/operator/i18n/index.js +8 -0
- package/operator/i18n/messages.d.ts +19 -0
- package/operator/i18n/messages.d.ts.map +1 -0
- package/operator/i18n/messages.js +54 -0
- package/operator/index.d.ts +19 -0
- package/operator/index.d.ts.map +1 -0
- package/operator/index.js +15 -0
- package/operator/telemetry.d.ts +26 -0
- package/operator/telemetry.d.ts.map +1 -0
- package/operator/telemetry.js +9 -0
- package/operator/theming/index.d.ts +12 -0
- package/operator/theming/index.d.ts.map +1 -0
- package/operator/theming/index.js +9 -0
- package/operator/theming/provider.d.ts +27 -0
- package/operator/theming/provider.d.ts.map +1 -0
- package/operator/theming/provider.js +26 -0
- package/operator/theming/tokens.d.ts +28 -0
- package/operator/theming/tokens.d.ts.map +1 -0
- package/operator/theming/tokens.js +65 -0
- package/operator/workspace/events.d.ts +70 -0
- package/operator/workspace/events.d.ts.map +1 -0
- package/operator/workspace/events.js +9 -0
- package/operator/workspace/index.d.ts +12 -0
- package/operator/workspace/index.d.ts.map +1 -0
- package/operator/workspace/index.js +8 -0
- package/operator/workspace/types.d.ts +178 -0
- package/operator/workspace/types.d.ts.map +1 -0
- package/operator/workspace/types.js +47 -0
- package/operator/workspace/workspace.d.ts +58 -0
- package/operator/workspace/workspace.d.ts.map +1 -0
- package/operator/workspace/workspace.js +339 -0
- package/package.json +105 -0
- package/realtime/exploration.d.ts +16 -0
- package/realtime/exploration.d.ts.map +1 -0
- package/realtime/exploration.js +32 -0
- package/realtime/honua-server.d.ts +123 -0
- package/realtime/honua-server.d.ts.map +1 -0
- package/realtime/honua-server.js +188 -0
- package/realtime/index.d.ts +20 -0
- package/realtime/index.d.ts.map +1 -0
- package/realtime/index.js +14 -0
- package/realtime/projections.d.ts +30 -0
- package/realtime/projections.d.ts.map +1 -0
- package/realtime/projections.js +51 -0
- package/realtime/reducer.d.ts +14 -0
- package/realtime/reducer.d.ts.map +1 -0
- package/realtime/reducer.js +351 -0
- package/realtime/sse.d.ts +23 -0
- package/realtime/sse.d.ts.map +1 -0
- package/realtime/sse.js +143 -0
- package/realtime/store.d.ts +18 -0
- package/realtime/store.d.ts.map +1 -0
- package/realtime/store.js +63 -0
- package/realtime/types.d.ts +190 -0
- package/realtime/types.d.ts.map +1 -0
- package/realtime/types.js +10 -0
- package/replica-sync/client.d.ts +32 -0
- package/replica-sync/client.d.ts.map +1 -0
- package/replica-sync/client.js +52 -0
- package/replica-sync/errors.d.ts +22 -0
- package/replica-sync/errors.d.ts.map +1 -0
- package/replica-sync/errors.js +29 -0
- package/replica-sync/fixture.d.ts +40 -0
- package/replica-sync/fixture.d.ts.map +1 -0
- package/replica-sync/fixture.js +364 -0
- package/replica-sync/index.d.ts +22 -0
- package/replica-sync/index.d.ts.map +1 -0
- package/replica-sync/index.js +17 -0
- package/replica-sync/types.d.ts +270 -0
- package/replica-sync/types.d.ts.map +1 -0
- package/replica-sync/types.js +13 -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 +40 -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 +272 -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 +30 -0
- package/runtime/map-package-validation.d.ts.map +1 -0
- package/runtime/map-package-validation.js +257 -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/pmtiles-protocol.d.ts +77 -0
- package/runtime/pmtiles-protocol.d.ts.map +1 -0
- package/runtime/pmtiles-protocol.js +120 -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 +428 -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/scene-workspace/analysis-widgets.d.ts +334 -0
- package/scene-workspace/analysis-widgets.d.ts.map +1 -0
- package/scene-workspace/analysis-widgets.js +424 -0
- package/scene-workspace/cesium-adapter.d.ts +438 -0
- package/scene-workspace/cesium-adapter.d.ts.map +1 -0
- package/scene-workspace/cesium-adapter.js +493 -0
- package/scene-workspace/index.d.ts +21 -0
- package/scene-workspace/index.d.ts.map +1 -0
- package/scene-workspace/index.js +14 -0
- package/scene-workspace/primitives.d.ts +162 -0
- package/scene-workspace/primitives.d.ts.map +1 -0
- package/scene-workspace/primitives.js +255 -0
- package/scene-workspace/scene-discovery.d.ts +196 -0
- package/scene-workspace/scene-discovery.d.ts.map +1 -0
- package/scene-workspace/scene-discovery.js +228 -0
- package/scene-workspace/scene-view.d.ts +209 -0
- package/scene-workspace/scene-view.d.ts.map +1 -0
- package/scene-workspace/scene-view.js +267 -0
- package/scene-workspace/types.d.ts +229 -0
- package/scene-workspace/types.d.ts.map +1 -0
- package/scene-workspace/types.js +23 -0
- package/scene-workspace/workspace.d.ts +13 -0
- package/scene-workspace/workspace.d.ts.map +1 -0
- package/scene-workspace/workspace.js +391 -0
- package/share/denial.d.ts +78 -0
- package/share/denial.d.ts.map +1 -0
- package/share/denial.js +61 -0
- package/share/embed-token.d.ts +71 -0
- package/share/embed-token.d.ts.map +1 -0
- package/share/embed-token.js +99 -0
- package/share/index.d.ts +35 -0
- package/share/index.d.ts.map +1 -0
- package/share/index.js +30 -0
- package/share/open-data.d.ts +114 -0
- package/share/open-data.d.ts.map +1 -0
- package/share/open-data.js +81 -0
- package/share/types.d.ts +163 -0
- package/share/types.d.ts.map +1 -0
- package/share/types.js +17 -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/web-components/controller.d.ts +39 -0
- package/web-components/controller.d.ts.map +1 -0
- package/web-components/controller.js +640 -0
- package/web-components/elements.d.ts +210 -0
- package/web-components/elements.d.ts.map +1 -0
- package/web-components/elements.js +1651 -0
- package/web-components/index.d.ts +24 -0
- package/web-components/index.d.ts.map +1 -0
- package/web-components/index.js +22 -0
- package/web-components/maplibre-renderer.d.ts +22 -0
- package/web-components/maplibre-renderer.d.ts.map +1 -0
- package/web-components/maplibre-renderer.js +474 -0
- package/web-components/types.d.ts +397 -0
- package/web-components/types.d.ts.map +1 -0
- package/web-components/types.js +1 -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,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fragment-only embed-token parsing.
|
|
3
|
+
*
|
|
4
|
+
* Embed bearer tokens MUST travel in the URL fragment (`#...`), never the query
|
|
5
|
+
* string. The fragment is not sent to the origin server, is not written to
|
|
6
|
+
* server access logs or the `Referer` header, and is not captured by most
|
|
7
|
+
* proxy/CDN request logging — so a fragment-borne bearer token has a much
|
|
8
|
+
* smaller disclosure surface than a query-string one. This helper extracts a
|
|
9
|
+
* token from the fragment and *rejects* query-string bearer patterns outright
|
|
10
|
+
* so a generated app or embed never silently accepts a leak-prone placement.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
/** Default fragment parameter name an embed token is read from. */
|
|
15
|
+
export const HONUA_EMBED_TOKEN_FRAGMENT_PARAM = "embed_token";
|
|
16
|
+
function normalizeParams(param) {
|
|
17
|
+
if (param === undefined)
|
|
18
|
+
return [HONUA_EMBED_TOKEN_FRAGMENT_PARAM];
|
|
19
|
+
const list = typeof param === "string" ? [param] : param;
|
|
20
|
+
const names = list.map((name) => name.trim()).filter((name) => name.length > 0);
|
|
21
|
+
return names.length > 0 ? names : [HONUA_EMBED_TOKEN_FRAGMENT_PARAM];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Splits an arbitrary URL or location-like string into its query and fragment
|
|
25
|
+
* components without requiring an absolute base. Accepts a full URL
|
|
26
|
+
* (`https://host/path?q#frag`), a relative URL (`/path?q#frag`), a bare query
|
|
27
|
+
* (`?q`), or a bare fragment (`#frag`).
|
|
28
|
+
*/
|
|
29
|
+
function splitLocation(input) {
|
|
30
|
+
if (typeof input !== "string")
|
|
31
|
+
return null;
|
|
32
|
+
const hashIndex = input.indexOf("#");
|
|
33
|
+
const fragment = hashIndex >= 0 ? input.slice(hashIndex + 1) : "";
|
|
34
|
+
const beforeFragment = hashIndex >= 0 ? input.slice(0, hashIndex) : input;
|
|
35
|
+
const queryIndex = beforeFragment.indexOf("?");
|
|
36
|
+
const query = queryIndex >= 0 ? beforeFragment.slice(queryIndex + 1) : "";
|
|
37
|
+
return { query, fragment };
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Reads a named parameter out of a `&`/`=` encoded component (query or
|
|
41
|
+
* fragment). Returns the first match's decoded value, or `null` if absent. A
|
|
42
|
+
* present-but-empty parameter (`embed_token=`) returns an empty string so the
|
|
43
|
+
* caller can distinguish "absent" from "blank".
|
|
44
|
+
*/
|
|
45
|
+
function readParam(component, names) {
|
|
46
|
+
if (component.length === 0)
|
|
47
|
+
return null;
|
|
48
|
+
const params = new URLSearchParams(component);
|
|
49
|
+
for (const name of names) {
|
|
50
|
+
if (params.has(name))
|
|
51
|
+
return params.get(name) ?? "";
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Extracts an embed bearer token from a URL/location fragment, rejecting any
|
|
57
|
+
* token placed in the query string.
|
|
58
|
+
*
|
|
59
|
+
* Resolution order:
|
|
60
|
+
* 1. If a token parameter is present in the **query string**, reject with
|
|
61
|
+
* `query-string-token` — even if a fragment token also exists — so a
|
|
62
|
+
* leak-prone placement is never silently tolerated.
|
|
63
|
+
* 2. Otherwise read the token from the **fragment**. A blank fragment token
|
|
64
|
+
* rejects with `empty`; a missing one rejects with `missing`.
|
|
65
|
+
*
|
|
66
|
+
* @param input A full or relative URL, a bare query, or a bare fragment. In a
|
|
67
|
+
* browser, pass `window.location.href` (or `location.search + location.hash`).
|
|
68
|
+
*/
|
|
69
|
+
export function parseEmbedTokenFromFragment(input, options = {}) {
|
|
70
|
+
const names = normalizeParams(options.param);
|
|
71
|
+
const parts = splitLocation(input);
|
|
72
|
+
if (parts === null)
|
|
73
|
+
return { ok: false, reason: "malformed" };
|
|
74
|
+
// (1) Reject query-string bearer tokens unconditionally.
|
|
75
|
+
const queryToken = readParam(parts.query, names);
|
|
76
|
+
if (queryToken !== null) {
|
|
77
|
+
return { ok: false, reason: "query-string-token" };
|
|
78
|
+
}
|
|
79
|
+
// (2) Read from the fragment.
|
|
80
|
+
const fragmentToken = readParam(parts.fragment, names);
|
|
81
|
+
if (fragmentToken === null)
|
|
82
|
+
return { ok: false, reason: "missing" };
|
|
83
|
+
const trimmed = fragmentToken.trim();
|
|
84
|
+
if (trimmed.length === 0)
|
|
85
|
+
return { ok: false, reason: "empty" };
|
|
86
|
+
return { ok: true, token: trimmed, param: names[0] };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Convenience guard: `true` when `input` carries an embed-token parameter in the
|
|
90
|
+
* query string (any leak-prone placement). Useful for asserting a redirect
|
|
91
|
+
* stripped the token before it reached a logged surface.
|
|
92
|
+
*/
|
|
93
|
+
export function hasQueryStringEmbedToken(input, options = {}) {
|
|
94
|
+
const names = normalizeParams(options.param);
|
|
95
|
+
const parts = splitLocation(input);
|
|
96
|
+
if (parts === null)
|
|
97
|
+
return false;
|
|
98
|
+
return readParam(parts.query, names) !== null;
|
|
99
|
+
}
|
package/share/index.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@honua/sdk-js/share` — browser-safe Share, embed-token, public-link, and
|
|
3
|
+
* open-data contract types and helpers.
|
|
4
|
+
*
|
|
5
|
+
* The long-term Console runtime is .NET/Blazor, but generated apps and
|
|
6
|
+
* embeddable map surfaces need browser-safe contracts that match honua-server
|
|
7
|
+
* and `honua-sdk-dotnet`. This subpath projects that shared vocabulary into
|
|
8
|
+
* TypeScript so browser code consumes Share/embed/open-data state without
|
|
9
|
+
* inventing a second contract:
|
|
10
|
+
*
|
|
11
|
+
* - Contract types mirror the server JSON wire names exactly (a parsed `fetch`
|
|
12
|
+
* body assigns straight into them).
|
|
13
|
+
* - {@link parseEmbedTokenFromFragment} enforces fragment-only embed bearer
|
|
14
|
+
* tokens and rejects query-string placements.
|
|
15
|
+
* - Denial helpers model anonymous-safe access state without leaking item
|
|
16
|
+
* identity or private titles.
|
|
17
|
+
* - Open-data helpers project a held read model into DCAT / Schema.org output.
|
|
18
|
+
*
|
|
19
|
+
* This entrypoint owns no transport: it consumes server responses that are
|
|
20
|
+
* already available. Admin/write share operations live on
|
|
21
|
+
* `@honua/sdk-js/control-plane`.
|
|
22
|
+
*
|
|
23
|
+
* @experimental This entrypoint is not yet covered by the SDK's semver contract
|
|
24
|
+
* — the surface may change in any minor release prior to `1.0.0`.
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
export { HONUA_EMBED_AUDIENCES, HONUA_SHARE_ACCESS_TIERS, } from "./types.js";
|
|
28
|
+
export type { HonuaEmbedAudience, HonuaEmbedRedemption, HonuaEmbedToken, HonuaPublicLinkResolution, HonuaPublicLinkToken, HonuaShareAccessTier, HonuaShareDependencyConflict, HonuaShareItemType, HonuaShareProjection, } from "./types.js";
|
|
29
|
+
export { HONUA_SHARE_DENIAL_MESSAGES, denialFromHttpStatus, denyShareAccess, grantShareAccess, isShareAccessDenied, isShareAccessGranted, } from "./denial.js";
|
|
30
|
+
export type { HonuaEmbedAccessState, HonuaPublicLinkAccessState, HonuaShareAccessDenied, HonuaShareAccessGranted, HonuaShareAccessKind, HonuaShareAccessState, HonuaShareDenialReason, } from "./denial.js";
|
|
31
|
+
export { HONUA_EMBED_TOKEN_FRAGMENT_PARAM, hasQueryStringEmbedToken, parseEmbedTokenFromFragment, } from "./embed-token.js";
|
|
32
|
+
export type { HonuaEmbedTokenParseOk, HonuaEmbedTokenParseRejected, HonuaEmbedTokenParseResult, HonuaEmbedTokenRejectionReason, ParseEmbedTokenOptions, } from "./embed-token.js";
|
|
33
|
+
export { toDcatDataset, toSchemaOrgDataset, } from "./open-data.js";
|
|
34
|
+
export type { DcatDataset, DcatDistribution, HonuaOpenDataDistribution, HonuaOpenDataReadProjection, SchemaOrgDataDownload, SchemaOrgDataset, } from "./open-data.js";
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/share/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gCAAgC,EAChC,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,aAAa,EACb,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
package/share/index.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@honua/sdk-js/share` — browser-safe Share, embed-token, public-link, and
|
|
3
|
+
* open-data contract types and helpers.
|
|
4
|
+
*
|
|
5
|
+
* The long-term Console runtime is .NET/Blazor, but generated apps and
|
|
6
|
+
* embeddable map surfaces need browser-safe contracts that match honua-server
|
|
7
|
+
* and `honua-sdk-dotnet`. This subpath projects that shared vocabulary into
|
|
8
|
+
* TypeScript so browser code consumes Share/embed/open-data state without
|
|
9
|
+
* inventing a second contract:
|
|
10
|
+
*
|
|
11
|
+
* - Contract types mirror the server JSON wire names exactly (a parsed `fetch`
|
|
12
|
+
* body assigns straight into them).
|
|
13
|
+
* - {@link parseEmbedTokenFromFragment} enforces fragment-only embed bearer
|
|
14
|
+
* tokens and rejects query-string placements.
|
|
15
|
+
* - Denial helpers model anonymous-safe access state without leaking item
|
|
16
|
+
* identity or private titles.
|
|
17
|
+
* - Open-data helpers project a held read model into DCAT / Schema.org output.
|
|
18
|
+
*
|
|
19
|
+
* This entrypoint owns no transport: it consumes server responses that are
|
|
20
|
+
* already available. Admin/write share operations live on
|
|
21
|
+
* `@honua/sdk-js/control-plane`.
|
|
22
|
+
*
|
|
23
|
+
* @experimental This entrypoint is not yet covered by the SDK's semver contract
|
|
24
|
+
* — the surface may change in any minor release prior to `1.0.0`.
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
export { HONUA_EMBED_AUDIENCES, HONUA_SHARE_ACCESS_TIERS, } from "./types.js";
|
|
28
|
+
export { HONUA_SHARE_DENIAL_MESSAGES, denialFromHttpStatus, denyShareAccess, grantShareAccess, isShareAccessDenied, isShareAccessGranted, } from "./denial.js";
|
|
29
|
+
export { HONUA_EMBED_TOKEN_FRAGMENT_PARAM, hasQueryStringEmbedToken, parseEmbedTokenFromFragment, } from "./embed-token.js";
|
|
30
|
+
export { toDcatDataset, toSchemaOrgDataset, } from "./open-data.js";
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe open-data read projections and DCAT / Schema.org helper shapes.
|
|
3
|
+
*
|
|
4
|
+
* Generated apps and embeds frequently render an open-data landing card for a
|
|
5
|
+
* public-indexed item and need a stable, anonymous-safe shape plus a way to
|
|
6
|
+
* emit standards-aligned metadata (DCAT distributions, a Schema.org `Dataset`
|
|
7
|
+
* JSON-LD block) from an already-fetched server response. These helpers do not
|
|
8
|
+
* fetch or publish — they project a presentation read model the browser already
|
|
9
|
+
* holds into the shared vocabulary, so Console JS interop and generated apps
|
|
10
|
+
* agree on field names.
|
|
11
|
+
*
|
|
12
|
+
* The DCAT / Schema.org output follows the public DCAT (W3C / DCAT-AP) and
|
|
13
|
+
* Schema.org `Dataset` vocabularies. When honua-server's open-data publication
|
|
14
|
+
* API lands its own projection, prefer the server-emitted document; this helper
|
|
15
|
+
* remains the browser fallback for responses that only carry the read model.
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
import type { HonuaShareItemType } from "./types.js";
|
|
20
|
+
/** A downloadable/queryable distribution of an open-data item. */
|
|
21
|
+
export interface HonuaOpenDataDistribution {
|
|
22
|
+
/** Stable id of the distribution within the item. */
|
|
23
|
+
readonly id?: string;
|
|
24
|
+
/** Human title of the distribution (e.g. "GeoJSON download"). */
|
|
25
|
+
readonly title?: string;
|
|
26
|
+
/** IANA media type (e.g. `application/geo+json`). */
|
|
27
|
+
readonly mediaType?: string;
|
|
28
|
+
/** Short format label (e.g. `GeoJSON`, `CSV`, `OGC API - Features`). */
|
|
29
|
+
readonly format?: string;
|
|
30
|
+
/** Direct download URL, when the distribution is a file. */
|
|
31
|
+
readonly downloadUrl?: string;
|
|
32
|
+
/** Access URL for service/API distributions (non-file). */
|
|
33
|
+
readonly accessUrl?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Anonymous-safe open-data read projection for a public-indexed item. Presents
|
|
37
|
+
* only fields safe to expose on an open-data landing surface.
|
|
38
|
+
*/
|
|
39
|
+
export interface HonuaOpenDataReadProjection {
|
|
40
|
+
readonly itemId: string;
|
|
41
|
+
readonly itemType: HonuaShareItemType;
|
|
42
|
+
readonly title: string;
|
|
43
|
+
readonly summary?: string;
|
|
44
|
+
/** Keyword/theme tags. */
|
|
45
|
+
readonly keywords?: readonly string[];
|
|
46
|
+
/** License identifier or URL, when published. */
|
|
47
|
+
readonly license?: string;
|
|
48
|
+
/** Publishing organization/attribution, when set. */
|
|
49
|
+
readonly publisher?: string;
|
|
50
|
+
/** ISO-8601 timestamp the item was last modified, when known. */
|
|
51
|
+
readonly modified?: string;
|
|
52
|
+
/** Landing-page URL for the item on the open-data surface. */
|
|
53
|
+
readonly landingPageUrl?: string;
|
|
54
|
+
/** Distributions the item is available through. */
|
|
55
|
+
readonly distributions?: readonly HonuaOpenDataDistribution[];
|
|
56
|
+
}
|
|
57
|
+
/** A DCAT distribution object (`dcat:Distribution`). */
|
|
58
|
+
export interface DcatDistribution {
|
|
59
|
+
readonly "@type": "dcat:Distribution";
|
|
60
|
+
readonly title?: string;
|
|
61
|
+
readonly mediaType?: string;
|
|
62
|
+
readonly format?: string;
|
|
63
|
+
readonly downloadURL?: string;
|
|
64
|
+
readonly accessURL?: string;
|
|
65
|
+
}
|
|
66
|
+
/** A DCAT dataset object (`dcat:Dataset`) for an open-data item. */
|
|
67
|
+
export interface DcatDataset {
|
|
68
|
+
readonly "@type": "dcat:Dataset";
|
|
69
|
+
readonly identifier: string;
|
|
70
|
+
readonly title: string;
|
|
71
|
+
readonly description?: string;
|
|
72
|
+
readonly keyword?: readonly string[];
|
|
73
|
+
readonly license?: string;
|
|
74
|
+
readonly publisher?: string;
|
|
75
|
+
readonly modified?: string;
|
|
76
|
+
readonly landingPage?: string;
|
|
77
|
+
readonly distribution?: readonly DcatDistribution[];
|
|
78
|
+
}
|
|
79
|
+
/** A Schema.org `DataDownload` node. */
|
|
80
|
+
export interface SchemaOrgDataDownload {
|
|
81
|
+
readonly "@type": "DataDownload";
|
|
82
|
+
readonly name?: string;
|
|
83
|
+
readonly encodingFormat?: string;
|
|
84
|
+
readonly contentUrl?: string;
|
|
85
|
+
}
|
|
86
|
+
/** A Schema.org `Dataset` JSON-LD node for an open-data item. */
|
|
87
|
+
export interface SchemaOrgDataset {
|
|
88
|
+
readonly "@context": "https://schema.org";
|
|
89
|
+
readonly "@type": "Dataset";
|
|
90
|
+
readonly identifier: string;
|
|
91
|
+
readonly name: string;
|
|
92
|
+
readonly description?: string;
|
|
93
|
+
readonly keywords?: readonly string[];
|
|
94
|
+
readonly license?: string;
|
|
95
|
+
readonly publisher?: {
|
|
96
|
+
readonly "@type": "Organization";
|
|
97
|
+
readonly name: string;
|
|
98
|
+
};
|
|
99
|
+
readonly dateModified?: string;
|
|
100
|
+
readonly url?: string;
|
|
101
|
+
readonly distribution?: readonly SchemaOrgDataDownload[];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Projects a browser-held open-data read projection into a `dcat:Dataset`
|
|
105
|
+
* object. Omits unset/empty fields so the emitted document is minimal.
|
|
106
|
+
*/
|
|
107
|
+
export declare function toDcatDataset(projection: HonuaOpenDataReadProjection): DcatDataset;
|
|
108
|
+
/**
|
|
109
|
+
* Projects a browser-held open-data read projection into a Schema.org `Dataset`
|
|
110
|
+
* JSON-LD node, suitable for injection into a `<script type="application/ld+json">`
|
|
111
|
+
* block on an open-data landing page. Omits unset/empty fields.
|
|
112
|
+
*/
|
|
113
|
+
export declare function toSchemaOrgDataset(projection: HonuaOpenDataReadProjection): SchemaOrgDataset;
|
|
114
|
+
//# sourceMappingURL=open-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-data.d.ts","sourceRoot":"","sources":["../../../src/share/open-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe open-data read projections and DCAT / Schema.org helper shapes.
|
|
3
|
+
*
|
|
4
|
+
* Generated apps and embeds frequently render an open-data landing card for a
|
|
5
|
+
* public-indexed item and need a stable, anonymous-safe shape plus a way to
|
|
6
|
+
* emit standards-aligned metadata (DCAT distributions, a Schema.org `Dataset`
|
|
7
|
+
* JSON-LD block) from an already-fetched server response. These helpers do not
|
|
8
|
+
* fetch or publish — they project a presentation read model the browser already
|
|
9
|
+
* holds into the shared vocabulary, so Console JS interop and generated apps
|
|
10
|
+
* agree on field names.
|
|
11
|
+
*
|
|
12
|
+
* The DCAT / Schema.org output follows the public DCAT (W3C / DCAT-AP) and
|
|
13
|
+
* Schema.org `Dataset` vocabularies. When honua-server's open-data publication
|
|
14
|
+
* API lands its own projection, prefer the server-emitted document; this helper
|
|
15
|
+
* remains the browser fallback for responses that only carry the read model.
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
function compact(value) {
|
|
20
|
+
const out = {};
|
|
21
|
+
for (const [key, val] of Object.entries(value)) {
|
|
22
|
+
if (val === undefined)
|
|
23
|
+
continue;
|
|
24
|
+
if (Array.isArray(val) && val.length === 0)
|
|
25
|
+
continue;
|
|
26
|
+
out[key] = val;
|
|
27
|
+
}
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Projects a browser-held open-data read projection into a `dcat:Dataset`
|
|
32
|
+
* object. Omits unset/empty fields so the emitted document is minimal.
|
|
33
|
+
*/
|
|
34
|
+
export function toDcatDataset(projection) {
|
|
35
|
+
const distribution = projection.distributions?.map((d) => compact({
|
|
36
|
+
"@type": "dcat:Distribution",
|
|
37
|
+
title: d.title,
|
|
38
|
+
mediaType: d.mediaType,
|
|
39
|
+
format: d.format,
|
|
40
|
+
downloadURL: d.downloadUrl,
|
|
41
|
+
accessURL: d.accessUrl,
|
|
42
|
+
}));
|
|
43
|
+
return compact({
|
|
44
|
+
"@type": "dcat:Dataset",
|
|
45
|
+
identifier: projection.itemId,
|
|
46
|
+
title: projection.title,
|
|
47
|
+
description: projection.summary,
|
|
48
|
+
keyword: projection.keywords,
|
|
49
|
+
license: projection.license,
|
|
50
|
+
publisher: projection.publisher,
|
|
51
|
+
modified: projection.modified,
|
|
52
|
+
landingPage: projection.landingPageUrl,
|
|
53
|
+
distribution,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Projects a browser-held open-data read projection into a Schema.org `Dataset`
|
|
58
|
+
* JSON-LD node, suitable for injection into a `<script type="application/ld+json">`
|
|
59
|
+
* block on an open-data landing page. Omits unset/empty fields.
|
|
60
|
+
*/
|
|
61
|
+
export function toSchemaOrgDataset(projection) {
|
|
62
|
+
const distribution = projection.distributions?.map((d) => compact({
|
|
63
|
+
"@type": "DataDownload",
|
|
64
|
+
name: d.title,
|
|
65
|
+
encodingFormat: d.mediaType ?? d.format,
|
|
66
|
+
contentUrl: d.downloadUrl ?? d.accessUrl,
|
|
67
|
+
}));
|
|
68
|
+
return compact({
|
|
69
|
+
"@context": "https://schema.org",
|
|
70
|
+
"@type": "Dataset",
|
|
71
|
+
identifier: projection.itemId,
|
|
72
|
+
name: projection.title,
|
|
73
|
+
description: projection.summary,
|
|
74
|
+
keywords: projection.keywords,
|
|
75
|
+
license: projection.license,
|
|
76
|
+
publisher: projection.publisher ? { "@type": "Organization", name: projection.publisher } : undefined,
|
|
77
|
+
dateModified: projection.modified,
|
|
78
|
+
url: projection.landingPageUrl,
|
|
79
|
+
distribution,
|
|
80
|
+
});
|
|
81
|
+
}
|
package/share/types.d.ts
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe Share, embed, public-link, and open-data contract types.
|
|
3
|
+
*
|
|
4
|
+
* These mirror the canonical honua-server Console Share contracts
|
|
5
|
+
* (`ConsoleShareAccessTier`, `ConsoleEmbedAudience`, `ConsoleShareProjection`,
|
|
6
|
+
* `ConsolePublicLinkResolutionResponse`, `ConsoleEmbedRedeemResponse`, …) and
|
|
7
|
+
* the `honua-sdk-dotnet` console clients so generated apps, embeds, and Console
|
|
8
|
+
* JS interop consume one vocabulary instead of inventing a second one. Field
|
|
9
|
+
* names match the server JSON wire names exactly so a parsed `fetch` body is
|
|
10
|
+
* assignable to these types without remapping.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Effective Share access tier for a content item. The share facet of an item,
|
|
16
|
+
* distinct from membership visibility: `public-link` exposes opaque-token
|
|
17
|
+
* access without changing membership; `public-indexed` implies the item is
|
|
18
|
+
* publicly readable and eligible for catalog indexing / open-data distribution.
|
|
19
|
+
*
|
|
20
|
+
* Mirrors `ConsoleShareAccessTier` (`private` | `organization` | `public-link`
|
|
21
|
+
* | `public-indexed`). The trailing `(string & {})` keeps the union open so a
|
|
22
|
+
* future server tier round-trips without a type error while preserving
|
|
23
|
+
* autocomplete on the known members.
|
|
24
|
+
*/
|
|
25
|
+
export type HonuaShareAccessTier = "private" | "organization" | "public-link" | "public-indexed" | (string & {});
|
|
26
|
+
/** Known {@link HonuaShareAccessTier} members, for validation/iteration. */
|
|
27
|
+
export declare const HONUA_SHARE_ACCESS_TIERS: readonly ["private", "organization", "public-link", "public-indexed"];
|
|
28
|
+
/**
|
|
29
|
+
* Scope an embed authorization permits the redeeming surface to render.
|
|
30
|
+
* Mirrors `ConsoleEmbedAudience` (`map` | `content`).
|
|
31
|
+
*/
|
|
32
|
+
export type HonuaEmbedAudience = "map" | "content" | (string & {});
|
|
33
|
+
/** Known {@link HonuaEmbedAudience} members. */
|
|
34
|
+
export declare const HONUA_EMBED_AUDIENCES: readonly ["map", "content"];
|
|
35
|
+
/**
|
|
36
|
+
* Console content item category. Mirrors `ConsoleContentItemType`.
|
|
37
|
+
*/
|
|
38
|
+
export type HonuaShareItemType = "service" | "layer" | "saved-map" | "dashboard" | "report" | "generated-app" | "open-data" | (string & {});
|
|
39
|
+
/**
|
|
40
|
+
* A public-link token granting opaque, membership-independent read access.
|
|
41
|
+
* Mirrors `ConsolePublicLinkToken`.
|
|
42
|
+
*
|
|
43
|
+
* The opaque {@link token} value is disclosed only in the mint response and is
|
|
44
|
+
* `null`/absent on every subsequent read; callers reference a token thereafter
|
|
45
|
+
* by its stable {@link tokenId}.
|
|
46
|
+
*/
|
|
47
|
+
export interface HonuaPublicLinkToken {
|
|
48
|
+
/** Stable identifier (safe to surface in lists/audit; carries no capability). */
|
|
49
|
+
readonly tokenId: string;
|
|
50
|
+
/** Opaque token value — populated only in the mint response, else `null`. */
|
|
51
|
+
readonly token?: string | null;
|
|
52
|
+
/** Content item this token grants access to. */
|
|
53
|
+
readonly itemId: string;
|
|
54
|
+
/** ISO-8601 timestamp the token was minted. */
|
|
55
|
+
readonly createdAt: string;
|
|
56
|
+
/** ISO-8601 expiry; `null`/absent means it never self-expires. */
|
|
57
|
+
readonly expiresAt?: string | null;
|
|
58
|
+
/** Principal that minted the token (audit attribution). */
|
|
59
|
+
readonly createdById?: string | null;
|
|
60
|
+
/** True when the token can no longer resolve (revoked or past expiry). */
|
|
61
|
+
readonly isExpired: boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* An embed token authorizing an external surface to render an item for a
|
|
65
|
+
* bounded audience and TTL. Mirrors `ConsoleEmbedToken`. Embed tokens always
|
|
66
|
+
* carry a hard {@link expiresAt}.
|
|
67
|
+
*/
|
|
68
|
+
export interface HonuaEmbedToken {
|
|
69
|
+
/** Stable identifier (audit/listing). */
|
|
70
|
+
readonly tokenId: string;
|
|
71
|
+
/** Opaque token value — populated only in the mint response. */
|
|
72
|
+
readonly token?: string | null;
|
|
73
|
+
/** Content item this token authorizes embedding for. */
|
|
74
|
+
readonly itemId: string;
|
|
75
|
+
/** Audience/scope the embed may render. */
|
|
76
|
+
readonly audience: HonuaEmbedAudience;
|
|
77
|
+
/** ISO-8601 timestamp the token was minted. */
|
|
78
|
+
readonly createdAt: string;
|
|
79
|
+
/** ISO-8601 hard expiry (always present for embed tokens). */
|
|
80
|
+
readonly expiresAt: string;
|
|
81
|
+
/** Principal that minted the token (audit attribution). */
|
|
82
|
+
readonly createdById?: string | null;
|
|
83
|
+
/** True when past expiry or embedding has been disabled on the item. */
|
|
84
|
+
readonly isExpired: boolean;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Server-owned Share access projection — the read model the Share panel renders
|
|
88
|
+
* without resolving share state client-side. Mirrors `ConsoleShareProjection`.
|
|
89
|
+
*/
|
|
90
|
+
export interface HonuaShareProjection {
|
|
91
|
+
/** Content item id. */
|
|
92
|
+
readonly itemId: string;
|
|
93
|
+
/** Machine-friendly item name. */
|
|
94
|
+
readonly itemName: string;
|
|
95
|
+
/** Human-readable title, when set. */
|
|
96
|
+
readonly itemTitle?: string | null;
|
|
97
|
+
/** Item category. */
|
|
98
|
+
readonly itemType: HonuaShareItemType;
|
|
99
|
+
/** Owner principal id, when set. */
|
|
100
|
+
readonly ownerId?: string | null;
|
|
101
|
+
/** Effective Share access tier. */
|
|
102
|
+
readonly accessTier: HonuaShareAccessTier;
|
|
103
|
+
/** True when at least one non-expired public-link token exists. */
|
|
104
|
+
readonly publicLinkEnabled: boolean;
|
|
105
|
+
/** Active and historical public-link tokens (token value always absent here). */
|
|
106
|
+
readonly publicLinkTokens?: readonly HonuaPublicLinkToken[];
|
|
107
|
+
/** True when embedding is enabled for the item. */
|
|
108
|
+
readonly embedEnabled: boolean;
|
|
109
|
+
/** Configured embed audience when {@link embedEnabled} is true. */
|
|
110
|
+
readonly embedAudience?: HonuaEmbedAudience | null;
|
|
111
|
+
/** Whether the item is currently eligible for open-data distribution. */
|
|
112
|
+
readonly openDataEligible: boolean;
|
|
113
|
+
/** Console verbs the requesting principal may perform on the item. */
|
|
114
|
+
readonly callerPermissions?: readonly string[];
|
|
115
|
+
/** True when an anonymous caller could read the item through any share mechanism. */
|
|
116
|
+
readonly anonymousEligible: boolean;
|
|
117
|
+
/** Logical access endpoints keyed by relation (e.g. `self`). */
|
|
118
|
+
readonly endpoints?: Readonly<Record<string, string>>;
|
|
119
|
+
/** ISO-8601 timestamp the share state was last updated, when state exists. */
|
|
120
|
+
readonly updatedAt?: string | null;
|
|
121
|
+
/** Principal that last updated the share state, when state exists. */
|
|
122
|
+
readonly updatedById?: string | null;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* A dependency that blocks a public-sharing or embed-enablement request because
|
|
126
|
+
* it is not shareable by the requested audience. Mirrors
|
|
127
|
+
* `ConsoleShareDependencyConflict`.
|
|
128
|
+
*
|
|
129
|
+
* `itemName` is populated for authenticated callers and omitted on anonymous
|
|
130
|
+
* surfaces so private titles are never leaked.
|
|
131
|
+
*/
|
|
132
|
+
export interface HonuaShareDependencyConflict {
|
|
133
|
+
readonly itemId: string;
|
|
134
|
+
readonly itemType?: HonuaShareItemType | null;
|
|
135
|
+
readonly itemName?: string | null;
|
|
136
|
+
readonly blockingReason: string;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Anonymous-safe public-link / public-content resolution response. Mirrors
|
|
140
|
+
* `ConsolePublicLinkResolutionResponse`. Carries only presentation metadata —
|
|
141
|
+
* owner, provenance, and caller permissions are never present on this surface.
|
|
142
|
+
*/
|
|
143
|
+
export interface HonuaPublicLinkResolution {
|
|
144
|
+
readonly itemId: string;
|
|
145
|
+
readonly itemType: HonuaShareItemType;
|
|
146
|
+
readonly title?: string | null;
|
|
147
|
+
readonly summary?: string | null;
|
|
148
|
+
readonly accessTier: HonuaShareAccessTier;
|
|
149
|
+
readonly endpoints: Readonly<Record<string, string>>;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Anonymous-safe embed redemption response. Mirrors `ConsoleEmbedRedeemResponse`.
|
|
153
|
+
*/
|
|
154
|
+
export interface HonuaEmbedRedemption {
|
|
155
|
+
readonly itemId: string;
|
|
156
|
+
readonly itemType: HonuaShareItemType;
|
|
157
|
+
readonly title?: string | null;
|
|
158
|
+
readonly audience: HonuaEmbedAudience;
|
|
159
|
+
/** ISO-8601 hard expiry of the redeemed token. */
|
|
160
|
+
readonly expiresAt: string;
|
|
161
|
+
readonly endpoints: Readonly<Record<string, string>>;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/share/types.ts"],"names":[],"mappings":"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"}
|
package/share/types.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe Share, embed, public-link, and open-data contract types.
|
|
3
|
+
*
|
|
4
|
+
* These mirror the canonical honua-server Console Share contracts
|
|
5
|
+
* (`ConsoleShareAccessTier`, `ConsoleEmbedAudience`, `ConsoleShareProjection`,
|
|
6
|
+
* `ConsolePublicLinkResolutionResponse`, `ConsoleEmbedRedeemResponse`, …) and
|
|
7
|
+
* the `honua-sdk-dotnet` console clients so generated apps, embeds, and Console
|
|
8
|
+
* JS interop consume one vocabulary instead of inventing a second one. Field
|
|
9
|
+
* names match the server JSON wire names exactly so a parsed `fetch` body is
|
|
10
|
+
* assignable to these types without remapping.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
/** Known {@link HonuaShareAccessTier} members, for validation/iteration. */
|
|
15
|
+
export const HONUA_SHARE_ACCESS_TIERS = ["private", "organization", "public-link", "public-indexed"];
|
|
16
|
+
/** Known {@link HonuaEmbedAudience} members. */
|
|
17
|
+
export const HONUA_EMBED_AUDIENCES = ["map", "content"];
|