@honua/react 0.0.20-alpha.0 → 0.1.1-beta.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/contract/discovery.d.ts +231 -0
- package/contract/discovery.d.ts.map +1 -0
- package/contract/discovery.js +554 -0
- package/contract/edit-sketch.d.ts +8 -0
- package/contract/edit-sketch.d.ts.map +1 -1
- package/contract/edit-sketch.js +15 -0
- package/contract/edit-snapping.d.ts +160 -0
- package/contract/edit-snapping.d.ts.map +1 -0
- package/contract/edit-snapping.js +675 -0
- package/contract/generated/projjson-v0.7-crs-validator.d.ts +35 -0
- package/contract/generated/projjson-v0.7-crs-validator.d.ts.map +1 -0
- package/contract/generated/projjson-v0.7-crs-validator.js +3941 -0
- package/contract/index.d.ts +12 -1
- package/contract/index.d.ts.map +1 -1
- package/contract/index.js +4 -0
- package/contract/pmtiles.d.ts +193 -0
- package/contract/pmtiles.d.ts.map +1 -0
- package/contract/pmtiles.js +195 -0
- package/contract/protocol-module.d.ts +70 -0
- package/contract/protocol-module.d.ts.map +1 -0
- package/contract/protocol-module.js +1 -0
- package/contract/schema-envelope.d.ts +26 -0
- package/contract/schema-envelope.d.ts.map +1 -0
- package/contract/schema-envelope.js +25 -0
- package/contract/schema.d.ts +582 -0
- package/contract/schema.d.ts.map +1 -0
- package/contract/schema.js +2483 -0
- package/contract/source-capability-support.d.ts +6 -0
- package/contract/source-capability-support.d.ts.map +1 -0
- package/contract/source-capability-support.js +154 -0
- package/contract/source.d.ts +57 -15
- package/contract/source.d.ts.map +1 -1
- package/contract/source.js +368 -65
- package/contract/types.d.ts +171 -6
- package/contract/types.d.ts.map +1 -1
- package/contract/types.js +14 -14
- 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/bounded-json.d.ts +4 -0
- package/core/bounded-json.d.ts.map +1 -0
- package/core/bounded-json.js +38 -0
- package/core/cache-state.d.ts +9 -0
- package/core/cache-state.d.ts.map +1 -1
- package/core/cache-state.js +10 -0
- package/core/capabilities-xml.d.ts +33 -0
- package/core/capabilities-xml.d.ts.map +1 -0
- package/core/capabilities-xml.js +331 -0
- package/core/client.d.ts +35 -2
- package/core/client.d.ts.map +1 -1
- package/core/client.js +167 -29
- package/core/error-classifications.d.ts +153 -0
- package/core/error-classifications.d.ts.map +1 -0
- package/core/error-classifications.js +140 -0
- package/core/error-code-registry.d.ts +158 -0
- package/core/error-code-registry.d.ts.map +1 -0
- package/core/error-code-registry.js +143 -0
- package/core/error-envelope.d.ts +68 -0
- package/core/error-envelope.d.ts.map +1 -0
- package/core/error-envelope.js +357 -0
- package/core/errors.d.ts +73 -25
- package/core/errors.d.ts.map +1 -1
- package/core/errors.js +113 -46
- package/core/geoparquet-sql.d.ts +190 -0
- package/core/geoparquet-sql.d.ts.map +1 -0
- package/core/geoparquet-sql.js +368 -0
- package/core/odata-key-path.d.ts +12 -0
- package/core/odata-key-path.d.ts.map +1 -0
- package/core/odata-key-path.js +28 -0
- package/core/odata-write-codec.d.ts +66 -0
- package/core/odata-write-codec.d.ts.map +1 -0
- package/core/odata-write-codec.js +1083 -0
- package/core/odata.d.ts +59 -7
- package/core/odata.d.ts.map +1 -1
- package/core/odata.js +431 -99
- 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.map +1 -1
- package/core/ogc-features.js +35 -17
- package/core/ogc-maps.d.ts +7 -0
- package/core/ogc-maps.d.ts.map +1 -1
- package/core/ogc-maps.js +46 -7
- package/core/ogc-processes.d.ts +2 -1
- package/core/ogc-processes.d.ts.map +1 -1
- package/core/ogc-processes.js +33 -5
- package/core/ogc-records.d.ts +9 -0
- package/core/ogc-records.d.ts.map +1 -1
- package/core/ogc-records.js +78 -29
- package/core/ogc-tiles.d.ts +10 -1
- package/core/ogc-tiles.d.ts.map +1 -1
- package/core/ogc-tiles.js +56 -17
- package/core/path-utils.d.ts +9 -0
- package/core/path-utils.d.ts.map +1 -1
- package/core/path-utils.js +19 -0
- package/core/protocol-transport.d.ts +1 -0
- package/core/protocol-transport.d.ts.map +1 -1
- package/core/request-pipeline.d.ts.map +1 -1
- package/core/request-pipeline.js +1 -1
- package/core/spatial-filter.d.ts +8 -4
- package/core/spatial-filter.d.ts.map +1 -1
- package/core/spatial-filter.js +206 -16
- package/core/stac-static.d.ts +55 -0
- package/core/stac-static.d.ts.map +1 -0
- package/core/stac-static.js +386 -0
- package/core/stac.d.ts +12 -0
- package/core/stac.d.ts.map +1 -1
- package/core/stac.js +45 -15
- package/core/surfaces.d.ts +13 -0
- package/core/surfaces.d.ts.map +1 -1
- package/core/surfaces.js +127 -16
- package/core/types.d.ts +174 -7
- package/core/types.d.ts.map +1 -1
- package/core/wfs-capabilities.d.ts +12 -0
- package/core/wfs-capabilities.d.ts.map +1 -1
- package/core/wfs-capabilities.js +22 -3
- package/core/wfs.d.ts +13 -0
- package/core/wfs.d.ts.map +1 -1
- package/core/wfs.js +35 -5
- package/core/wms-capabilities.d.ts +56 -84
- package/core/wms-capabilities.d.ts.map +1 -1
- package/core/wms-capabilities.js +212 -509
- package/core/wmts-capabilities.d.ts +62 -62
- package/core/wmts-capabilities.d.ts.map +1 -1
- package/core/wmts-capabilities.js +224 -371
- package/esri-compat/editor.d.ts +8 -0
- package/esri-compat/editor.d.ts.map +1 -1
- package/esri-compat/editor.js +13 -0
- package/esri-compat/feature-layer.d.ts +2 -0
- package/esri-compat/feature-layer.d.ts.map +1 -1
- package/esri-compat/feature-layer.js +1 -0
- package/esri-compat/identity-manager.d.ts +43 -0
- package/esri-compat/identity-manager.d.ts.map +1 -1
- package/esri-compat/identity-manager.js +131 -1
- package/esri-compat/layer-list.d.ts +11 -0
- package/esri-compat/layer-list.d.ts.map +1 -1
- package/esri-compat/layer-list.js +49 -0
- package/esri-compat/legend.d.ts +10 -0
- package/esri-compat/legend.d.ts.map +1 -1
- package/esri-compat/legend.js +27 -0
- package/esri-compat/oauth-info.d.ts +15 -0
- package/esri-compat/oauth-info.d.ts.map +1 -1
- package/esri-compat/oauth-info.js +27 -0
- package/esri-compat/portal.d.ts +197 -0
- package/esri-compat/portal.d.ts.map +1 -0
- package/esri-compat/portal.js +251 -0
- package/esri-compat/renderer-objects.d.ts +40 -0
- package/esri-compat/renderer-objects.d.ts.map +1 -0
- package/esri-compat/renderer-objects.js +62 -0
- package/esri-compat/sketch.d.ts +43 -0
- package/esri-compat/sketch.d.ts.map +1 -1
- package/esri-compat/sketch.js +46 -0
- package/esri-compat/snapping.d.ts +43 -0
- package/esri-compat/snapping.d.ts.map +1 -0
- package/esri-compat/snapping.js +45 -0
- package/esri-compat/url.d.ts.map +1 -1
- package/esri-compat/url.js +1 -1
- package/esri-compat/widget-host.d.ts +84 -0
- package/esri-compat/widget-host.d.ts.map +1 -0
- package/esri-compat/widget-host.js +159 -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/generated-app/errors.d.ts +18 -2
- package/generated-app/errors.d.ts.map +1 -1
- package/generated-app/errors.js +44 -11
- package/map/automatic-mount-integration.d.ts +134 -0
- package/map/automatic-mount-integration.d.ts.map +1 -0
- package/map/automatic-mount-integration.js +305 -0
- package/map/automatic-source-strategy.d.ts +125 -0
- package/map/automatic-source-strategy.d.ts.map +1 -0
- package/map/automatic-source-strategy.js +494 -0
- package/map/data-to-map-bridge.d.ts +293 -0
- package/map/data-to-map-bridge.d.ts.map +1 -0
- package/map/data-to-map-bridge.js +817 -0
- package/map/geojson-projection.d.ts +33 -0
- package/map/geojson-projection.d.ts.map +1 -0
- package/map/geojson-projection.js +118 -0
- package/map/index.d.ts +14 -0
- package/map/index.d.ts.map +1 -1
- package/map/index.js +8 -0
- package/map/raster-source-spec.d.ts +30 -0
- package/map/raster-source-spec.d.ts.map +1 -0
- package/map/raster-source-spec.js +190 -0
- package/map/raster-source-strategy.d.ts +65 -0
- package/map/raster-source-strategy.d.ts.map +1 -0
- package/map/raster-source-strategy.js +232 -0
- package/map/source-to-maplibre.d.ts +91 -0
- package/map/source-to-maplibre.d.ts.map +1 -0
- package/map/source-to-maplibre.js +454 -0
- package/map/temporal-playback.d.ts +139 -0
- package/map/temporal-playback.d.ts.map +1 -0
- package/map/temporal-playback.js +247 -0
- package/package.json +19 -1
- package/query-planner/canonical.d.ts +7 -0
- package/query-planner/canonical.d.ts.map +1 -0
- package/query-planner/canonical.js +145 -0
- package/query-planner/cql2-json.d.ts +17 -0
- package/query-planner/cql2-json.d.ts.map +1 -0
- package/query-planner/cql2-json.js +646 -0
- package/query-planner/diagnostics.d.ts +35 -0
- package/query-planner/diagnostics.d.ts.map +1 -0
- package/query-planner/diagnostics.js +373 -0
- package/query-planner/duckdb.d.ts +79 -0
- package/query-planner/duckdb.d.ts.map +1 -0
- package/query-planner/duckdb.js +758 -0
- package/query-planner/execution-context.d.ts +5 -0
- package/query-planner/execution-context.d.ts.map +1 -0
- package/query-planner/execution-context.js +50 -0
- package/query-planner/executor.d.ts +5 -0
- package/query-planner/executor.d.ts.map +1 -0
- package/query-planner/executor.js +223 -0
- package/query-planner/geoservices.d.ts +91 -0
- package/query-planner/geoservices.d.ts.map +1 -0
- package/query-planner/geoservices.js +667 -0
- package/query-planner/grpc.d.ts +100 -0
- package/query-planner/grpc.d.ts.map +1 -0
- package/query-planner/grpc.js +736 -0
- package/query-planner/index.d.ts +44 -0
- package/query-planner/index.d.ts.map +1 -0
- package/query-planner/index.js +30 -0
- package/query-planner/ir.d.ts +20 -0
- package/query-planner/ir.d.ts.map +1 -0
- package/query-planner/ir.js +417 -0
- package/query-planner/local-aggregate.d.ts +5 -0
- package/query-planner/local-aggregate.d.ts.map +1 -0
- package/query-planner/local-aggregate.js +126 -0
- package/query-planner/odata.d.ts +48 -0
- package/query-planner/odata.d.ts.map +1 -0
- package/query-planner/odata.js +662 -0
- package/query-planner/ogc-compiler.d.ts +55 -0
- package/query-planner/ogc-compiler.d.ts.map +1 -0
- package/query-planner/ogc-compiler.js +480 -0
- package/query-planner/ogc-features.d.ts +53 -0
- package/query-planner/ogc-features.d.ts.map +1 -0
- package/query-planner/ogc-features.js +617 -0
- package/query-planner/planner.d.ts +17 -0
- package/query-planner/planner.d.ts.map +1 -0
- package/query-planner/planner.js +818 -0
- package/query-planner/resource.d.ts +94 -0
- package/query-planner/resource.d.ts.map +1 -0
- package/query-planner/resource.js +526 -0
- package/query-planner/semantic-canonical.d.ts +15 -0
- package/query-planner/semantic-canonical.d.ts.map +1 -0
- package/query-planner/semantic-canonical.js +62 -0
- package/query-planner/semantic-compat.d.ts +10 -0
- package/query-planner/semantic-compat.d.ts.map +1 -0
- package/query-planner/semantic-compat.js +35 -0
- package/query-planner/semantic-compiler.d.ts +64 -0
- package/query-planner/semantic-compiler.d.ts.map +1 -0
- package/query-planner/semantic-compiler.js +81 -0
- package/query-planner/semantic-literals.d.ts +30 -0
- package/query-planner/semantic-literals.d.ts.map +1 -0
- package/query-planner/semantic-literals.js +133 -0
- package/query-planner/semantic-types.d.ts +265 -0
- package/query-planner/semantic-types.d.ts.map +1 -0
- package/query-planner/semantic-types.js +1 -0
- package/query-planner/semantic.d.ts +54 -0
- package/query-planner/semantic.d.ts.map +1 -0
- package/query-planner/semantic.js +1421 -0
- package/query-planner/types.d.ts +560 -0
- package/query-planner/types.d.ts.map +1 -0
- package/query-planner/types.js +49 -0
- package/query-planner/wfs-semantic.d.ts +58 -0
- package/query-planner/wfs-semantic.d.ts.map +1 -0
- package/query-planner/wfs-semantic.js +547 -0
- package/query-planner/wfs.d.ts +6 -0
- package/query-planner/wfs.d.ts.map +1 -0
- package/query-planner/wfs.js +71 -0
- package/react/external-map.d.ts +67 -0
- package/react/external-map.d.ts.map +1 -0
- package/react/external-map.js +63 -0
- package/react/honua-map.d.ts.map +1 -1
- package/react/honua-map.js +3 -2
- package/react/honua-source-layer.d.ts +110 -0
- package/react/honua-source-layer.d.ts.map +1 -0
- package/react/honua-source-layer.js +101 -0
- package/react/hooks.d.ts +28 -0
- package/react/hooks.d.ts.map +1 -1
- package/react/hooks.js +26 -4
- package/react/index.d.ts +8 -0
- package/react/index.d.ts.map +1 -1
- package/react/index.js +5 -0
- package/react/query-cache.d.ts +26 -4
- package/react/query-cache.d.ts.map +1 -1
- package/react/query-cache.js +51 -8
- package/react/selection.d.ts +177 -0
- package/react/selection.d.ts.map +1 -0
- package/react/selection.js +0 -0
- package/react/use-mounted-source.d.ts +69 -0
- package/react/use-mounted-source.d.ts.map +1 -0
- package/react/use-mounted-source.js +346 -0
- package/runtime/edit-snapping.d.ts +107 -0
- package/runtime/edit-snapping.d.ts.map +1 -0
- package/runtime/edit-snapping.js +190 -0
- package/runtime/errors.d.ts +3 -2
- package/runtime/errors.d.ts.map +1 -1
- package/runtime/errors.js +19 -2
- package/runtime/index.d.ts +8 -2
- package/runtime/index.d.ts.map +1 -1
- package/runtime/index.js +4 -4
- package/runtime/load-package.d.ts.map +1 -1
- package/runtime/load-package.js +8 -0
- package/runtime/map-package-validation.d.ts +0 -13
- package/runtime/map-package-validation.d.ts.map +1 -1
- package/runtime/map-package-validation.js +0 -12
- package/runtime/map-package.d.ts +1 -1
- package/runtime/map-package.d.ts.map +1 -1
- package/runtime/maplibre-renderer.d.ts +41 -0
- package/runtime/maplibre-renderer.d.ts.map +1 -0
- package/runtime/maplibre-renderer.js +322 -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/query-tiles.d.ts +2 -1
- package/runtime/query-tiles.d.ts.map +1 -1
- package/runtime/query-tiles.js +6 -2
- package/runtime/source-bridge.d.ts +4 -4
- package/runtime/source-bridge.d.ts.map +1 -1
- package/runtime/source-bridge.js +36 -56
- package/runtime/style-interactions.d.ts +3 -2
- package/runtime/style-interactions.d.ts.map +1 -1
- package/runtime/style-interactions.js +11 -3
- package/runtime/terra-draw-sketch.d.ts +275 -0
- package/runtime/terra-draw-sketch.d.ts.map +1 -0
- package/runtime/terra-draw-sketch.js +404 -0
- package/source-capability-registry.d.ts +1 -0
- package/source-capability-registry.js +1 -0
- package/source-capability-types.d.ts +186 -0
- package/source-capability-types.js +7 -0
- package/style/index.d.ts +2 -0
- package/style/index.d.ts.map +1 -1
- package/style/index.js +2 -0
- package/style/renderers.d.ts +326 -0
- package/style/renderers.d.ts.map +1 -0
- package/style/renderers.js +517 -0
- package/webmap/convert-renderer.d.ts +24 -3
- package/webmap/convert-renderer.d.ts.map +1 -1
- package/webmap/convert-renderer.js +93 -112
- package/webmap/index.d.ts +1 -1
- package/webmap/index.d.ts.map +1 -1
- package/webmap/index.js +1 -1
package/contract/index.d.ts
CHANGED
|
@@ -39,23 +39,34 @@
|
|
|
39
39
|
*
|
|
40
40
|
* @packageDocumentation
|
|
41
41
|
*/
|
|
42
|
-
export type { AdapterFor, AdapterKind, AdapterTypeMap, AggregationFn, AggregationHistogramBucketAliases, AggregationHistogramBucketSpec, AggregationMetric, AggregationSpec, AggregationTimeIntervalSpec, AggregationTimeIntervalUnit, AggregationTimeSeriesAliases, AggregationTimeSeriesSpec, AttachmentAdd, AttachmentApi, AttachmentDelete, AttachmentEditOutcome, AttachmentGroup, AttachmentInfo, AttachmentQuery, AttachmentUpdate, CanonicalFeature, Capabilities, Capability, CapabilityPolicy, CreateDatasetOptions, Dataset, DatasetId, DegradedReason, EditEnvelope, EditOutcome, EditResult, FeatureId, MapBinding, PaginationSpec, Protocol, Query, RelatedGroup, RelatedQuery, RelatedResult, ResolveSourceContext, Result, SortSpec, Source, SourceAnalyticsCapabilities, SourceDescriptor, SourceFreshnessContract, SourceHistogramCapabilityMetadata, SourceId, SourceLocator, SourceResolver, SourceSchema, SourceTimeSeriesCapabilityMetadata, } from "./types.js";
|
|
42
|
+
export type { AdapterFor, AdapterKind, AdapterTypeMap, AggregationFn, AggregationHistogramBucketAliases, AggregationHistogramBucketSpec, AggregationMetric, AggregationSpec, AggregationTimeIntervalSpec, AggregationTimeIntervalUnit, AggregationTimeSeriesAliases, AggregationTimeSeriesSpec, AttachmentAdd, AttachmentApi, AttachmentDelete, AttachmentEditOutcome, AttachmentGroup, AttachmentInfo, AttachmentQuery, AttachmentUpdate, CanonicalFeature, Capabilities, CapabilityAwareSource, Capability, CapabilityPolicy, CreateDatasetOptions, Dataset, DatasetId, DegradedReason, EditEnvelope, EditOutcome, EditResult, FeatureId, MapBinding, PaginationSpec, Protocol, Query, RasterRequestBinding, RelatedGroup, RelatedQuery, RelatedResult, ResolveSourceContext, Result, SortSpec, Source, SourceWithCapability, SourceAnalyticsCapabilities, SourceDescriptor, SourceFreshnessContract, SourceHistogramCapabilityMetadata, SourceId, SourceLocator, SourceResolver, SourceSchema, SourceTimeSeriesCapabilityMetadata, } from "./types.js";
|
|
43
43
|
export type { SpatialAggregationCacheMetadata, SpatialAggregationCategoryBucket, SpatialAggregationCategorySummarySpec, SpatialAggregationCategoryValue, SpatialAggregationCell, SpatialAggregationCellGeometry, SpatialAggregationContractFixture, SpatialAggregationCountSummarySpec, SpatialAggregationCountValue, SpatialAggregationDomainValue, SpatialAggregationGroupByMetadata, SpatialAggregationGroupBySpec, SpatialAggregationGroupedSummary, SpatialAggregationHistogramBucket, SpatialAggregationHistogramSummarySpec, SpatialAggregationHistogramValue, SpatialAggregationInclude, SpatialAggregationIndexModelMetadata, SpatialAggregationIndexCoverageMetadata, SpatialAggregationIndexSelection, SpatialAggregationIndexState, SpatialAggregationMetadata, SpatialAggregationMetricKind, SpatialAggregationMetricSummarySpec, SpatialAggregationMetricValue, SpatialAggregationPageInfo, SpatialAggregationPageRequest, SpatialAggregationProgressRefinement, SpatialAggregationProgressStatus, SpatialAggregationProgressiveState, SpatialAggregationRangeBucketSpec, SpatialAggregationRangeBucketValue, SpatialAggregationRangeSummarySpec, SpatialAggregationRangeValue, SpatialAggregationRequest, SpatialAggregationResolutionInput, SpatialAggregationResult, SpatialAggregationResolvedWidgetSummary, SpatialAggregationSummaryBag, SpatialAggregationSummaryBase, SpatialAggregationSummaryKind, SpatialAggregationSummaryMetadata, SpatialAggregationSummarySpec, SpatialAggregationSummaryValue, SpatialAggregationValidationIssue, SpatialAggregationValueType, SpatialAggregationViewport, SpatialAggregationWidgetKind, SpatialAggregationWidgetMetadata, SpatialAggregationWidgetSummarySource, } from "./spatial-aggregation.js";
|
|
44
44
|
export { CAPABILITIES, PROTOCOL_DEFAULT_CAPABILITIES, PROTOCOLS, capabilities, intersectCapabilities, unionCapabilities, } from "./types.js";
|
|
45
|
+
export type { SourceSchemaV2Envelope } from "./schema-envelope.js";
|
|
46
|
+
export { HONUA_DISCOVERY_ADAPTER_VERSION, HONUA_DISCOVERY_PROJECTION_VERSION, createDiscoveryCacheIdentity, inspectDiscoveredSource, normalizeDiscoveryEndpoint, resolveDiscoveryCapabilities, } from "./discovery.js";
|
|
47
|
+
export type { DiscoveryCacheIdentity, DiscoveryCacheIdentityOptions, DiscoveryCacheResourceIdentity, DiscoveryAxisOrderMetadata, DiscoveryCapabilityDecision, DiscoveryCapabilityDecisionCode, DiscoveryCapabilityEvidence, DiscoveryCapabilityEvidenceSummary, DiscoveryCapabilityPolicy, DiscoveryCapabilityResolution, DiscoveryDiagnostic, DiscoveryDiagnosticCode, DiscoveryDimensionMetadata, DiscoveryEvidenceKind, DiscoveryOperationMetadata, DiscoveryProvenance, DiscoverySourceMetadata, DiscoveryState, DiscoveryStyleMetadata, DiscoveryTileMatrixMetadata, DiscoveryTileMatrixSetMetadata, SourceDiscoveryInspection, } from "./discovery.js";
|
|
48
|
+
export { HonuaDiscoveryError } from "../core/errors.js";
|
|
49
|
+
export type { HonuaDiscoveryErrorCode } from "../core/errors.js";
|
|
45
50
|
export { ANALYTICS_SOURCE_SCHEMA_VERSION, analyticsSourceDegradedReason, analyticsSourceId, assessAnalyticsSourcePushdown, buildAnalyticsSourceCacheKey, defineIndexedSpatialSource, defineWarehouseQuerySource, defineWarehouseTableSource, defineWarehouseTilesetSource, isAnalyticsSourceDescriptor, normalizeAnalyticsSourceDescriptor, } from "./analytics-sources.js";
|
|
46
51
|
export type { AnalyticsIndexCoverageDescriptor, AnalyticsIndexCoverageKind, AnalyticsIndexDescriptor, AnalyticsIndexHierarchy, AnalyticsSourceCacheIdentity, AnalyticsSourceCacheKeyOptions, AnalyticsSourceCachePolicy, AnalyticsSourceCapabilityMetadata, AnalyticsSourceDescriptor, AnalyticsSourceDescriptorBase, AnalyticsSourceFallbackMode, AnalyticsSourceFallbackPolicy, AnalyticsSourceKind, AnalyticsSourceProtocolEscapeHatch, AnalyticsSourcePushdownAssessment, AnalyticsSourcePushdownCapability, AnalyticsSourceRelationDescriptor, AnalyticsSourceSchemaVersion, AnalyticsSourceSqlDescriptor, AnalyticsSourceTilesetDescriptor, AnalyticsWarehouseProvider, IndexedSpatialSourceDescriptor, WarehouseQuerySourceDescriptor, WarehouseTableSourceDescriptor, WarehouseTilesetSourceDescriptor, } from "./analytics-sources.js";
|
|
47
52
|
export type { WidgetCategoriesRequest, WidgetCategoriesResult, WidgetCategoryBucket, WidgetCountRequest, WidgetCountResult, WidgetFormulaRequest, WidgetFormulaResult, WidgetHistogramBin, WidgetHistogramRequest, WidgetHistogramResult, WidgetRangeRequest, WidgetRangeResult, WidgetSource, WidgetSourceCacheHints, WidgetSourceCacheMetadata, WidgetSourceExecutionMode, WidgetSourceFilterClause, WidgetSourceFreshnessContract, WidgetSourceModelKind, WidgetSourceOptions, WidgetSourceOrderBy, WidgetSourceProjection, WidgetSourceRequestBase, WidgetSourceResponseBase, WidgetSourceSchemaVersion, WidgetSourceValue, WidgetTimeSeriesBucket, WidgetTimeSeriesInterval, WidgetTimeSeriesIntervalUnit, WidgetTimeSeriesRequest, WidgetTimeSeriesResult, WidgetTopValueBucket, WidgetTopValuesRequest, WidgetTopValuesResult, } from "./widget-source.js";
|
|
48
53
|
export { WIDGET_SOURCE_SCHEMA_VERSION, createWidgetSource, widgetSource } from "./widget-source.js";
|
|
49
54
|
export { EditWorkflowSession, createEditSession, normalizeEditWorkflowFailures } from "./edit-session.js";
|
|
50
55
|
export type { CreateEditSessionOptions, EditAttachmentMutation, EditAttachmentMutationOutcome, EditFieldDomain, EditFieldDomainCodedValue, EditWorkflowCapabilityState, EditWorkflowCapabilitySummary, EditWorkflowConflictInfo, EditWorkflowConflictState, EditWorkflowFailure, EditWorkflowFailureKind, EditWorkflowField, EditWorkflowKind, EditWorkflowMetadata, EditWorkflowMetadataOptions, EditWorkflowOperation, EditWorkflowOptimisticHooks, EditWorkflowRelationship, EditWorkflowSnapshot, EditWorkflowStatus, EditWorkflowSubmitResult, EditWorkflowValidationError, EditWorkflowValidationResult, NormalizeEditWorkflowFailuresOptions, } from "./edit-session.js";
|
|
56
|
+
export { DEFAULT_SNAPPING_CONFIG, SnapIndex, compareSnapCandidates, createSnapIndex, createSnapIndexEditSessionHooks, resolveSnapCandidate, resolveSnappingConfig, withSnappedActiveVertex, } from "./edit-snapping.js";
|
|
57
|
+
export type { SnapCandidate, SnapCandidateKind, SnapIndexEditSessionHookOptions, SnapIndexFeatureInput, SnapIndexStats, SnapPosition, SnapProjection, SnapQueryInput, SnapResolution, SnapScreenPoint, SnapSourceOptions, SnappingConfig, } from "./edit-snapping.js";
|
|
51
58
|
export { EditSketchWorkflowModel, createEditSketchWorkflow } from "./edit-sketch.js";
|
|
52
59
|
export type { EditAnnotationPersistenceHook, EditAnnotationPersistenceSnapshot, EditAnnotationPersistenceState, EditSketchCapabilityState, EditSketchStatus, EditSketchTool, EditSketchToolCapability, EditSketchToolCapabilityInput, EditSketchUndoSnapshot, EditSketchWorkflowOptions, EditSketchWorkflowSnapshot, } from "./edit-sketch.js";
|
|
53
60
|
export { FEATURE_SERVER_H3_SPATIAL_AGGREGATION_INDEX_MODEL_ID, SPATIAL_AGGREGATION_CAPABILITY, SPATIAL_AGGREGATION_METADATA_SCHEMA_VERSION, SPATIAL_AGGREGATION_SCHEMA_VERSION, assertFeatureServerH3SpatialAggregationRequest, assertValidSpatialAggregationRequest, isSpatialAggregationComplete, resolveSpatialAggregationWidgetSummary, spatialAggregationProgress, spatialAggregationSummaryKindSupportedByFeatureServerH3, spatialAggregationSummaryKindRequiresField, spatialAggregationWidgets, validateFeatureServerH3SpatialAggregationRequest, validateSpatialAggregationRequest, } from "./spatial-aggregation.js";
|
|
54
61
|
export { QUERY_TILE_SERVER_CONTRACT_VERSION, QUERY_TILE_SERVER_FEATURE_DETAIL_ROUTE_TEMPLATE, QUERY_TILE_SERVER_RESPONSE_HEADERS, QUERY_TILE_SERVER_ROUTE_PREFIX, QUERY_TILE_SERVER_SOURCE_ROUTE_TEMPLATE, QUERY_TILE_SERVER_TILEJSON_ROUTE_TEMPLATE, QUERY_TILE_SERVER_TILE_ROUTE_TEMPLATE, buildQueryTileCacheKey, buildQueryTileFeatureDetailQuery, buildQueryTileServerPath, buildQueryTileServerUrl, defineQueryTileSource, loadQueryTileFeatureDetail, mapQueryTileFeatureIdentity, normalizeQueryTileKey, normalizeQueryTileSourceDescriptor, parseQueryTileFeatureDetailResponse, parseQueryTileJson, parseQueryTileServerErrorResponse, queryTileServerRequestParamsFromDescriptor, queryTileKeyString, stableJson, } from "./tiles.js";
|
|
55
62
|
export type { DefineQueryTileSourceOptions, QueryTileCacheIdentityDescriptor, QueryTileCacheKeyOptions, QueryTileCachePolicy, QueryTileEndpointDescriptor, QueryTileFallbackMode, QueryTileFallbackPolicy, QueryTileFeatureDetailOptions, QueryTileFeatureIdentityContext, QueryTileFeatureIdentityDescriptor, QueryTileFeatureIdentityMapper, QueryTileFeatureIdentityTarget, QueryTileFormat, QueryTileFeatureDetailResponse, QueryTileJson, QueryTileJsonVectorLayer, QueryTileKey, QueryTileKeyInput, QueryTileProjectionDescriptor, QueryTileScheme, QueryTileServerCachePolicyDescriptor, QueryTileServerCacheValidators, QueryTileServerContractFixture, QueryTileServerDegradation, QueryTileServerDegradationCode, QueryTileServerDegradationSeverity, QueryTileServerError, QueryTileServerErrorCode, QueryTileServerErrorResponse, QueryTileServerFeatureIdentityDescriptor, QueryTileServerLimitDescriptor, QueryTileServerRequestParameters, QueryTileServerRouteKind, QueryTileServerRouteOptions, QueryTileServerTileJsonMetadata, QueryTileSpatialReference, QueryTileSpatialReferenceDescriptor, QueryTileExtentDescriptor, QueryTileSourceDescriptor, } from "./tiles.js";
|
|
56
63
|
export { ALL_CAPABILITIES, FIRST_PARTY_PROTOCOLS, createDataset, geoServicesFeatureSource, geoServicesGPServiceSource, geoServicesGeometryServiceSource, geoServicesImageSource, geoServicesMapServiceSource, odataSource, ogcFeaturesSource, ogcTilesSource, ogcMapsSource, ogcRecordsSource, stacSearchSource, wfsSource, wmsSource, wmtsSource, } from "./source.js";
|
|
64
|
+
export type { OdataSourceOptions, OdataWriteEncoding } from "./source.js";
|
|
57
65
|
export type { IJobRun, JobError, JobProgress, JobResult, JobResultsOptions, JobSnapshot, JobSnapshotListener, JobStatus, } from "./jobs.js";
|
|
58
66
|
export { HonuaJobPollTimeoutError, isJobTerminal } from "./jobs.js";
|
|
67
|
+
export { HonuaPmtilesArchive, describePmtilesArchive, pmtilesProtocolModule, stripPmtilesScheme, toPmtilesSourceUrl, } from "./pmtiles.js";
|
|
68
|
+
export type { DescribePmtilesArchiveDeps, PmtilesArchiveDescription, PmtilesArchiveLike, PmtilesHeaderLike, PmtilesModuleLike, PmtilesRangeResponse, PmtilesSourceLike, PmtilesTileKind, PmtilesVectorLayerInfo, } from "./pmtiles.js";
|
|
69
|
+
export type { ProtocolModule, ProtocolModuleDiagnostic, ProtocolModuleDiscoverOptions, ProtocolModuleEnvironment, ProtocolModuleHandle, } from "./protocol-module.js";
|
|
59
70
|
export { TEMPORAL_CAPABILITY, TEMPORAL_ROUTE_PREFIX, TEMPORAL_ROUTES, TEMPORAL_SCHEMA_VERSION, assertValidTemporalRollbackPlanRequest, createTemporalClient, isReadOnlyTemporalHistory, temporalModeSupports, validateTemporalRollbackPlanRequest, } from "./temporal.js";
|
|
60
71
|
export type { TemporalAsOfRequest, TemporalAttributeChange, TemporalCheckpoint, TemporalChangeSet, TemporalChangeSetOperationKind, TemporalClient, TemporalClientCallOptions, TemporalContractFixture, TemporalCursor, TemporalCursorType, TemporalDiff, TemporalDiffRequest, TemporalDiffStatus, TemporalDiffSummary, TemporalError, TemporalErrorCode, TemporalFeatureChangeType, TemporalFeatureDiff, TemporalFeatureTimeline, TemporalFeatureTimelineRequest, TemporalFilter, TemporalGeometryChange, TemporalHistoryModel, TemporalJobRef, TemporalMode, TemporalRequestClient, TemporalRevision, TemporalRevisionOperation, TemporalRiskLevel, TemporalRollbackExecuteRequest, TemporalRollbackMode, TemporalRollbackOperation, TemporalRollbackPlan, TemporalRollbackPlanRequest, TemporalRollbackScope, TemporalRollbackStatus, TemporalSourceCapability, TemporalValidationIssue, } from "./temporal.js";
|
|
61
72
|
//# sourceMappingURL=index.d.ts.map
|
package/contract/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contract/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contract/index.ts"],"names":[],"mappings":"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"}
|
package/contract/index.js
CHANGED
|
@@ -40,12 +40,16 @@
|
|
|
40
40
|
* @packageDocumentation
|
|
41
41
|
*/
|
|
42
42
|
export { CAPABILITIES, PROTOCOL_DEFAULT_CAPABILITIES, PROTOCOLS, capabilities, intersectCapabilities, unionCapabilities, } from "./types.js";
|
|
43
|
+
export { HONUA_DISCOVERY_ADAPTER_VERSION, HONUA_DISCOVERY_PROJECTION_VERSION, createDiscoveryCacheIdentity, inspectDiscoveredSource, normalizeDiscoveryEndpoint, resolveDiscoveryCapabilities, } from "./discovery.js";
|
|
44
|
+
export { HonuaDiscoveryError } from "../core/errors.js";
|
|
43
45
|
export { ANALYTICS_SOURCE_SCHEMA_VERSION, analyticsSourceDegradedReason, analyticsSourceId, assessAnalyticsSourcePushdown, buildAnalyticsSourceCacheKey, defineIndexedSpatialSource, defineWarehouseQuerySource, defineWarehouseTableSource, defineWarehouseTilesetSource, isAnalyticsSourceDescriptor, normalizeAnalyticsSourceDescriptor, } from "./analytics-sources.js";
|
|
44
46
|
export { WIDGET_SOURCE_SCHEMA_VERSION, createWidgetSource, widgetSource } from "./widget-source.js";
|
|
45
47
|
export { EditWorkflowSession, createEditSession, normalizeEditWorkflowFailures } from "./edit-session.js";
|
|
48
|
+
export { DEFAULT_SNAPPING_CONFIG, SnapIndex, compareSnapCandidates, createSnapIndex, createSnapIndexEditSessionHooks, resolveSnapCandidate, resolveSnappingConfig, withSnappedActiveVertex, } from "./edit-snapping.js";
|
|
46
49
|
export { EditSketchWorkflowModel, createEditSketchWorkflow } from "./edit-sketch.js";
|
|
47
50
|
export { FEATURE_SERVER_H3_SPATIAL_AGGREGATION_INDEX_MODEL_ID, SPATIAL_AGGREGATION_CAPABILITY, SPATIAL_AGGREGATION_METADATA_SCHEMA_VERSION, SPATIAL_AGGREGATION_SCHEMA_VERSION, assertFeatureServerH3SpatialAggregationRequest, assertValidSpatialAggregationRequest, isSpatialAggregationComplete, resolveSpatialAggregationWidgetSummary, spatialAggregationProgress, spatialAggregationSummaryKindSupportedByFeatureServerH3, spatialAggregationSummaryKindRequiresField, spatialAggregationWidgets, validateFeatureServerH3SpatialAggregationRequest, validateSpatialAggregationRequest, } from "./spatial-aggregation.js";
|
|
48
51
|
export { QUERY_TILE_SERVER_CONTRACT_VERSION, QUERY_TILE_SERVER_FEATURE_DETAIL_ROUTE_TEMPLATE, QUERY_TILE_SERVER_RESPONSE_HEADERS, QUERY_TILE_SERVER_ROUTE_PREFIX, QUERY_TILE_SERVER_SOURCE_ROUTE_TEMPLATE, QUERY_TILE_SERVER_TILEJSON_ROUTE_TEMPLATE, QUERY_TILE_SERVER_TILE_ROUTE_TEMPLATE, buildQueryTileCacheKey, buildQueryTileFeatureDetailQuery, buildQueryTileServerPath, buildQueryTileServerUrl, defineQueryTileSource, loadQueryTileFeatureDetail, mapQueryTileFeatureIdentity, normalizeQueryTileKey, normalizeQueryTileSourceDescriptor, parseQueryTileFeatureDetailResponse, parseQueryTileJson, parseQueryTileServerErrorResponse, queryTileServerRequestParamsFromDescriptor, queryTileKeyString, stableJson, } from "./tiles.js";
|
|
49
52
|
export { ALL_CAPABILITIES, FIRST_PARTY_PROTOCOLS, createDataset, geoServicesFeatureSource, geoServicesGPServiceSource, geoServicesGeometryServiceSource, geoServicesImageSource, geoServicesMapServiceSource, odataSource, ogcFeaturesSource, ogcTilesSource, ogcMapsSource, ogcRecordsSource, stacSearchSource, wfsSource, wmsSource, wmtsSource, } from "./source.js";
|
|
50
53
|
export { HonuaJobPollTimeoutError, isJobTerminal } from "./jobs.js";
|
|
54
|
+
export { HonuaPmtilesArchive, describePmtilesArchive, pmtilesProtocolModule, stripPmtilesScheme, toPmtilesSourceUrl, } from "./pmtiles.js";
|
|
51
55
|
export { TEMPORAL_CAPABILITY, TEMPORAL_ROUTE_PREFIX, TEMPORAL_ROUTES, TEMPORAL_SCHEMA_VERSION, assertValidTemporalRollbackPlanRequest, createTemporalClient, isReadOnlyTemporalHistory, temporalModeSupports, validateTemporalRollbackPlanRequest, } from "./temporal.js";
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PMTiles archive inspection for the protocol-neutral contract.
|
|
3
|
+
*
|
|
4
|
+
* A PMTiles archive is a single, immutable file (on object storage or any
|
|
5
|
+
* static host) that stores an entire raster or vector tile pyramid. It
|
|
6
|
+
* participates in the `Dataset` / `Source` model as a **tiles-only** protocol:
|
|
7
|
+
* the canonical query family throws {@link HonuaCapabilityNotSupportedError}
|
|
8
|
+
* (there is no feature-query surface on an archive), while archive metadata —
|
|
9
|
+
* bounds, min/max zoom, and vector layer names — is inspected through
|
|
10
|
+
* `Source.protocol("pmtiles").describe()`.
|
|
11
|
+
*
|
|
12
|
+
* This module never statically imports the `pmtiles` package. The reader is
|
|
13
|
+
* pulled in lazily (`await import("pmtiles")`) the first time an archive is
|
|
14
|
+
* actually described, mirroring the Cesium adapter so consumers that never
|
|
15
|
+
* touch PMTiles pay zero bundle cost. A minimal `pmtiles` module slice is
|
|
16
|
+
* modelled here so the wiring stays unit-testable against an injected fake
|
|
17
|
+
* without a network fetch.
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
import type { ProtocolModule } from "./protocol-module.js";
|
|
22
|
+
/**
|
|
23
|
+
* Canonical tile-payload kinds a PMTiles archive can store. `mvt` is a vector
|
|
24
|
+
* archive (Mapbox Vector Tiles); the rest are raster encodings. `unknown`
|
|
25
|
+
* covers archives whose header tile-type byte the reader could not classify.
|
|
26
|
+
*/
|
|
27
|
+
export type PmtilesTileKind = "mvt" | "png" | "jpeg" | "webp" | "avif" | "unknown";
|
|
28
|
+
/**
|
|
29
|
+
* One vector layer advertised in a vector archive's TileJSON-style metadata
|
|
30
|
+
* (`vector_layers`). Present only for `mvt` archives; raster archives report an
|
|
31
|
+
* empty {@link PmtilesArchiveDescription.vectorLayers} list.
|
|
32
|
+
*/
|
|
33
|
+
export interface PmtilesVectorLayerInfo {
|
|
34
|
+
/** Layer id — the MapLibre `source-layer` name to reference in a style. */
|
|
35
|
+
readonly id: string;
|
|
36
|
+
/** Optional human description carried in the archive metadata. */
|
|
37
|
+
readonly description?: string;
|
|
38
|
+
/** Optional per-layer minimum zoom advertised in the metadata. */
|
|
39
|
+
readonly minZoom?: number;
|
|
40
|
+
/** Optional per-layer maximum zoom advertised in the metadata. */
|
|
41
|
+
readonly maxZoom?: number;
|
|
42
|
+
/** Optional field-name → type map advertised in the metadata. */
|
|
43
|
+
readonly fields?: Readonly<Record<string, string>>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The archive metadata surfaced by {@link describePmtilesArchive}. Bounds are
|
|
47
|
+
* `[west, south, east, north]` in degrees; `center` is `[lon, lat, zoom]`. The
|
|
48
|
+
* raw metadata JSON is preserved on `metadata` for callers that need archive
|
|
49
|
+
* fields beyond the normalized shape.
|
|
50
|
+
*/
|
|
51
|
+
export interface PmtilesArchiveDescription {
|
|
52
|
+
/** Archive URL the description was read from. */
|
|
53
|
+
readonly url: string;
|
|
54
|
+
/** Tile payload kind stored in the archive. */
|
|
55
|
+
readonly tileKind: PmtilesTileKind;
|
|
56
|
+
/** Geographic bounds `[west, south, east, north]` in degrees. */
|
|
57
|
+
readonly bounds: readonly [number, number, number, number];
|
|
58
|
+
/** Lowest zoom level present in the archive. */
|
|
59
|
+
readonly minZoom: number;
|
|
60
|
+
/** Highest zoom level present in the archive. */
|
|
61
|
+
readonly maxZoom: number;
|
|
62
|
+
/** Suggested view center `[lon, lat, zoom]`. */
|
|
63
|
+
readonly center: readonly [number, number, number];
|
|
64
|
+
/** Vector layer definitions (empty for raster archives). */
|
|
65
|
+
readonly vectorLayers: readonly PmtilesVectorLayerInfo[];
|
|
66
|
+
/** Attribution string advertised in the archive metadata, when present. */
|
|
67
|
+
readonly attribution?: string;
|
|
68
|
+
/** The raw, parsed archive metadata JSON. */
|
|
69
|
+
readonly metadata: Readonly<Record<string, unknown>>;
|
|
70
|
+
}
|
|
71
|
+
/** A byte-range response from a {@link PmtilesSourceLike}. */
|
|
72
|
+
export interface PmtilesRangeResponse {
|
|
73
|
+
readonly data: ArrayBuffer;
|
|
74
|
+
readonly etag?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The `pmtiles` `Source` surface — a byte-range reader over the archive. A
|
|
78
|
+
* remote archive uses the reader's own `FetchSource`; a local fixture (tests)
|
|
79
|
+
* supplies a buffer-backed implementation.
|
|
80
|
+
*/
|
|
81
|
+
export interface PmtilesSourceLike {
|
|
82
|
+
getBytes(offset: number, length: number, signal?: AbortSignal, etag?: string): Promise<PmtilesRangeResponse>;
|
|
83
|
+
getKey(): string;
|
|
84
|
+
}
|
|
85
|
+
/** The `Header` fields this module reads (a subset of `pmtiles.Header`). */
|
|
86
|
+
export interface PmtilesHeaderLike {
|
|
87
|
+
readonly minZoom: number;
|
|
88
|
+
readonly maxZoom: number;
|
|
89
|
+
readonly minLon: number;
|
|
90
|
+
readonly minLat: number;
|
|
91
|
+
readonly maxLon: number;
|
|
92
|
+
readonly maxLat: number;
|
|
93
|
+
readonly centerZoom: number;
|
|
94
|
+
readonly centerLon: number;
|
|
95
|
+
readonly centerLat: number;
|
|
96
|
+
readonly tileType: number;
|
|
97
|
+
}
|
|
98
|
+
/** The `PMTiles` reader surface this module drives. */
|
|
99
|
+
export interface PmtilesArchiveLike {
|
|
100
|
+
getHeader(): Promise<PmtilesHeaderLike>;
|
|
101
|
+
getMetadata(): Promise<unknown>;
|
|
102
|
+
}
|
|
103
|
+
/** The minimal slice of `typeof import("pmtiles")` the describe path needs. */
|
|
104
|
+
export interface PmtilesModuleLike {
|
|
105
|
+
new (source: PmtilesSourceLike | string): PmtilesArchiveLike;
|
|
106
|
+
}
|
|
107
|
+
/** Injectable dependencies for {@link describePmtilesArchive} (test seams). */
|
|
108
|
+
export interface DescribePmtilesArchiveDeps {
|
|
109
|
+
/** Override the lazily-imported `pmtiles.PMTiles` constructor. */
|
|
110
|
+
readonly PMTiles?: PmtilesModuleLike;
|
|
111
|
+
/** Read from a local/in-memory source instead of fetching `url`. */
|
|
112
|
+
readonly source?: PmtilesSourceLike;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Inspect a PMTiles archive and return its normalized metadata (bounds, min/max
|
|
116
|
+
* zoom, suggested center, and vector layer names). The `pmtiles` reader is
|
|
117
|
+
* imported lazily on first use.
|
|
118
|
+
*
|
|
119
|
+
* Pass {@link DescribePmtilesArchiveDeps.source} to read a local archive (the
|
|
120
|
+
* unit-test path) or {@link DescribePmtilesArchiveDeps.PMTiles} to inject a fake
|
|
121
|
+
* reader; both default to fetching `url` through the real reader.
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```ts
|
|
125
|
+
* const info = await describePmtilesArchive("https://example.com/basemap.pmtiles");
|
|
126
|
+
* console.log(info.bounds, info.minZoom, info.maxZoom);
|
|
127
|
+
* for (const layer of info.vectorLayers) console.log(layer.id);
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
export declare function describePmtilesArchive(url: string, deps?: DescribePmtilesArchiveDeps): Promise<PmtilesArchiveDescription>;
|
|
131
|
+
/**
|
|
132
|
+
* Typed adapter handle for a PMTiles archive, reachable through
|
|
133
|
+
* `Source.protocol("pmtiles")`. Provides the archive-metadata inspection
|
|
134
|
+
* surface ({@link HonuaPmtilesArchive.describe}) that the tiles-only PMTiles
|
|
135
|
+
* `Source` uses to participate in the Dataset model honestly. The first
|
|
136
|
+
* `describe()` call is cached so repeated inspection does not re-open the
|
|
137
|
+
* archive.
|
|
138
|
+
*/
|
|
139
|
+
export declare class HonuaPmtilesArchive {
|
|
140
|
+
#private;
|
|
141
|
+
/** The `pmtiles://`-free archive URL this handle inspects. */
|
|
142
|
+
readonly url: string;
|
|
143
|
+
constructor(url: string, deps?: DescribePmtilesArchiveDeps);
|
|
144
|
+
/**
|
|
145
|
+
* Inspect the archive and return its normalized metadata. Cached after the
|
|
146
|
+
* first successful call; a failed inspection is not cached so a transient
|
|
147
|
+
* fetch error can be retried.
|
|
148
|
+
*/
|
|
149
|
+
describe(): Promise<PmtilesArchiveDescription>;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Strip a leading `pmtiles://` scheme from an archive URL, if present. MapLibre
|
|
153
|
+
* style sources address PMTiles archives as `pmtiles://https://…`; the reader
|
|
154
|
+
* (and this contract's describe path) want the bare archive URL.
|
|
155
|
+
*/
|
|
156
|
+
export declare function stripPmtilesScheme(url: string): string;
|
|
157
|
+
/**
|
|
158
|
+
* Add the `pmtiles://` scheme to a bare archive URL if it is not already
|
|
159
|
+
* present. The inverse of {@link stripPmtilesScheme}; use it when composing a
|
|
160
|
+
* MapLibre source `url` from a plain archive locator.
|
|
161
|
+
*/
|
|
162
|
+
export declare function toPmtilesSourceUrl(url: string): string;
|
|
163
|
+
/**
|
|
164
|
+
* The first-party PMTiles {@link ProtocolModule} (issue #538).
|
|
165
|
+
*
|
|
166
|
+
* `pmtilesSource()` (`src/contract/source.ts`) builds its
|
|
167
|
+
* `Source.protocol("pmtiles")` escape hatch through this exact factory
|
|
168
|
+
* instead of constructing {@link HonuaPmtilesArchive} directly, and
|
|
169
|
+
* `pmtilesProtocolPlugin` (`@honua/sdk-js/plugin`) packages the same factory
|
|
170
|
+
* as a `HonuaPluginFactory<"protocol">` for `HonuaPluginRegistry`. Both
|
|
171
|
+
* callers run the identical construction path, which is what proves the
|
|
172
|
+
* built-in adapter carries no special registry privilege.
|
|
173
|
+
*
|
|
174
|
+
* `discover()` is synchronous: PMTiles opens its reader lazily on the
|
|
175
|
+
* returned handle's own first `describe()` call, so no I/O happens before a
|
|
176
|
+
* caller actually asks for archive metadata (REQ-003, issue #538).
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```ts
|
|
180
|
+
* const module = pmtilesProtocolModule();
|
|
181
|
+
* const handle = module.discover({
|
|
182
|
+
* id: "basemap",
|
|
183
|
+
* protocol: "pmtiles",
|
|
184
|
+
* locator: { url: "https://example.com/basemap.pmtiles" },
|
|
185
|
+
* });
|
|
186
|
+
* if (!(handle instanceof Promise)) {
|
|
187
|
+
* const info = await handle.adapter.describe();
|
|
188
|
+
* console.log(info.bounds);
|
|
189
|
+
* }
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
export declare function pmtilesProtocolModule(deps?: DescribePmtilesArchiveDeps): ProtocolModule<"pmtiles", HonuaPmtilesArchive>;
|
|
193
|
+
//# sourceMappingURL=pmtiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pmtiles.d.ts","sourceRoot":"","sources":["../../../src/contract/pmtiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { PROTOCOL_DEFAULT_CAPABILITIES } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Lazily import the `pmtiles` reader. Kept in its own function so the dynamic
|
|
4
|
+
* `import("pmtiles")` is the only reference to the package in `src/`, which is
|
|
5
|
+
* what keeps PMTiles out of every bundle that never inspects an archive.
|
|
6
|
+
*/
|
|
7
|
+
async function loadPmtilesCtor() {
|
|
8
|
+
const mod = (await import("pmtiles"));
|
|
9
|
+
return mod.PMTiles;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The `pmtiles` `TileType` enum values (spec v3). Duplicated here as a plain
|
|
13
|
+
* map so classification does not force a value import of the package.
|
|
14
|
+
*/
|
|
15
|
+
const TILE_KIND_BY_TYPE = {
|
|
16
|
+
0: "unknown",
|
|
17
|
+
1: "mvt",
|
|
18
|
+
2: "png",
|
|
19
|
+
3: "jpeg",
|
|
20
|
+
4: "webp",
|
|
21
|
+
5: "avif",
|
|
22
|
+
};
|
|
23
|
+
function tileKindFromHeader(tileType) {
|
|
24
|
+
return TILE_KIND_BY_TYPE[tileType] ?? "unknown";
|
|
25
|
+
}
|
|
26
|
+
function readVectorLayers(metadata) {
|
|
27
|
+
const raw = metadata.vector_layers;
|
|
28
|
+
if (!Array.isArray(raw))
|
|
29
|
+
return [];
|
|
30
|
+
const layers = [];
|
|
31
|
+
for (const entry of raw) {
|
|
32
|
+
if (!entry || typeof entry !== "object")
|
|
33
|
+
continue;
|
|
34
|
+
const record = entry;
|
|
35
|
+
const id = record.id;
|
|
36
|
+
if (typeof id !== "string" || id === "")
|
|
37
|
+
continue;
|
|
38
|
+
const info = { id };
|
|
39
|
+
if (typeof record.description === "string")
|
|
40
|
+
info.description = record.description;
|
|
41
|
+
if (typeof record.minzoom === "number")
|
|
42
|
+
info.minZoom = record.minzoom;
|
|
43
|
+
if (typeof record.maxzoom === "number")
|
|
44
|
+
info.maxZoom = record.maxzoom;
|
|
45
|
+
if (record.fields && typeof record.fields === "object") {
|
|
46
|
+
info.fields = record.fields;
|
|
47
|
+
}
|
|
48
|
+
layers.push(info);
|
|
49
|
+
}
|
|
50
|
+
return layers;
|
|
51
|
+
}
|
|
52
|
+
function asMetadataRecord(metadata) {
|
|
53
|
+
return metadata && typeof metadata === "object" ? metadata : {};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Inspect a PMTiles archive and return its normalized metadata (bounds, min/max
|
|
57
|
+
* zoom, suggested center, and vector layer names). The `pmtiles` reader is
|
|
58
|
+
* imported lazily on first use.
|
|
59
|
+
*
|
|
60
|
+
* Pass {@link DescribePmtilesArchiveDeps.source} to read a local archive (the
|
|
61
|
+
* unit-test path) or {@link DescribePmtilesArchiveDeps.PMTiles} to inject a fake
|
|
62
|
+
* reader; both default to fetching `url` through the real reader.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* const info = await describePmtilesArchive("https://example.com/basemap.pmtiles");
|
|
67
|
+
* console.log(info.bounds, info.minZoom, info.maxZoom);
|
|
68
|
+
* for (const layer of info.vectorLayers) console.log(layer.id);
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export async function describePmtilesArchive(url, deps = {}) {
|
|
72
|
+
const PMTiles = deps.PMTiles ?? (await loadPmtilesCtor());
|
|
73
|
+
const archive = deps.source ? new PMTiles(deps.source) : new PMTiles(url);
|
|
74
|
+
const [header, rawMetadata] = await Promise.all([archive.getHeader(), archive.getMetadata()]);
|
|
75
|
+
const metadata = asMetadataRecord(rawMetadata);
|
|
76
|
+
const attribution = typeof metadata.attribution === "string" ? metadata.attribution : undefined;
|
|
77
|
+
return {
|
|
78
|
+
url,
|
|
79
|
+
tileKind: tileKindFromHeader(header.tileType),
|
|
80
|
+
bounds: [header.minLon, header.minLat, header.maxLon, header.maxLat],
|
|
81
|
+
minZoom: header.minZoom,
|
|
82
|
+
maxZoom: header.maxZoom,
|
|
83
|
+
center: [header.centerLon, header.centerLat, header.centerZoom],
|
|
84
|
+
vectorLayers: readVectorLayers(metadata),
|
|
85
|
+
...(attribution ? { attribution } : {}),
|
|
86
|
+
metadata,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Typed adapter handle for a PMTiles archive, reachable through
|
|
91
|
+
* `Source.protocol("pmtiles")`. Provides the archive-metadata inspection
|
|
92
|
+
* surface ({@link HonuaPmtilesArchive.describe}) that the tiles-only PMTiles
|
|
93
|
+
* `Source` uses to participate in the Dataset model honestly. The first
|
|
94
|
+
* `describe()` call is cached so repeated inspection does not re-open the
|
|
95
|
+
* archive.
|
|
96
|
+
*/
|
|
97
|
+
export class HonuaPmtilesArchive {
|
|
98
|
+
/** The `pmtiles://`-free archive URL this handle inspects. */
|
|
99
|
+
url;
|
|
100
|
+
#deps;
|
|
101
|
+
#description;
|
|
102
|
+
constructor(url, deps = {}) {
|
|
103
|
+
this.url = url;
|
|
104
|
+
this.#deps = deps;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Inspect the archive and return its normalized metadata. Cached after the
|
|
108
|
+
* first successful call; a failed inspection is not cached so a transient
|
|
109
|
+
* fetch error can be retried.
|
|
110
|
+
*/
|
|
111
|
+
describe() {
|
|
112
|
+
if (!this.#description) {
|
|
113
|
+
this.#description = describePmtilesArchive(this.url, this.#deps).catch((error) => {
|
|
114
|
+
this.#description = undefined;
|
|
115
|
+
throw error;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
return this.#description;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Strip a leading `pmtiles://` scheme from an archive URL, if present. MapLibre
|
|
123
|
+
* style sources address PMTiles archives as `pmtiles://https://…`; the reader
|
|
124
|
+
* (and this contract's describe path) want the bare archive URL.
|
|
125
|
+
*/
|
|
126
|
+
export function stripPmtilesScheme(url) {
|
|
127
|
+
return url.startsWith("pmtiles://") ? url.slice("pmtiles://".length) : url;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Add the `pmtiles://` scheme to a bare archive URL if it is not already
|
|
131
|
+
* present. The inverse of {@link stripPmtilesScheme}; use it when composing a
|
|
132
|
+
* MapLibre source `url` from a plain archive locator.
|
|
133
|
+
*/
|
|
134
|
+
export function toPmtilesSourceUrl(url) {
|
|
135
|
+
return url.startsWith("pmtiles://") ? url : `pmtiles://${url}`;
|
|
136
|
+
}
|
|
137
|
+
function requirePmtilesModuleLocator(descriptor) {
|
|
138
|
+
const { url } = descriptor.locator;
|
|
139
|
+
if (typeof url !== "string" || url === "") {
|
|
140
|
+
throw new Error(`createDataset: source "${descriptor.id}" (pmtiles) requires locator.url`);
|
|
141
|
+
}
|
|
142
|
+
return url;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* The first-party PMTiles {@link ProtocolModule} (issue #538).
|
|
146
|
+
*
|
|
147
|
+
* `pmtilesSource()` (`src/contract/source.ts`) builds its
|
|
148
|
+
* `Source.protocol("pmtiles")` escape hatch through this exact factory
|
|
149
|
+
* instead of constructing {@link HonuaPmtilesArchive} directly, and
|
|
150
|
+
* `pmtilesProtocolPlugin` (`@honua/sdk-js/plugin`) packages the same factory
|
|
151
|
+
* as a `HonuaPluginFactory<"protocol">` for `HonuaPluginRegistry`. Both
|
|
152
|
+
* callers run the identical construction path, which is what proves the
|
|
153
|
+
* built-in adapter carries no special registry privilege.
|
|
154
|
+
*
|
|
155
|
+
* `discover()` is synchronous: PMTiles opens its reader lazily on the
|
|
156
|
+
* returned handle's own first `describe()` call, so no I/O happens before a
|
|
157
|
+
* caller actually asks for archive metadata (REQ-003, issue #538).
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* ```ts
|
|
161
|
+
* const module = pmtilesProtocolModule();
|
|
162
|
+
* const handle = module.discover({
|
|
163
|
+
* id: "basemap",
|
|
164
|
+
* protocol: "pmtiles",
|
|
165
|
+
* locator: { url: "https://example.com/basemap.pmtiles" },
|
|
166
|
+
* });
|
|
167
|
+
* if (!(handle instanceof Promise)) {
|
|
168
|
+
* const info = await handle.adapter.describe();
|
|
169
|
+
* console.log(info.bounds);
|
|
170
|
+
* }
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export function pmtilesProtocolModule(deps = {}) {
|
|
174
|
+
return Object.freeze({
|
|
175
|
+
kind: "pmtiles",
|
|
176
|
+
environments: Object.freeze(["browser", "node", "worker"]),
|
|
177
|
+
capabilities(descriptor) {
|
|
178
|
+
return descriptor.capabilities ?? PROTOCOL_DEFAULT_CAPABILITIES.pmtiles;
|
|
179
|
+
},
|
|
180
|
+
discover(descriptor) {
|
|
181
|
+
const url = stripPmtilesScheme(requirePmtilesModuleLocator(descriptor));
|
|
182
|
+
const archive = new HonuaPmtilesArchive(url, deps);
|
|
183
|
+
return Object.freeze({
|
|
184
|
+
descriptor,
|
|
185
|
+
capabilities: descriptor.capabilities ?? PROTOCOL_DEFAULT_CAPABILITIES.pmtiles,
|
|
186
|
+
adapter: archive,
|
|
187
|
+
diagnostics: Object.freeze([]),
|
|
188
|
+
dispose() {
|
|
189
|
+
// The archive holds no open handles between describe() calls;
|
|
190
|
+
// disposal is deterministic and synchronous with nothing to release.
|
|
191
|
+
},
|
|
192
|
+
});
|
|
193
|
+
},
|
|
194
|
+
});
|
|
195
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal protocol-module composition (issue #538).
|
|
3
|
+
*
|
|
4
|
+
* `RendererAdapter` (`src/kernel/renderer.ts`) is the accepted, plain,
|
|
5
|
+
* injectable seam every mounted renderer satisfies — first-party
|
|
6
|
+
* (`maplibreRenderer`) and an external, non-Web-Mercator renderer plugin
|
|
7
|
+
* (issue #566) alike — without the kernel importing the plugin SDK or
|
|
8
|
+
* maintaining a privileged construction path. `ProtocolModule` is the
|
|
9
|
+
* equivalent minimal
|
|
10
|
+
* seam for a `Source.protocol(...)` escape-hatch adapter: discovery, the
|
|
11
|
+
* capability set it advertises for a descriptor, diagnostics, and
|
|
12
|
+
* disposal. `compile`/`execute` are intentionally absent from this first
|
|
13
|
+
* bounded slice — no first-party module has migrated its query-compiler
|
|
14
|
+
* pipeline onto the seam yet (see `docs/plugin-manifest-certification.md`
|
|
15
|
+
* for the tracked follow-up).
|
|
16
|
+
*
|
|
17
|
+
* This module has no dependency on `src/plugin` or any global registry: a
|
|
18
|
+
* `ProtocolModule` is a plain value object. SDK-internal `Source`
|
|
19
|
+
* construction (for example `pmtilesSource()`) and a module packaged as a
|
|
20
|
+
* `HonuaPluginFactory<"protocol">` for `HonuaPluginRegistry`
|
|
21
|
+
* (`src/plugin/pmtiles-protocol-plugin.ts`) both consume exactly this shape,
|
|
22
|
+
* which is what proves the built-in adapter carries no special registry
|
|
23
|
+
* privilege.
|
|
24
|
+
*
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
import type { Capabilities, SourceDescriptor } from "./types.js";
|
|
28
|
+
/** Runtime environments a protocol module can execute in. Mirrors `RendererEnvironment`. */
|
|
29
|
+
export type ProtocolModuleEnvironment = "browser" | "node" | "worker";
|
|
30
|
+
/** Stable, protocol-neutral diagnostic exposed by one discovered module handle. */
|
|
31
|
+
export interface ProtocolModuleDiagnostic {
|
|
32
|
+
readonly code: string;
|
|
33
|
+
readonly severity: "info" | "warning" | "error";
|
|
34
|
+
readonly message: string;
|
|
35
|
+
}
|
|
36
|
+
export interface ProtocolModuleDiscoverOptions {
|
|
37
|
+
readonly signal?: AbortSignal;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* One discovered, disposable protocol-module handle bound to a source
|
|
41
|
+
* descriptor. `adapter` is the same typed escape-hatch value historically
|
|
42
|
+
* returned by `Source.protocol(name)` (for example a `HonuaPmtilesArchive`),
|
|
43
|
+
* so migrating a built-in onto this seam never changes what callers observe
|
|
44
|
+
* through the existing escape hatch.
|
|
45
|
+
*/
|
|
46
|
+
export interface ProtocolModuleHandle<TAdapter = unknown> {
|
|
47
|
+
readonly descriptor: SourceDescriptor;
|
|
48
|
+
readonly capabilities: Capabilities;
|
|
49
|
+
readonly adapter: TAdapter;
|
|
50
|
+
readonly diagnostics: readonly ProtocolModuleDiagnostic[];
|
|
51
|
+
dispose(): void | Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Minimal executable protocol seam. Heavy peers are injected as values
|
|
55
|
+
* (`peer`) and are never imported by SDK core; discovery stays lazy so a
|
|
56
|
+
* module that is registered but never discovered pays no I/O or peer-import
|
|
57
|
+
* cost. `discover` may return synchronously when construction needs no I/O
|
|
58
|
+
* (as PMTiles does — the archive itself is opened lazily on first
|
|
59
|
+
* `describe()`), or asynchronously for a module whose discovery is
|
|
60
|
+
* inherently a network round trip.
|
|
61
|
+
*/
|
|
62
|
+
export interface ProtocolModule<TKind extends string = string, TAdapter = unknown> {
|
|
63
|
+
readonly kind: TKind;
|
|
64
|
+
readonly environments: readonly ProtocolModuleEnvironment[];
|
|
65
|
+
readonly peer?: unknown;
|
|
66
|
+
/** Pure and synchronous: never performs I/O. */
|
|
67
|
+
capabilities(descriptor: SourceDescriptor): Capabilities;
|
|
68
|
+
discover(descriptor: SourceDescriptor, options?: ProtocolModuleDiscoverOptions): ProtocolModuleHandle<TAdapter> | Promise<ProtocolModuleHandle<TAdapter>>;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=protocol-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-module.d.ts","sourceRoot":"","sources":["../../../src/contract/protocol-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,4FAA4F;AAC5F,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEtE,mFAAmF;AACnF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB,CAAC,QAAQ,GAAG,OAAO;IACtD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC1D,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE,QAAQ,GAAG,OAAO;IAC/E,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,YAAY,CAAC,UAAU,EAAE,gBAAgB,GAAG,YAAY,CAAC;IACzD,QAAQ,CACN,UAAU,EAAE,gBAAgB,EAC5B,OAAO,CAAC,EAAE,6BAA6B,GACtC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight SourceSchemaV2 envelope checks for generic consumers.
|
|
3
|
+
*
|
|
4
|
+
* This module intentionally does not validate schema contents or recompute the
|
|
5
|
+
* fingerprint. Full validation belongs to the focused `/source-schema`
|
|
6
|
+
* ingestion and cache boundaries. Generic discovery uses this only as a
|
|
7
|
+
* bounded transport-envelope check; it does not establish trusted identity.
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export declare const SOURCE_SCHEMA_V2_KIND: "honua.source-schema";
|
|
11
|
+
export declare const SOURCE_SCHEMA_V2_VERSION: "2.0";
|
|
12
|
+
/**
|
|
13
|
+
* Stable, lightweight transport envelope for an opt-in source schema.
|
|
14
|
+
*
|
|
15
|
+
* The generic contract deliberately exposes only identity metadata. Consumers
|
|
16
|
+
* that need fields, geometry, or other schema semantics must enter through the
|
|
17
|
+
* focused `@honua/sdk-js/source-schema` subpath, which validates the complete
|
|
18
|
+
* value and exposes {@link SourceSchemaV2} there.
|
|
19
|
+
*/
|
|
20
|
+
export interface SourceSchemaV2Envelope {
|
|
21
|
+
readonly kind: typeof SOURCE_SCHEMA_V2_KIND;
|
|
22
|
+
readonly version: typeof SOURCE_SCHEMA_V2_VERSION;
|
|
23
|
+
readonly fingerprint: `sha256:${string}`;
|
|
24
|
+
}
|
|
25
|
+
export declare function sourceSchemaV2EnvelopeFingerprint(value: unknown): SourceSchemaV2Envelope["fingerprint"];
|
|
26
|
+
//# sourceMappingURL=schema-envelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-envelope.d.ts","sourceRoot":"","sources":["../../../src/contract/schema-envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,qBAAqB,EAAG,qBAA8B,CAAC;AACpE,eAAO,MAAM,wBAAwB,EAAG,KAAc,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,OAAO,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,wBAAwB,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,UAAU,MAAM,EAAE,CAAC;CAC1C;AAID,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAYvG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight SourceSchemaV2 envelope checks for generic consumers.
|
|
3
|
+
*
|
|
4
|
+
* This module intentionally does not validate schema contents or recompute the
|
|
5
|
+
* fingerprint. Full validation belongs to the focused `/source-schema`
|
|
6
|
+
* ingestion and cache boundaries. Generic discovery uses this only as a
|
|
7
|
+
* bounded transport-envelope check; it does not establish trusted identity.
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export const SOURCE_SCHEMA_V2_KIND = "honua.source-schema";
|
|
11
|
+
export const SOURCE_SCHEMA_V2_VERSION = "2.0";
|
|
12
|
+
const SOURCE_SCHEMA_V2_FINGERPRINT = /^sha256:[0-9a-f]{64}$/;
|
|
13
|
+
export function sourceSchemaV2EnvelopeFingerprint(value) {
|
|
14
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
15
|
+
throw new TypeError("SourceSchemaV2 must be an object");
|
|
16
|
+
}
|
|
17
|
+
const record = value;
|
|
18
|
+
if (record.kind !== SOURCE_SCHEMA_V2_KIND || record.version !== SOURCE_SCHEMA_V2_VERSION) {
|
|
19
|
+
throw new TypeError(`SourceSchemaV2 must use ${SOURCE_SCHEMA_V2_KIND}@${SOURCE_SCHEMA_V2_VERSION}`);
|
|
20
|
+
}
|
|
21
|
+
if (typeof record.fingerprint !== "string" || !SOURCE_SCHEMA_V2_FINGERPRINT.test(record.fingerprint)) {
|
|
22
|
+
throw new TypeError("SourceSchemaV2 fingerprint must be a lowercase SHA-256 digest");
|
|
23
|
+
}
|
|
24
|
+
return record.fingerprint;
|
|
25
|
+
}
|