@honua/react 0.1.7-beta.0 → 0.1.10-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.
Files changed (249) hide show
  1. package/control-plane/admin-client.d.ts +89 -0
  2. package/control-plane/admin-client.d.ts.map +1 -0
  3. package/control-plane/admin-client.js +200 -0
  4. package/control-plane/client.d.ts +1 -1
  5. package/control-plane/client.d.ts.map +1 -1
  6. package/control-plane/client.js +145 -11
  7. package/control-plane/commands/catalog.d.ts +133 -0
  8. package/control-plane/commands/catalog.d.ts.map +1 -0
  9. package/control-plane/commands/catalog.js +365 -0
  10. package/control-plane/commands/errors.d.ts +96 -0
  11. package/control-plane/commands/errors.d.ts.map +1 -0
  12. package/control-plane/commands/errors.js +130 -0
  13. package/control-plane/commands/identity.d.ts +71 -0
  14. package/control-plane/commands/identity.d.ts.map +1 -0
  15. package/control-plane/commands/identity.js +0 -0
  16. package/control-plane/commands/index.d.ts +39 -0
  17. package/control-plane/commands/index.d.ts.map +1 -0
  18. package/control-plane/commands/index.js +34 -0
  19. package/control-plane/commands/runtime.d.ts +146 -0
  20. package/control-plane/commands/runtime.d.ts.map +1 -0
  21. package/control-plane/commands/runtime.js +330 -0
  22. package/control-plane/commands/types.d.ts +228 -0
  23. package/control-plane/commands/types.d.ts.map +1 -0
  24. package/control-plane/commands/types.js +30 -0
  25. package/control-plane/commands/validate.d.ts +27 -0
  26. package/control-plane/commands/validate.d.ts.map +1 -0
  27. package/control-plane/commands/validate.js +132 -0
  28. package/control-plane/generated/admin-api.d.ts +30265 -0
  29. package/control-plane/generated/admin-api.d.ts.map +1 -0
  30. package/control-plane/generated/admin-api.js +5 -0
  31. package/control-plane/generated/admin-operations.d.ts +4053 -0
  32. package/control-plane/generated/admin-operations.d.ts.map +1 -0
  33. package/control-plane/generated/admin-operations.js +820 -0
  34. package/control-plane/index.d.ts +11 -0
  35. package/control-plane/index.d.ts.map +1 -1
  36. package/control-plane/index.js +8 -0
  37. package/control-plane/types.d.ts +14 -0
  38. package/control-plane/types.d.ts.map +1 -1
  39. package/core/client.d.ts.map +1 -1
  40. package/core/client.js +29 -31
  41. package/core/credential-redaction.d.ts +163 -0
  42. package/core/credential-redaction.d.ts.map +1 -0
  43. package/core/credential-redaction.js +389 -0
  44. package/core/error-classifications.d.ts +15 -0
  45. package/core/error-classifications.d.ts.map +1 -1
  46. package/core/error-classifications.js +15 -0
  47. package/core/error-code-registry.d.ts +15 -0
  48. package/core/error-code-registry.d.ts.map +1 -1
  49. package/core/error-code-registry.js +15 -0
  50. package/core/error-envelope.d.ts +31 -0
  51. package/core/error-envelope.d.ts.map +1 -1
  52. package/core/error-envelope.js +11 -0
  53. package/core/errors.d.ts +15 -3
  54. package/core/errors.d.ts.map +1 -1
  55. package/core/errors.js +254 -2
  56. package/core/geometry-input-sr.d.ts +3 -0
  57. package/core/geometry-input-sr.d.ts.map +1 -0
  58. package/core/geometry-input-sr.js +28 -0
  59. package/core/geoservices.d.ts.map +1 -1
  60. package/core/geoservices.js +33 -6
  61. package/core/grpc-adapter.d.ts +2 -2
  62. package/core/grpc-adapter.d.ts.map +1 -1
  63. package/core/grpc-adapter.js +41 -9
  64. package/core/job-run-errors.d.ts +10 -0
  65. package/core/job-run-errors.d.ts.map +1 -0
  66. package/core/job-run-errors.js +14 -0
  67. package/core/job-run-lifecycle.d.ts +34 -0
  68. package/core/job-run-lifecycle.d.ts.map +1 -0
  69. package/core/job-run-lifecycle.js +193 -0
  70. package/core/ogc-processes.d.ts +38 -31
  71. package/core/ogc-processes.d.ts.map +1 -1
  72. package/core/ogc-processes.js +123 -173
  73. package/core/pbf-decoder.d.ts.map +1 -1
  74. package/core/pbf-decoder.js +16 -4
  75. package/core/process-runner.js +15 -100
  76. package/core/protocol-transport.d.ts +6 -1
  77. package/core/protocol-transport.d.ts.map +1 -1
  78. package/core/request-pipeline.d.ts +6 -3
  79. package/core/request-pipeline.d.ts.map +1 -1
  80. package/core/request-pipeline.js +28 -11
  81. package/core/spatial-filter.d.ts +4 -4
  82. package/core/spatial-filter.d.ts.map +1 -1
  83. package/core/spatial-filter.js +7 -7
  84. package/core/surfaces.d.ts +2 -8
  85. package/core/surfaces.d.ts.map +1 -1
  86. package/core/surfaces.js +21 -112
  87. package/core/types.d.ts +21 -9
  88. package/core/types.d.ts.map +1 -1
  89. package/esri-compat/class-breaks-renderer.d.ts +2 -0
  90. package/esri-compat/class-breaks-renderer.d.ts.map +1 -1
  91. package/esri-compat/class-breaks-renderer.js +7 -0
  92. package/esri-compat/controls.d.ts +10 -1
  93. package/esri-compat/controls.d.ts.map +1 -1
  94. package/esri-compat/controls.js +86 -2
  95. package/esri-compat/directions.d.ts +35 -0
  96. package/esri-compat/directions.d.ts.map +1 -1
  97. package/esri-compat/directions.js +153 -2
  98. package/esri-compat/expand.d.ts +1 -0
  99. package/esri-compat/expand.d.ts.map +1 -1
  100. package/esri-compat/expand.js +61 -0
  101. package/esri-compat/feature-layer.d.ts +29 -4
  102. package/esri-compat/feature-layer.d.ts.map +1 -1
  103. package/esri-compat/feature-layer.js +335 -13
  104. package/esri-compat/geometry-engine.d.ts +4 -0
  105. package/esri-compat/geometry-engine.d.ts.map +1 -1
  106. package/esri-compat/geometry-engine.js +8 -1
  107. package/esri-compat/graphic.d.ts +7 -4
  108. package/esri-compat/graphic.d.ts.map +1 -1
  109. package/esri-compat/legend.d.ts +2 -1
  110. package/esri-compat/legend.d.ts.map +1 -1
  111. package/esri-compat/legend.js +15 -0
  112. package/esri-compat/map-view-mount.d.ts +48 -0
  113. package/esri-compat/map-view-mount.d.ts.map +1 -0
  114. package/esri-compat/map-view-mount.js +344 -0
  115. package/esri-compat/map-view.d.ts +38 -6
  116. package/esri-compat/map-view.d.ts.map +1 -1
  117. package/esri-compat/map-view.js +467 -33
  118. package/esri-compat/portal.d.ts +2 -0
  119. package/esri-compat/portal.d.ts.map +1 -1
  120. package/esri-compat/portal.js +7 -2
  121. package/esri-compat/renderer-objects.d.ts +7 -2
  122. package/esri-compat/renderer-objects.d.ts.map +1 -1
  123. package/esri-compat/renderer-objects.js +16 -5
  124. package/esri-compat/route-layer.d.ts +8 -0
  125. package/esri-compat/route-layer.d.ts.map +1 -1
  126. package/esri-compat/route-layer.js +24 -4
  127. package/esri-compat/route-task.d.ts +5 -1
  128. package/esri-compat/route-task.d.ts.map +1 -1
  129. package/esri-compat/route-task.js +119 -7
  130. package/esri-compat/scene-view.d.ts.map +1 -1
  131. package/esri-compat/scene-view.js +1 -0
  132. package/esri-compat/search.d.ts +2 -1
  133. package/esri-compat/search.d.ts.map +1 -1
  134. package/esri-compat/search.js +52 -2
  135. package/esri-compat/unique-value-renderer.d.ts +2 -0
  136. package/esri-compat/unique-value-renderer.d.ts.map +1 -1
  137. package/esri-compat/unique-value-renderer.js +7 -0
  138. package/esri-compat/web-map.d.ts +10 -0
  139. package/esri-compat/web-map.d.ts.map +1 -1
  140. package/esri-compat/web-map.js +102 -0
  141. package/gen/geospatial/v1/common_pb.d.ts +514 -0
  142. package/gen/geospatial/v1/common_pb.d.ts.map +1 -0
  143. package/gen/geospatial/v1/common_pb.js +335 -0
  144. package/gen/geospatial/v1/execution_types_pb.d.ts +1186 -0
  145. package/gen/geospatial/v1/execution_types_pb.d.ts.map +1 -0
  146. package/gen/geospatial/v1/execution_types_pb.js +396 -0
  147. package/gen/geospatial/v1/feature_service_pb.d.ts +403 -0
  148. package/gen/geospatial/v1/feature_service_pb.d.ts.map +1 -0
  149. package/gen/geospatial/v1/feature_service_pb.js +47 -0
  150. package/gen/geospatial/v1/index.d.ts +5 -0
  151. package/gen/geospatial/v1/index.d.ts.map +1 -0
  152. package/gen/geospatial/v1/index.js +9 -0
  153. package/gen/geospatial/v1/spatial_types_pb.d.ts +285 -0
  154. package/gen/geospatial/v1/spatial_types_pb.d.ts.map +1 -0
  155. package/gen/geospatial/v1/spatial_types_pb.js +58 -0
  156. package/gen/geospatial/v1/workspace_artifact_types_pb.d.ts +379 -0
  157. package/gen/geospatial/v1/workspace_artifact_types_pb.d.ts.map +1 -0
  158. package/gen/geospatial/v1/workspace_artifact_types_pb.js +151 -0
  159. package/generated-app/projection.d.ts.map +1 -1
  160. package/generated-app/projection.js +10 -1
  161. package/map/webmap-maplibre.d.ts +2 -1
  162. package/map/webmap-maplibre.d.ts.map +1 -1
  163. package/map/webmap-maplibre.js +3 -0
  164. package/package.json +3 -3
  165. package/query-planner/geoservices.d.ts.map +1 -1
  166. package/query-planner/geoservices.js +2 -0
  167. package/query-planner/grpc.d.ts +4 -4
  168. package/query-planner/grpc.d.ts.map +1 -1
  169. package/query-planner/grpc.js +11 -11
  170. package/query-planner/types.d.ts +6 -4
  171. package/query-planner/types.d.ts.map +1 -1
  172. package/realtime/honua-server.d.ts +4 -0
  173. package/realtime/honua-server.d.ts.map +1 -1
  174. package/realtime/honua-server.js +10 -0
  175. package/realtime/resumable.js +9 -0
  176. package/realtime/types.d.ts +8 -0
  177. package/realtime/types.d.ts.map +1 -1
  178. package/runtime/errors.d.ts +1 -1
  179. package/runtime/errors.d.ts.map +1 -1
  180. package/runtime/errors.js +2 -0
  181. package/runtime/generated/map-package-schema-meta.d.ts +11 -0
  182. package/runtime/generated/map-package-schema-meta.d.ts.map +1 -0
  183. package/runtime/generated/map-package-schema-meta.js +12 -0
  184. package/runtime/generated/map-package-schema-validator.d.ts +16 -0
  185. package/runtime/generated/map-package-schema-validator.d.ts.map +1 -0
  186. package/runtime/generated/map-package-schema-validator.js +1422 -0
  187. package/runtime/index.d.ts +5 -1
  188. package/runtime/index.d.ts.map +1 -1
  189. package/runtime/index.js +6 -0
  190. package/runtime/map-package-export.d.ts +151 -0
  191. package/runtime/map-package-export.d.ts.map +1 -0
  192. package/runtime/map-package-export.js +636 -0
  193. package/runtime/map-package-validation.d.ts +21 -1
  194. package/runtime/map-package-validation.d.ts.map +1 -1
  195. package/runtime/map-package-validation.js +132 -95
  196. package/runtime/map-package.d.ts +80 -0
  197. package/runtime/map-package.d.ts.map +1 -1
  198. package/studio/capability-manifest.d.ts +10 -0
  199. package/studio/capability-manifest.d.ts.map +1 -1
  200. package/studio/capability-manifest.js +38 -0
  201. package/studio/chart-spec.d.ts +6 -6
  202. package/studio/chart-spec.d.ts.map +1 -1
  203. package/studio/chart-spec.js +6 -6
  204. package/studio/command-adapter.d.ts +35 -0
  205. package/studio/command-adapter.d.ts.map +1 -0
  206. package/studio/command-adapter.js +36 -0
  207. package/studio/generated/studio-api.d.ts +1062 -0
  208. package/studio/generated/studio-api.d.ts.map +1 -0
  209. package/studio/generated/studio-api.js +4 -0
  210. package/studio/index.d.ts +25 -13
  211. package/studio/index.d.ts.map +1 -1
  212. package/studio/index.js +21 -10
  213. package/studio/lifecycle-client.d.ts +262 -22
  214. package/studio/lifecycle-client.d.ts.map +1 -1
  215. package/studio/lifecycle-client.js +543 -24
  216. package/studio/lifecycle-errors.d.ts +8 -2
  217. package/studio/lifecycle-errors.d.ts.map +1 -1
  218. package/studio/lifecycle-errors.js +6 -1
  219. package/studio/lifecycle-types.d.ts +237 -38
  220. package/studio/lifecycle-types.d.ts.map +1 -1
  221. package/studio/lifecycle-types.js +5 -12
  222. package/studio/publication-status.d.ts +55 -0
  223. package/studio/publication-status.d.ts.map +1 -0
  224. package/studio/publication-status.js +103 -0
  225. package/studio/types.d.ts +37 -7
  226. package/studio/types.d.ts.map +1 -1
  227. package/studio/types.js +5 -3
  228. package/studio/validate.d.ts.map +1 -1
  229. package/studio/validate.js +104 -7
  230. package/style/renderers.d.ts +6 -1
  231. package/style/renderers.d.ts.map +1 -1
  232. package/style/renderers.js +11 -6
  233. package/style/visual-variables.d.ts +43 -0
  234. package/style/visual-variables.d.ts.map +1 -0
  235. package/style/visual-variables.js +183 -0
  236. package/webmap/convert-layer.d.ts +2 -1
  237. package/webmap/convert-layer.d.ts.map +1 -1
  238. package/webmap/convert-layer.js +20 -3
  239. package/webmap/convert-renderer.d.ts +10 -3
  240. package/webmap/convert-renderer.d.ts.map +1 -1
  241. package/webmap/convert-renderer.js +190 -36
  242. package/webmap/index.d.ts +1 -0
  243. package/webmap/index.d.ts.map +1 -1
  244. package/webmap/parse.d.ts +2 -1
  245. package/webmap/parse.d.ts.map +1 -1
  246. package/webmap/parse.js +1 -1
  247. package/gen/honua/v1/feature_service_pb.d.ts +0 -918
  248. package/gen/honua/v1/feature_service_pb.d.ts.map +0 -1
  249. package/gen/honua/v1/feature_service_pb.js +0 -375
package/studio/types.d.ts CHANGED
@@ -5,9 +5,9 @@
5
5
  * Console interop, MCP, QGIS, generated apps, and embeds must not fork the
6
6
  * server-owned package schemas. These projections mirror the canonical
7
7
  * server wire shapes — the `format` string on each family is the version
8
- * gate, exactly as on {@link HonuaMapPackage}. The `map` and `dashboard`
9
- * families already have established SDK-native types and are re-tagged here
10
- * rather than re-declared.
8
+ * gate, exactly as on {@link HonuaMapPackage}. The `map` and `app` families
9
+ * reuse established SDK-native types; `dashboard` is authored by this Studio
10
+ * surface and consumed read-only by renderers.
11
11
  *
12
12
  * The remaining families (query, analysis, report, form, workflow, GP, ETL)
13
13
  * have no finalized server contract yet, so their interfaces are minimal,
@@ -20,12 +20,14 @@
20
20
  * server contracts ship.
21
21
  * @module
22
22
  */
23
- import type { HonuaGeneratedAppManifest, HonuaGeneratedAppPackage } from "../generated-app/manifest.js";
23
+ import type { HonuaGeneratedAppDataBinding, HonuaGeneratedAppFieldBinding, HonuaGeneratedAppLayout, HonuaGeneratedAppPackage } from "../generated-app/manifest.js";
24
24
  import type { HonuaMapPackage, HonuaMapPackageStatus } from "../runtime/map-package.js";
25
25
  /** Canonical format string for the v1 QueryPackage shape. */
26
26
  export declare const HONUA_QUERY_PACKAGE_FORMAT_V1: "honua_query_package.v1";
27
27
  /** Canonical format string for the v1 AnalysisPackage shape. */
28
28
  export declare const HONUA_ANALYSIS_PACKAGE_FORMAT_V1: "honua_analysis_package.v1";
29
+ /** Canonical format string for the v1 Studio-authored dashboard package. */
30
+ export declare const HONUA_DASHBOARD_PACKAGE_FORMAT_V1: "honua_dashboard_package.v1";
29
31
  /** Canonical format string for the v1 ReportPackage shape. */
30
32
  export declare const HONUA_REPORT_PACKAGE_FORMAT_V1: "honua_report_package.v1";
31
33
  /** Canonical format string for the v1 FormPackage shape. */
@@ -38,6 +40,7 @@ export declare const HONUA_GP_PACKAGE_FORMAT_V1: "honua_gp_package.v1";
38
40
  export declare const HONUA_ETL_PACKAGE_FORMAT_V1: "honua_etl_package.v1";
39
41
  export type HonuaQueryPackageFormat = typeof HONUA_QUERY_PACKAGE_FORMAT_V1;
40
42
  export type HonuaAnalysisPackageFormat = typeof HONUA_ANALYSIS_PACKAGE_FORMAT_V1;
43
+ export type HonuaDashboardPackageFormat = typeof HONUA_DASHBOARD_PACKAGE_FORMAT_V1;
41
44
  export type HonuaReportPackageFormat = typeof HONUA_REPORT_PACKAGE_FORMAT_V1;
42
45
  export type HonuaFormPackageFormat = typeof HONUA_FORM_PACKAGE_FORMAT_V1;
43
46
  export type HonuaWorkflowPackageFormat = typeof HONUA_WORKFLOW_PACKAGE_FORMAT_V1;
@@ -112,6 +115,33 @@ export interface HonuaAnalysisPackage extends HonuaStudioPackageBase {
112
115
  readonly parameters?: Record<string, unknown>;
113
116
  readonly resultBindings?: readonly HonuaStudioBindingRef[];
114
117
  }
118
+ /**
119
+ * Renderer-neutral dashboard artifact authored by the sdk-js Studio agent
120
+ * path. Console and other hosts consume this shape read-only.
121
+ *
122
+ * The package deliberately excludes publication lifecycle, tenant/actor,
123
+ * authorization, audit, correlation, and optimistic-concurrency fields. Those
124
+ * belong to the server-owned Studio lifecycle envelope. Unknown additive
125
+ * authoring fields are preserved within v1; incompatible semantics require a
126
+ * new format discriminator.
127
+ *
128
+ * `mapPackageId` references the portable map artifact owned by the runtime
129
+ * contract. A dashboard must not embed credentials or a second map shape.
130
+ *
131
+ * @experimental
132
+ */
133
+ export interface HonuaDashboardPackage {
134
+ readonly packageId: string;
135
+ readonly format: HonuaDashboardPackageFormat;
136
+ readonly title?: string;
137
+ readonly description?: string;
138
+ readonly data: HonuaGeneratedAppDataBinding;
139
+ readonly mapPackageId?: string;
140
+ readonly layout: HonuaGeneratedAppLayout;
141
+ readonly bindings?: HonuaGeneratedAppFieldBinding;
142
+ readonly metadata?: Readonly<Record<string, unknown>>;
143
+ readonly [extra: string]: unknown;
144
+ }
115
145
  /**
116
146
  * One section in a {@link HonuaReportPackage} layout.
117
147
  *
@@ -216,8 +246,8 @@ export interface HonuaETLPackage extends HonuaStudioPackageBase {
216
246
  }
217
247
  /**
218
248
  * Maps each Studio package family discriminant to its projection shape.
219
- * `map` and `dashboard`/`app` reuse the established SDK-native types rather
220
- * than re-declaring them.
249
+ * `map` and `app` reuse established SDK-native types. `dashboard` is the
250
+ * dedicated Studio-authored artifact consumed read-only by Console.
221
251
  *
222
252
  * @experimental
223
253
  */
@@ -225,7 +255,7 @@ export interface StudioPackageFamilyShapes {
225
255
  readonly query: HonuaQueryPackage;
226
256
  readonly analysis: HonuaAnalysisPackage;
227
257
  readonly map: HonuaMapPackage;
228
- readonly dashboard: HonuaGeneratedAppManifest;
258
+ readonly dashboard: HonuaDashboardPackage;
229
259
  readonly report: HonuaReportPackage;
230
260
  readonly form: HonuaFormPackage;
231
261
  readonly app: HonuaGeneratedAppPackage;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/studio/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/studio/types.ts"],"names":[],"mappings":"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"}
package/studio/types.js CHANGED
@@ -5,9 +5,9 @@
5
5
  * Console interop, MCP, QGIS, generated apps, and embeds must not fork the
6
6
  * server-owned package schemas. These projections mirror the canonical
7
7
  * server wire shapes — the `format` string on each family is the version
8
- * gate, exactly as on {@link HonuaMapPackage}. The `map` and `dashboard`
9
- * families already have established SDK-native types and are re-tagged here
10
- * rather than re-declared.
8
+ * gate, exactly as on {@link HonuaMapPackage}. The `map` and `app` families
9
+ * reuse established SDK-native types; `dashboard` is authored by this Studio
10
+ * surface and consumed read-only by renderers.
11
11
  *
12
12
  * The remaining families (query, analysis, report, form, workflow, GP, ETL)
13
13
  * have no finalized server contract yet, so their interfaces are minimal,
@@ -24,6 +24,8 @@
24
24
  export const HONUA_QUERY_PACKAGE_FORMAT_V1 = "honua_query_package.v1";
25
25
  /** Canonical format string for the v1 AnalysisPackage shape. */
26
26
  export const HONUA_ANALYSIS_PACKAGE_FORMAT_V1 = "honua_analysis_package.v1";
27
+ /** Canonical format string for the v1 Studio-authored dashboard package. */
28
+ export const HONUA_DASHBOARD_PACKAGE_FORMAT_V1 = "honua_dashboard_package.v1";
27
29
  /** Canonical format string for the v1 ReportPackage shape. */
28
30
  export const HONUA_REPORT_PACKAGE_FORMAT_V1 = "honua_report_package.v1";
29
31
  /** Canonical format string for the v1 FormPackage shape. */
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/studio/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAsC,KAAK,sBAAsB,EAAwB,MAAM,iBAAiB,CAAC;AAGxH,OAAO,KAAK,EAA2B,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AA4BhG,MAAM,WAAW,4BAA4B;IAC3C,gFAAgF;IAChF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,OAAO,EAC/C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,4BAAiC,GACzC,+BAA+B,CAAC,CAAC,CAAC,CAgEpC;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5C,+BAA+B,CAAC,sBAAsB,CAAC,CASzD"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/studio/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAsC,KAAK,sBAAsB,EAAwB,MAAM,iBAAiB,CAAC;AAGxH,OAAO,KAAK,EAA2B,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AA0BhG,MAAM,WAAW,4BAA4B;IAC3C,gFAAgF;IAChF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,OAAO,EAC/C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,4BAAiC,GACzC,+BAA+B,CAAC,CAAC,CAAC,CAkEpC;AAuGD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5C,+BAA+B,CAAC,sBAAsB,CAAC,CASzD"}
@@ -19,19 +19,18 @@
19
19
  import { validateMapPackage } from "../runtime/map-package-validation.js";
20
20
  import { HONUA_MAP_PACKAGE_FORMAT_V1 } from "../runtime/map-package.js";
21
21
  import { HONUA_PACKAGE_PROVENANCE_FORMAT_V1, getPackageProvenance } from "./provenance.js";
22
- import { STUDIO_PACKAGE_FAMILIES, isStudioPackageFamily } from "./types.js";
22
+ import { HONUA_DASHBOARD_PACKAGE_FORMAT_V1, STUDIO_PACKAGE_FAMILIES, isStudioPackageFamily } from "./types.js";
23
23
  import { fromMapPackageValidation } from "./validation.js";
24
24
  /**
25
25
  * Expected `format` string for each family whose projection carries a single
26
- * `format` discriminant. `map` and `dashboard` reuse their established
27
- * constants; the `app` family is identified by `version` rather than `format`
26
+ * `format` discriminant. The `app` family is identified by `version` rather than `format`
28
27
  * and is therefore not in this table.
29
28
  */
30
29
  const FAMILY_FORMAT = {
31
30
  query: "honua_query_package.v1",
32
31
  analysis: "honua_analysis_package.v1",
33
32
  map: HONUA_MAP_PACKAGE_FORMAT_V1,
34
- dashboard: "honua_generated_app_manifest.v1",
33
+ dashboard: HONUA_DASHBOARD_PACKAGE_FORMAT_V1,
35
34
  report: "honua_report_package.v1",
36
35
  form: "honua_form_package.v1",
37
36
  workflow: "honua_workflow_package.v1",
@@ -42,8 +41,6 @@ const FAMILY_FORMAT = {
42
41
  function packageIdOf(family, value) {
43
42
  if (family === "map")
44
43
  return typeof value.mapPackageId === "string" ? value.mapPackageId : undefined;
45
- if (family === "dashboard")
46
- return typeof value.appId === "string" ? value.appId : undefined;
47
44
  if (family === "app")
48
45
  return typeof value.id === "string" ? value.id : undefined;
49
46
  return typeof value.packageId === "string" ? value.packageId : undefined;
@@ -92,7 +89,7 @@ export function validateStudioPackage(family, value, options = {}) {
92
89
  code: "missing-package-id",
93
90
  severity: "error",
94
91
  message: `${family} package must carry a non-empty identity field.`,
95
- path: family === "dashboard" ? "appId" : family === "app" ? "id" : "packageId",
92
+ path: family === "app" ? "id" : "packageId",
96
93
  });
97
94
  }
98
95
  const expectedFormat = FAMILY_FORMAT[family];
@@ -105,6 +102,8 @@ export function validateStudioPackage(family, value, options = {}) {
105
102
  detail: { expected: expectedFormat, received: value.format },
106
103
  });
107
104
  }
105
+ if (family === "dashboard")
106
+ appendDashboardDiagnostics(diagnostics, value);
108
107
  appendLifecycleDiagnostics(diagnostics, value, options);
109
108
  appendProvenanceDiagnostics(diagnostics, value, options);
110
109
  return {
@@ -113,6 +112,104 @@ export function validateStudioPackage(family, value, options = {}) {
113
112
  pkg: value,
114
113
  };
115
114
  }
115
+ const DASHBOARD_LIFECYCLE_FIELDS = [
116
+ "status",
117
+ "createdAt",
118
+ "updatedAt",
119
+ "expiresAt",
120
+ "tenantId",
121
+ "ownerId",
122
+ "actorId",
123
+ "proposalId",
124
+ "operationInstanceId",
125
+ "auditId",
126
+ "correlationId",
127
+ "generation",
128
+ ];
129
+ const DASHBOARD_WIDGET_KINDS = new Set(["map", "table", "list", "count", "chart", "filter"]);
130
+ function appendDashboardDiagnostics(diagnostics, value) {
131
+ if (!isRecord(value.data)) {
132
+ diagnostics.push({
133
+ code: "missing-dashboard-data",
134
+ severity: "error",
135
+ message: "dashboard package data must be a JSON object.",
136
+ path: "data",
137
+ });
138
+ }
139
+ else if (typeof value.data.sourceId !== "string" || value.data.sourceId.trim().length === 0) {
140
+ diagnostics.push({
141
+ code: "missing-dashboard-source-id",
142
+ severity: "error",
143
+ message: "dashboard package data.sourceId must be a non-empty string.",
144
+ path: "data.sourceId",
145
+ });
146
+ }
147
+ if (!isRecord(value.layout) || !Array.isArray(value.layout.widgets)) {
148
+ diagnostics.push({
149
+ code: "missing-dashboard-layout",
150
+ severity: "error",
151
+ message: "dashboard package layout.widgets must be an array.",
152
+ path: "layout.widgets",
153
+ });
154
+ }
155
+ else {
156
+ if (value.layout.kind !== "operations-dashboard") {
157
+ diagnostics.push({
158
+ code: "invalid-dashboard-layout-kind",
159
+ severity: "error",
160
+ message: 'dashboard package layout.kind must be "operations-dashboard".',
161
+ path: "layout.kind",
162
+ });
163
+ }
164
+ value.layout.widgets.forEach((widget, index) => {
165
+ const widgetPath = `layout.widgets[${index}]`;
166
+ if (!isRecord(widget)) {
167
+ diagnostics.push({
168
+ code: "invalid-dashboard-widget",
169
+ severity: "error",
170
+ message: "Each dashboard widget must be a JSON object.",
171
+ path: widgetPath,
172
+ });
173
+ return;
174
+ }
175
+ if (typeof widget.id !== "string" || widget.id.trim().length === 0) {
176
+ diagnostics.push({
177
+ code: "missing-dashboard-widget-id",
178
+ severity: "error",
179
+ message: "Each dashboard widget must carry a non-empty id.",
180
+ path: `${widgetPath}.id`,
181
+ });
182
+ }
183
+ if (typeof widget.kind !== "string" || !DASHBOARD_WIDGET_KINDS.has(widget.kind)) {
184
+ diagnostics.push({
185
+ code: "invalid-dashboard-widget-kind",
186
+ severity: "error",
187
+ message: "Each dashboard widget must carry a supported kind.",
188
+ path: `${widgetPath}.kind`,
189
+ detail: { supported: [...DASHBOARD_WIDGET_KINDS], received: widget.kind },
190
+ });
191
+ }
192
+ });
193
+ }
194
+ if ("mapPackage" in value) {
195
+ diagnostics.push({
196
+ code: "embedded-dashboard-map-package",
197
+ severity: "error",
198
+ message: "dashboard package must reference a portable map through mapPackageId rather than embed mapPackage.",
199
+ path: "mapPackage",
200
+ });
201
+ }
202
+ for (const field of DASHBOARD_LIFECYCLE_FIELDS) {
203
+ if (field in value) {
204
+ diagnostics.push({
205
+ code: "dashboard-lifecycle-field",
206
+ severity: "error",
207
+ message: `dashboard package must not carry server-owned lifecycle field "${field}".`,
208
+ path: field,
209
+ });
210
+ }
211
+ }
212
+ }
116
213
  /**
117
214
  * Validate just the {@link HonuaPackageProvenance} envelope on a package value.
118
215
  * Useful when a host (MCP/QGIS) wants to confirm attribution without running
@@ -18,6 +18,7 @@
18
18
  *
19
19
  * @module
20
20
  */
21
+ import type { VisualVariableLegend, VisualVariableStyle } from "./visual-variables.js";
21
22
  import { type Expr } from "../expr/expression.js";
22
23
  /** Coarse geometry classification a renderer compiles against. @experimental */
23
24
  export type RendererGeometryType = "point" | "line" | "polygon";
@@ -47,7 +48,7 @@ export interface RendererLayerFragment {
47
48
  * emit one `"symbolizer"` fragment; the cluster renderer emits
48
49
  * `"clusters"`, `"cluster-count"`, and `"unclustered"` fragments.
49
50
  */
50
- readonly role: "symbolizer" | "clusters" | "cluster-count" | "unclustered";
51
+ readonly role: "symbolizer" | "outline" | "clusters" | "cluster-count" | "unclustered";
51
52
  /** MapLibre layer type (`circle`, `line`, `fill`, `heatmap`, `symbol`). */
52
53
  readonly type: string;
53
54
  readonly paint: Record<string, unknown>;
@@ -83,6 +84,8 @@ interface RendererBase<D extends RendererDescriptor> {
83
84
  toJSON(): D;
84
85
  /** Legend metadata derived from the descriptor (stable contract, REQ-005). */
85
86
  legendItems(): readonly RendererLegendItem[];
87
+ /** Continuous ramps and the exact missing-value style used by the map. */
88
+ visualVariableLegends?(): readonly VisualVariableLegend[];
86
89
  /** Compile MapLibre layer fragments for one geometry kind. Pure and deterministic. */
87
90
  toMapLibre(geometry: RendererGeometryType): readonly RendererLayerFragment[];
88
91
  }
@@ -99,6 +102,7 @@ export interface ClassBreakEntry {
99
102
  }
100
103
  /** Options for {@link classBreaksRenderer}. @experimental */
101
104
  export interface ClassBreaksRendererOptions {
105
+ readonly visualVariableStyle?: VisualVariableStyle;
102
106
  /** Numeric feature property driving the classification. */
103
107
  readonly field: string;
104
108
  /** Ordered class breaks (ascending thresholds). */
@@ -153,6 +157,7 @@ export interface UniqueValueEntry {
153
157
  }
154
158
  /** Options for {@link uniqueValueRenderer}. @experimental */
155
159
  export interface UniqueValueRendererOptions {
160
+ readonly visualVariableStyle?: VisualVariableStyle;
156
161
  /** Feature property driving the categories. */
157
162
  readonly field: string;
158
163
  /** Optional second/third fields concatenated with `fieldDelimiter`. */
@@ -1 +1 @@
1
- {"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../../src/style/renderers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../../src/style/renderers.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,7 @@ export function classBreaksRenderer(options) {
63
63
  kind: "class-breaks",
64
64
  toJSON: () => cloneDescriptor(descriptor),
65
65
  legendItems: () => classBreaksLegend(descriptor),
66
+ visualVariableLegends: () => structuredClone(descriptor.visualVariableStyle?.legends ?? []),
66
67
  toMapLibre: (geometry) => {
67
68
  const type = descriptor.layerType ?? layerTypeFor(geometry);
68
69
  const colorProperty = colorPropertyFor(type);
@@ -72,9 +73,7 @@ export function classBreaksRenderer(options) {
72
73
  }));
73
74
  const defaultStyle = resolveDefaultStyle(descriptor, colorProperty);
74
75
  const compiled = compileDataDrivenStyle("step", get(descriptor.field), entries, defaultStyle);
75
- return Object.freeze([
76
- Object.freeze({ role: "symbolizer", type, paint: compiled.paint, layout: compiled.layout }),
77
- ]);
76
+ return rendererFragments(type, compiled, descriptor.visualVariableStyle);
78
77
  },
79
78
  });
80
79
  }
@@ -129,6 +128,7 @@ export function uniqueValueRenderer(options) {
129
128
  kind: "unique-value",
130
129
  toJSON: () => cloneDescriptor(descriptor),
131
130
  legendItems: () => uniqueValueLegend(descriptor),
131
+ visualVariableLegends: () => structuredClone(descriptor.visualVariableStyle?.legends ?? []),
132
132
  toMapLibre: (geometry) => {
133
133
  const type = descriptor.layerType ?? layerTypeFor(geometry);
134
134
  const colorProperty = colorPropertyFor(type);
@@ -138,9 +138,7 @@ export function uniqueValueRenderer(options) {
138
138
  }));
139
139
  const defaultStyle = resolveDefaultStyle(descriptor, colorProperty);
140
140
  const compiled = compileDataDrivenStyle("match", uniqueValueFieldExpression(descriptor), entries, defaultStyle);
141
- return Object.freeze([
142
- Object.freeze({ role: "symbolizer", type, paint: compiled.paint, layout: compiled.layout }),
143
- ]);
141
+ return rendererFragments(type, compiled, descriptor.visualVariableStyle);
144
142
  },
145
143
  });
146
144
  }
@@ -515,3 +513,10 @@ function formatRange(min, max) {
515
513
  function cloneDescriptor(value) {
516
514
  return structuredClone(value);
517
515
  }
516
+ function rendererFragments(type, compiled, variables) {
517
+ const paint = { ...compiled.paint, ...structuredClone(variables?.paint ?? {}) };
518
+ const fragments = [{ role: "symbolizer", type, paint, layout: compiled.layout }];
519
+ if (variables?.outline)
520
+ fragments.push({ role: "outline", type: "line", ...structuredClone(variables.outline) });
521
+ return Object.freeze(fragments.map((fragment) => Object.freeze(fragment)));
522
+ }
@@ -0,0 +1,43 @@
1
+ import type { WarningCollector } from "../webmap/warnings.js";
2
+ /** Explicit field bindings; omitted names retain their original spelling. */
3
+ export interface RendererConversionOptions {
4
+ fieldMap?: Readonly<Record<string, string>>;
5
+ }
6
+ /** Apply only explicit bindings; prototype names are valid source fields. */
7
+ export declare function bindRendererField(field: string, options: RendererConversionOptions): string;
8
+ export interface VisualVariableLegend {
9
+ type: "color" | "size";
10
+ field?: string;
11
+ title?: string;
12
+ property: string;
13
+ input: "field" | "scale";
14
+ stops: {
15
+ value: number;
16
+ label: string;
17
+ color?: string;
18
+ size?: number;
19
+ }[];
20
+ outOfRange: "clamp";
21
+ missingValue: "base-symbol";
22
+ /** Original property expression, including class/category fallback behavior. */
23
+ missingValueStyle: unknown;
24
+ /** Output sizes are CSS pixels (point markers use radius). */
25
+ sizeUnit?: "css-pixels";
26
+ }
27
+ /** Serializable overlay shared by WebMap and compatibility renderer objects. */
28
+ export interface VisualVariableStyle {
29
+ paint: Record<string, unknown>;
30
+ outline?: {
31
+ paint: Record<string, unknown>;
32
+ layout: Record<string, unknown>;
33
+ };
34
+ legends: VisualVariableLegend[];
35
+ }
36
+ /** ArcGIS Web Mercator scale at MapLibre zoom zero: 512 CSS pixels, 96 DPI.
37
+ * This is projected scale, so latitude does not change it. Ground resolution
38
+ * differs by cos(latitude); $view.scale is not a ground-distance measurement.
39
+ */
40
+ export declare const WEB_MERCATOR_SCALE_AT_ZOOM_ZERO: number;
41
+ export declare function webMercatorScaleToZoom(scale: number): number;
42
+ export declare function compileVisualVariables(variables: unknown, layerType: string, basePaint: Record<string, unknown>, warn: WarningCollector, options?: RendererConversionOptions, outlineWidth?: unknown, outlinePaint?: Record<string, unknown>): VisualVariableStyle;
43
+ //# sourceMappingURL=visual-variables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual-variables.d.ts","sourceRoot":"","sources":["../../../src/style/visual-variables.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,6EAA6E;AAC7E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7C;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAG3F;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzE,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,aAAa,CAAC;IAC5B,gFAAgF;IAChF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAC9E,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,eAAO,MAAM,+BAA+B,QAAgD,CAAC;AAE7F,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE,yBAA8B,EACvC,YAAY,GAAE,OAAW,EACzB,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACzC,mBAAmB,CAoKrB"}