@honua/app-platform 0.2.2 → 0.2.4

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 (56) hide show
  1. package/control-plane/dataset-import/client.d.ts +32 -0
  2. package/control-plane/dataset-import/client.d.ts.map +1 -0
  3. package/control-plane/dataset-import/client.js +112 -0
  4. package/control-plane/dataset-import/errors.d.ts +5 -0
  5. package/control-plane/dataset-import/errors.d.ts.map +1 -0
  6. package/control-plane/dataset-import/errors.js +8 -0
  7. package/control-plane/dataset-import/file-hash.d.ts +14 -0
  8. package/control-plane/dataset-import/file-hash.d.ts.map +1 -0
  9. package/control-plane/dataset-import/file-hash.js +117 -0
  10. package/control-plane/dataset-import/index.d.ts +10 -0
  11. package/control-plane/dataset-import/index.d.ts.map +1 -0
  12. package/control-plane/dataset-import/index.js +4 -0
  13. package/control-plane/dataset-import/submission-client.d.ts +18 -0
  14. package/control-plane/dataset-import/submission-client.d.ts.map +1 -0
  15. package/control-plane/dataset-import/submission-client.js +197 -0
  16. package/control-plane/dataset-import/transport.d.ts +14 -0
  17. package/control-plane/dataset-import/transport.d.ts.map +1 -0
  18. package/control-plane/dataset-import/transport.js +53 -0
  19. package/control-plane/dataset-import/types.d.ts +150 -0
  20. package/control-plane/dataset-import/types.d.ts.map +1 -0
  21. package/control-plane/dataset-import/types.js +1 -0
  22. package/control-plane/dataset-import/upload-client.d.ts +23 -0
  23. package/control-plane/dataset-import/upload-client.d.ts.map +1 -0
  24. package/control-plane/dataset-import/upload-client.js +187 -0
  25. package/control-plane/index.d.ts +1 -0
  26. package/control-plane/index.d.ts.map +1 -1
  27. package/control-plane/index.js +1 -0
  28. package/core/job-run-lifecycle.d.ts.map +1 -1
  29. package/core/job-run-lifecycle.js +4 -0
  30. package/package.json +2 -2
  31. package/query-planner/canonical.d.ts.map +1 -1
  32. package/query-planner/canonical.js +8 -16
  33. package/runtime/generated/map-package-schema-meta.d.ts +1 -1
  34. package/runtime/generated/map-package-schema-meta.js +1 -1
  35. package/runtime/generated/map-package-schema-validator.d.ts +5 -5
  36. package/runtime/generated/map-package-schema-validator.d.ts.map +1 -1
  37. package/runtime/generated/map-package-schema-validator.js +746 -619
  38. package/runtime/index.d.ts +1 -1
  39. package/runtime/index.d.ts.map +1 -1
  40. package/runtime/map-package-fetch.d.ts +1 -0
  41. package/runtime/map-package-fetch.d.ts.map +1 -1
  42. package/runtime/map-package-fetch.js +24 -39
  43. package/runtime/map-package-validation.d.ts +1 -1
  44. package/runtime/map-package-validation.d.ts.map +1 -1
  45. package/runtime/map-package-validation.js +27 -1
  46. package/runtime/map-package.d.ts +16 -0
  47. package/runtime/map-package.d.ts.map +1 -1
  48. package/runtime/ogc-styles.d.ts +2 -2
  49. package/runtime/ogc-styles.d.ts.map +1 -1
  50. package/runtime/ogc-styles.js +17 -3
  51. package/runtime/style-compose.d.ts +2 -2
  52. package/runtime/style-compose.d.ts.map +1 -1
  53. package/runtime/style-compose.js +26 -3
  54. package/runtime/style-ref-bindings.d.ts +11 -0
  55. package/runtime/style-ref-bindings.d.ts.map +1 -0
  56. package/runtime/style-ref-bindings.js +82 -0
@@ -39,7 +39,7 @@ export type { HonuaExportRedaction, HonuaExportRedactionReason } from "../core/c
39
39
  export { HonuaMapRuntime } from "./runtime.js";
40
40
  export type { HonuaMapRuntimeInternals, HonuaMapRuntimeReload, HonuaRuntimeEvent, HonuaRuntimeEventListener, HonuaRuntimeTelemetry, HonuaRuntimeTelemetrySpan, HonuaRuntimeTelemetrySpanResult, MaplibreMap, RuntimeHitTestOptions, RuntimePointerInteractionHandler, RuntimePointerInteractionOptions, SetViewStateInput, } from "./runtime.js";
41
41
  export { HONUA_MAP_PACKAGE_FORMAT_V1 } from "./map-package.js";
42
- export type { HonuaMapPackage, HonuaMapPackageAttribution, HonuaMapPackageDependency, HonuaMapPackageFormat, HonuaMapPackageInitialView, HonuaMapPackageLabelBinding, HonuaMapPackageLegendEntry, HonuaMapPackageLocator, HonuaMapPackagePopupBinding, HonuaMapPackageProtocol, HonuaMapPackageProvenance, HonuaMapPackageSourceBinding, HonuaMapPackageStatus, HonuaMapPackageStyleRef, HonuaMapPackageThemeSpec, HonuaMapPackageWidget, HonuaStyleRefBody, HonuaStyleRefLayerOverride, } from "./map-package.js";
42
+ export type { HonuaMapPackage, HonuaMapPackageAttribution, HonuaMapPackageDependency, HonuaMapPackageFormat, HonuaMapPackageInitialView, HonuaMapPackageLabelBinding, HonuaMapPackageLegendEntry, HonuaMapPackageLocator, HonuaMapPackagePopupBinding, HonuaMapPackageProtocol, HonuaMapPackageProvenance, HonuaMapPackageSourceBinding, HonuaMapPackageStatus, HonuaMapPackageStyleRef, HonuaMapPackageThemeSpec, HonuaMapPackageWidget, HonuaStyleRefBody, HonuaStyleRefLayerBinding, HonuaStyleRefLayerOverride, } from "./map-package.js";
43
43
  export { HonuaMapPackageError } from "./errors.js";
44
44
  export type { HonuaMapPackageErrorStage } from "./errors.js";
45
45
  export { buildLegend } from "./legend.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@ export interface FetchMapPackageOptions {
44
44
  readonly allowInvalid?: boolean;
45
45
  }
46
46
  export interface MapPackageFetchCacheEntry {
47
+ /** Original package bytes projected as JSON; live style refs retain their absent body. */
47
48
  readonly mapPackage: HonuaMapPackage;
48
49
  readonly validator?: HonuaCacheValidator;
49
50
  readonly cachedAtMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"map-package-fetch.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-package-fetch.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package-fetch.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { HonuaMapPackageError } from "./errors.js";
3
3
  import { loadMapPackage } from "./load-package.js";
4
4
  import { hasMapPackageDiagnosticErrors, validateMapPackage, } from "./map-package-validation.js";
5
5
  import { createOgcStyleRefResolver } from "./ogc-styles.js";
6
+ import { readStyleLayerBindings, validateBoundStyleBody, validateStyleBindingTargets } from "./style-ref-bindings.js";
6
7
  export const DEFAULT_MAP_PACKAGE_PATH_PREFIX = "/api/v1/map-packages";
7
8
  /**
8
9
  * Default entry cap for the per-client map-package fetch cache, mirroring the
@@ -59,15 +60,11 @@ export async function fetchMapPackage(locator, options) {
59
60
  detail: { path },
60
61
  });
61
62
  }
62
- return buildFetchResult(cached.mapPackage, path, "not-modified", {
63
- validator: honuaCacheValidatorFromHeaders(response.headers) ?? cached.validator,
64
- sourceUpdatedAt: response.headers.get("last-modified") ?? cached.sourceUpdatedAt,
65
- revalidatedAt: new Date().toISOString(),
66
- options,
67
- });
68
63
  }
69
- const body = await parseJsonBody(response, path);
70
- const rawPackage = unwrapMapPackageEnvelope(body);
64
+ // A package ETag does not pin live shared styles. Resolve them again even
65
+ // when the immutable package itself is unchanged, retaining raw refs in cache.
66
+ const notModified = response.status === 304;
67
+ const rawPackage = notModified ? cached.mapPackage : unwrapMapPackageEnvelope(await parseJsonBody(response, path));
71
68
  const styleRefResolver = options.resolveStyleRef ??
72
69
  (options.disableDefaultStyleRefResolver ? undefined : createOgcStyleRefResolver({ client: options.client }));
73
70
  const resolved = await resolveMapPackageStyleRefs(rawPackage, {
@@ -87,13 +84,20 @@ export async function fetchMapPackage(locator, options) {
87
84
  detail: { diagnostics, path },
88
85
  });
89
86
  }
90
- const validator = honuaCacheValidatorFromHeaders(response.headers);
91
- const sourceUpdatedAt = response.headers.get("last-modified") ?? undefined;
92
- const status = cache ? (cached ? "refreshed" : "miss") : "bypass";
87
+ const validator = honuaCacheValidatorFromHeaders(response.headers) ?? (notModified ? cached?.validator : undefined);
88
+ const sourceUpdatedAt = response.headers.get("last-modified") ?? (notModified ? cached?.sourceUpdatedAt : undefined);
89
+ const fingerprint = stableFingerprint(mapPackage);
90
+ const status = !cache
91
+ ? "bypass"
92
+ : notModified && cached?.fingerprint === fingerprint
93
+ ? "not-modified"
94
+ : cached
95
+ ? "refreshed"
96
+ : "miss";
93
97
  const entry = {
94
- mapPackage: mapPackage,
98
+ mapPackage: rawPackage,
95
99
  cachedAtMs: Date.now(),
96
- fingerprint: stableFingerprint(mapPackage),
100
+ fingerprint,
97
101
  ...(validator ? { validator } : {}),
98
102
  ...(sourceUpdatedAt ? { sourceUpdatedAt } : {}),
99
103
  };
@@ -108,6 +112,7 @@ export async function fetchMapPackage(locator, options) {
108
112
  ...(validator ? { validator } : {}),
109
113
  ...(sourceUpdatedAt ? { sourceUpdatedAt } : {}),
110
114
  fetchedAt: new Date(entry.cachedAtMs).toISOString(),
115
+ ...(notModified ? { revalidatedAt: new Date().toISOString() } : {}),
111
116
  },
112
117
  };
113
118
  }
@@ -187,7 +192,10 @@ async function resolveMapPackageStyleRefs(value, options) {
187
192
  };
188
193
  }
189
194
  try {
190
- const body = await resolveStyleRef(styleId, typeof ref.presetId === "string" ? ref.presetId : undefined);
195
+ const bindings = readStyleLayerBindings(ref.layerBindings);
196
+ if (bindings)
197
+ validateStyleBindingTargets(bindings, value.mapSpec);
198
+ const body = await resolveStyleRef(styleId, typeof ref.presetId === "string" ? ref.presetId : undefined, bindings);
191
199
  if (!isRecord(body)) {
192
200
  return {
193
201
  ref: ref,
@@ -202,6 +210,8 @@ async function resolveMapPackageStyleRefs(value, options) {
202
210
  },
203
211
  };
204
212
  }
213
+ if (bindings)
214
+ validateBoundStyleBody(bindings, body);
205
215
  return {
206
216
  ref: { ...ref, body: body },
207
217
  changed: true,
@@ -230,31 +240,6 @@ async function resolveMapPackageStyleRefs(value, options) {
230
240
  diagnostics,
231
241
  };
232
242
  }
233
- function buildFetchResult(mapPackage, path, status, input) {
234
- const validation = validateMapPackage(mapPackage, {
235
- maxAgeMs: input.options.maxAgeMs,
236
- now: input.options.now,
237
- });
238
- if (hasMapPackageDiagnosticErrors(validation.diagnostics) && input.options.allowInvalid !== true) {
239
- throw new HonuaMapPackageError("MapPackage validation failed", {
240
- packageId: mapPackage.mapPackageId,
241
- stage: "validate",
242
- detail: { diagnostics: validation.diagnostics, path },
243
- });
244
- }
245
- return {
246
- mapPackage,
247
- diagnostics: validation.diagnostics,
248
- cache: {
249
- status,
250
- key: path,
251
- ...(input.validator ? { validator: input.validator } : {}),
252
- ...(input.sourceUpdatedAt ? { sourceUpdatedAt: input.sourceUpdatedAt } : {}),
253
- fetchedAt: new Date().toISOString(),
254
- ...(input.revalidatedAt ? { revalidatedAt: input.revalidatedAt } : {}),
255
- },
256
- };
257
- }
258
243
  function buildFetchHeaders(headers, validator) {
259
244
  const out = new Headers(headers);
260
245
  if (!out.has("Accept"))
@@ -20,7 +20,7 @@
20
20
  */
21
21
  import type { HonuaMapPackage } from "./map-package.js";
22
22
  export type HonuaMapPackageDiagnosticSeverity = "error" | "warning";
23
- export type HonuaMapPackageDiagnosticCode = "invalid-package" | "unsupported-format" | "missing-map-package-id" | "missing-source-bindings" | "missing-map-spec" | "invalid-map-spec" | "duplicate-source" | "missing-source-id" | "missing-source-locator" | "unsupported-protocol" | "missing-source" | "stale-package" | "expired-package" | "style-ref-missing-layer" | "style-ref-unresolved" | "style-ref-resolution-failed";
23
+ export type HonuaMapPackageDiagnosticCode = "invalid-package" | "unsupported-format" | "missing-map-package-id" | "missing-source-bindings" | "missing-map-spec" | "invalid-map-spec" | "duplicate-source" | "missing-source-id" | "missing-source-locator" | "unsupported-protocol" | "missing-source" | "stale-package" | "expired-package" | "style-ref-missing-layer" | "style-ref-invalid-binding" | "style-ref-unresolved" | "style-ref-resolution-failed";
24
24
  export interface HonuaMapPackageDiagnostic {
25
25
  readonly code: HonuaMapPackageDiagnosticCode;
26
26
  readonly severity: HonuaMapPackageDiagnosticSeverity;
@@ -1 +1 @@
1
- {"version":3,"file":"map-package-validation.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,MAAM,iCAAiC,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpE,MAAM,MAAM,6BAA6B,GACrC,iBAAiB,GACjB,oBAAoB,GACpB,wBAAwB,GACxB,yBAAyB,GACzB,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,GACnB,wBAAwB,GACxB,sBAAsB,GACtB,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,yBAAyB,GACzB,sBAAsB,GACtB,6BAA6B,CAAC;AAElC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gGAAgG;IAChG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AA8ED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,wBAAwB,CAiGpH;AAED,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,GAAG,OAAO,CAExG"}
1
+ {"version":3,"file":"map-package-validation.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,kBAAkB,CAAC;AAG3E,MAAM,MAAM,iCAAiC,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpE,MAAM,MAAM,6BAA6B,GACrC,iBAAiB,GACjB,oBAAoB,GACpB,wBAAwB,GACxB,yBAAyB,GACzB,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,GACnB,wBAAwB,GACxB,sBAAsB,GACtB,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,yBAAyB,GACzB,2BAA2B,GAC3B,sBAAsB,GACtB,6BAA6B,CAAC;AAElC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gGAAgG;IAChG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AA8ED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,wBAAwB,CAiGpH;AAED,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,GAAG,OAAO,CAExG"}
@@ -20,6 +20,7 @@
20
20
  */
21
21
  import { HONUA_MAP_PACKAGE_SCHEMA_PROTOCOLS } from "./generated/map-package-schema-meta.js";
22
22
  import validateAgainstSchema from "./generated/map-package-schema-validator.js";
23
+ import { readStyleLayerBindings, validateBoundStyleBody, validateStyleBindingTargets } from "./style-ref-bindings.js";
23
24
  /**
24
25
  * Schema-legal protocols the MapLibre source bridge cannot bind to a
25
26
  * `Dataset`/`Source` today. The schema is the wire contract and admits these;
@@ -215,6 +216,7 @@ function validateStyleRefTargets(add, pkg, mapSpec) {
215
216
  if (!Array.isArray(pkg.styleRefs))
216
217
  return;
217
218
  const layerIds = new Set();
219
+ const boundTargets = new Set();
218
220
  if (Array.isArray(mapSpec.layers)) {
219
221
  for (const layer of mapSpec.layers) {
220
222
  if (isRecord(layer) && typeof layer.id === "string")
@@ -223,7 +225,31 @@ function validateStyleRefTargets(add, pkg, mapSpec) {
223
225
  }
224
226
  for (let i = 0; i < pkg.styleRefs.length; i += 1) {
225
227
  const ref = pkg.styleRefs[i];
226
- if (!isRecord(ref) || !isRecord(ref.body))
228
+ if (!isRecord(ref))
229
+ continue;
230
+ try {
231
+ const bindings = readStyleLayerBindings(ref.layerBindings);
232
+ if (bindings) {
233
+ validateStyleBindingTargets(bindings, mapSpec);
234
+ if (ref.body !== undefined)
235
+ validateBoundStyleBody(bindings, ref.body);
236
+ for (const binding of bindings) {
237
+ if (boundTargets.has(binding.targetLayerId))
238
+ throw new Error("Ambiguous shared style target.");
239
+ boundTargets.add(binding.targetLayerId);
240
+ }
241
+ }
242
+ }
243
+ catch {
244
+ add({
245
+ code: "style-ref-invalid-binding",
246
+ severity: "error",
247
+ message: "Shared style render bindings are invalid or stale.",
248
+ path: `styleRefs[${i}].layerBindings`,
249
+ detail: { styleId: ref.styleId },
250
+ });
251
+ }
252
+ if (!isRecord(ref.body))
227
253
  continue;
228
254
  for (const layerId of Object.keys(ref.body)) {
229
255
  if (layerIds.has(layerId))
@@ -66,6 +66,22 @@ export interface HonuaMapPackageStyleRef {
66
66
  * loader instead.
67
67
  */
68
68
  body?: HonuaStyleRefBody;
69
+ /** Explicit live catalog-render to map-render mappings; inline bodies are already target-keyed. */
70
+ layerBindings?: readonly HonuaStyleRefLayerBinding[];
71
+ }
72
+ /** A selected catalog render layer applied to a particular render layer in this map. */
73
+ export interface HonuaStyleRefLayerBinding {
74
+ /** Exact render-layer id in the shared catalog stylesheet. */
75
+ styleLayerId: string;
76
+ /** Exact render-layer id in this package's mapSpec. */
77
+ targetLayerId: string;
78
+ /** Expected catalog render type; a changed type requires rebinding. */
79
+ layerType: string;
80
+ /**
81
+ * Selected override properties. Omission selects the normal override set.
82
+ * Cross-type mappings may carry only filter, zoom bounds and visibility.
83
+ */
84
+ properties?: readonly ("paint" | "layout" | "filter" | "minzoom" | "maxzoom" | "metadata" | "visibility")[];
69
85
  }
70
86
  /**
71
87
  * Resolved `StyleRef` body. Keys name MapLibre layers; values are partial
@@ -1 +1 @@
1
- {"version":3,"file":"map-package.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-package.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@
20
20
  */
21
21
  import type { HonuaClient } from "../core/client.js";
22
22
  import type { HonuaStyleSpecification } from "../style/specification.js";
23
- import type { HonuaStyleRefBody } from "./map-package.js";
23
+ import type { HonuaStyleRefBody, HonuaStyleRefLayerBinding } from "./map-package.js";
24
24
  import type { StyleRefResolver } from "./style-compose.js";
25
25
  /** Default path prefix for the server's OGC API – Styles surface. */
26
26
  export declare const DEFAULT_OGC_STYLES_PATH_PREFIX = "/ogc/styles";
@@ -106,5 +106,5 @@ export declare function createOgcStyleRefResolver(options: OgcStyleRefResolverOp
106
106
  * per-layer paint/layout overrides keyed by layer id. Layers without any
107
107
  * override-relevant fields are omitted.
108
108
  */
109
- export declare function styleDocumentToRefBody(style: HonuaStyleSpecification): HonuaStyleRefBody;
109
+ export declare function styleDocumentToRefBody(style: HonuaStyleSpecification, layerBindings?: readonly HonuaStyleRefLayerBinding[]): HonuaStyleRefBody;
110
110
  //# sourceMappingURL=ogc-styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ogc-styles.d.ts","sourceRoot":"","sources":["../../../src/runtime/ogc-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAA2B,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAElG,OAAO,KAAK,EAAE,iBAAiB,EAA8B,MAAM,kBAAkB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,qEAAqE;AACrE,eAAO,MAAM,8BAA8B,gBAAgB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,sCAAsC,CAAC;AAE7E,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CAC1C;AAED,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC9C,uDAAuD;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qDAAqD;AACrD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;CAChC;AAED,qDAAqD;AACrD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,sBAAsB;IAK3C,mDAAmD;IACtC,UAAU,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,YAAY,CAAC;IAKrF;;;;OAIG;IACU,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAY/G,kFAAkF;IACrE,gBAAgB,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAYnC,mDAAmD;IAC5C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;YAI3B,OAAO;CActB;AAED,qDAAqD;AACrD,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB,EAAE,uBAAuB;CAAG;AAEtG;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,gBAAgB,CAa/F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,GAAG,iBAAiB,CAQxF"}
1
+ {"version":3,"file":"ogc-styles.d.ts","sourceRoot":"","sources":["../../../src/runtime/ogc-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAA2B,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAElG,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAA8B,MAAM,kBAAkB,CAAC;AACjH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,qEAAqE;AACrE,eAAO,MAAM,8BAA8B,gBAAgB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,sCAAsC,CAAC;AAE7E,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CAC1C;AAED,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC9C,uDAAuD;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qDAAqD;AACrD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;CAChC;AAED,qDAAqD;AACrD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,sBAAsB;IAK3C,mDAAmD;IACtC,UAAU,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,YAAY,CAAC;IAKrF;;;;OAIG;IACU,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAY/G,kFAAkF;IACrE,gBAAgB,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAYnC,mDAAmD;IAC5C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;YAI3B,OAAO;CActB;AAED,qDAAqD;AACrD,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB,EAAE,uBAAuB;CAAG;AAEtG;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,gBAAgB,CAc/F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,uBAAuB,EAC9B,aAAa,CAAC,EAAE,SAAS,yBAAyB,EAAE,GACnD,iBAAiB,CAsBnB"}
@@ -20,6 +20,7 @@
20
20
  */
21
21
  import { trimTrailingSlashes } from "../core/path-utils.js";
22
22
  import { HonuaMapPackageError } from "./errors.js";
23
+ import { readStyleLayerBindings, selectBoundStyleOverride } from "./style-ref-bindings.js";
23
24
  /** Default path prefix for the server's OGC API – Styles surface. */
24
25
  export const DEFAULT_OGC_STYLES_PATH_PREFIX = "/ogc/styles";
25
26
  /**
@@ -114,9 +115,10 @@ export function createOgcStyleRefResolver(options) {
114
115
  ...(options.signal ? { signal: options.signal } : {}),
115
116
  ...(options.headers ? { headers: options.headers } : {}),
116
117
  };
117
- return async (styleId) => {
118
+ return async (styleId, _presetId, layerBindings) => {
119
+ const bindings = readStyleLayerBindings(layerBindings);
118
120
  const style = await ogc.getStyle(styleId, requestOptions);
119
- return styleDocumentToRefBody(style);
121
+ return styleDocumentToRefBody(style, bindings);
120
122
  };
121
123
  }
122
124
  /**
@@ -124,7 +126,19 @@ export function createOgcStyleRefResolver(options) {
124
126
  * per-layer paint/layout overrides keyed by layer id. Layers without any
125
127
  * override-relevant fields are omitted.
126
128
  */
127
- export function styleDocumentToRefBody(style) {
129
+ export function styleDocumentToRefBody(style, layerBindings) {
130
+ const bindings = readStyleLayerBindings(layerBindings);
131
+ if (bindings) {
132
+ return Object.fromEntries(bindings.map((binding) => {
133
+ const selected = style.layers.filter((layer) => layer.id === binding.styleLayerId);
134
+ if (selected.length !== 1 || selected[0].type !== binding.layerType)
135
+ throw new HonuaMapPackageError("The selected shared style render layer changed; rebind the style.", {
136
+ stage: "style-compose",
137
+ detail: { styleLayerId: binding.styleLayerId },
138
+ });
139
+ return [binding.targetLayerId, selectBoundStyleOverride(layerToOverride(selected[0]) ?? {}, binding)];
140
+ }));
141
+ }
128
142
  const body = {};
129
143
  for (const layer of style.layers ?? []) {
130
144
  if (!layer || typeof layer.id !== "string")
@@ -15,14 +15,14 @@
15
15
  * @module
16
16
  */
17
17
  import type { HonuaStyleSpecification } from "../style/specification.js";
18
- import type { HonuaMapPackage, HonuaMapPackageThemeSpec, HonuaStyleRefBody } from "./map-package.js";
18
+ import type { HonuaMapPackage, HonuaMapPackageThemeSpec, HonuaStyleRefBody, HonuaStyleRefLayerBinding } from "./map-package.js";
19
19
  /**
20
20
  * Resolver for out-of-band style-ref bodies. Returns the per-layer
21
21
  * override map keyed by MapLibre layer id. The default loader assumes
22
22
  * inline bodies attached to the package and calls this resolver only
23
23
  * when the inline body is absent.
24
24
  */
25
- export type StyleRefResolver = (styleId: string, presetId?: string) => Promise<HonuaStyleRefBody>;
25
+ export type StyleRefResolver = (styleId: string, presetId?: string, layerBindings?: readonly HonuaStyleRefLayerBinding[]) => Promise<HonuaStyleRefBody>;
26
26
  /** Resolver for out-of-band theme bodies; called only when `mapPackage.theme` is absent. */
27
27
  export type ThemeResolver = (themeId: string) => Promise<HonuaMapPackageThemeSpec>;
28
28
  export interface StyleComposeOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"style-compose.d.ts","sourceRoot":"","sources":["../../../src/runtime/style-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAA2B,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAElG,OAAO,KAAK,EACV,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EAElB,MAAM,kBAAkB,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAElG,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEnF,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,4DAA4D;AAC5D,wBAAsB,YAAY,CAChC,GAAG,EAAE,eAAe,EACpB,kBAAkB,EAAE,uBAAuB,EAC3C,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,uBAAuB,CAAC,CAclC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,uBAAuB,EAC7B,GAAG,EAAE,eAAe,EACpB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAuBlC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,wBAAwB,GAAG,uBAAuB,CAMnH"}
1
+ {"version":3,"file":"style-compose.d.ts","sourceRoot":"","sources":["../../../src/runtime/style-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAA2B,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAElG,OAAO,KAAK,EACV,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EAE1B,MAAM,kBAAkB,CAAC;AAQ1B;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,SAAS,yBAAyB,EAAE,KACjD,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEhC,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEnF,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,4DAA4D;AAC5D,wBAAsB,YAAY,CAChC,GAAG,EAAE,eAAe,EACpB,kBAAkB,EAAE,uBAAuB,EAC3C,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,uBAAuB,CAAC,CAclC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,uBAAuB,EAC7B,GAAG,EAAE,eAAe,EACpB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,uBAAuB,CAAC,CA6ClC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,wBAAwB,GAAG,uBAAuB,CAMnH"}
@@ -15,6 +15,7 @@
15
15
  * @module
16
16
  */
17
17
  import { HonuaMapPackageError } from "./errors.js";
18
+ import { readStyleLayerBindings, selectBoundStyleOverride, validateBoundStyleBody, validateStyleBindingTargets, } from "./style-ref-bindings.js";
18
19
  /** Compose a MapLibre-ready style from the `MapPackage`. */
19
20
  export async function composeStyle(pkg, mapSpecWithSources, options) {
20
21
  try {
@@ -43,8 +44,24 @@ export async function applyStyleRefs(base, pkg, resolve) {
43
44
  if (refs.length === 0)
44
45
  return base;
45
46
  const nextLayers = base.layers.map((layer) => cloneLayer(layer));
46
- for (const ref of refs) {
47
- const body = ref.body ?? (resolve ? await resolve(ref.styleId, ref.presetId) : undefined);
47
+ const boundTargets = new Set();
48
+ const references = refs.map((ref) => {
49
+ const bindings = readStyleLayerBindings(ref.layerBindings);
50
+ if (bindings) {
51
+ validateStyleBindingTargets(bindings, base);
52
+ for (const binding of bindings) {
53
+ if (boundTargets.has(binding.targetLayerId))
54
+ throw new HonuaMapPackageError("Multiple shared styles claim the same explicit target layer.", {
55
+ packageId: pkg.mapPackageId,
56
+ stage: "style-compose",
57
+ });
58
+ boundTargets.add(binding.targetLayerId);
59
+ }
60
+ }
61
+ return { ref, bindings };
62
+ });
63
+ for (const { ref, bindings } of references) {
64
+ const body = ref.body ?? (resolve ? await resolve(ref.styleId, ref.presetId, bindings) : undefined);
48
65
  if (!body) {
49
66
  throw new HonuaMapPackageError(`StyleRef "${ref.styleId}" has no inline body and no resolver was provided`, {
50
67
  packageId: pkg.mapPackageId,
@@ -52,11 +69,17 @@ export async function applyStyleRefs(base, pkg, resolve) {
52
69
  detail: { styleId: ref.styleId },
53
70
  });
54
71
  }
72
+ if (bindings)
73
+ validateBoundStyleBody(bindings, body);
55
74
  for (const [layerId, override] of Object.entries(body)) {
56
75
  const idx = nextLayers.findIndex((layer) => layer.id === layerId);
57
76
  if (idx === -1)
58
77
  continue;
59
- nextLayers[idx] = mergeLayerOverride(nextLayers[idx], override);
78
+ const binding = bindings?.find((item) => item.targetLayerId === layerId);
79
+ const selected = binding ? selectBoundStyleOverride(override, binding) : override;
80
+ if (binding && base.layers[idx].layout?.visibility === "none")
81
+ selected.layout = { ...selected.layout, visibility: "none" };
82
+ nextLayers[idx] = mergeLayerOverride(nextLayers[idx], selected);
60
83
  }
61
84
  }
62
85
  return { ...base, layers: nextLayers };
@@ -0,0 +1,11 @@
1
+ import type { HonuaStyleSpecification } from "../style/specification.js";
2
+ import type { HonuaStyleRefBody, HonuaStyleRefLayerBinding, HonuaStyleRefLayerOverride } from "./map-package.js";
3
+ /** Validate untrusted portable bindings before resolving or applying a shared style. */
4
+ export declare function readStyleLayerBindings(value: unknown): readonly HonuaStyleRefLayerBinding[] | undefined;
5
+ /** Refuse stale map targets instead of silently dropping a shared style override. */
6
+ export declare function validateStyleBindingTargets(bindings: readonly HonuaStyleRefLayerBinding[], style: HonuaStyleSpecification): void;
7
+ /** A custom resolver must also return exactly the explicitly bound target set. */
8
+ export declare function validateBoundStyleBody(bindings: readonly HonuaStyleRefLayerBinding[], body: HonuaStyleRefBody): void;
9
+ /** Select appearance properties without carrying source identity or ownership metadata. */
10
+ export declare function selectBoundStyleOverride(override: HonuaStyleRefLayerOverride, binding: HonuaStyleRefLayerBinding): HonuaStyleRefLayerOverride;
11
+ //# sourceMappingURL=style-ref-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-ref-bindings.d.ts","sourceRoot":"","sources":["../../../src/runtime/style-ref-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAUjH,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,yBAAyB,EAAE,GAAG,SAAS,CA0BvG;AAED,qFAAqF;AACrF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,SAAS,yBAAyB,EAAE,EAC9C,KAAK,EAAE,uBAAuB,GAC7B,IAAI,CAWN;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,SAAS,yBAAyB,EAAE,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAapH;AAED,2FAA2F;AAC3F,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,0BAA0B,EACpC,OAAO,EAAE,yBAAyB,GACjC,0BAA0B,CAuB5B"}
@@ -0,0 +1,82 @@
1
+ import { HonuaMapPackageError } from "./errors.js";
2
+ const normalProperties = ["paint", "layout", "filter", "minzoom", "maxzoom", "metadata"];
3
+ const allowedProperties = new Set([...normalProperties, "visibility"]);
4
+ const crossTypeProperties = new Set(["filter", "minzoom", "maxzoom", "visibility"]);
5
+ function invalid(message) {
6
+ throw new HonuaMapPackageError(message, { stage: "style-compose" });
7
+ }
8
+ /** Validate untrusted portable bindings before resolving or applying a shared style. */
9
+ export function readStyleLayerBindings(value) {
10
+ if (value === undefined)
11
+ return undefined;
12
+ if (!Array.isArray(value) || value.length === 0 || value.length > 256)
13
+ invalid("Style layer bindings must contain between 1 and 256 mappings.");
14
+ const targets = new Set();
15
+ for (const binding of value) {
16
+ if (!binding || typeof binding !== "object" || Array.isArray(binding))
17
+ invalid("Invalid style layer binding.");
18
+ for (const key of ["styleLayerId", "targetLayerId", "layerType"]) {
19
+ if (typeof binding[key] !== "string" || !binding[key].trim() || binding[key].length > 256)
20
+ invalid(`Style layer binding requires a bounded ${key}.`);
21
+ }
22
+ if (targets.has(binding.targetLayerId))
23
+ invalid("A style reference cannot map multiple overrides to one target layer.");
24
+ targets.add(binding.targetLayerId);
25
+ if (binding.properties !== undefined) {
26
+ if (!Array.isArray(binding.properties) ||
27
+ binding.properties.length === 0 ||
28
+ binding.properties.length > allowedProperties.size ||
29
+ new Set(binding.properties).size !== binding.properties.length ||
30
+ binding.properties.some((property) => typeof property !== "string" || !allowedProperties.has(property)))
31
+ invalid("Invalid shared style binding properties.");
32
+ }
33
+ }
34
+ return value;
35
+ }
36
+ /** Refuse stale map targets instead of silently dropping a shared style override. */
37
+ export function validateStyleBindingTargets(bindings, style) {
38
+ if (!style || !Array.isArray(style.layers))
39
+ invalid("A shared style binding requires a map render-layer list.");
40
+ for (const binding of bindings) {
41
+ const targets = style.layers.filter((layer) => layer && layer.id === binding.targetLayerId);
42
+ if (targets.length !== 1)
43
+ invalid(`Shared style target "${binding.targetLayerId}" is missing or ambiguous.`);
44
+ if (targets[0].type !== binding.layerType &&
45
+ (binding.properties ?? normalProperties).some((property) => !crossTypeProperties.has(property)))
46
+ invalid(`Shared style target "${binding.targetLayerId}" has an incompatible render type.`);
47
+ }
48
+ }
49
+ /** A custom resolver must also return exactly the explicitly bound target set. */
50
+ export function validateBoundStyleBody(bindings, body) {
51
+ const targets = new Set(bindings.map((binding) => binding.targetLayerId));
52
+ if (!body ||
53
+ typeof body !== "object" ||
54
+ Array.isArray(body) ||
55
+ Object.keys(body).length !== targets.size ||
56
+ Object.keys(body).some((id) => !targets.has(id)) ||
57
+ [...targets].some((id) => !Object.hasOwn(body, id) || !body[id] || typeof body[id] !== "object" || Array.isArray(body[id])))
58
+ invalid("Shared style resolution did not return the selected map layers.");
59
+ }
60
+ /** Select appearance properties without carrying source identity or ownership metadata. */
61
+ export function selectBoundStyleOverride(override, binding) {
62
+ const selected = {};
63
+ for (const property of binding.properties ?? normalProperties) {
64
+ if (property === "visibility") {
65
+ if (override.layout?.visibility !== undefined)
66
+ selected.layout = { ...selected.layout, visibility: override.layout.visibility };
67
+ }
68
+ else if (property === "metadata") {
69
+ if (override.metadata !== undefined)
70
+ selected.metadata = Object.fromEntries(Object.entries(override.metadata).filter(([key]) => key !== "honua:compositionLayerId" && key !== "honua:compositionSourceId"));
71
+ }
72
+ else if (override[property] !== undefined) {
73
+ Object.defineProperty(selected, property, {
74
+ value: structuredClone(override[property]),
75
+ enumerable: true,
76
+ configurable: true,
77
+ writable: true,
78
+ });
79
+ }
80
+ }
81
+ return selected;
82
+ }