@honua/app-platform 0.1.12 → 0.1.13
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/columnar/apache-arrow.d.ts +17 -0
- package/columnar/apache-arrow.d.ts.map +1 -0
- package/columnar/apache-arrow.js +1036 -0
- package/columnar/batch-cache-conformance.d.ts +66 -0
- package/columnar/batch-cache-conformance.d.ts.map +1 -0
- package/columnar/batch-cache-conformance.js +317 -0
- package/columnar/batch-cache-indexeddb.d.ts +31 -0
- package/columnar/batch-cache-indexeddb.d.ts.map +1 -0
- package/columnar/batch-cache-indexeddb.js +148 -0
- package/columnar/batch-cache.d.ts +298 -0
- package/columnar/batch-cache.d.ts.map +1 -0
- package/columnar/batch-cache.js +757 -0
- package/columnar/geoarrow-aggregate.d.ts +178 -0
- package/columnar/geoarrow-aggregate.d.ts.map +1 -0
- package/columnar/geoarrow-aggregate.js +976 -0
- package/columnar/geoarrow-patch.d.ts +382 -0
- package/columnar/geoarrow-patch.d.ts.map +1 -0
- package/columnar/geoarrow-patch.js +1656 -0
- package/columnar/geoarrow-reproject.d.ts +22 -0
- package/columnar/geoarrow-reproject.d.ts.map +1 -0
- package/columnar/geoarrow-reproject.js +119 -0
- package/columnar/geoarrow-serialization.d.ts +68 -0
- package/columnar/geoarrow-serialization.d.ts.map +1 -0
- package/columnar/geoarrow-serialization.js +331 -0
- package/columnar/geoarrow-types.d.ts +271 -0
- package/columnar/geoarrow-types.d.ts.map +1 -0
- package/columnar/geoarrow-types.js +15 -0
- package/columnar/geoarrow.d.ts +52 -0
- package/columnar/geoarrow.d.ts.map +1 -0
- package/columnar/geoarrow.js +1469 -0
- package/columnar/index.d.ts +43 -0
- package/columnar/index.d.ts.map +1 -0
- package/columnar/index.js +29 -0
- package/columnar/operators.d.ts +70 -0
- package/columnar/operators.d.ts.map +1 -0
- package/columnar/operators.js +307 -0
- package/columnar/result.d.ts +369 -0
- package/columnar/result.d.ts.map +1 -0
- package/columnar/result.js +815 -0
- package/columnar/telemetry.d.ts +152 -0
- package/columnar/telemetry.d.ts.map +1 -0
- package/columnar/telemetry.js +265 -0
- package/columnar/transfer.d.ts +28 -0
- package/columnar/transfer.d.ts.map +1 -0
- package/columnar/transfer.js +669 -0
- package/columnar/types.d.ts +175 -0
- package/columnar/types.d.ts.map +1 -0
- package/columnar/types.js +22 -0
- package/columnar/worker.d.ts +157 -0
- package/columnar/worker.d.ts.map +1 -0
- package/columnar/worker.js +1059 -0
- package/contract/pmtiles.d.ts +6 -5
- package/contract/pmtiles.d.ts.map +1 -1
- package/contract/pmtiles.js +30 -5
- package/controls/catalog.d.ts.map +1 -1
- package/controls/catalog.js +110 -0
- package/controls/index.d.ts +1 -1
- package/controls/index.js +1 -1
- package/controls/types.d.ts +1 -1
- package/controls/types.js +1 -1
- package/core/client.d.ts.map +1 -1
- package/core/client.js +87 -19
- package/core/deprecation-notice.d.ts +28 -0
- package/core/deprecation-notice.d.ts.map +1 -0
- package/core/deprecation-notice.js +22 -0
- package/core/esri-geojson.d.ts.map +1 -1
- package/core/esri-geojson.js +10 -6
- package/core/optional-grpc-peer.d.ts +15 -0
- package/core/optional-grpc-peer.d.ts.map +1 -0
- package/core/optional-grpc-peer.js +60 -0
- package/esri-compat/basemap-gallery.d.ts +2 -0
- package/esri-compat/basemap-gallery.d.ts.map +1 -1
- package/esri-compat/basemap-gallery.js +12 -0
- package/esri-compat/basemap.d.ts +4 -0
- package/esri-compat/basemap.d.ts.map +1 -1
- package/esri-compat/basemap.js +70 -0
- package/esri-compat/bookmarks.d.ts +2 -0
- package/esri-compat/bookmarks.d.ts.map +1 -1
- package/esri-compat/bookmarks.js +12 -0
- package/esri-compat/controls.d.ts +18 -0
- package/esri-compat/controls.d.ts.map +1 -1
- package/esri-compat/controls.js +120 -57
- package/esri-compat/directions.d.ts +4 -0
- package/esri-compat/directions.d.ts.map +1 -1
- package/esri-compat/directions.js +30 -20
- package/esri-compat/editor.d.ts +4 -0
- package/esri-compat/editor.d.ts.map +1 -1
- package/esri-compat/editor.js +16 -0
- package/esri-compat/esri-config.d.ts +2 -1
- package/esri-compat/esri-config.d.ts.map +1 -1
- package/esri-compat/feature-effect.d.ts +23 -0
- package/esri-compat/feature-effect.d.ts.map +1 -0
- package/esri-compat/feature-effect.js +12 -0
- package/esri-compat/feature-form.d.ts +6 -0
- package/esri-compat/feature-form.d.ts.map +1 -1
- package/esri-compat/feature-form.js +63 -0
- package/esri-compat/feature-layer.d.ts +21 -2
- package/esri-compat/feature-layer.d.ts.map +1 -1
- package/esri-compat/feature-layer.js +172 -1
- package/esri-compat/feature-table.d.ts +5 -0
- package/esri-compat/feature-table.d.ts.map +1 -1
- package/esri-compat/feature-table.js +23 -0
- package/esri-compat/identity-manager.d.ts +1 -1
- package/esri-compat/identity-manager.js +1 -1
- package/esri-compat/legend.d.ts +2 -0
- package/esri-compat/legend.d.ts.map +1 -1
- package/esri-compat/legend.js +98 -0
- package/esri-compat/locator.d.ts +1 -1
- package/esri-compat/locator.js +1 -1
- package/esri-compat/map-view-mount.d.ts +1 -0
- package/esri-compat/map-view-mount.d.ts.map +1 -1
- package/esri-compat/map-view-mount.js +46 -25
- package/esri-compat/map-view.d.ts +13 -0
- package/esri-compat/map-view.d.ts.map +1 -1
- package/esri-compat/map-view.js +94 -8
- package/esri-compat/map.d.ts +5 -1
- package/esri-compat/map.d.ts.map +1 -1
- package/esri-compat/map.js +10 -0
- package/esri-compat/measurement.d.ts +2 -0
- package/esri-compat/measurement.d.ts.map +1 -1
- package/esri-compat/measurement.js +14 -0
- package/esri-compat/point.d.ts +7 -0
- package/esri-compat/point.d.ts.map +1 -1
- package/esri-compat/point.js +33 -3
- package/esri-compat/popup.d.ts +2 -0
- package/esri-compat/popup.d.ts.map +1 -1
- package/esri-compat/popup.js +12 -0
- package/esri-compat/portal.d.ts +1 -1
- package/esri-compat/portal.js +1 -1
- package/esri-compat/print.d.ts +3 -0
- package/esri-compat/print.d.ts.map +1 -1
- package/esri-compat/print.js +15 -0
- package/esri-compat/search.d.ts +4 -0
- package/esri-compat/search.d.ts.map +1 -1
- package/esri-compat/search.js +25 -28
- package/esri-compat/sketch.d.ts +2 -0
- package/esri-compat/sketch.d.ts.map +1 -1
- package/esri-compat/sketch.js +12 -0
- package/esri-compat/widget-host.d.ts +46 -17
- package/esri-compat/widget-host.d.ts.map +1 -1
- package/esri-compat/widget-host.js +84 -20
- package/esri-compat/widget-shell-hosts.d.ts +61 -0
- package/esri-compat/widget-shell-hosts.d.ts.map +1 -0
- package/esri-compat/widget-shell-hosts.js +76 -0
- package/kernel/renderer.d.ts +82 -0
- package/kernel/renderer.js +1 -0
- package/offline/conflict-resolution.d.ts +183 -0
- package/offline/conflict-resolution.d.ts.map +1 -0
- package/offline/conflict-resolution.js +286 -0
- package/offline/credential-screen.d.ts +34 -0
- package/offline/credential-screen.d.ts.map +1 -0
- package/offline/credential-screen.js +78 -0
- package/offline/digest.d.ts +15 -0
- package/offline/digest.d.ts.map +1 -0
- package/offline/digest.js +58 -0
- package/offline/edit-queue.d.ts +403 -0
- package/offline/edit-queue.d.ts.map +1 -0
- package/offline/edit-queue.js +1807 -0
- package/offline/edit-replay.d.ts +116 -0
- package/offline/edit-replay.d.ts.map +1 -0
- package/offline/edit-replay.js +392 -0
- package/offline/fetch-handler.d.ts +12 -0
- package/offline/fetch-handler.d.ts.map +1 -0
- package/offline/fetch-handler.js +65 -0
- package/offline/index.d.ts +52 -0
- package/offline/index.d.ts.map +1 -0
- package/offline/index.js +34 -0
- package/offline/indexeddb.d.ts +135 -0
- package/offline/indexeddb.d.ts.map +1 -0
- package/offline/indexeddb.js +888 -0
- package/offline/memory-store.d.ts +17 -0
- package/offline/memory-store.d.ts.map +1 -0
- package/offline/memory-store.js +183 -0
- package/offline/quota.d.ts +161 -0
- package/offline/quota.d.ts.map +1 -0
- package/offline/quota.js +370 -0
- package/offline/read-gate.d.ts +175 -0
- package/offline/read-gate.d.ts.map +1 -0
- package/offline/read-gate.js +252 -0
- package/offline/read-resource.d.ts +99 -0
- package/offline/read-resource.d.ts.map +1 -0
- package/offline/read-resource.js +156 -0
- package/offline/read.d.ts +50 -0
- package/offline/read.d.ts.map +1 -0
- package/offline/read.js +65 -0
- package/offline/region.d.ts +29 -0
- package/offline/region.d.ts.map +1 -0
- package/offline/region.js +1007 -0
- package/offline/replay-conflict.d.ts +183 -0
- package/offline/replay-conflict.d.ts.map +1 -0
- package/offline/replay-conflict.js +482 -0
- package/offline/selection.d.ts +140 -0
- package/offline/selection.d.ts.map +1 -0
- package/offline/selection.js +391 -0
- package/offline/snapshot.d.ts +132 -0
- package/offline/snapshot.d.ts.map +1 -0
- package/offline/snapshot.js +312 -0
- package/offline/status.d.ts +136 -0
- package/offline/status.d.ts.map +1 -0
- package/offline/status.js +479 -0
- package/offline/store-conformance.d.ts +48 -0
- package/offline/store-conformance.d.ts.map +1 -0
- package/offline/store-conformance.js +233 -0
- package/offline/tile-protocol.d.ts +81 -0
- package/offline/tile-protocol.d.ts.map +1 -0
- package/offline/tile-protocol.js +119 -0
- package/offline/types.d.ts +349 -0
- package/offline/types.d.ts.map +1 -0
- package/offline/types.js +75 -0
- package/package.json +14 -2
- package/scene-workspace/index.d.ts +2 -2
- package/scene-workspace/index.d.ts.map +1 -1
- package/scene-workspace/index.js +1 -1
- package/scene-workspace/scene-discovery.d.ts +111 -91
- package/scene-workspace/scene-discovery.d.ts.map +1 -1
- package/scene-workspace/scene-discovery.js +340 -92
- package/scene-workspace/scene-view.d.ts +6 -6
- package/scene-workspace/scene-view.d.ts.map +1 -1
- package/scene-workspace/scene-view.js +32 -6
- package/web-components/elements.d.ts +34 -0
- package/web-components/elements.d.ts.map +1 -1
- package/web-components/elements.js +82 -8
- package/web-components/index.d.ts +2 -0
- package/web-components/index.d.ts.map +1 -1
- package/web-components/index.js +3 -1
- package/web-components/map-chrome.d.ts +103 -0
- package/web-components/map-chrome.d.ts.map +1 -0
- package/web-components/map-chrome.js +325 -0
- package/web-components/widget-shell.d.ts +68 -0
- package/web-components/widget-shell.d.ts.map +1 -0
- package/web-components/widget-shell.js +224 -0
- package/widget-capabilities.d.ts +67 -0
- package/widget-capabilities.js +152 -0
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import { HonuaSdkError } from "../core/error-envelope.js";
|
|
2
|
+
import type { OfflineStorageBudgetV1 } from "./quota.js";
|
|
3
|
+
/** First version of the downloadable-region manifest contract. */
|
|
4
|
+
export declare const HONUA_OFFLINE_REGION_VERSION: "1.0";
|
|
5
|
+
/** Stable discriminator for serialized downloadable-region manifests. */
|
|
6
|
+
export declare const HONUA_OFFLINE_REGION_KIND: "honua.offline-region";
|
|
7
|
+
/** Stable discriminator and version for offline-region diagnostic snapshots. */
|
|
8
|
+
export declare const HONUA_OFFLINE_REGION_DIAGNOSTIC_KIND: "honua.offline-region-diagnostic";
|
|
9
|
+
export declare const HONUA_OFFLINE_REGION_DIAGNOSTIC_VERSION: "1.0";
|
|
10
|
+
/** Conservative bounds applied before descriptors are copied or sorted. */
|
|
11
|
+
export declare const DEFAULT_OFFLINE_REGION_MAX_RESOURCES = 100000;
|
|
12
|
+
export declare const DEFAULT_OFFLINE_REGION_MAX_LOGICAL_BYTES: number;
|
|
13
|
+
export declare const DEFAULT_OFFLINE_REGION_MAX_STRING_BYTES: number;
|
|
14
|
+
export declare const DEFAULT_OFFLINE_REGION_MAX_ATTRIBUTIONS = 4096;
|
|
15
|
+
export declare const DEFAULT_OFFLINE_REGION_MAX_METADATA_ENTRIES = 200000;
|
|
16
|
+
export type OfflineRegionResourceKind = "metadata" | "features" | "tile" | "asset" | "attribution";
|
|
17
|
+
/** Closed, non-antimeridian-crossing bounds in the declared CRS. */
|
|
18
|
+
export interface OfflineRegionBounds {
|
|
19
|
+
readonly minX: number;
|
|
20
|
+
readonly minY: number;
|
|
21
|
+
readonly maxX: number;
|
|
22
|
+
readonly maxY: number;
|
|
23
|
+
readonly crs: string;
|
|
24
|
+
}
|
|
25
|
+
export interface OfflineRegionResourceInput {
|
|
26
|
+
/** Stable non-secret identity used by the injected loader and store. */
|
|
27
|
+
readonly id: string;
|
|
28
|
+
readonly kind: OfflineRegionResourceKind;
|
|
29
|
+
/** Logical payload bytes; physical storage may deduplicate or add overhead. */
|
|
30
|
+
readonly byteLength: number;
|
|
31
|
+
readonly integrity: `sha256:${string}`;
|
|
32
|
+
readonly contentType?: string;
|
|
33
|
+
readonly sourceVersion?: string;
|
|
34
|
+
readonly schemaVersion?: string;
|
|
35
|
+
readonly planVersion?: string;
|
|
36
|
+
readonly attributionIds?: readonly string[];
|
|
37
|
+
}
|
|
38
|
+
export interface OfflineRegionObservation {
|
|
39
|
+
readonly state: "live" | "cached" | "replayed";
|
|
40
|
+
readonly observedAt: string;
|
|
41
|
+
readonly validAt?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface OfflineRegionValidator {
|
|
44
|
+
readonly etag?: string;
|
|
45
|
+
readonly lastModified?: string;
|
|
46
|
+
}
|
|
47
|
+
/** Credential-free resource descriptor safe to persist and log. */
|
|
48
|
+
export interface OfflineRegionResourceV1 {
|
|
49
|
+
readonly id: string;
|
|
50
|
+
readonly kind: OfflineRegionResourceKind;
|
|
51
|
+
readonly byteLength: number;
|
|
52
|
+
readonly integrity: `sha256:${string}`;
|
|
53
|
+
readonly contentType?: string;
|
|
54
|
+
readonly sourceVersion: string;
|
|
55
|
+
readonly schemaVersion: string;
|
|
56
|
+
readonly planVersion: string;
|
|
57
|
+
readonly attributionIds: readonly string[];
|
|
58
|
+
}
|
|
59
|
+
export interface CreateOfflineRegionManifestInput {
|
|
60
|
+
readonly name: string;
|
|
61
|
+
readonly sourceId: string;
|
|
62
|
+
/** Credentials and signed query parameters are removed from the persisted endpoint. */
|
|
63
|
+
readonly endpoint: string | URL;
|
|
64
|
+
/** Opaque ACL/auth partition input. Only its SHA-256 digest is persisted. */
|
|
65
|
+
readonly authorizationScopeFingerprint: string;
|
|
66
|
+
readonly bounds: OfflineRegionBounds;
|
|
67
|
+
readonly minZoom?: number;
|
|
68
|
+
readonly maxZoom?: number;
|
|
69
|
+
readonly sourceVersion: string;
|
|
70
|
+
readonly schemaVersion: string;
|
|
71
|
+
readonly planVersion: string;
|
|
72
|
+
/** Freshness/provenance shared by every resource in this snapshot. */
|
|
73
|
+
readonly observation: OfflineRegionObservation;
|
|
74
|
+
readonly validator?: OfflineRegionValidator;
|
|
75
|
+
readonly expiresAt?: string;
|
|
76
|
+
readonly attribution?: Readonly<Record<string, string>>;
|
|
77
|
+
readonly resources: readonly OfflineRegionResourceInput[];
|
|
78
|
+
readonly limits?: OfflineRegionLimits;
|
|
79
|
+
}
|
|
80
|
+
/** Serializable, immutable description of one bounded offline snapshot. */
|
|
81
|
+
export interface OfflineRegionManifestV1 {
|
|
82
|
+
readonly kind: typeof HONUA_OFFLINE_REGION_KIND;
|
|
83
|
+
readonly version: typeof HONUA_OFFLINE_REGION_VERSION;
|
|
84
|
+
readonly id: `sha256:${string}`;
|
|
85
|
+
readonly name: string;
|
|
86
|
+
readonly source: {
|
|
87
|
+
readonly id: string;
|
|
88
|
+
readonly endpoint: string;
|
|
89
|
+
readonly authorizationScopeDigest: `sha256:${string}`;
|
|
90
|
+
readonly sourceVersion: string;
|
|
91
|
+
readonly schemaVersion: string;
|
|
92
|
+
readonly planVersion: string;
|
|
93
|
+
readonly observation: OfflineRegionObservation;
|
|
94
|
+
readonly validator?: OfflineRegionValidator;
|
|
95
|
+
};
|
|
96
|
+
readonly bounds: OfflineRegionBounds;
|
|
97
|
+
readonly minZoom?: number;
|
|
98
|
+
readonly maxZoom?: number;
|
|
99
|
+
readonly expiresAt?: string;
|
|
100
|
+
readonly attribution: Readonly<Record<string, string>>;
|
|
101
|
+
readonly resources: readonly OfflineRegionResourceV1[];
|
|
102
|
+
/** Sum of resource payload lengths; not physical or unique backing-store bytes. */
|
|
103
|
+
readonly totalLogicalBytes: number;
|
|
104
|
+
}
|
|
105
|
+
/** Caller limits can tighten, but never raise, the SDK's conservative ceilings. */
|
|
106
|
+
export interface OfflineRegionLimits {
|
|
107
|
+
readonly maxResources?: number;
|
|
108
|
+
readonly maxLogicalBytes?: number;
|
|
109
|
+
readonly maxStringBytes?: number;
|
|
110
|
+
readonly maxAttributions?: number;
|
|
111
|
+
readonly maxMetadataEntries?: number;
|
|
112
|
+
}
|
|
113
|
+
export interface OfflineRegionStoredRegion {
|
|
114
|
+
readonly id: string;
|
|
115
|
+
/** Logical payload bytes charged to quota, regardless of physical deduplication. */
|
|
116
|
+
readonly logicalByteLength: number;
|
|
117
|
+
readonly lastAccessedAt: string;
|
|
118
|
+
readonly expiresAt?: string;
|
|
119
|
+
/** Pinned regions are never selected for automatic eviction. */
|
|
120
|
+
readonly pinned?: boolean;
|
|
121
|
+
}
|
|
122
|
+
/** A credential-free resource snapshot read from a persistent offline region. */
|
|
123
|
+
export interface OfflineRegionResourceRead {
|
|
124
|
+
readonly regionId: string;
|
|
125
|
+
readonly manifest: OfflineRegionManifestV1;
|
|
126
|
+
readonly resource: OfflineRegionResourceV1;
|
|
127
|
+
/** Caller-owned bytes; mutating them cannot mutate the persistent store. */
|
|
128
|
+
readonly bytes: Uint8Array;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Resolves a browser request to a credential-free resource identity.
|
|
132
|
+
* Returning `undefined` leaves the request to the host's normal network path.
|
|
133
|
+
*/
|
|
134
|
+
export type OfflineRegionResourceMatcher = (request: Request) => string | undefined | Promise<string | undefined>;
|
|
135
|
+
/** Options for creating a service-worker/fetch-event resource handler. */
|
|
136
|
+
export interface OfflineRegionFetchHandlerOptions {
|
|
137
|
+
readonly store: OfflineRegionStore;
|
|
138
|
+
readonly regionId: string;
|
|
139
|
+
readonly match: OfflineRegionResourceMatcher;
|
|
140
|
+
readonly now?: () => Date;
|
|
141
|
+
}
|
|
142
|
+
/** A handler result; `undefined` means the request was not served from offline storage. */
|
|
143
|
+
export type OfflineRegionFetchHandler = (request: Request) => Promise<Response | undefined>;
|
|
144
|
+
export interface OfflineRegionCacheInventory {
|
|
145
|
+
/** Opaque revision changed atomically by every committed store mutation. */
|
|
146
|
+
readonly revision: string;
|
|
147
|
+
readonly regions: readonly OfflineRegionStoredRegion[];
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Atomic lifecycle operations for a persistent offline-region cache.
|
|
151
|
+
* Implementations must advance the inventory revision once for each mutation.
|
|
152
|
+
*/
|
|
153
|
+
export interface OfflineRegionCacheAdmin {
|
|
154
|
+
/** Remove a region and all of its resources. Returns false when absent. */
|
|
155
|
+
removeRegion(regionId: string): Promise<boolean>;
|
|
156
|
+
/** Change whether automatic admission may evict a region. Returns false when unchanged or absent. */
|
|
157
|
+
setRegionPinned(regionId: string, pinned: boolean): Promise<boolean>;
|
|
158
|
+
/** Remove all regions expired at or before `now`, returning ids in inventory order. */
|
|
159
|
+
pruneExpired(now?: Date): Promise<readonly string[]>;
|
|
160
|
+
}
|
|
161
|
+
export interface OfflineRegionAdmissionPlan {
|
|
162
|
+
readonly logicalQuotaBytes: number;
|
|
163
|
+
readonly logicalBytesBefore: number;
|
|
164
|
+
readonly replacementLogicalBytes: number;
|
|
165
|
+
readonly requiredLogicalBytes: number;
|
|
166
|
+
readonly evictRegionIds: readonly string[];
|
|
167
|
+
readonly evictedLogicalBytes: number;
|
|
168
|
+
readonly logicalBytesAfter: number;
|
|
169
|
+
}
|
|
170
|
+
export interface CreateOfflineRegionDiagnosticOptions {
|
|
171
|
+
/** Logical payload-byte ceiling used to explain admission and eviction. */
|
|
172
|
+
readonly logicalQuotaBytes: number;
|
|
173
|
+
/** Explicit clock input so persisted diagnostics are reproducible. */
|
|
174
|
+
readonly now: Date;
|
|
175
|
+
/** Age at which the snapshot observation becomes stale. */
|
|
176
|
+
readonly staleAfterMs: number;
|
|
177
|
+
/**
|
|
178
|
+
* Optional storage-budget observation from `probeOfflineStorageBudget()`.
|
|
179
|
+
* Persisted state changes the eviction risk of every cached region, so it is
|
|
180
|
+
* reported here rather than inferred. The diagnostic never probes on its own.
|
|
181
|
+
*/
|
|
182
|
+
readonly storage?: OfflineStorageBudgetV1;
|
|
183
|
+
}
|
|
184
|
+
export type OfflineRegionDiagnosticAdmission = {
|
|
185
|
+
readonly status: "accepted";
|
|
186
|
+
readonly plan: OfflineRegionAdmissionPlan;
|
|
187
|
+
} | {
|
|
188
|
+
readonly status: "rejected";
|
|
189
|
+
readonly reason: "expired" | "quota-exceeded";
|
|
190
|
+
readonly logicalQuotaBytes: number;
|
|
191
|
+
/** The plan that was attempted, when quota refused it. Nothing was evicted. */
|
|
192
|
+
readonly attempted?: OfflineRegionAdmissionPlan;
|
|
193
|
+
};
|
|
194
|
+
/** Secret-safe, payload-free explanation of one persistent offline region. */
|
|
195
|
+
export interface OfflineRegionDiagnosticV1 {
|
|
196
|
+
readonly kind: typeof HONUA_OFFLINE_REGION_DIAGNOSTIC_KIND;
|
|
197
|
+
readonly version: typeof HONUA_OFFLINE_REGION_DIAGNOSTIC_VERSION;
|
|
198
|
+
readonly generatedAt: string;
|
|
199
|
+
readonly regionId: string;
|
|
200
|
+
readonly inventoryRevision: string;
|
|
201
|
+
readonly cache: {
|
|
202
|
+
readonly state: "offline" | "missing";
|
|
203
|
+
readonly freshness: "fresh" | "stale" | "expired";
|
|
204
|
+
readonly completeness: "complete" | "partial" | "missing";
|
|
205
|
+
readonly reason: "offline-entry" | "stale-entry" | "expired-entry" | "partial-entry" | "cache-miss";
|
|
206
|
+
readonly readable: boolean;
|
|
207
|
+
readonly observedAt: string;
|
|
208
|
+
readonly ageMs: number;
|
|
209
|
+
readonly staleAfterMs: number;
|
|
210
|
+
readonly expectedLogicalBytes: number;
|
|
211
|
+
readonly storedLogicalBytes?: number;
|
|
212
|
+
readonly lastAccessedAt?: string;
|
|
213
|
+
readonly expiresAt?: string;
|
|
214
|
+
readonly pinned: boolean;
|
|
215
|
+
};
|
|
216
|
+
readonly provenance: {
|
|
217
|
+
readonly sourceId: string;
|
|
218
|
+
readonly endpointFingerprint: `sha256:${string}`;
|
|
219
|
+
readonly authorizationScopeDigest: `sha256:${string}`;
|
|
220
|
+
readonly sourceVersion: string;
|
|
221
|
+
readonly schemaVersion: string;
|
|
222
|
+
readonly planVersion: string;
|
|
223
|
+
readonly observation: OfflineRegionObservation;
|
|
224
|
+
readonly validator?: {
|
|
225
|
+
readonly etagFingerprint?: `sha256:${string}`;
|
|
226
|
+
readonly lastModified?: string;
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
readonly contents: {
|
|
230
|
+
readonly resourceCount: number;
|
|
231
|
+
readonly logicalBytes: number;
|
|
232
|
+
readonly resourceKinds: Readonly<Record<OfflineRegionResourceKind, number>>;
|
|
233
|
+
readonly attributionIds: readonly string[];
|
|
234
|
+
};
|
|
235
|
+
readonly admission: OfflineRegionDiagnosticAdmission;
|
|
236
|
+
/** Present only when the caller supplied a storage-budget observation. */
|
|
237
|
+
readonly storage?: OfflineStorageBudgetV1;
|
|
238
|
+
}
|
|
239
|
+
export interface OfflineRegionCommitGuard {
|
|
240
|
+
readonly expectedInventoryRevision: string;
|
|
241
|
+
readonly logicalQuotaBytes: number;
|
|
242
|
+
readonly admission: OfflineRegionAdmissionPlan;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* One atomic update. Implementations stage evictions and copied resource bytes.
|
|
246
|
+
* `commit` must atomically compare `expectedInventoryRevision`, independently
|
|
247
|
+
* verify resulting logical quota, then publish or return `inventory-changed`.
|
|
248
|
+
*/
|
|
249
|
+
export interface OfflineRegionWriteTransaction {
|
|
250
|
+
evict(regionId: string): Promise<void>;
|
|
251
|
+
/** Return a previously staged payload for this resource when it passed storage validation. */
|
|
252
|
+
readonly readStaged?: (resource: OfflineRegionResourceV1) => Promise<Readonly<Uint8Array> | undefined>;
|
|
253
|
+
/** Discard a failed staged checkpoint before retrying the loader. */
|
|
254
|
+
readonly discardStaged?: (resource: OfflineRegionResourceV1) => Promise<void>;
|
|
255
|
+
/** Resolve only after the store no longer depends on caller mutation of `bytes`. */
|
|
256
|
+
write(resource: OfflineRegionResourceV1, bytes: Readonly<Uint8Array>): Promise<void>;
|
|
257
|
+
commit(manifest: OfflineRegionManifestV1, receipt: OfflineRegionDownloadReceipt, guard: OfflineRegionCommitGuard): Promise<"committed" | "inventory-changed">;
|
|
258
|
+
rollback(options?: {
|
|
259
|
+
readonly preserveStaged?: boolean;
|
|
260
|
+
}): Promise<void>;
|
|
261
|
+
}
|
|
262
|
+
/** Storage adapter boundary; no browser or platform storage is selected by the SDK. */
|
|
263
|
+
export interface OfflineRegionStore {
|
|
264
|
+
inventory(): Promise<OfflineRegionCacheInventory>;
|
|
265
|
+
/** Read one committed resource, or `undefined` when it is absent. */
|
|
266
|
+
readResource(regionId: string, resourceId: string): Promise<OfflineRegionResourceRead | undefined>;
|
|
267
|
+
beginWrite(regionId: string): Promise<OfflineRegionWriteTransaction>;
|
|
268
|
+
}
|
|
269
|
+
/** Loader resolves logical resource identity without persisting URLs or tokens. */
|
|
270
|
+
export type OfflineRegionResourceLoader = (resource: OfflineRegionResourceV1, context: {
|
|
271
|
+
readonly manifest: OfflineRegionManifestV1;
|
|
272
|
+
readonly signal?: AbortSignal;
|
|
273
|
+
}) => Promise<ArrayBuffer | Uint8Array>;
|
|
274
|
+
export type OfflineRegionDownloadProgress = {
|
|
275
|
+
readonly phase: "planned";
|
|
276
|
+
readonly completedResources: 0;
|
|
277
|
+
readonly totalResources: number;
|
|
278
|
+
readonly completedLogicalBytes: 0;
|
|
279
|
+
readonly totalLogicalBytes: number;
|
|
280
|
+
readonly evictionRegionIds: readonly string[];
|
|
281
|
+
} | {
|
|
282
|
+
readonly phase: "downloading" | "writing";
|
|
283
|
+
readonly completedResources: number;
|
|
284
|
+
readonly totalResources: number;
|
|
285
|
+
readonly completedLogicalBytes: number;
|
|
286
|
+
readonly totalLogicalBytes: number;
|
|
287
|
+
readonly resourceId: string;
|
|
288
|
+
} | {
|
|
289
|
+
readonly phase: "committing" | "complete";
|
|
290
|
+
readonly completedResources: number;
|
|
291
|
+
readonly totalResources: number;
|
|
292
|
+
readonly completedLogicalBytes: number;
|
|
293
|
+
readonly totalLogicalBytes: number;
|
|
294
|
+
};
|
|
295
|
+
export interface OfflineRegionDownloadReceipt {
|
|
296
|
+
readonly regionId: string;
|
|
297
|
+
readonly resourceCount: number;
|
|
298
|
+
readonly logicalByteLength: number;
|
|
299
|
+
readonly evictedRegionIds: readonly string[];
|
|
300
|
+
readonly integrity: "verified";
|
|
301
|
+
readonly quotaAccounting: "logical-payload-bytes";
|
|
302
|
+
readonly completedAt: string;
|
|
303
|
+
}
|
|
304
|
+
export interface OfflineRegionDownloadOptions {
|
|
305
|
+
readonly store: OfflineRegionStore;
|
|
306
|
+
readonly load: OfflineRegionResourceLoader;
|
|
307
|
+
/** Logical payload-byte ceiling, not a claim about physical store occupancy. */
|
|
308
|
+
readonly logicalQuotaBytes: number;
|
|
309
|
+
readonly signal?: AbortSignal;
|
|
310
|
+
readonly now?: () => Date;
|
|
311
|
+
/** Observational callback; exceptions are ignored and never alter transaction state. */
|
|
312
|
+
readonly onProgress?: (progress: OfflineRegionDownloadProgress) => void;
|
|
313
|
+
}
|
|
314
|
+
export type OfflineRegionErrorCode = "invalid-manifest" | "resource-limit-exceeded" | "quota-exceeded" | "expired" | "integrity-mismatch" | "aborted" | "resource-load-failed" | "inventory-changed" | "store-failed"
|
|
315
|
+
/**
|
|
316
|
+
* The persisted store is at a schema version this build has no migration path
|
|
317
|
+
* to. Nothing is deleted: an application re-downloads deliberately instead of
|
|
318
|
+
* discovering its cached bytes were silently dropped.
|
|
319
|
+
*/
|
|
320
|
+
| "store-unreadable"
|
|
321
|
+
/** No stored resource answers this selection. */
|
|
322
|
+
| "cache-miss"
|
|
323
|
+
/** The region belongs to a different authorization scope than the reader. */
|
|
324
|
+
| "scope-mismatch"
|
|
325
|
+
/** The requested extent or version is outside what the region captured. */
|
|
326
|
+
| "out-of-region";
|
|
327
|
+
/**
|
|
328
|
+
* Public offline region failure. The detailed legacy reason remains on
|
|
329
|
+
* `.code`; `.sdkCode` provides a stable common-envelope recovery class.
|
|
330
|
+
*/
|
|
331
|
+
export declare class HonuaOfflineRegionError extends HonuaSdkError {
|
|
332
|
+
readonly code: OfflineRegionErrorCode;
|
|
333
|
+
constructor(code: OfflineRegionErrorCode, message: string, options?: {
|
|
334
|
+
readonly cause?: unknown;
|
|
335
|
+
readonly resourceId?: string;
|
|
336
|
+
readonly path?: string;
|
|
337
|
+
readonly admission?: OfflineRegionAdmissionPlan;
|
|
338
|
+
});
|
|
339
|
+
readonly resourceId?: string;
|
|
340
|
+
readonly path?: string;
|
|
341
|
+
/**
|
|
342
|
+
* The admission plan that was attempted when a `quota-exceeded` failure was
|
|
343
|
+
* raised: required, evicted, and projected logical bytes. A refused plan is
|
|
344
|
+
* what was attempted, not what happened — nothing outside it is ever evicted,
|
|
345
|
+
* and a plan refused before the download starts evicts nothing at all.
|
|
346
|
+
*/
|
|
347
|
+
readonly admission?: OfflineRegionAdmissionPlan;
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/offline/types.ts"],"names":[],"mappings":"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"}
|
package/offline/types.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { HonuaSdkError, isRetryableNetworkOrTimeoutHonuaError } from "../core/error-envelope.js";
|
|
2
|
+
/** First version of the downloadable-region manifest contract. */
|
|
3
|
+
export const HONUA_OFFLINE_REGION_VERSION = "1.0";
|
|
4
|
+
/** Stable discriminator for serialized downloadable-region manifests. */
|
|
5
|
+
export const HONUA_OFFLINE_REGION_KIND = "honua.offline-region";
|
|
6
|
+
/** Stable discriminator and version for offline-region diagnostic snapshots. */
|
|
7
|
+
export const HONUA_OFFLINE_REGION_DIAGNOSTIC_KIND = "honua.offline-region-diagnostic";
|
|
8
|
+
export const HONUA_OFFLINE_REGION_DIAGNOSTIC_VERSION = "1.0";
|
|
9
|
+
/** Conservative bounds applied before descriptors are copied or sorted. */
|
|
10
|
+
export const DEFAULT_OFFLINE_REGION_MAX_RESOURCES = 100_000;
|
|
11
|
+
export const DEFAULT_OFFLINE_REGION_MAX_LOGICAL_BYTES = 1024 * 1024 * 1024;
|
|
12
|
+
export const DEFAULT_OFFLINE_REGION_MAX_STRING_BYTES = 1024 * 1024;
|
|
13
|
+
export const DEFAULT_OFFLINE_REGION_MAX_ATTRIBUTIONS = 4_096;
|
|
14
|
+
export const DEFAULT_OFFLINE_REGION_MAX_METADATA_ENTRIES = 200_000;
|
|
15
|
+
/**
|
|
16
|
+
* Public offline region failure. The detailed legacy reason remains on
|
|
17
|
+
* `.code`; `.sdkCode` provides a stable common-envelope recovery class.
|
|
18
|
+
*/
|
|
19
|
+
export class HonuaOfflineRegionError extends HonuaSdkError {
|
|
20
|
+
code;
|
|
21
|
+
constructor(code, message, options = {}) {
|
|
22
|
+
const cause = options.cause;
|
|
23
|
+
super(offlineRegionSdkCode(code, cause), message, {
|
|
24
|
+
...(cause === undefined ? {} : { cause }),
|
|
25
|
+
context: { reasonCode: offlineRegionContextReason(code) },
|
|
26
|
+
});
|
|
27
|
+
this.code = code;
|
|
28
|
+
this.name = "HonuaOfflineRegionError";
|
|
29
|
+
this.resourceId = options.resourceId;
|
|
30
|
+
this.path = options.path;
|
|
31
|
+
this.admission = options.admission;
|
|
32
|
+
}
|
|
33
|
+
resourceId;
|
|
34
|
+
path;
|
|
35
|
+
/**
|
|
36
|
+
* The admission plan that was attempted when a `quota-exceeded` failure was
|
|
37
|
+
* raised: required, evicted, and projected logical bytes. A refused plan is
|
|
38
|
+
* what was attempted, not what happened — nothing outside it is ever evicted,
|
|
39
|
+
* and a plan refused before the download starts evicts nothing at all.
|
|
40
|
+
*/
|
|
41
|
+
admission;
|
|
42
|
+
}
|
|
43
|
+
const OFFLINE_REGION_ERROR_CODES = {
|
|
44
|
+
"invalid-manifest": "offline.region.validation",
|
|
45
|
+
"resource-limit-exceeded": "offline.region.validation",
|
|
46
|
+
"quota-exceeded": "offline.region.quota",
|
|
47
|
+
expired: "offline.region.validation",
|
|
48
|
+
"integrity-mismatch": "offline.region.integrity",
|
|
49
|
+
aborted: "offline.cancelled",
|
|
50
|
+
"resource-load-failed": "offline.transport.failure",
|
|
51
|
+
"inventory-changed": "offline.storage.concurrent",
|
|
52
|
+
"store-failed": "offline.storage.failure",
|
|
53
|
+
// The store is intact but unreadable at this build's schema version. The
|
|
54
|
+
// recovery class is the same — the caller must act on storage, not retry.
|
|
55
|
+
"store-unreadable": "offline.storage.failure",
|
|
56
|
+
// A read the region cannot answer is one recovery class — download a region
|
|
57
|
+
// for this selection — however it was discovered.
|
|
58
|
+
"cache-miss": "offline.region.miss",
|
|
59
|
+
"scope-mismatch": "offline.region.miss",
|
|
60
|
+
"out-of-region": "offline.region.miss",
|
|
61
|
+
};
|
|
62
|
+
function offlineRegionSdkCode(code, cause) {
|
|
63
|
+
if (!isOfflineRegionErrorCode(code))
|
|
64
|
+
return "offline.region.validation";
|
|
65
|
+
if (code === "resource-load-failed" && isRetryableNetworkOrTimeoutHonuaError(cause)) {
|
|
66
|
+
return "offline.transport.transient";
|
|
67
|
+
}
|
|
68
|
+
return OFFLINE_REGION_ERROR_CODES[code];
|
|
69
|
+
}
|
|
70
|
+
function offlineRegionContextReason(code) {
|
|
71
|
+
return isOfflineRegionErrorCode(code) ? code : "invalid-error-code";
|
|
72
|
+
}
|
|
73
|
+
function isOfflineRegionErrorCode(code) {
|
|
74
|
+
return typeof code === "string" && Object.hasOwn(OFFLINE_REGION_ERROR_CODES, code);
|
|
75
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@honua/app-platform",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "Honua application-platform surfaces: app-shell, workspace, scene, operator, studio, and hosted-product clients",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"gis",
|
|
@@ -121,11 +121,23 @@
|
|
|
121
121
|
"proj4": "^2.20.9"
|
|
122
122
|
},
|
|
123
123
|
"peerDependencies": {
|
|
124
|
-
"@honua/sdk": "0.1.
|
|
124
|
+
"@honua/sdk": "0.1.13",
|
|
125
|
+
"@bufbuild/protobuf": "^2.0.0",
|
|
126
|
+
"@connectrpc/connect": "^2.0.0",
|
|
127
|
+
"@connectrpc/connect-web": "^2.0.0",
|
|
125
128
|
"maplibre-gl": "^6.4.1",
|
|
126
129
|
"cesium": "^1.139.0"
|
|
127
130
|
},
|
|
128
131
|
"peerDependenciesMeta": {
|
|
132
|
+
"@bufbuild/protobuf": {
|
|
133
|
+
"optional": true
|
|
134
|
+
},
|
|
135
|
+
"@connectrpc/connect": {
|
|
136
|
+
"optional": true
|
|
137
|
+
},
|
|
138
|
+
"@connectrpc/connect-web": {
|
|
139
|
+
"optional": true
|
|
140
|
+
},
|
|
129
141
|
"maplibre-gl": {
|
|
130
142
|
"optional": true
|
|
131
143
|
},
|
|
@@ -47,8 +47,8 @@ export { DEFAULT_CESIUM_SCENE_SOURCE_LIMIT, HonuaCesiumSceneOwnerError, mountCes
|
|
|
47
47
|
export type { CesiumSceneOwnerErrorCode, CesiumSceneOwnerState, CesiumSceneOwnerTarget, MountCesiumSceneOptions, MountedCesiumScene, } from "./cesium-scene-owner.js";
|
|
48
48
|
export { buildElevationProfilePath, buildLineOfSightBody, buildViewshedBody, formatMeasurementLabel, haversineMeters, measureScenePositions, pathLengthMeters, positionsToWktLineString, renderElevationProfilePolyline, renderLineOfSight, renderMeasurement, renderViewshed, requestElevationProfile, requestLineOfSight, requestViewshed, slantDistanceMeters, sphericalPolygonAreaSquareMeters, } from "./analysis-widgets.js";
|
|
49
49
|
export type { CesiumEntityCollectionLike, ElevationProfileRequest, ElevationProfileResult, ElevationProfileSample, LineOfSightRequest, LineOfSightResult, SceneAnalysisCesiumModule, SceneAnalysisOverlay, SceneAnalysisPosition, SceneAnalysisRequestExecutor, SceneMeasurement, ViewshedRequest, ViewshedResult, ViewshedSample, } from "./analysis-widgets.js";
|
|
50
|
-
export { getScene, listScenes, normalizeScene, resolveSceneTilesetUrl, sceneCameraPrimitive, sceneLayerStates, sceneTerrainPrimitive, sceneTilesetPrimitive, sceneToRuntimePrimitives, sceneViewpointBookmarks, } from "./scene-discovery.js";
|
|
51
|
-
export type { HonuaScene, SceneDiscoveryRequestExecutor, SceneExtent3D, SceneViewpoint, } from "./scene-discovery.js";
|
|
50
|
+
export { getScene, listScenes, normalizeScene, normalizeSceneMetadata, normalizeSceneResolution, normalizeSceneSummary, resolveScene, resolveSceneTilesetUrl, sceneCameraPrimitive, sceneLayerStates, sceneTerrainPrimitive, sceneTilesetPrimitive, sceneToRuntimePrimitives, sceneViewpointBookmarks, } from "./scene-discovery.js";
|
|
51
|
+
export type { HonuaScene, HonuaSceneAuth, HonuaSceneEndpoint, HonuaSceneLink, HonuaSceneResolution, SceneDiscoveryRequestExecutor, SceneExtent3D, SceneViewpoint, } from "./scene-discovery.js";
|
|
52
52
|
export { SceneView } from "./scene-view.js";
|
|
53
53
|
export type { SceneViewEvent, SceneViewEventListener, SceneViewOptions, SceneViewRequestExecutor, } from "./scene-view.js";
|
|
54
54
|
export { SCENE_WORKSPACE_SLICES } from "./types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scene-workspace/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scene-workspace/index.ts"],"names":[],"mappings":"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"}
|
package/scene-workspace/index.js
CHANGED
|
@@ -36,6 +36,6 @@ export { DEFAULT_SCENE_MOUNT_LAYER_LIMIT, HonuaCesiumSceneMountError, mountScene
|
|
|
36
36
|
export { CESIUM_ENTITY_REBUILD_BOUNDARIES, DEFAULT_CESIUM_ENTITY_LIMIT, HonuaCesiumEntityAdapterError, mountSourceToCesium, projectSourceToCesium, } from "./source-to-cesium.js";
|
|
37
37
|
export { DEFAULT_CESIUM_SCENE_SOURCE_LIMIT, HonuaCesiumSceneOwnerError, mountCesiumScene, } from "./cesium-scene-owner.js";
|
|
38
38
|
export { buildElevationProfilePath, buildLineOfSightBody, buildViewshedBody, formatMeasurementLabel, haversineMeters, measureScenePositions, pathLengthMeters, positionsToWktLineString, renderElevationProfilePolyline, renderLineOfSight, renderMeasurement, renderViewshed, requestElevationProfile, requestLineOfSight, requestViewshed, slantDistanceMeters, sphericalPolygonAreaSquareMeters, } from "./analysis-widgets.js";
|
|
39
|
-
export { getScene, listScenes, normalizeScene, resolveSceneTilesetUrl, sceneCameraPrimitive, sceneLayerStates, sceneTerrainPrimitive, sceneTilesetPrimitive, sceneToRuntimePrimitives, sceneViewpointBookmarks, } from "./scene-discovery.js";
|
|
39
|
+
export { getScene, listScenes, normalizeScene, normalizeSceneMetadata, normalizeSceneResolution, normalizeSceneSummary, resolveScene, resolveSceneTilesetUrl, sceneCameraPrimitive, sceneLayerStates, sceneTerrainPrimitive, sceneTilesetPrimitive, sceneToRuntimePrimitives, sceneViewpointBookmarks, } from "./scene-discovery.js";
|
|
40
40
|
export { SceneView } from "./scene-view.js";
|
|
41
41
|
export { SCENE_WORKSPACE_SLICES } from "./types.js";
|