{
  "version": 3,
  "sources": ["../src/map-style.ts", "../src/mapbox-style.ts", "../src/map-style-schema.ts", "../src/style-resolver.ts", "../src/map-style-loader.ts"],
  "sourcesContent": ["/** Map-style helpers exported from `@deck.gl-community/basemap-layers/map-style`. */\nexport {filterFeatures, findFeaturesStyledByLayer, parseProperties} from './mapbox-style';\nexport {\n  BasemapSourceSchema,\n  BasemapStyleLayerSchema,\n  BasemapStyleSchema,\n  ResolvedBasemapStyleSchema\n} from './map-style-schema';\nexport {MapStyleLoader} from './map-style-loader';\nexport type {MapStyleLoaderOptions} from './map-style-loader';\nexport {\n  resolveBasemapStyle,\n  type BasemapLoadOptions,\n  type BasemapSource,\n  type BasemapStyle,\n  type BasemapStyleLayer,\n  type ResolvedBasemapStyleLayer,\n  type ResolvedBasemapStyle\n} from './style-resolver';\n", "import {Color, expression, featureFilter, latest as Reference} from '@mapbox/mapbox-gl-style-spec';\n\ntype GlobalProperties = {\n  zoom?: number;\n  [key: string]: unknown;\n};\n\ntype GeometryLike = {\n  type: string;\n};\n\ntype FeatureLike = {\n  type?: number | string;\n  geometry?: GeometryLike;\n  properties?: Record<string, unknown>;\n};\n\ntype FilterFeaturesOptions = {\n  features: FeatureLike[];\n  filter: unknown[];\n  globalProperties?: GlobalProperties;\n};\n\ntype FindFeaturesStyledByLayerOptions = {\n  features: Record<string, Record<string, FeatureLike[]>>;\n  layer: {\n    source?: string;\n    'source-layer'?: string;\n    filter?: unknown[];\n  };\n  globalProperties?: GlobalProperties;\n};\n\ntype PropertyReference = Record<string, unknown> | null;\n\ntype VisitedProperty = {\n  layer: Record<string, any>;\n  path: string[];\n  key: string;\n  value: unknown;\n  reference: PropertyReference;\n  set: (value: unknown) => void;\n};\n\ntype VisitOptions = {\n  paint?: boolean;\n  layout?: boolean;\n};\n\nconst GEOM_TYPES: Record<string, number> = {\n  Point: 1,\n  MultiPoint: 1,\n  LineString: 2,\n  MultiLineString: 2,\n  Polygon: 3,\n  MultiPolygon: 3\n};\n\n/**\n * Applies a Mapbox style-spec filter expression to a set of features.\n */\nexport function filterFeatures({\n  features,\n  filter,\n  globalProperties = {}\n}: FilterFeaturesOptions): FeatureLike[] {\n  if (!features || features.length === 0) {\n    return [];\n  }\n\n  const filterFn = featureFilter(filter).filter;\n\n  return features.filter(feature => {\n    if (![1, 2, 3].includes(Number(feature.type))) {\n      feature.type = GEOM_TYPES[feature.geometry?.type || ''] ?? feature.type;\n    }\n\n    return filterFn(globalProperties, feature);\n  });\n}\n\n/**\n * Finds the source-layer features that participate in a particular style layer\n * and applies the layer's filter expression when present.\n */\nexport function findFeaturesStyledByLayer({\n  features,\n  layer,\n  globalProperties\n}: FindFeaturesStyledByLayerOptions): FeatureLike[] {\n  const sourceLayerFeatures = features[layer.source || '']?.[layer['source-layer'] || ''];\n  if (!sourceLayerFeatures) {\n    return [];\n  }\n\n  if (layer.filter && layer.filter.length > 0) {\n    return filterFeatures({\n      features: sourceLayerFeatures,\n      filter: layer.filter,\n      globalProperties\n    });\n  }\n\n  return [];\n}\n\n/**\n * Evaluates paint properties for a style layer at the requested zoom.\n */\nexport function parseProperties(\n  layer: Record<string, any>,\n  globalProperties: GlobalProperties\n): Array<Record<string, unknown>> {\n  const layerProperties: Array<Record<string, unknown>> = [];\n  visitProperties(layer, {paint: true}, property => {\n    layerProperties.push(parseProperty(property, globalProperties));\n  });\n\n  return layerProperties;\n}\n\n/**\n * Walks layout and paint properties for a style layer.\n */\nfunction visitProperties(\n  layer: Record<string, any>,\n  options: VisitOptions,\n  callback: (property: VisitedProperty) => void\n): void {\n  function inner(targetLayer: Record<string, any>, propertyType: 'paint' | 'layout') {\n    const properties = targetLayer[propertyType];\n    if (!properties) {\n      return;\n    }\n\n    Object.keys(properties).forEach(key => {\n      callback({\n        layer: targetLayer,\n        path: [targetLayer.id, propertyType, key],\n        key,\n        value: properties[key],\n        reference: getPropertyReference(key),\n        set(value) {\n          properties[key] = value;\n        }\n      });\n    });\n  }\n\n  if (options.paint) {\n    inner(layer, 'paint');\n  }\n  if (options.layout) {\n    inner(layer, 'layout');\n  }\n}\n\n/**\n * Resolves the style-spec reference metadata for a property name.\n */\nfunction getPropertyReference(propertyName: string): PropertyReference {\n  for (let i = 0; i < Reference.layout.length; i++) {\n    for (const key in Reference[Reference.layout[i]]) {\n      if (key === propertyName) {\n        return Reference[Reference.layout[i]][key] as PropertyReference;\n      }\n    }\n  }\n\n  for (let i = 0; i < Reference.paint.length; i++) {\n    for (const key in Reference[Reference.paint[i]]) {\n      if (key === propertyName) {\n        return Reference[Reference.paint[i]][key] as PropertyReference;\n      }\n    }\n  }\n\n  return null;\n}\n\n/**\n * Evaluates a single style property expression.\n */\nfunction parseProperty(\n  property: VisitedProperty,\n  globalProperties: GlobalProperties\n): Record<string, unknown> {\n  const exp = expression.normalizePropertyExpression(property.value, property.reference as any);\n  const result = exp.evaluate(globalProperties);\n\n  if (result instanceof Color) {\n    return {[property.key]: result.toArray()};\n  }\n\n  return {[property.key]: result};\n}\n", "import {z} from 'zod';\nimport type {\n  BasemapSource,\n  BasemapStyle,\n  BasemapStyleLayer,\n  ResolvedBasemapStyleLayer,\n  ResolvedBasemapStyle\n} from './style-resolver';\n\n/** Zod schema for a basemap source entry. */\nexport const BasemapSourceSchema = z\n  .object({\n    type: z.string().optional(),\n    url: z.string().optional(),\n    tiles: z.array(z.string()).optional(),\n    minzoom: z.number().optional(),\n    maxzoom: z.number().optional(),\n    tileSize: z.number().optional()\n  })\n  .catchall(z.unknown()) satisfies z.ZodType<BasemapSource>;\n\n/** Zod schema for a basemap style layer entry. */\nexport const BasemapStyleLayerSchema = z\n  .object({\n    id: z.string(),\n    type: z.string().optional(),\n    ref: z.string().optional(),\n    source: z.string().optional(),\n    'source-layer': z.string().optional(),\n    minzoom: z.number().optional(),\n    maxzoom: z.number().optional(),\n    filter: z.array(z.unknown()).optional(),\n    paint: z.record(z.string(), z.unknown()).optional(),\n    layout: z.record(z.string(), z.unknown()).optional()\n  })\n  .catchall(z.unknown())\n  .superRefine((layer, context) => {\n    if (!layer.type && !layer.ref) {\n      context.addIssue({\n        code: z.ZodIssueCode.custom,\n        message: 'Style layers must define either \"type\" or \"ref\".',\n        path: ['type']\n      });\n    }\n  }) satisfies z.ZodType<BasemapStyleLayer>;\n\nconst ResolvedBasemapStyleLayerSchema = z\n  .object({\n    id: z.string(),\n    type: z.string(),\n    source: z.string().optional(),\n    'source-layer': z.string().optional(),\n    minzoom: z.number().optional(),\n    maxzoom: z.number().optional(),\n    filter: z.array(z.unknown()).optional(),\n    paint: z.record(z.string(), z.unknown()).optional(),\n    layout: z.record(z.string(), z.unknown()).optional()\n  })\n  .catchall(z.unknown()) satisfies z.ZodType<ResolvedBasemapStyleLayer>;\n\n/** Zod schema for a MapLibre / Mapbox style document. */\nexport const BasemapStyleSchema = z\n  .object({\n    version: z.number().optional(),\n    metadata: z.record(z.string(), z.unknown()).optional(),\n    sources: z.record(z.string(), BasemapSourceSchema).optional(),\n    layers: z.array(BasemapStyleLayerSchema).optional()\n  })\n  .catchall(z.unknown()) satisfies z.ZodType<BasemapStyle>;\n\n/** Zod schema for a fully resolved basemap style document. */\nexport const ResolvedBasemapStyleSchema = z\n  .object({\n    version: z.number().optional(),\n    metadata: z.record(z.string(), z.unknown()).optional(),\n    sources: z.record(z.string(), BasemapSourceSchema),\n    layers: z.array(ResolvedBasemapStyleLayerSchema)\n  })\n  .catchall(z.unknown()) satisfies z.ZodType<ResolvedBasemapStyle>;\n", "import {derefLayers} from '@mapbox/mapbox-gl-style-spec';\nimport {BasemapStyleSchema, ResolvedBasemapStyleSchema} from './map-style-schema';\n\n/**\n * A basemap source entry from a style document.\n */\nexport type BasemapSource = {\n  /** Source kind such as `vector` or `raster`. */\n  type?: string;\n  /** Optional TileJSON URL used to resolve the source metadata. */\n  url?: string;\n  /** Inline tile templates for the source. */\n  tiles?: string[];\n  /** Minimum source zoom, when supplied by the style or TileJSON. */\n  minzoom?: number;\n  /** Maximum source zoom, when supplied by the style or TileJSON. */\n  maxzoom?: number;\n  /** Tile size in pixels. */\n  tileSize?: number;\n  /** Additional source properties are preserved verbatim. */\n  [key: string]: unknown;\n};\n\n/**\n * A style layer entry used by the basemap runtime.\n */\nexport type BasemapStyleLayer = {\n  /** Unique layer identifier. */\n  id: string;\n  /** Optional concrete style layer type such as `background`, `fill`, `line`, or `raster`. */\n  type?: string;\n  /** Legacy style layer id whose structural render properties are inherited. */\n  ref?: string;\n  /** Referenced source identifier. */\n  source?: string;\n  /** Referenced vector source-layer identifier. */\n  'source-layer'?: string;\n  /** Optional minimum zoom. */\n  minzoom?: number;\n  /** Optional maximum zoom. */\n  maxzoom?: number;\n  /** Optional style-spec filter expression. */\n  filter?: unknown[];\n  /** Paint properties from the source style layer. */\n  paint?: Record<string, unknown>;\n  /** Layout properties from the source style layer. */\n  layout?: Record<string, unknown>;\n  /** Additional layer properties are preserved verbatim. */\n  [key: string]: unknown;\n};\n\n/** A style layer after legacy `ref` inheritance has been resolved. */\nexport type ResolvedBasemapStyleLayer = BasemapStyleLayer & {\n  /** Concrete style layer type after optional `ref` inheritance. */\n  type: string;\n};\n\n/**\n * A MapLibre or Mapbox style document consumed by the basemap runtime.\n */\nexport type BasemapStyle = {\n  /** Style-spec version number. */\n  version?: number;\n  /** Optional style metadata bag. */\n  metadata?: Record<string, unknown>;\n  /** Named source definitions used by the style. */\n  sources?: Record<string, BasemapSource>;\n  /** Ordered list of style layers. */\n  layers?: BasemapStyleLayer[];\n  /** Additional style properties are preserved verbatim. */\n  [key: string]: unknown;\n};\n\n/**\n * A style document after all sources have been normalized and TileJSON-backed\n * sources have been resolved.\n */\nexport type ResolvedBasemapStyle = Omit<BasemapStyle, 'sources' | 'layers'> & {\n  /** Fully resolved source definitions. */\n  sources: Record<string, BasemapSource>;\n  /** Style layers copied into a mutable array. */\n  layers: ResolvedBasemapStyleLayer[];\n};\n\n/**\n * Load options accepted by {@link resolveBasemapStyle}.\n */\nexport type BasemapLoadOptions = {\n  /** Base URL used to resolve relative source or tile URLs for in-memory styles. */\n  baseUrl?: string;\n  /** Optional custom fetch implementation. */\n  fetch?: typeof fetch;\n  /** Optional init object passed to the selected fetch implementation. */\n  fetchOptions?: RequestInit;\n  /** Additional loader options are accepted for forward compatibility. */\n  [key: string]: unknown;\n} | null;\n\n/** Resolves a possibly relative URL against the provided base URL. */\nfunction normalizeUrl(url: string | undefined, baseUrl?: string) {\n  if (!url) {\n    return url;\n  }\n\n  try {\n    return decodeURI(new URL(url, baseUrl).toString());\n  } catch {\n    return url;\n  }\n}\n\n/** Resolves all tile templates in a source against the source base URL. */\nfunction normalizeTiles(tiles: string[] | undefined, baseUrl?: string) {\n  return Array.isArray(tiles) ? tiles.map(tile => normalizeUrl(tile, baseUrl) || tile) : tiles;\n}\n\n/** Fetches and parses a JSON resource. */\nasync function fetchJson(url: string, loadOptions?: BasemapLoadOptions) {\n  const fetchFn = loadOptions?.fetch || fetch;\n  const response = await fetchFn(url, loadOptions?.fetchOptions);\n\n  if (!response.ok) {\n    throw new Error(`Failed to load basemap resource: ${url} (${response.status})`);\n  }\n\n  return await response.json();\n}\n\n/** Resolves a single source, including optional TileJSON indirection. */\nasync function resolveSource(\n  source: BasemapSource | undefined,\n  baseUrl: string | undefined,\n  loadOptions?: BasemapLoadOptions\n) {\n  if (!source) {\n    return source;\n  }\n\n  const resolvedSource: BasemapSource = {...source};\n  let sourceBaseUrl = baseUrl;\n\n  if (resolvedSource.url) {\n    const tileJsonUrl = normalizeUrl(resolvedSource.url, baseUrl);\n    const tileJson = await fetchJson(tileJsonUrl || resolvedSource.url, loadOptions);\n    Object.assign(resolvedSource, tileJson);\n    resolvedSource.url = tileJsonUrl;\n    sourceBaseUrl = tileJsonUrl;\n  }\n\n  if (resolvedSource.tiles) {\n    resolvedSource.tiles = normalizeTiles(resolvedSource.tiles, sourceBaseUrl);\n  }\n\n  return resolvedSource;\n}\n\n/**\n * Resolves a basemap style input into a style object whose sources contain\n * directly consumable tile templates and source metadata.\n */\nexport async function resolveBasemapStyle(\n  style: string | BasemapStyle,\n  loadOptions?: BasemapLoadOptions\n): Promise<ResolvedBasemapStyle> {\n  const styleDefinition = BasemapStyleSchema.parse(\n    typeof style === 'string' ? await fetchJson(style, loadOptions) : structuredClone(style)\n  );\n  const baseUrl = typeof style === 'string' ? style : loadOptions?.baseUrl;\n  const resolvedSources: Record<string, BasemapSource> = {};\n\n  await Promise.all(\n    Object.entries(styleDefinition.sources || {}).map(async ([sourceId, source]) => {\n      resolvedSources[sourceId] = (await resolveSource(source, baseUrl, loadOptions)) || {};\n    })\n  );\n\n  return ResolvedBasemapStyleSchema.parse({\n    ...styleDefinition,\n    sources: resolvedSources,\n    layers: derefLayers([...(styleDefinition.layers || [])]) as ResolvedBasemapStyleLayer[]\n  });\n}\n", "import type {LoaderContext, LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {ResolvedBasemapStyleSchema} from './map-style-schema';\nimport {resolveBasemapStyle} from './style-resolver';\nimport type {BasemapLoadOptions, BasemapStyle, ResolvedBasemapStyle} from './style-resolver';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/** Namespaced loaders.gl options for {@link MapStyleLoader}. */\nexport type MapStyleLoaderOptions = LoaderOptions & {\n  mapStyle?: NonNullable<BasemapLoadOptions>;\n};\n\nfunction getMapStyleLoadOptions(\n  options?: MapStyleLoaderOptions,\n  context?: LoaderContext\n): NonNullable<BasemapLoadOptions> {\n  return {\n    ...options?.mapStyle,\n    baseUrl: options?.mapStyle?.baseUrl || context?.url || context?.baseUrl,\n    fetch: options?.mapStyle?.fetch || (context?.fetch as typeof fetch | undefined)\n  };\n}\n\n/** loaders.gl-compatible loader that resolves and validates map-style documents. */\nexport const MapStyleLoader = {\n  dataType: null as unknown as ResolvedBasemapStyle,\n  batchType: null as never,\n\n  name: 'Map Style',\n  id: 'map-style',\n  module: 'basemap-layers',\n  version: VERSION,\n  worker: false,\n  extensions: ['json'],\n  mimeTypes: ['application/json', 'application/vnd.mapbox.style+json'],\n  text: true,\n  options: {\n    mapStyle: {}\n  },\n  parse: async (\n    data: ArrayBuffer | string,\n    options?: MapStyleLoaderOptions,\n    context?: LoaderContext\n  ) => {\n    const text = typeof data === 'string' ? data : new TextDecoder().decode(data);\n    const style = JSON.parse(text) as BasemapStyle;\n    const resolved = await resolveBasemapStyle(style, getMapStyleLoadOptions(options, context));\n    return ResolvedBasemapStyleSchema.parse(resolved);\n  }\n} as const satisfies LoaderWithParser<ResolvedBasemapStyle, never, MapStyleLoaderOptions>;\n"],
  "mappings": "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",
  "names": ["Reference", "import_mapbox_gl_style_spec"]
}
