@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.
Files changed (233) hide show
  1. package/columnar/apache-arrow.d.ts +17 -0
  2. package/columnar/apache-arrow.d.ts.map +1 -0
  3. package/columnar/apache-arrow.js +1036 -0
  4. package/columnar/batch-cache-conformance.d.ts +66 -0
  5. package/columnar/batch-cache-conformance.d.ts.map +1 -0
  6. package/columnar/batch-cache-conformance.js +317 -0
  7. package/columnar/batch-cache-indexeddb.d.ts +31 -0
  8. package/columnar/batch-cache-indexeddb.d.ts.map +1 -0
  9. package/columnar/batch-cache-indexeddb.js +148 -0
  10. package/columnar/batch-cache.d.ts +298 -0
  11. package/columnar/batch-cache.d.ts.map +1 -0
  12. package/columnar/batch-cache.js +757 -0
  13. package/columnar/geoarrow-aggregate.d.ts +178 -0
  14. package/columnar/geoarrow-aggregate.d.ts.map +1 -0
  15. package/columnar/geoarrow-aggregate.js +976 -0
  16. package/columnar/geoarrow-patch.d.ts +382 -0
  17. package/columnar/geoarrow-patch.d.ts.map +1 -0
  18. package/columnar/geoarrow-patch.js +1656 -0
  19. package/columnar/geoarrow-reproject.d.ts +22 -0
  20. package/columnar/geoarrow-reproject.d.ts.map +1 -0
  21. package/columnar/geoarrow-reproject.js +119 -0
  22. package/columnar/geoarrow-serialization.d.ts +68 -0
  23. package/columnar/geoarrow-serialization.d.ts.map +1 -0
  24. package/columnar/geoarrow-serialization.js +331 -0
  25. package/columnar/geoarrow-types.d.ts +271 -0
  26. package/columnar/geoarrow-types.d.ts.map +1 -0
  27. package/columnar/geoarrow-types.js +15 -0
  28. package/columnar/geoarrow.d.ts +52 -0
  29. package/columnar/geoarrow.d.ts.map +1 -0
  30. package/columnar/geoarrow.js +1469 -0
  31. package/columnar/index.d.ts +43 -0
  32. package/columnar/index.d.ts.map +1 -0
  33. package/columnar/index.js +29 -0
  34. package/columnar/operators.d.ts +70 -0
  35. package/columnar/operators.d.ts.map +1 -0
  36. package/columnar/operators.js +307 -0
  37. package/columnar/result.d.ts +369 -0
  38. package/columnar/result.d.ts.map +1 -0
  39. package/columnar/result.js +815 -0
  40. package/columnar/telemetry.d.ts +152 -0
  41. package/columnar/telemetry.d.ts.map +1 -0
  42. package/columnar/telemetry.js +265 -0
  43. package/columnar/transfer.d.ts +28 -0
  44. package/columnar/transfer.d.ts.map +1 -0
  45. package/columnar/transfer.js +669 -0
  46. package/columnar/types.d.ts +175 -0
  47. package/columnar/types.d.ts.map +1 -0
  48. package/columnar/types.js +22 -0
  49. package/columnar/worker.d.ts +157 -0
  50. package/columnar/worker.d.ts.map +1 -0
  51. package/columnar/worker.js +1059 -0
  52. package/contract/pmtiles.d.ts +6 -5
  53. package/contract/pmtiles.d.ts.map +1 -1
  54. package/contract/pmtiles.js +30 -5
  55. package/controls/catalog.d.ts.map +1 -1
  56. package/controls/catalog.js +110 -0
  57. package/controls/index.d.ts +1 -1
  58. package/controls/index.js +1 -1
  59. package/controls/types.d.ts +1 -1
  60. package/controls/types.js +1 -1
  61. package/core/client.d.ts.map +1 -1
  62. package/core/client.js +87 -19
  63. package/core/deprecation-notice.d.ts +28 -0
  64. package/core/deprecation-notice.d.ts.map +1 -0
  65. package/core/deprecation-notice.js +22 -0
  66. package/core/esri-geojson.d.ts.map +1 -1
  67. package/core/esri-geojson.js +10 -6
  68. package/core/optional-grpc-peer.d.ts +15 -0
  69. package/core/optional-grpc-peer.d.ts.map +1 -0
  70. package/core/optional-grpc-peer.js +60 -0
  71. package/esri-compat/basemap-gallery.d.ts +2 -0
  72. package/esri-compat/basemap-gallery.d.ts.map +1 -1
  73. package/esri-compat/basemap-gallery.js +12 -0
  74. package/esri-compat/basemap.d.ts +4 -0
  75. package/esri-compat/basemap.d.ts.map +1 -1
  76. package/esri-compat/basemap.js +70 -0
  77. package/esri-compat/bookmarks.d.ts +2 -0
  78. package/esri-compat/bookmarks.d.ts.map +1 -1
  79. package/esri-compat/bookmarks.js +12 -0
  80. package/esri-compat/controls.d.ts +18 -0
  81. package/esri-compat/controls.d.ts.map +1 -1
  82. package/esri-compat/controls.js +120 -57
  83. package/esri-compat/directions.d.ts +4 -0
  84. package/esri-compat/directions.d.ts.map +1 -1
  85. package/esri-compat/directions.js +30 -20
  86. package/esri-compat/editor.d.ts +4 -0
  87. package/esri-compat/editor.d.ts.map +1 -1
  88. package/esri-compat/editor.js +16 -0
  89. package/esri-compat/esri-config.d.ts +2 -1
  90. package/esri-compat/esri-config.d.ts.map +1 -1
  91. package/esri-compat/feature-effect.d.ts +23 -0
  92. package/esri-compat/feature-effect.d.ts.map +1 -0
  93. package/esri-compat/feature-effect.js +12 -0
  94. package/esri-compat/feature-form.d.ts +6 -0
  95. package/esri-compat/feature-form.d.ts.map +1 -1
  96. package/esri-compat/feature-form.js +63 -0
  97. package/esri-compat/feature-layer.d.ts +21 -2
  98. package/esri-compat/feature-layer.d.ts.map +1 -1
  99. package/esri-compat/feature-layer.js +172 -1
  100. package/esri-compat/feature-table.d.ts +5 -0
  101. package/esri-compat/feature-table.d.ts.map +1 -1
  102. package/esri-compat/feature-table.js +23 -0
  103. package/esri-compat/identity-manager.d.ts +1 -1
  104. package/esri-compat/identity-manager.js +1 -1
  105. package/esri-compat/legend.d.ts +2 -0
  106. package/esri-compat/legend.d.ts.map +1 -1
  107. package/esri-compat/legend.js +98 -0
  108. package/esri-compat/locator.d.ts +1 -1
  109. package/esri-compat/locator.js +1 -1
  110. package/esri-compat/map-view-mount.d.ts +1 -0
  111. package/esri-compat/map-view-mount.d.ts.map +1 -1
  112. package/esri-compat/map-view-mount.js +46 -25
  113. package/esri-compat/map-view.d.ts +13 -0
  114. package/esri-compat/map-view.d.ts.map +1 -1
  115. package/esri-compat/map-view.js +94 -8
  116. package/esri-compat/map.d.ts +5 -1
  117. package/esri-compat/map.d.ts.map +1 -1
  118. package/esri-compat/map.js +10 -0
  119. package/esri-compat/measurement.d.ts +2 -0
  120. package/esri-compat/measurement.d.ts.map +1 -1
  121. package/esri-compat/measurement.js +14 -0
  122. package/esri-compat/point.d.ts +7 -0
  123. package/esri-compat/point.d.ts.map +1 -1
  124. package/esri-compat/point.js +33 -3
  125. package/esri-compat/popup.d.ts +2 -0
  126. package/esri-compat/popup.d.ts.map +1 -1
  127. package/esri-compat/popup.js +12 -0
  128. package/esri-compat/portal.d.ts +1 -1
  129. package/esri-compat/portal.js +1 -1
  130. package/esri-compat/print.d.ts +3 -0
  131. package/esri-compat/print.d.ts.map +1 -1
  132. package/esri-compat/print.js +15 -0
  133. package/esri-compat/search.d.ts +4 -0
  134. package/esri-compat/search.d.ts.map +1 -1
  135. package/esri-compat/search.js +25 -28
  136. package/esri-compat/sketch.d.ts +2 -0
  137. package/esri-compat/sketch.d.ts.map +1 -1
  138. package/esri-compat/sketch.js +12 -0
  139. package/esri-compat/widget-host.d.ts +46 -17
  140. package/esri-compat/widget-host.d.ts.map +1 -1
  141. package/esri-compat/widget-host.js +84 -20
  142. package/esri-compat/widget-shell-hosts.d.ts +61 -0
  143. package/esri-compat/widget-shell-hosts.d.ts.map +1 -0
  144. package/esri-compat/widget-shell-hosts.js +76 -0
  145. package/kernel/renderer.d.ts +82 -0
  146. package/kernel/renderer.js +1 -0
  147. package/offline/conflict-resolution.d.ts +183 -0
  148. package/offline/conflict-resolution.d.ts.map +1 -0
  149. package/offline/conflict-resolution.js +286 -0
  150. package/offline/credential-screen.d.ts +34 -0
  151. package/offline/credential-screen.d.ts.map +1 -0
  152. package/offline/credential-screen.js +78 -0
  153. package/offline/digest.d.ts +15 -0
  154. package/offline/digest.d.ts.map +1 -0
  155. package/offline/digest.js +58 -0
  156. package/offline/edit-queue.d.ts +403 -0
  157. package/offline/edit-queue.d.ts.map +1 -0
  158. package/offline/edit-queue.js +1807 -0
  159. package/offline/edit-replay.d.ts +116 -0
  160. package/offline/edit-replay.d.ts.map +1 -0
  161. package/offline/edit-replay.js +392 -0
  162. package/offline/fetch-handler.d.ts +12 -0
  163. package/offline/fetch-handler.d.ts.map +1 -0
  164. package/offline/fetch-handler.js +65 -0
  165. package/offline/index.d.ts +52 -0
  166. package/offline/index.d.ts.map +1 -0
  167. package/offline/index.js +34 -0
  168. package/offline/indexeddb.d.ts +135 -0
  169. package/offline/indexeddb.d.ts.map +1 -0
  170. package/offline/indexeddb.js +888 -0
  171. package/offline/memory-store.d.ts +17 -0
  172. package/offline/memory-store.d.ts.map +1 -0
  173. package/offline/memory-store.js +183 -0
  174. package/offline/quota.d.ts +161 -0
  175. package/offline/quota.d.ts.map +1 -0
  176. package/offline/quota.js +370 -0
  177. package/offline/read-gate.d.ts +175 -0
  178. package/offline/read-gate.d.ts.map +1 -0
  179. package/offline/read-gate.js +252 -0
  180. package/offline/read-resource.d.ts +99 -0
  181. package/offline/read-resource.d.ts.map +1 -0
  182. package/offline/read-resource.js +156 -0
  183. package/offline/read.d.ts +50 -0
  184. package/offline/read.d.ts.map +1 -0
  185. package/offline/read.js +65 -0
  186. package/offline/region.d.ts +29 -0
  187. package/offline/region.d.ts.map +1 -0
  188. package/offline/region.js +1007 -0
  189. package/offline/replay-conflict.d.ts +183 -0
  190. package/offline/replay-conflict.d.ts.map +1 -0
  191. package/offline/replay-conflict.js +482 -0
  192. package/offline/selection.d.ts +140 -0
  193. package/offline/selection.d.ts.map +1 -0
  194. package/offline/selection.js +391 -0
  195. package/offline/snapshot.d.ts +132 -0
  196. package/offline/snapshot.d.ts.map +1 -0
  197. package/offline/snapshot.js +312 -0
  198. package/offline/status.d.ts +136 -0
  199. package/offline/status.d.ts.map +1 -0
  200. package/offline/status.js +479 -0
  201. package/offline/store-conformance.d.ts +48 -0
  202. package/offline/store-conformance.d.ts.map +1 -0
  203. package/offline/store-conformance.js +233 -0
  204. package/offline/tile-protocol.d.ts +81 -0
  205. package/offline/tile-protocol.d.ts.map +1 -0
  206. package/offline/tile-protocol.js +119 -0
  207. package/offline/types.d.ts +349 -0
  208. package/offline/types.d.ts.map +1 -0
  209. package/offline/types.js +75 -0
  210. package/package.json +14 -2
  211. package/scene-workspace/index.d.ts +2 -2
  212. package/scene-workspace/index.d.ts.map +1 -1
  213. package/scene-workspace/index.js +1 -1
  214. package/scene-workspace/scene-discovery.d.ts +111 -91
  215. package/scene-workspace/scene-discovery.d.ts.map +1 -1
  216. package/scene-workspace/scene-discovery.js +340 -92
  217. package/scene-workspace/scene-view.d.ts +6 -6
  218. package/scene-workspace/scene-view.d.ts.map +1 -1
  219. package/scene-workspace/scene-view.js +32 -6
  220. package/web-components/elements.d.ts +34 -0
  221. package/web-components/elements.d.ts.map +1 -1
  222. package/web-components/elements.js +82 -8
  223. package/web-components/index.d.ts +2 -0
  224. package/web-components/index.d.ts.map +1 -1
  225. package/web-components/index.js +3 -1
  226. package/web-components/map-chrome.d.ts +103 -0
  227. package/web-components/map-chrome.d.ts.map +1 -0
  228. package/web-components/map-chrome.js +325 -0
  229. package/web-components/widget-shell.d.ts +68 -0
  230. package/web-components/widget-shell.d.ts.map +1 -0
  231. package/web-components/widget-shell.js +224 -0
  232. package/widget-capabilities.d.ts +67 -0
  233. package/widget-capabilities.js +152 -0
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Dependency-free columnar batch and worker-transfer contracts exported by
3
+ * `@honua/sdk-js/query-planner` for large geospatial results.
4
+ *
5
+ * The Honua envelope includes a normative dependency-free GeoArrow 0.2 mapping
6
+ * without importing an Arrow implementation. Transfers expose exact
7
+ * backing-allocation and payload-copy metrics, deduplicate shared backing
8
+ * buffers, enforce conservative default ceilings, and use a one-owner lease
9
+ * with deterministic cancellation, acknowledgement, error, and disposal
10
+ * behavior.
11
+ *
12
+ * @experimental
13
+ */
14
+ export { ColumnarBatchLease, createColumnarBatch, inspectColumnarBatch, leaseColumnarBatch } from "./transfer.js";
15
+ export { fromApacheArrowRecordBatch, loadApacheArrow, toApacheArrowRecordBatch } from "./apache-arrow.js";
16
+ export { createGeoArrowBatch, decodeGeoArrowBatch, inspectGeoArrowBatch } from "./geoarrow.js";
17
+ export { DEFAULT_COLUMNAR_RESULT_MAX_FEATURES, columnarBatchToResult, columnarBatchToResultPages, resultToColumnarBatch, } from "./result.js";
18
+ export type { ColumnarBatchToResultOptions, ColumnarBatchToResultPagesOptions, ColumnarGeoJsonGeometry, ColumnarGeoJsonGeometryType, ColumnarResult, ColumnarResultAttributeBinding, ColumnarResultDictionaryBinding, ColumnarResultFeatureIdBinding, ColumnarResultGeometryDescriptor, ColumnarResultProvenance, ColumnarResultTemporalBinding, ResultToColumnarBatchAttributeOptions, ResultToColumnarBatchGeometryOptions, ResultToColumnarBatchOptions, ResultToColumnarBatchResult, } from "./result.js";
19
+ export { createGeoArrowReprojectOperation } from "./geoarrow-reproject.js";
20
+ export type { CreateGeoArrowReprojectOperationOptions } from "./geoarrow-reproject.js";
21
+ export { DEFAULT_GEOARROW_AGGREGATE_MAX_GROUPS, DEFAULT_GEOARROW_AGGREGATE_YIELD_ROWS, GEOARROW_AGGREGATE_ABORT_CHECK_ROWS, GEOARROW_AGGREGATE_MAX_GRID_CELL_INDEX, HONUA_GEOARROW_AGGREGATE_LAYOUT_VERSION, createGeoArrowAggregateOperation, readGeoArrowAggregateBatch, } from "./geoarrow-aggregate.js";
22
+ export type { CreateGeoArrowAggregateOperationOptions, GeoArrowAggregateDictionaryGroupSpec, GeoArrowAggregateGridGroupSpec, GeoArrowAggregateGroupSpec, GeoArrowAggregateMetricKind, GeoArrowAggregateMetricSpec, GeoArrowAggregateNullKeyPolicy, GeoArrowAggregateNumericColumn, GeoArrowAggregateResult, GeoArrowAggregateRow, GeoArrowAggregateSource, GeoArrowAggregateTemporalGroupSpec, GeoArrowAggregateTruncationUnit, } from "./geoarrow-aggregate.js";
23
+ export { COLUMNAR_PATCH_ABORT_CHECK_ROWS, COLUMNAR_PATCH_KIND, COLUMNAR_PATCH_VERSION, DEFAULT_COLUMNAR_PATCH_MAX_CAPACITY_UTILIZATION, DEFAULT_COLUMNAR_PATCH_MAX_OPERATIONS, DEFAULT_COLUMNAR_PATCH_MAX_TOMBSTONE_OVERLAY_BYTES, DEFAULT_COLUMNAR_PATCH_MAX_TOMBSTONE_RATIO, DEFAULT_COLUMNAR_PATCH_MAX_VERTEX_GROWTH_RATIO, HONUA_COLUMNAR_PATCH_LAYOUT_VERSION, HonuaColumnarPatchError, applyColumnarPatch, columnarPatchLiveMask, createColumnarPatch, createColumnarPatchOperation, createPatchableGeoArrowBatch, decodePatchedGeoArrowBatch, inspectColumnarPatchState, } from "./geoarrow-patch.js";
24
+ export type { ApplyColumnarPatchOptions, ApplyColumnarPatchOutcomeV1, ColumnarPatchAppendV1, ColumnarPatchAppliedInPlaceV1, ColumnarPatchCapacityV1, ColumnarPatchCursorV1, ColumnarPatchDeleteV1, ColumnarPatchGeometry, ColumnarPatchMetricsV1, ColumnarPatchOperationV1, ColumnarPatchRebuildOptions, ColumnarPatchRebuildReason, ColumnarPatchRebuiltV1, ColumnarPatchRejectedV1, ColumnarPatchRejectionCode, ColumnarPatchReserveV1, ColumnarPatchStateV1, ColumnarPatchThresholds, ColumnarPatchUpdateV1, ColumnarPatchV1, CreateColumnarPatchInput, CreateColumnarPatchOperationOptions, CreatePatchableGeoArrowBatchOptions, CreatedPatchableGeoArrowBatch, DecodedPatchedGeoArrowBatch, PatchableGeoArrowBatchMetrics, } from "./geoarrow-patch.js";
25
+ export { createGeoArrowFilterOperation, createGeoArrowProjectionOperation, createGeoArrowTransformOperation, } from "./operators.js";
26
+ export { GEOARROW_ENVELOPE_MIGRATIONS, HONUA_GEOARROW_ENVELOPE_KIND, HONUA_GEOARROW_ENVELOPE_VERSION, deserializeGeoArrowBatch, planGeoArrowEnvelopeMigration, readableGeoArrowEnvelopeVersions, serializeGeoArrowBatch, } from "./geoarrow-serialization.js";
27
+ export { DEFAULT_COLUMNAR_BATCH_CACHE_MAX_AGE_MS, DEFAULT_COLUMNAR_BATCH_CACHE_MAX_RECORDS, DEFAULT_COLUMNAR_BATCH_CACHE_QUOTA_BYTES, HONUA_COLUMNAR_BATCH_CACHE_FORMAT, MAX_COLUMNAR_BATCH_CACHE_MAX_AGE_MS, MAX_COLUMNAR_BATCH_CACHE_MAX_RECORDS, MAX_COLUMNAR_BATCH_CACHE_QUOTA_BYTES, columnarBatchCacheKey, columnarBatchCacheOrderingDigest, createColumnarBatchCache, createMemoryColumnarBatchCacheStorage, planColumnarBatchCacheAdmission, } from "./batch-cache.js";
28
+ export type { ColumnarBatchCacheAdmissionV1, ColumnarBatchCacheDiagnosticV1, ColumnarBatchCacheEntryV1, ColumnarBatchCacheFreshnessV1, ColumnarBatchCacheHandle, ColumnarBatchCacheMissReason, ColumnarBatchCacheOptions, ColumnarBatchCacheReadOptions, ColumnarBatchCacheReadV1, ColumnarBatchCacheRecordV1, ColumnarBatchCacheRefusalReason, ColumnarBatchCacheStaleReason, ColumnarBatchCacheStorage, ColumnarBatchCacheWriteOptions, ColumnarBatchCacheWriteV1, } from "./batch-cache.js";
29
+ export { columnarAuthorizationScopeDigest } from "./telemetry.js";
30
+ export type { ColumnarTelemetry, ColumnarTelemetryIdentityV1, ColumnarTelemetryKind, ColumnarTelemetryOptions, ColumnarTelemetrySpan, ColumnarTelemetrySpanResult, } from "./telemetry.js";
31
+ export { createIndexedDbColumnarBatchCacheStorage } from "./batch-cache-indexeddb.js";
32
+ export type { IndexedDbColumnarBatchCacheStorageOptions } from "./batch-cache-indexeddb.js";
33
+ export { COLUMNAR_BATCH_CACHE_CONFORMANCE_CASES, HONUA_COLUMNAR_BATCH_CACHE_CONFORMANCE_KIND, HONUA_COLUMNAR_BATCH_CACHE_CONFORMANCE_VERSION, columnarBatchCacheFixtureBatch, columnarBatchCacheFixtureIdentity, columnarBatchCacheLegacyEntry, runColumnarBatchCacheConformance, } from "./batch-cache-conformance.js";
34
+ export type { ColumnarBatchCacheConformanceCaseResultV1, ColumnarBatchCacheConformanceOptions, ColumnarBatchCacheConformanceReportV1, } from "./batch-cache-conformance.js";
35
+ export { GEOARROW_SPEC_VERSION, HONUA_GEOARROW_LAYOUT_VERSION, HonuaGeoArrowError, } from "./geoarrow-types.js";
36
+ export type { GeoArrowEnvelopeMigrationPlanV1, GeoArrowEnvelopeMigrationRefusal, GeoArrowEnvelopeMigrationV1, } from "./geoarrow-types.js";
37
+ export type { ApacheArrowAdapterMetrics, ApacheArrowAdapterOptions, ApacheArrowDataLike, ApacheArrowFieldLike, ApacheArrowModuleImporter, ApacheArrowModuleLike, ApacheArrowRecordBatchLike, ApacheArrowRecordBatchResult, ApacheArrowTypeLike, ApacheArrowVectorLike, CreateGeoArrowBatchInput, CreatedGeoArrowBatch, DecodedGeoArrowBatch, DecodedGeoArrowRow, GeoArrowBatchInspection, GeoArrowBatchSerializationResult, GeoArrowConversionLimits, GeoArrowSerializationMetrics, GeoArrowSerializationOptions, GeoArrowConversionMetrics, GeoArrowCoordinateLayout, GeoArrowCrs, GeoArrowCrsType, GeoArrowDictionaryBuffers, GeoArrowDictionaryColumnInput, GeoArrowDimensions, GeoArrowEdges, GeoArrowFeatureIdColumnInput, GeoArrowGeometryBuffers, GeoArrowGeometryColumnInput, GeoArrowGeometryKind, GeoArrowLineString, GeoArrowLineStringColumnInput, GeoArrowPoint, GeoArrowPointColumnInput, GeoArrowPolygon, GeoArrowPolygonColumnInput, GeoArrowPosition, GeoArrowTemporalBuffers, GeoArrowTemporalColumnInput, GeoArrowTimestampUnit, FromApacheArrowRecordBatchOptions, GeoArrowBatchFromApacheResult, HonuaGeoArrowErrorCode, LoadApacheArrowOptions, } from "./geoarrow-types.js";
38
+ export type { CreateGeoArrowFilterOperationOptions, CreateGeoArrowProjectionOperationOptions, CreateGeoArrowTransformOperationOptions, GeoArrowProjectionColumn, GeoArrowRowPredicate, } from "./operators.js";
39
+ export { COLUMNAR_WORKER_CANCEL_KIND, COLUMNAR_WORKER_ERROR_KIND, COLUMNAR_WORKER_PROGRESS_KIND, COLUMNAR_WORKER_PROTOCOL_VERSION, COLUMNAR_WORKER_REQUEST_KIND, COLUMNAR_WORKER_RESULT_KIND, HonuaColumnarWorkerError, createColumnarWorkerSession, startColumnarWorkerHost, } from "./worker.js";
40
+ export type { ColumnarWorkerCancelV1, ColumnarWorkerErrorCode, ColumnarWorkerErrorV1, ColumnarWorkerExecutionProgress, ColumnarWorkerExecutionResult, ColumnarWorkerFactory, ColumnarWorkerFaultEvent, ColumnarWorkerHost, ColumnarWorkerMessageEvent, ColumnarWorkerOperation, ColumnarWorkerOperationContext, ColumnarWorkerProgressV1, ColumnarWorkerRequestV1, ColumnarWorkerResultV1, ColumnarWorkerSession, ColumnarWorkerSessionState, ColumnarWorkerStreamOrdering, ColumnarWorkerTransport, CreateColumnarWorkerSessionOptions, ExecuteColumnarWorkerOperationOptions, StartColumnarWorkerHostOptions, } from "./worker.js";
41
+ export { COLUMNAR_BATCH_KIND, COLUMNAR_BATCH_VERSION, COLUMNAR_TRANSFER_KIND, DEFAULT_COLUMNAR_BATCH_MAX_BACKING_BYTES, DEFAULT_COLUMNAR_BATCH_MAX_BUFFER_VIEWS, DEFAULT_COLUMNAR_BATCH_MAX_METADATA_ENTRIES, DEFAULT_COLUMNAR_BATCH_MAX_ROWS, DEFAULT_COLUMNAR_BATCH_MAX_SCHEMA_NODES, DEFAULT_COLUMNAR_BATCH_MAX_STRING_BYTES, HonuaColumnarTransferError, } from "./types.js";
42
+ export type { ColumnarBatchLeaseState, ColumnarBatchIdentityV1, ColumnarBatchLimits, ColumnarBatchMetrics, ColumnarBatchV1, ColumnarBufferRole, ColumnarBufferV1, ColumnarFieldV1, ColumnarFreshnessV1, ColumnarOrderingKeyV1, ColumnarOrderingV1, ColumnarSchemaV1, ColumnarTransferErrorCode, ColumnarTransferMessageV1, ColumnarTransferOptions, ColumnarTransferReceipt, ColumnarTransferTarget, ColumnarTypeV1, CreateColumnarBatchInput, } from "./types.js";
43
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/columnar/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Dependency-free columnar batch and worker-transfer contracts exported by
3
+ * `@honua/sdk-js/query-planner` for large geospatial results.
4
+ *
5
+ * The Honua envelope includes a normative dependency-free GeoArrow 0.2 mapping
6
+ * without importing an Arrow implementation. Transfers expose exact
7
+ * backing-allocation and payload-copy metrics, deduplicate shared backing
8
+ * buffers, enforce conservative default ceilings, and use a one-owner lease
9
+ * with deterministic cancellation, acknowledgement, error, and disposal
10
+ * behavior.
11
+ *
12
+ * @experimental
13
+ */
14
+ export { ColumnarBatchLease, createColumnarBatch, inspectColumnarBatch, leaseColumnarBatch } from "./transfer.js";
15
+ export { fromApacheArrowRecordBatch, loadApacheArrow, toApacheArrowRecordBatch } from "./apache-arrow.js";
16
+ export { createGeoArrowBatch, decodeGeoArrowBatch, inspectGeoArrowBatch } from "./geoarrow.js";
17
+ export { DEFAULT_COLUMNAR_RESULT_MAX_FEATURES, columnarBatchToResult, columnarBatchToResultPages, resultToColumnarBatch, } from "./result.js";
18
+ export { createGeoArrowReprojectOperation } from "./geoarrow-reproject.js";
19
+ export { DEFAULT_GEOARROW_AGGREGATE_MAX_GROUPS, DEFAULT_GEOARROW_AGGREGATE_YIELD_ROWS, GEOARROW_AGGREGATE_ABORT_CHECK_ROWS, GEOARROW_AGGREGATE_MAX_GRID_CELL_INDEX, HONUA_GEOARROW_AGGREGATE_LAYOUT_VERSION, createGeoArrowAggregateOperation, readGeoArrowAggregateBatch, } from "./geoarrow-aggregate.js";
20
+ export { COLUMNAR_PATCH_ABORT_CHECK_ROWS, COLUMNAR_PATCH_KIND, COLUMNAR_PATCH_VERSION, DEFAULT_COLUMNAR_PATCH_MAX_CAPACITY_UTILIZATION, DEFAULT_COLUMNAR_PATCH_MAX_OPERATIONS, DEFAULT_COLUMNAR_PATCH_MAX_TOMBSTONE_OVERLAY_BYTES, DEFAULT_COLUMNAR_PATCH_MAX_TOMBSTONE_RATIO, DEFAULT_COLUMNAR_PATCH_MAX_VERTEX_GROWTH_RATIO, HONUA_COLUMNAR_PATCH_LAYOUT_VERSION, HonuaColumnarPatchError, applyColumnarPatch, columnarPatchLiveMask, createColumnarPatch, createColumnarPatchOperation, createPatchableGeoArrowBatch, decodePatchedGeoArrowBatch, inspectColumnarPatchState, } from "./geoarrow-patch.js";
21
+ export { createGeoArrowFilterOperation, createGeoArrowProjectionOperation, createGeoArrowTransformOperation, } from "./operators.js";
22
+ export { GEOARROW_ENVELOPE_MIGRATIONS, HONUA_GEOARROW_ENVELOPE_KIND, HONUA_GEOARROW_ENVELOPE_VERSION, deserializeGeoArrowBatch, planGeoArrowEnvelopeMigration, readableGeoArrowEnvelopeVersions, serializeGeoArrowBatch, } from "./geoarrow-serialization.js";
23
+ export { DEFAULT_COLUMNAR_BATCH_CACHE_MAX_AGE_MS, DEFAULT_COLUMNAR_BATCH_CACHE_MAX_RECORDS, DEFAULT_COLUMNAR_BATCH_CACHE_QUOTA_BYTES, HONUA_COLUMNAR_BATCH_CACHE_FORMAT, MAX_COLUMNAR_BATCH_CACHE_MAX_AGE_MS, MAX_COLUMNAR_BATCH_CACHE_MAX_RECORDS, MAX_COLUMNAR_BATCH_CACHE_QUOTA_BYTES, columnarBatchCacheKey, columnarBatchCacheOrderingDigest, createColumnarBatchCache, createMemoryColumnarBatchCacheStorage, planColumnarBatchCacheAdmission, } from "./batch-cache.js";
24
+ export { columnarAuthorizationScopeDigest } from "./telemetry.js";
25
+ export { createIndexedDbColumnarBatchCacheStorage } from "./batch-cache-indexeddb.js";
26
+ export { COLUMNAR_BATCH_CACHE_CONFORMANCE_CASES, HONUA_COLUMNAR_BATCH_CACHE_CONFORMANCE_KIND, HONUA_COLUMNAR_BATCH_CACHE_CONFORMANCE_VERSION, columnarBatchCacheFixtureBatch, columnarBatchCacheFixtureIdentity, columnarBatchCacheLegacyEntry, runColumnarBatchCacheConformance, } from "./batch-cache-conformance.js";
27
+ export { GEOARROW_SPEC_VERSION, HONUA_GEOARROW_LAYOUT_VERSION, HonuaGeoArrowError, } from "./geoarrow-types.js";
28
+ export { COLUMNAR_WORKER_CANCEL_KIND, COLUMNAR_WORKER_ERROR_KIND, COLUMNAR_WORKER_PROGRESS_KIND, COLUMNAR_WORKER_PROTOCOL_VERSION, COLUMNAR_WORKER_REQUEST_KIND, COLUMNAR_WORKER_RESULT_KIND, HonuaColumnarWorkerError, createColumnarWorkerSession, startColumnarWorkerHost, } from "./worker.js";
29
+ export { COLUMNAR_BATCH_KIND, COLUMNAR_BATCH_VERSION, COLUMNAR_TRANSFER_KIND, DEFAULT_COLUMNAR_BATCH_MAX_BACKING_BYTES, DEFAULT_COLUMNAR_BATCH_MAX_BUFFER_VIEWS, DEFAULT_COLUMNAR_BATCH_MAX_METADATA_ENTRIES, DEFAULT_COLUMNAR_BATCH_MAX_ROWS, DEFAULT_COLUMNAR_BATCH_MAX_SCHEMA_NODES, DEFAULT_COLUMNAR_BATCH_MAX_STRING_BYTES, HonuaColumnarTransferError, } from "./types.js";
@@ -0,0 +1,70 @@
1
+ import type { ColumnarBatchIdentityV1, DecodedGeoArrowRow, GeoArrowConversionLimits, GeoArrowCrs } from "./geoarrow-types.js";
2
+ import type { ColumnarWorkerOperation } from "./worker.js";
3
+ /** A worker-safe predicate over one decoded GeoArrow row. */
4
+ export type GeoArrowRowPredicate = (row: DecodedGeoArrowRow, index: number) => boolean | Promise<boolean>;
5
+ /** Options for the bounded GeoArrow row-filter worker operation. */
6
+ export interface CreateGeoArrowFilterOperationOptions extends GeoArrowConversionLimits {
7
+ /** Stable id assigned to the filtered output batch. */
8
+ readonly id: string;
9
+ readonly predicate: GeoArrowRowPredicate;
10
+ }
11
+ export type GeoArrowProjectionColumn = "geometry" | "temporal" | "dictionary" | "featureId";
12
+ /** Options for the bounded GeoArrow column-projection worker operation. */
13
+ export interface CreateGeoArrowProjectionOperationOptions extends GeoArrowConversionLimits {
14
+ /** Stable id assigned to the projected output batch. */
15
+ readonly id: string;
16
+ /** Schema id for the projected field set. */
17
+ readonly schemaId: string;
18
+ /** Identity for the projected schema; callers must provide its schema version. */
19
+ readonly identity: ColumnarBatchIdentityV1;
20
+ /** Columns to retain. Geometry is always retained even when omitted. */
21
+ readonly columns?: readonly GeoArrowProjectionColumn[];
22
+ }
23
+ /** Options for a bounded XY affine transform of a GeoArrow batch. */
24
+ export interface CreateGeoArrowTransformOperationOptions extends GeoArrowConversionLimits {
25
+ /** Stable id assigned to the transformed output batch. */
26
+ readonly id: string;
27
+ /** Schema id for the transformed coordinate field set. */
28
+ readonly schemaId: string;
29
+ /** Identity for the transformed schema and coordinate semantics. */
30
+ readonly identity: ColumnarBatchIdentityV1;
31
+ /** Multipliers applied to X and Y. Defaults to `[1, 1]`. */
32
+ readonly scale?: readonly [number, number];
33
+ /** Offsets added to X and Y after scaling. Defaults to `[0, 0]`. */
34
+ readonly translate?: readonly [number, number];
35
+ /** Optional replacement CRS; omitted means preserve the source CRS metadata. */
36
+ readonly outputCrs?: GeoArrowCrs;
37
+ }
38
+ /**
39
+ * Create a deterministic GeoArrow row filter for registration with
40
+ * `startColumnarWorkerHost`.
41
+ *
42
+ * The operation intentionally decodes only the normative GeoArrow row view and
43
+ * re-encodes the selected rows into a new bounded batch. It preserves geometry
44
+ * metadata, temporal values, dictionary values, feature ids, and source
45
+ * identity while omitting `rowOffset` because a filtered batch is not a
46
+ * contiguous source range.
47
+ */
48
+ export declare function createGeoArrowFilterOperation(options: CreateGeoArrowFilterOperationOptions): ColumnarWorkerOperation;
49
+ /**
50
+ * Create a deterministic GeoArrow column projection for registration with
51
+ * `startColumnarWorkerHost`.
52
+ *
53
+ * Geometry is mandatory in the normative batch. Optional temporal, dictionary,
54
+ * and feature-id columns are retained only when requested. A new schema id and
55
+ * identity are required because the projected field set is a distinct cache and
56
+ * authorization-visible result, even though row order and values are unchanged.
57
+ */
58
+ export declare function createGeoArrowProjectionOperation(options: CreateGeoArrowProjectionOperationOptions): ColumnarWorkerOperation;
59
+ /**
60
+ * Create a bounded XY affine transform for registration with
61
+ * `startColumnarWorkerHost`.
62
+ *
63
+ * The operation transforms every coordinate while preserving Z/M ordinates,
64
+ * row order, nulls, temporal values, dictionary values, feature ids, and
65
+ * batch identity fields supplied by the caller. A new id, schema id, and
66
+ * identity are required because coordinate semantics are part of the cache
67
+ * and authorization-visible result contract.
68
+ */
69
+ export declare function createGeoArrowTransformOperation(options: CreateGeoArrowTransformOperationOptions): ColumnarWorkerOperation;
70
+ //# sourceMappingURL=operators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../src/columnar/operators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EAGZ,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,uBAAuB,EAAkC,MAAM,aAAa,CAAC;AAE3F,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE1G,oEAAoE;AACpE,MAAM,WAAW,oCAAqC,SAAQ,wBAAwB;IACpF,uDAAuD;IACvD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;CAC1C;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAC;AAE5F,2EAA2E;AAC3E,MAAM,WAAW,wCAAyC,SAAQ,wBAAwB;IACxF,wDAAwD;IACxD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACxD;AAED,qEAAqE;AACrE,MAAM,WAAW,uCAAwC,SAAQ,wBAAwB;IACvF,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;CAClC;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,oCAAoC,GAAG,uBAAuB,CAuEpH;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,wCAAwC,GAChD,uBAAuB,CAqGzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,uCAAuC,GAC/C,uBAAuB,CAwFzB"}
@@ -0,0 +1,307 @@
1
+ import { createGeoArrowBatch, decodeGeoArrowBatch, inspectGeoArrowBatch } from "./geoarrow.js";
2
+ /**
3
+ * Create a deterministic GeoArrow row filter for registration with
4
+ * `startColumnarWorkerHost`.
5
+ *
6
+ * The operation intentionally decodes only the normative GeoArrow row view and
7
+ * re-encodes the selected rows into a new bounded batch. It preserves geometry
8
+ * metadata, temporal values, dictionary values, feature ids, and source
9
+ * identity while omitting `rowOffset` because a filtered batch is not a
10
+ * contiguous source range.
11
+ */
12
+ export function createGeoArrowFilterOperation(options) {
13
+ if (typeof options !== "object" || options === null) {
14
+ throw new TypeError("GeoArrow filter options must be an object");
15
+ }
16
+ if (typeof options.id !== "string" || options.id.trim() !== options.id || options.id.length === 0) {
17
+ throw new TypeError("GeoArrow filter id must be a non-empty trimmed string");
18
+ }
19
+ if (typeof options.predicate !== "function") {
20
+ throw new TypeError("GeoArrow filter predicate must be a function");
21
+ }
22
+ const limits = { ...options };
23
+ delete limits.id;
24
+ delete limits.predicate;
25
+ return async (batch, context) => {
26
+ const inspection = inspectGeoArrowBatch(batch, limits);
27
+ if (!batch.identity)
28
+ throw new TypeError("GeoArrow filter requires batch identity");
29
+ const decoded = decodeGeoArrowBatch(batch, limits);
30
+ const selected = [];
31
+ for (let index = 0; index < decoded.rows.length; index += 1) {
32
+ if (context.signal.aborted)
33
+ throw new DOMException("The operation was aborted", "AbortError");
34
+ const keep = await options.predicate(decoded.rows[index], index);
35
+ if (typeof keep !== "boolean")
36
+ throw new TypeError("GeoArrow filter predicate must return a boolean");
37
+ if (keep)
38
+ selected.push(decoded.rows[index]);
39
+ if (index === decoded.rows.length - 1 || index % 256 === 0) {
40
+ context.reportProgress(decoded.rows.length === 0 ? 1 : (index + 1) / decoded.rows.length, "filter");
41
+ }
42
+ }
43
+ const geometry = {
44
+ kind: inspection.geometry.kind,
45
+ field: inspection.geometry.field,
46
+ dimensions: inspection.geometry.dimensions,
47
+ coordinateLayout: inspection.geometry.coordinateLayout,
48
+ ...(inspection.geometry.crs === undefined ? {} : { crs: inspection.geometry.crs }),
49
+ ...(inspection.geometry.crsType === undefined ? {} : { crsType: inspection.geometry.crsType }),
50
+ edges: inspection.geometry.edges,
51
+ values: selected.map((row) => row.geometry),
52
+ };
53
+ const temporal = inspection.temporal
54
+ ? {
55
+ field: inspection.temporal.field,
56
+ unit: inspection.temporal.unit,
57
+ ...(inspection.temporal.timezone === undefined ? {} : { timezone: inspection.temporal.timezone }),
58
+ values: selected.map((row) => row.timestamp ?? null),
59
+ }
60
+ : undefined;
61
+ const dictionary = inspection.dictionary
62
+ ? {
63
+ field: inspection.dictionary.field,
64
+ ordered: inspection.dictionary.ordered,
65
+ values: selected.map((row) => row.dictionaryValue ?? null),
66
+ }
67
+ : undefined;
68
+ const featureIds = inspection.featureIds
69
+ ? { field: inspection.featureIds.field, values: selected.map((row) => row.featureId ?? 0) }
70
+ : undefined;
71
+ return createGeoArrowBatch({
72
+ id: options.id,
73
+ sequence: batch.sequence,
74
+ schemaId: batch.schema.id,
75
+ identity: batch.identity,
76
+ geometry,
77
+ ...(temporal === undefined ? {} : { temporal }),
78
+ ...(dictionary === undefined ? {} : { dictionary }),
79
+ ...(featureIds === undefined ? {} : { featureIds }),
80
+ }, limits).batch;
81
+ };
82
+ }
83
+ /**
84
+ * Create a deterministic GeoArrow column projection for registration with
85
+ * `startColumnarWorkerHost`.
86
+ *
87
+ * Geometry is mandatory in the normative batch. Optional temporal, dictionary,
88
+ * and feature-id columns are retained only when requested. A new schema id and
89
+ * identity are required because the projected field set is a distinct cache and
90
+ * authorization-visible result, even though row order and values are unchanged.
91
+ */
92
+ export function createGeoArrowProjectionOperation(options) {
93
+ if (typeof options !== "object" || options === null) {
94
+ throw new TypeError("GeoArrow projection options must be an object");
95
+ }
96
+ if (typeof options.id !== "string" || options.id.trim() !== options.id || options.id.length === 0) {
97
+ throw new TypeError("GeoArrow projection id must be a non-empty trimmed string");
98
+ }
99
+ if (typeof options.schemaId !== "string" ||
100
+ options.schemaId.trim() !== options.schemaId ||
101
+ options.schemaId.length === 0) {
102
+ throw new TypeError("GeoArrow projection schemaId must be a non-empty trimmed string");
103
+ }
104
+ if (typeof options.identity !== "object" || options.identity === null) {
105
+ throw new TypeError("GeoArrow projection identity must be an object");
106
+ }
107
+ const columns = options.columns === undefined ? ["geometry"] : [...options.columns];
108
+ const allowed = new Set(["geometry", "temporal", "dictionary", "featureId"]);
109
+ if (columns.length !== new Set(columns).size || columns.some((column) => !allowed.has(column))) {
110
+ throw new TypeError("GeoArrow projection columns must be unique supported column names");
111
+ }
112
+ const limits = { ...options };
113
+ delete limits.id;
114
+ delete limits.schemaId;
115
+ delete limits.identity;
116
+ delete limits.columns;
117
+ const wants = new Set(columns);
118
+ return async (batch, context) => {
119
+ const inspection = inspectGeoArrowBatch(batch, limits);
120
+ if (wants.has("temporal") && inspection.temporal === undefined) {
121
+ throw new TypeError("GeoArrow projection requested a missing temporal column");
122
+ }
123
+ if (wants.has("dictionary") && inspection.dictionary === undefined) {
124
+ throw new TypeError("GeoArrow projection requested a missing dictionary column");
125
+ }
126
+ if (wants.has("featureId") && inspection.featureIds === undefined) {
127
+ throw new TypeError("GeoArrow projection requested a missing feature-id column");
128
+ }
129
+ const decoded = decodeGeoArrowBatch(batch, limits);
130
+ const geometryValues = [];
131
+ const temporalValues = [];
132
+ const dictionaryValues = [];
133
+ const featureIdValues = [];
134
+ for (let index = 0; index < decoded.rows.length; index += 1) {
135
+ if (context.signal.aborted)
136
+ throw new DOMException("The operation was aborted", "AbortError");
137
+ const row = decoded.rows[index];
138
+ geometryValues.push(row.geometry);
139
+ if (wants.has("temporal"))
140
+ temporalValues.push(row.timestamp ?? null);
141
+ if (wants.has("dictionary"))
142
+ dictionaryValues.push(row.dictionaryValue ?? null);
143
+ if (wants.has("featureId"))
144
+ featureIdValues.push(row.featureId);
145
+ if (index === decoded.rows.length - 1 || index % 256 === 0) {
146
+ context.reportProgress(decoded.rows.length === 0 ? 1 : (index + 1) / decoded.rows.length, "projection");
147
+ }
148
+ }
149
+ const geometry = {
150
+ kind: inspection.geometry.kind,
151
+ field: inspection.geometry.field,
152
+ dimensions: inspection.geometry.dimensions,
153
+ coordinateLayout: inspection.geometry.coordinateLayout,
154
+ ...(inspection.geometry.crs === undefined ? {} : { crs: inspection.geometry.crs }),
155
+ ...(inspection.geometry.crsType === undefined ? {} : { crsType: inspection.geometry.crsType }),
156
+ edges: inspection.geometry.edges,
157
+ values: geometryValues,
158
+ };
159
+ const temporal = wants.has("temporal")
160
+ ? (() => {
161
+ const temporalInspection = inspection.temporal;
162
+ if (temporalInspection === undefined) {
163
+ throw new TypeError("GeoArrow projection requested a missing temporal column");
164
+ }
165
+ return {
166
+ field: temporalInspection.field,
167
+ unit: temporalInspection.unit,
168
+ ...(temporalInspection.timezone === undefined ? {} : { timezone: temporalInspection.timezone }),
169
+ values: temporalValues,
170
+ };
171
+ })()
172
+ : undefined;
173
+ const dictionary = wants.has("dictionary")
174
+ ? { field: inspection.dictionary.field, ordered: inspection.dictionary.ordered, values: dictionaryValues }
175
+ : undefined;
176
+ const featureIds = wants.has("featureId")
177
+ ? { field: inspection.featureIds.field, values: featureIdValues }
178
+ : undefined;
179
+ return createGeoArrowBatch({
180
+ id: options.id,
181
+ sequence: batch.sequence,
182
+ ...(batch.rowOffset === undefined ? {} : { rowOffset: batch.rowOffset }),
183
+ schemaId: options.schemaId,
184
+ identity: options.identity,
185
+ geometry,
186
+ ...(temporal === undefined ? {} : { temporal }),
187
+ ...(dictionary === undefined ? {} : { dictionary }),
188
+ ...(featureIds === undefined ? {} : { featureIds }),
189
+ }, limits).batch;
190
+ };
191
+ }
192
+ /**
193
+ * Create a bounded XY affine transform for registration with
194
+ * `startColumnarWorkerHost`.
195
+ *
196
+ * The operation transforms every coordinate while preserving Z/M ordinates,
197
+ * row order, nulls, temporal values, dictionary values, feature ids, and
198
+ * batch identity fields supplied by the caller. A new id, schema id, and
199
+ * identity are required because coordinate semantics are part of the cache
200
+ * and authorization-visible result contract.
201
+ */
202
+ export function createGeoArrowTransformOperation(options) {
203
+ if (typeof options !== "object" || options === null) {
204
+ throw new TypeError("GeoArrow transform options must be an object");
205
+ }
206
+ if (typeof options.id !== "string" || options.id.trim() !== options.id || options.id.length === 0) {
207
+ throw new TypeError("GeoArrow transform id must be a non-empty trimmed string");
208
+ }
209
+ if (typeof options.schemaId !== "string" ||
210
+ options.schemaId.trim() !== options.schemaId ||
211
+ options.schemaId.length === 0) {
212
+ throw new TypeError("GeoArrow transform schemaId must be a non-empty trimmed string");
213
+ }
214
+ if (typeof options.identity !== "object" || options.identity === null) {
215
+ throw new TypeError("GeoArrow transform identity must be an object");
216
+ }
217
+ const scale = normalizeAffinePair(options.scale, [1, 1], "scale");
218
+ const translate = normalizeAffinePair(options.translate, [0, 0], "translate");
219
+ const limits = { ...options };
220
+ delete limits.id;
221
+ delete limits.schemaId;
222
+ delete limits.identity;
223
+ delete limits.scale;
224
+ delete limits.translate;
225
+ delete limits.outputCrs;
226
+ return async (batch, context) => {
227
+ const inspection = inspectGeoArrowBatch(batch, limits);
228
+ const decoded = decodeGeoArrowBatch(batch, limits);
229
+ const geometryValues = [];
230
+ for (let index = 0; index < decoded.rows.length; index += 1) {
231
+ if (context.signal.aborted)
232
+ throw new DOMException("The operation was aborted", "AbortError");
233
+ geometryValues.push(transformGeometry(decoded.rows[index].geometry, scale, translate));
234
+ if (index === decoded.rows.length - 1 || index % 256 === 0) {
235
+ context.reportProgress(decoded.rows.length === 0 ? 1 : (index + 1) / decoded.rows.length, "transform");
236
+ }
237
+ }
238
+ if (decoded.rows.length === 0)
239
+ context.reportProgress(1, "transform");
240
+ const geometry = {
241
+ kind: inspection.geometry.kind,
242
+ field: inspection.geometry.field,
243
+ dimensions: inspection.geometry.dimensions,
244
+ coordinateLayout: inspection.geometry.coordinateLayout,
245
+ ...(options.outputCrs === undefined
246
+ ? inspection.geometry.crs === undefined
247
+ ? {}
248
+ : { crs: inspection.geometry.crs }
249
+ : { crs: options.outputCrs }),
250
+ ...(options.outputCrs === undefined && inspection.geometry.crsType !== undefined
251
+ ? { crsType: inspection.geometry.crsType }
252
+ : {}),
253
+ edges: inspection.geometry.edges,
254
+ values: geometryValues,
255
+ };
256
+ const temporal = inspection.temporal
257
+ ? {
258
+ field: inspection.temporal.field,
259
+ unit: inspection.temporal.unit,
260
+ ...(inspection.temporal.timezone === undefined ? {} : { timezone: inspection.temporal.timezone }),
261
+ values: decoded.rows.map((row) => row.timestamp ?? null),
262
+ }
263
+ : undefined;
264
+ const dictionary = inspection.dictionary
265
+ ? {
266
+ field: inspection.dictionary.field,
267
+ ordered: inspection.dictionary.ordered,
268
+ values: decoded.rows.map((row) => row.dictionaryValue ?? null),
269
+ }
270
+ : undefined;
271
+ const featureIds = inspection.featureIds
272
+ ? { field: inspection.featureIds.field, values: decoded.rows.map((row) => row.featureId ?? 0) }
273
+ : undefined;
274
+ return createGeoArrowBatch({
275
+ id: options.id,
276
+ sequence: batch.sequence,
277
+ ...(batch.rowOffset === undefined ? {} : { rowOffset: batch.rowOffset }),
278
+ schemaId: options.schemaId,
279
+ identity: options.identity,
280
+ geometry,
281
+ ...(temporal === undefined ? {} : { temporal }),
282
+ ...(dictionary === undefined ? {} : { dictionary }),
283
+ ...(featureIds === undefined ? {} : { featureIds }),
284
+ }, limits).batch;
285
+ };
286
+ }
287
+ function normalizeAffinePair(value, fallback, name) {
288
+ const pair = value ?? fallback;
289
+ if (pair.length !== 2 || !Number.isFinite(pair[0]) || !Number.isFinite(pair[1])) {
290
+ throw new TypeError(`GeoArrow transform ${name} must contain exactly two finite numbers`);
291
+ }
292
+ return [pair[0], pair[1]];
293
+ }
294
+ function transformGeometry(geometry, scale, translate) {
295
+ if (geometry === null)
296
+ return null;
297
+ if (geometry.length === 0 || typeof geometry[0] === "number") {
298
+ return transformPosition(geometry, scale, translate);
299
+ }
300
+ if (typeof geometry[0][0] === "number") {
301
+ return geometry.map((position) => transformPosition(position, scale, translate));
302
+ }
303
+ return geometry.map((part) => part.map((position) => transformPosition(position, scale, translate)));
304
+ }
305
+ function transformPosition(position, scale, translate) {
306
+ return [position[0] * scale[0] + translate[0], position[1] * scale[1] + translate[1], ...position.slice(2)];
307
+ }