@tileflow/static 0.1.0-alpha.25 → 0.1.0-alpha.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,10 +1,25 @@
1
1
  # @tileflow/static
2
2
 
3
- Static map schemas, overlay helpers, and request utilities for Tileflow static map rendering.
3
+ Validate static map scenes, author overlays, and request hosted image renders. The client follows
4
+ an asynchronous operation until an immutable image is ready. It does not display the image or
5
+ provide an interactive map.
4
6
 
5
- This package describes and submits a render scene, then follows its asynchronous operation until an
6
- immutable image is ready. It is distinct from React's `<Map mode="image">`, which only displays an
7
- existing hosted image and does not create or poll a Static Maps operation.
7
+ > Related packages and guides: [documentation index](https://raw.githubusercontent.com/tileflow/tileflow-sdk/main/llms.txt).
8
+
9
+ ## Install
10
+
11
+ ```sh
12
+ npm install @tileflow/static@alpha
13
+ ```
14
+
15
+ Validation and overlay authoring work without a hosted account. Creating a render needs a deployed
16
+ Tileflow map, an enabled Static Maps service, and an authorized credential. Run authenticated
17
+ requests on a trusted server with `fetch` available, such as Node.js 22 or newer. Keep credentials
18
+ out of browser bundles. A React application can use
19
+ [`@tileflow/react/static`](https://github.com/tileflow/tileflow-sdk/blob/main/packages/react/README.md)
20
+ through its own authorized server endpoint.
21
+
22
+ ## Create a render
8
23
 
9
24
  Every scene names one concrete `theme`. The browser-only `"system"` selector is rejected so hashes,
10
25
  cache keys, receipts, and regenerated images remain reproducible.
@@ -13,14 +28,19 @@ Scene, size, camera, attribution, padding, and overlay objects are strict. Unkno
13
28
  rejected instead of being removed during normalization, so misspelled or unsupported options cannot
14
29
  silently share another scene's identity.
15
30
 
31
+ <!-- docs:check -->
32
+
16
33
  ```ts
17
34
  import {
35
+ createStaticMap,
18
36
  createStaticMapIdempotencyKey,
19
37
  marker,
20
- precacheStaticMap,
21
38
  validateStaticScene,
22
39
  } from '@tileflow/static';
23
40
 
41
+ const apiKey = process.env.TILEFLOW_API_KEY;
42
+ if (!apiKey) throw new Error('Set TILEFLOW_API_KEY on the server.');
43
+
24
44
  const scene = validateStaticScene({
25
45
  map: 'madrid',
26
46
  theme: 'dark',
@@ -32,14 +52,27 @@ const scene = validateStaticScene({
32
52
 
33
53
  if (!scene.ok) throw new Error(scene.error);
34
54
 
35
- const result = await precacheStaticMap(scene.scene, {
36
- apiKey: process.env.TILEFLOW_API_KEY,
37
- idempotencyKey: createStaticMapIdempotencyKey(),
55
+ const idempotencyKey = createStaticMapIdempotencyKey();
56
+ const result = await createStaticMap(scene.scene, {
57
+ apiKey,
58
+ idempotencyKey,
38
59
  });
39
60
 
40
- console.log(result.attribution.entries);
61
+ console.log(result.imageUrl, result.attribution.entries);
41
62
  ```
42
63
 
64
+ `map: 'madrid'` is the deployed portable map name; replace it with yours. For a Team credential,
65
+ pass the destination's public `mapId` separately in the request options, as described below.
66
+ `createStaticMap` and `precacheStaticMap` both return a hosted result with `resultVersion: 1`, an
67
+ operation ID, image URL, and attribution. Use precache for cache warming, not as a free validation
68
+ operation. Neither helper is the same as `<Map mode="image">`, which only displays an existing image.
69
+
70
+ Create one idempotency key per intentional action and retain it across retries. Do not put the key
71
+ factory inside a retry callback. The helper handles polling; cancellation or a timeout does not
72
+ prove that the server did no work.
73
+
74
+ ## Image size and format
75
+
43
76
  `width` and `height` are logical CSS pixels. `dpr` accepts 1 or 2 and defaults to 1, so a 600 by
44
77
  400 scene at DPR 2 produces a 1200 by 800 image without changing camera, padding, or overlay paint
45
78
  sizes. Logical dimensions may reach 2048 per axis; the physical budget permits 4096 by 4096 output,
@@ -119,24 +152,39 @@ bounds cameras never move.
119
152
 
120
153
  Choose a corner when composition requires it:
121
154
 
155
+ <!-- docs:check -->
156
+
122
157
  ```ts
123
- attribution: {mode: 'embedded', position: 'bottom-left'}
158
+ import type {StaticAttributionRequest} from '@tileflow/static';
159
+
160
+ const attribution = {
161
+ mode: 'embedded',
162
+ position: 'bottom-left',
163
+ } satisfies StaticAttributionRequest;
124
164
  ```
125
165
 
126
166
  Or request structured external attribution:
127
167
 
168
+ <!-- docs:check -->
169
+
128
170
  ```ts
171
+ import {createStaticMap, createStaticMapIdempotencyKey} from '@tileflow/static';
172
+
173
+ const apiKey = process.env.TILEFLOW_API_KEY;
174
+ if (!apiKey) throw new Error('Set TILEFLOW_API_KEY on the server.');
175
+
129
176
  const result = await createStaticMap(
130
- {...scene.scene, attribution: {mode: 'external'}},
131
177
  {
132
- apiKey: process.env.TILEFLOW_API_KEY,
133
- idempotencyKey: createStaticMapIdempotencyKey(),
178
+ map: 'madrid',
179
+ theme: 'dark',
180
+ camera: {type: 'center', center: [-3.7038, 40.4168], zoom: 12},
181
+ size: {width: 600, height: 400},
182
+ attribution: {mode: 'external'},
134
183
  },
184
+ {apiKey, idempotencyKey: createStaticMapIdempotencyKey()},
135
185
  );
136
186
 
137
- for (const entry of result.attribution.entries) {
138
- renderAttributionText(entry.text, entry.links);
139
- }
187
+ console.log(JSON.stringify({imageUrl: result.imageUrl, entries: result.attribution.entries}));
140
188
  ```
141
189
 
142
190
  External mode leaves the image unchanged and returns `position: null`. The caller must retain and
@@ -157,12 +205,12 @@ measurement, anchor, scale, and offset. It works with Mercator and Globe styles
157
205
  can be shown. It never clips silently.
158
206
 
159
207
  ```ts
160
- camera: {
208
+ const camera = {
161
209
  type: 'auto',
162
210
  padding: {top: 24, right: 240, bottom: 24, left: 24},
163
211
  maxZoom: 16,
164
212
  bearing: 0,
165
- }
213
+ } as const;
166
214
  ```
167
215
 
168
216
  Padding uses logical CSS pixels. A number applies to every side; omitted sides in an object are
@@ -180,6 +228,8 @@ Current overlay primitives use MapLibre's GeoJSON pipeline and require
180
228
  clamping them. A Globe basemap may display polar regions even though these overlay primitives cannot
181
229
  yet be drawn there.
182
230
 
231
+ ## Handle failures
232
+
183
233
  Deterministic request failures return `422`, set `retryable: false`, and preserve a stable code,
184
234
  reason, and bounded details. `validateStaticScene` returns that document; request helpers throw
185
235
  `StaticMapRequestError` either locally or from the Hosted response. The reasons distinguish an empty
@@ -191,9 +241,15 @@ attribution grammar or glyphs, excessive attribution, and a block that cannot fi
191
241
  non-retryable `422` boundary.
192
242
 
193
243
  Other bounded Hosted JSON failures throw `StaticMapError`. It preserves HTTP `status` and any safe
194
- `code`, `retryable`, `requestId`, or `remainingUnits` fields the server supplied; absent fields are
195
- `null`. `StaticMapRequestError` extends the same class. Malformed, oversized, or unsafe remote
196
- documents remain generic errors and are never reflected to the caller.
244
+ `code`, `requiredPlan`, `retryable`, `requestId`, or `remainingUnits` fields the server supplied;
245
+ absent fields are `null`. `StaticMapRequestError` extends the same class. Malformed, oversized, or
246
+ unsafe remote documents remain generic errors and are never reflected to the caller.
247
+
248
+ `STATIC_MAPS_PLAN_UNAVAILABLE` is a non-retryable Starter requirement. Its `requiredPlan` is
249
+ `starter-v1`; select a Starter Team or use a non-static fallback. It occurs before a Static Maps
250
+ operation or API-unit charge. A different `403` is a credential or Map-coverage failure.
251
+
252
+ ## API entry points
197
253
 
198
254
  The package has four deliberately separate surfaces, all available from the root for compatibility:
199
255
 
@@ -215,6 +271,8 @@ anchors, and resolved sprite dimensions. Its top-level `mapId` identifies the re
215
271
  while `scene.map` retains the portable map name supplied by the application. It is unrelated to the
216
272
  runtime delivery manifest generated by application build or deploy workflows.
217
273
 
274
+ ## Operation identity and usage
275
+
218
276
  Create one idempotency key per intentional create/precache action and retain it across network
219
277
  retries. Reusing the key with the same normalized scene returns the stored result; reusing it with a
220
278
  different scene returns 409. A successful paid operation reports `unitCost: 15`, shared
@@ -236,8 +294,6 @@ Free cannot initiate Static Maps work. Starter consumes 15 shared API units for
236
294
  logical operation, including a distinct-key cache reuse. Downloading an immutable PNG, JPEG, or WebP
237
295
  consumes zero units.
238
296
 
239
- Docs: https://tileflow.dev/docs
240
-
241
297
  ## Team credentials
242
298
 
243
299
  A Team credential can serve multiple Maps. Pass `mapId` in the options to `createStaticMap` or
@@ -4,7 +4,7 @@ import {
4
4
  staticMapErrorResponseSchema,
5
5
  staticMapRequestErrorResponseSchema,
6
6
  validateStaticScene
7
- } from "./chunk-TBI5AED6.js";
7
+ } from "./chunk-ALFVZ3PC.js";
8
8
  import {
9
9
  isSafeHttpUrl,
10
10
  jsonByteLength,
@@ -3,7 +3,7 @@ import {
3
3
  normalizeStaticScene,
4
4
  staticAutoFitPlanSchema,
5
5
  validateStaticScene
6
- } from "./chunk-TBI5AED6.js";
6
+ } from "./chunk-ALFVZ3PC.js";
7
7
  import {
8
8
  hashStableValue,
9
9
  isSafeHttpUrl,
@@ -130,12 +130,55 @@ var placementAnchorsSchema = z.object({
130
130
  }).strict().refine(anchorsHaveTerminalNulls, {
131
131
  message: "Placement anchors may become null only at the end of semantic order"
132
132
  });
133
+ var iconCoordinate = z.number().int().nonnegative().max(2048);
134
+ var iconStretchRegions = z.array(z.tuple([iconCoordinate, iconCoordinate])).min(1).max(2048);
135
+ var iconLayoutSchema = z.object({
136
+ stretchX: iconStretchRegions.optional(),
137
+ stretchY: iconStretchRegions.optional(),
138
+ content: z.tuple([iconCoordinate, iconCoordinate, iconCoordinate, iconCoordinate]).optional()
139
+ }).strict();
133
140
  var resolvedIconSchema = z.object({
141
+ layout: iconLayoutSchema.optional(),
142
+ // Verified asset defaults supplied by the manifest producer, never scene input.
143
+ appearance: z.object({
144
+ representation: z.literal("sdf"),
145
+ defaults: z.object({
146
+ color: z.string().min(1).max(128).refine(hasNoControlCharacters),
147
+ haloColor: z.string().min(1).max(128).refine(hasNoControlCharacters),
148
+ haloWidth: z.number().finite().min(0).max(2),
149
+ haloBlur: z.number().finite().min(0).max(1)
150
+ }).strict()
151
+ }).strict().optional(),
134
152
  height: z.number().int().positive().max(2048),
135
153
  icon: z.string().max(64).regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),
136
154
  overlayIndex: z.number().int().min(0).max(23),
137
155
  width: z.number().int().positive().max(2048)
138
- }).strict();
156
+ }).strict().superRefine((icon, context) => {
157
+ const layout = icon.layout;
158
+ if (!layout) return;
159
+ let valid = Object.values(layout).some((value) => value !== void 0);
160
+ const content = layout.content;
161
+ if (content)
162
+ valid &&= content[0] < content[2] && content[1] < content[3] && content[2] <= icon.width && content[3] <= icon.height;
163
+ for (const [axis, bound, low, high] of [
164
+ ["stretchX", icon.width, content?.[0], content?.[2]],
165
+ ["stretchY", icon.height, content?.[1], content?.[3]]
166
+ ]) {
167
+ let end = 0;
168
+ for (const [from, to] of layout[axis] ?? []) {
169
+ valid &&= from >= end && from < to && to <= bound;
170
+ end = to;
171
+ }
172
+ if (layout[axis] && low !== void 0 && high !== void 0)
173
+ valid &&= layout[axis].some(([from, to]) => from < high && to > low);
174
+ }
175
+ if (!valid)
176
+ context.addIssue({
177
+ code: "custom",
178
+ path: ["layout"],
179
+ message: "Invalid icon layout for the resolved sprite dimensions"
180
+ });
181
+ });
139
182
  var staticRenderCompositionSchema = z.object({
140
183
  anchors: placementAnchorsSchema,
141
184
  icons: z.array(resolvedIconSchema).max(24),
@@ -23,12 +23,14 @@ var staticMapErrorResponseSchema = z.object({
23
23
  error: safeErrorTextSchema,
24
24
  remainingUnits: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional(),
25
25
  requestId: safeErrorIdentifierSchema.optional(),
26
+ requiredPlan: safeErrorIdentifierSchema.optional(),
26
27
  retryable: z.boolean().optional()
27
28
  }).strip();
28
29
  var StaticMapError = class extends Error {
29
30
  code;
30
31
  remainingUnits;
31
32
  requestId;
33
+ requiredPlan;
32
34
  response;
33
35
  retryable;
34
36
  status;
@@ -39,6 +41,7 @@ var StaticMapError = class extends Error {
39
41
  this.code = parsed.code ?? null;
40
42
  this.remainingUnits = parsed.remainingUnits ?? null;
41
43
  this.requestId = parsed.requestId ?? null;
44
+ this.requiredPlan = parsed.requiredPlan ?? null;
42
45
  this.response = Object.freeze(parsed);
43
46
  this.retryable = parsed.retryable ?? null;
44
47
  this.status = status;
package/dist/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- export { S as StaticMapError, a as StaticMapErrorResponse, s as staticMapErrorResponseSchema } from './errors-B9rwehK0.js';
2
+ export { S as StaticMapError, a as StaticMapErrorResponse, s as staticMapErrorResponseSchema } from './errors-CSz1xaDx.js';
3
3
  import { a as StaticAttributionPosition, j as StaticSceneInput } from './scene-contract-Cr6BNLz0.js';
4
4
 
5
5
  declare function stableStringify(value: unknown): string;
package/dist/client.js CHANGED
@@ -10,11 +10,11 @@ import {
10
10
  staticMapHostedResultSchema,
11
11
  staticMapProcessingResultSchema,
12
12
  validateStaticMapIdempotencyKey
13
- } from "./chunk-RGXE4HDY.js";
13
+ } from "./chunk-4GPRPR33.js";
14
14
  import {
15
15
  StaticMapError,
16
16
  staticMapErrorResponseSchema
17
- } from "./chunk-TBI5AED6.js";
17
+ } from "./chunk-ALFVZ3PC.js";
18
18
  import {
19
19
  stableStringify
20
20
  } from "./chunk-6DWVCK64.js";
@@ -5,6 +5,7 @@ declare const staticMapErrorResponseSchema: z.ZodObject<{
5
5
  error: z.ZodString;
6
6
  remainingUnits: z.ZodOptional<z.ZodNumber>;
7
7
  requestId: z.ZodOptional<z.ZodString>;
8
+ requiredPlan: z.ZodOptional<z.ZodString>;
8
9
  retryable: z.ZodOptional<z.ZodBoolean>;
9
10
  }, z.core.$strip>;
10
11
  type StaticMapErrorResponse = z.infer<typeof staticMapErrorResponseSchema>;
@@ -12,6 +13,7 @@ declare class StaticMapError extends Error {
12
13
  readonly code: string | null;
13
14
  readonly remainingUnits: number | null;
14
15
  readonly requestId: string | null;
16
+ readonly requiredPlan: string | null;
15
17
  readonly response: StaticMapErrorResponse;
16
18
  readonly retryable: boolean | null;
17
19
  readonly status: number;
package/dist/index.d.ts CHANGED
@@ -3,5 +3,5 @@ export { circle, compileStaticOverlays, line, marker, polygon, symbol } from './
3
3
  export { StaticAttributionEntry, StaticAttributionPlan, StaticAttributionProvenance, StaticAttributionSegment, StaticRenderComposition, StaticRenderManifest, StaticResolvedAttributionPosition, createRenderManifest, hashRenderManifest, hashStaticSceneRequest, staticAttributionEntrySchema, staticAttributionLimits, staticAttributionPlanSchema, staticAttributionPlanSchemaVersion, staticAttributionProvenanceSchema, staticAttributionSegmentSchema, staticRenderCompositionSchema, staticRenderCompositionSchemaVersion, staticRenderManifestSchema, staticRendererSchemaVersion, validateStaticRenderManifest } from './manifest.js';
4
4
  export { PreparedStaticMapRequest, STATIC_MAP_RESULT_MEDIA_TYPE, StaticMapAttributionEntry, StaticMapAttributionResult, StaticMapCreateOptions, StaticMapEndpointRequestOptions, StaticMapHostedResult, StaticMapImageResult, StaticMapResult, createStaticMap, createStaticMapIdempotencyKey, precacheStaticMap, prepareStaticMapRequest, requestStaticMapUntilReady, stableStringify, staticMapAttributionEntrySchema, staticMapAttributionResultSchema, staticMapHostedResultSchema, staticMapProcessingResultSchema, validateStaticMapIdempotencyKey } from './client.js';
5
5
  export { M as MAX_OVERLAY_LATITUDE, S as StaticAttributionMode, a as StaticAttributionPosition, b as StaticAttributionRequest, c as StaticCoordinate, d as StaticMapFormat, e as StaticOverlay, f as StaticOverlayInput, g as StaticOverlayPlacement, h as StaticPadding, i as StaticScene, j as StaticSceneInput, k as StaticSymbolAnchor, l as StaticSymbolCollision, m as StaticSymbolLabelAppearance, n as StaticSymbolLabelPosition, o as StaticSymbolLanguage, p as isSupportedStaticSymbolCodePoint, s as staticAttributionPositionSchema, q as staticAttributionRequestSchema, r as staticOverlayPlacements, t as staticOverlaySchema, u as staticSceneLimits, v as staticSceneSchema, w as staticSceneSchemaVersion, x as staticSymbolAnchors, y as staticSymbolCollisions, z as staticSymbolLabelAppearances, A as staticSymbolLabelPositions, B as staticSymbolLanguages } from './scene-contract-Cr6BNLz0.js';
6
- export { S as StaticMapError, a as StaticMapErrorResponse, s as staticMapErrorResponseSchema } from './errors-B9rwehK0.js';
6
+ export { S as StaticMapError, a as StaticMapErrorResponse, s as staticMapErrorResponseSchema } from './errors-CSz1xaDx.js';
7
7
  import 'zod';
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  staticMapHostedResultSchema,
11
11
  staticMapProcessingResultSchema,
12
12
  validateStaticMapIdempotencyKey
13
- } from "./chunk-RGXE4HDY.js";
13
+ } from "./chunk-4GPRPR33.js";
14
14
  import {
15
15
  createRenderManifest,
16
16
  hashRenderManifest,
@@ -26,7 +26,7 @@ import {
26
26
  staticRenderManifestSchema,
27
27
  staticRendererSchemaVersion,
28
28
  validateStaticRenderManifest
29
- } from "./chunk-XMT7VJL5.js";
29
+ } from "./chunk-4MXFTGQV.js";
30
30
  import {
31
31
  circle,
32
32
  compileStaticOverlays,
@@ -42,7 +42,7 @@ import {
42
42
  staticMapErrorResponseSchema,
43
43
  staticMapRequestErrorResponseSchema,
44
44
  validateStaticScene
45
- } from "./chunk-TBI5AED6.js";
45
+ } from "./chunk-ALFVZ3PC.js";
46
46
  import {
47
47
  MAX_OVERLAY_LATITUDE,
48
48
  isSupportedStaticSymbolCodePoint,
@@ -144,6 +144,20 @@ declare const staticRenderCompositionSchema: z.ZodObject<{
144
144
  'above-labels': z.ZodNull;
145
145
  }, z.core.$strict>;
146
146
  icons: z.ZodArray<z.ZodObject<{
147
+ layout: z.ZodOptional<z.ZodObject<{
148
+ stretchX: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>;
149
+ stretchY: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>;
150
+ content: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
151
+ }, z.core.$strict>>;
152
+ appearance: z.ZodOptional<z.ZodObject<{
153
+ representation: z.ZodLiteral<"sdf">;
154
+ defaults: z.ZodObject<{
155
+ color: z.ZodString;
156
+ haloColor: z.ZodString;
157
+ haloWidth: z.ZodNumber;
158
+ haloBlur: z.ZodNumber;
159
+ }, z.core.$strict>;
160
+ }, z.core.$strict>>;
147
161
  height: z.ZodNumber;
148
162
  icon: z.ZodString;
149
163
  overlayIndex: z.ZodNumber;
@@ -227,6 +241,20 @@ declare const staticRenderManifestSchema: z.ZodObject<{
227
241
  'above-labels': z.ZodNull;
228
242
  }, z.core.$strict>;
229
243
  icons: z.ZodArray<z.ZodObject<{
244
+ layout: z.ZodOptional<z.ZodObject<{
245
+ stretchX: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>;
246
+ stretchY: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>;
247
+ content: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
248
+ }, z.core.$strict>>;
249
+ appearance: z.ZodOptional<z.ZodObject<{
250
+ representation: z.ZodLiteral<"sdf">;
251
+ defaults: z.ZodObject<{
252
+ color: z.ZodString;
253
+ haloColor: z.ZodString;
254
+ haloWidth: z.ZodNumber;
255
+ haloBlur: z.ZodNumber;
256
+ }, z.core.$strict>;
257
+ }, z.core.$strict>>;
230
258
  height: z.ZodNumber;
231
259
  icon: z.ZodString;
232
260
  overlayIndex: z.ZodNumber;
package/dist/manifest.js CHANGED
@@ -13,8 +13,8 @@ import {
13
13
  staticRenderManifestSchema,
14
14
  staticRendererSchemaVersion,
15
15
  validateStaticRenderManifest
16
- } from "./chunk-XMT7VJL5.js";
17
- import "./chunk-TBI5AED6.js";
16
+ } from "./chunk-4MXFTGQV.js";
17
+ import "./chunk-ALFVZ3PC.js";
18
18
  import "./chunk-6DWVCK64.js";
19
19
  export {
20
20
  createRenderManifest,
package/dist/scene.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { S as StaticMapError } from './errors-B9rwehK0.js';
2
+ import { S as StaticMapError } from './errors-CSz1xaDx.js';
3
3
  import { j as StaticSceneInput, i as StaticScene } from './scene-contract-Cr6BNLz0.js';
4
4
  export { M as MAX_OVERLAY_LATITUDE, S as StaticAttributionMode, a as StaticAttributionPosition, b as StaticAttributionRequest, c as StaticCoordinate, d as StaticMapFormat, g as StaticOverlayPlacement, h as StaticPadding, k as StaticSymbolAnchor, l as StaticSymbolCollision, m as StaticSymbolLabelAppearance, n as StaticSymbolLabelPosition, o as StaticSymbolLanguage, p as isSupportedStaticSymbolCodePoint, s as staticAttributionPositionSchema, q as staticAttributionRequestSchema, r as staticOverlayPlacements, u as staticSceneLimits, v as staticSceneSchema, w as staticSceneSchemaVersion, x as staticSymbolAnchors, y as staticSymbolCollisions, z as staticSymbolLabelAppearances, A as staticSymbolLabelPositions, B as staticSymbolLanguages } from './scene-contract-Cr6BNLz0.js';
5
5
 
package/dist/scene.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  normalizeStaticScene,
4
4
  staticMapRequestErrorResponseSchema,
5
5
  validateStaticScene
6
- } from "./chunk-TBI5AED6.js";
6
+ } from "./chunk-ALFVZ3PC.js";
7
7
  import {
8
8
  MAX_OVERLAY_LATITUDE,
9
9
  isSupportedStaticSymbolCodePoint,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tileflow/static",
3
- "version": "0.1.0-alpha.25",
3
+ "version": "0.1.0-alpha.27",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Static map request schemas and helpers for Tileflow.",
6
6
  "type": "module",