pdf-mapview 0.1.1 → 0.1.3

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.
@@ -2,6 +2,7 @@
2
2
 
3
3
  var zod = require('zod');
4
4
 
5
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
5
6
  // src/shared/coordinates.ts
6
7
  function clamp01(value) {
7
8
  return Math.min(1, Math.max(0, value));
@@ -219,6 +220,9 @@ function ensureLeadingSlash(value) {
219
220
  return value.startsWith("/") ? value : `/${value}`;
220
221
  }
221
222
 
223
+ // src/shared/pdfWorkerUrl.ts
224
+ var pdfWorkerUrl = new URL("../pdf.worker.min.mjs", (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))).toString();
225
+
222
226
  exports.clamp01 = clamp01;
223
227
  exports.clampNormalizedPoint = clampNormalizedPoint;
224
228
  exports.clampNormalizedRect = clampNormalizedRect;
@@ -227,6 +231,7 @@ exports.manifestSchema = manifestSchema;
227
231
  exports.normalizeRegions = normalizeRegions;
228
232
  exports.normalizedToPixels = normalizedToPixels;
229
233
  exports.parseManifest = parseManifest;
234
+ exports.pdfWorkerUrl = pdfWorkerUrl;
230
235
  exports.pixelsToNormalized = pixelsToNormalized;
231
236
  exports.rectCenter = rectCenter;
232
237
  exports.regionCollectionSchema = regionCollectionSchema;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/coordinates.ts","../../src/shared/bytes.ts","../../src/shared/overlays.ts","../../src/shared/manifest.ts"],"names":["z"],"mappings":"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","file":"index.cjs","sourcesContent":["export interface NormalizedPoint {\n x: number;\n y: number;\n}\n\nexport interface NormalizedRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface PixelSize {\n width: number;\n height: number;\n}\n\nexport function clamp01(value: number): number {\n return Math.min(1, Math.max(0, value));\n}\n\nexport function clampNormalizedPoint(point: NormalizedPoint): NormalizedPoint {\n return {\n x: clamp01(point.x),\n y: clamp01(point.y),\n };\n}\n\nexport function clampNormalizedRect(rect: NormalizedRect): NormalizedRect {\n const x = clamp01(rect.x);\n const y = clamp01(rect.y);\n const width = Math.min(1 - x, Math.max(0, rect.width));\n const height = Math.min(1 - y, Math.max(0, rect.height));\n return { x, y, width, height };\n}\n\nexport function normalizedToPixels(point: NormalizedPoint, size: PixelSize): NormalizedPoint {\n return {\n x: point.x * size.width,\n y: point.y * size.height,\n };\n}\n\nexport function pixelsToNormalized(point: NormalizedPoint, size: PixelSize): NormalizedPoint {\n if (size.width <= 0 || size.height <= 0) {\n return { x: 0, y: 0 };\n }\n\n return {\n x: point.x / size.width,\n y: point.y / size.height,\n };\n}\n\nexport function rectCenter(rect: NormalizedRect): NormalizedPoint {\n return {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2,\n };\n}\n\nexport function unionRects(rects: readonly NormalizedRect[]): NormalizedRect | null {\n if (rects.length === 0) {\n return null;\n }\n\n let minX = Number.POSITIVE_INFINITY;\n let minY = Number.POSITIVE_INFINITY;\n let maxX = Number.NEGATIVE_INFINITY;\n let maxY = Number.NEGATIVE_INFINITY;\n\n for (const rect of rects) {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n\n return clampNormalizedRect({\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n });\n}\n","export function toUint8Array(input: Buffer | Uint8Array | ArrayBuffer): Uint8Array {\n if (input instanceof ArrayBuffer) {\n return new Uint8Array(input);\n }\n\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n}\n","import { z } from \"zod\";\n\nimport type { NormalizedPoint, NormalizedRect } from \"./coordinates\";\n\nexport type RegionGeometryType = \"polygon\" | \"rectangle\" | \"point\" | \"label\";\n\nexport interface PolygonGeometry {\n type: \"polygon\";\n points: NormalizedPoint[];\n}\n\nexport interface RectangleGeometry {\n type: \"rectangle\";\n rect: NormalizedRect;\n}\n\nexport interface PointGeometry {\n type: \"point\";\n point: NormalizedPoint;\n radius?: number;\n}\n\nexport interface LabelGeometry {\n type: \"label\";\n point: NormalizedPoint;\n text: string;\n}\n\nexport type RegionGeometry =\n | PolygonGeometry\n | RectangleGeometry\n | PointGeometry\n | LabelGeometry;\n\nexport interface RegionFeature<Metadata = Record<string, unknown>> {\n id: string;\n geometry: RegionGeometry;\n label?: string;\n metadata?: Metadata;\n}\n\nexport interface RegionCollection<Metadata = Record<string, unknown>> {\n type: \"FeatureCollection\";\n regions: RegionFeature<Metadata>[];\n}\n\nconst normalizedPointSchema = z.object({\n x: z.number().finite().min(0).max(1),\n y: z.number().finite().min(0).max(1),\n});\n\nconst normalizedRectSchema = z.object({\n x: z.number().finite().min(0).max(1),\n y: z.number().finite().min(0).max(1),\n width: z.number().finite().min(0).max(1),\n height: z.number().finite().min(0).max(1),\n});\n\nexport const regionFeatureSchema = z.object({\n id: z.string().min(1),\n geometry: z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"polygon\"),\n points: z.array(normalizedPointSchema).min(3),\n }),\n z.object({\n type: z.literal(\"rectangle\"),\n rect: normalizedRectSchema,\n }),\n z.object({\n type: z.literal(\"point\"),\n point: normalizedPointSchema,\n radius: z.number().finite().positive().optional(),\n }),\n z.object({\n type: z.literal(\"label\"),\n point: normalizedPointSchema,\n text: z.string().min(1),\n }),\n ]),\n label: z.string().optional(),\n metadata: z.record(z.unknown()).optional(),\n});\n\nexport const regionCollectionSchema = z.object({\n type: z.literal(\"FeatureCollection\"),\n regions: z.array(regionFeatureSchema),\n});\n\nexport function normalizeRegions(\n input?: RegionCollection | RegionFeature[] | null,\n): RegionFeature[] {\n if (!input) {\n return [];\n }\n\n if (Array.isArray(input)) {\n return input;\n }\n\n return input.regions;\n}\n","import { z } from \"zod\";\n\nimport { regionCollectionSchema } from \"./overlays\";\nimport type { RegionCollection } from \"./overlays\";\nimport type { TileFormat } from \"./ingest\";\n\nexport interface TileLevelManifest {\n z: number;\n width: number;\n height: number;\n columns: number;\n rows: number;\n scale: number;\n}\n\nexport interface PdfMapManifest {\n version: 1;\n kind: \"pdf-map\";\n id: string;\n source: {\n type: \"pdf\" | \"image\";\n originalFilename?: string;\n page?: number;\n width: number;\n height: number;\n mimeType?: string;\n };\n coordinateSpace: {\n normalized: true;\n width: number;\n height: number;\n };\n tiles: {\n tileSize: number;\n format: TileFormat;\n minZoom: number;\n maxZoom: number;\n pathTemplate: string;\n levels: TileLevelManifest[];\n };\n view: {\n defaultCenter: [number, number];\n defaultZoom: number;\n minZoom: number;\n maxZoom: number;\n };\n overlays?: {\n inline?: RegionCollection;\n url?: string;\n };\n assets?: {\n preview?: string;\n };\n metadata?: {\n title?: string;\n createdAt?: string;\n [key: string]: unknown;\n };\n}\n\nexport interface CreateManifestInput extends Omit<PdfMapManifest, \"version\" | \"kind\"> {}\n\nexport interface ResolveTileUrlArgs {\n manifest: PdfMapManifest;\n z: number;\n x: number;\n y: number;\n baseUrl?: string;\n overrideTemplate?: string;\n}\n\nconst tileLevelSchema = z.object({\n z: z.number().int().min(0),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n columns: z.number().int().positive(),\n rows: z.number().int().positive(),\n scale: z.number().positive(),\n});\n\nexport const manifestSchema: z.ZodType<PdfMapManifest> = z.object({\n version: z.literal(1),\n kind: z.literal(\"pdf-map\"),\n id: z.string().min(1),\n source: z.object({\n type: z.union([z.literal(\"pdf\"), z.literal(\"image\")]),\n originalFilename: z.string().optional(),\n page: z.number().int().positive().optional(),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n mimeType: z.string().optional(),\n }),\n coordinateSpace: z.object({\n normalized: z.literal(true),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n }),\n tiles: z.object({\n tileSize: z.number().int().positive(),\n format: z.union([z.literal(\"webp\"), z.literal(\"jpeg\"), z.literal(\"png\")]),\n minZoom: z.number().int().min(0),\n maxZoom: z.number().int().min(0),\n pathTemplate: z.string().min(1),\n levels: z.array(tileLevelSchema),\n }),\n view: z.object({\n defaultCenter: z.tuple([\n z.number().finite().min(0).max(1),\n z.number().finite().min(0).max(1),\n ]),\n defaultZoom: z.number().finite(),\n minZoom: z.number().finite(),\n maxZoom: z.number().finite(),\n }),\n overlays: z\n .object({\n inline: regionCollectionSchema.optional(),\n url: z.string().optional(),\n })\n .optional(),\n assets: z\n .object({\n preview: z.string().optional(),\n })\n .optional(),\n metadata: z\n .object({\n title: z.string().optional(),\n createdAt: z.string().optional(),\n })\n .catchall(z.unknown())\n .optional(),\n});\n\nexport function createManifest(input: CreateManifestInput): PdfMapManifest {\n return manifestSchema.parse({\n version: 1,\n kind: \"pdf-map\",\n ...input,\n });\n}\n\nexport function parseManifest(input: unknown): PdfMapManifest {\n return manifestSchema.parse(input);\n}\n\nexport function resolveTileUrl(args: ResolveTileUrlArgs): string {\n const template = args.overrideTemplate ?? args.manifest.tiles.pathTemplate;\n const relative = template\n .replaceAll(\"{z}\", String(args.z))\n .replaceAll(\"{x}\", String(args.x))\n .replaceAll(\"{y}\", String(args.y));\n\n if (/^https?:\\/\\//.test(relative)) {\n return relative;\n }\n\n if (!args.baseUrl) {\n return relative;\n }\n\n if (/^https?:\\/\\//.test(args.baseUrl)) {\n return new URL(relative.replace(/^\\//, \"\"), ensureTrailingSlash(args.baseUrl)).toString();\n }\n\n return joinRelativeUrl(args.baseUrl, relative);\n}\n\nfunction ensureTrailingSlash(value: string): string {\n return value.endsWith(\"/\") ? value : `${value}/`;\n}\n\nfunction joinRelativeUrl(baseUrl: string, path: string): string {\n const normalizedBase = ensureLeadingSlash(stripTrailingSlash(baseUrl));\n const normalizedPath = stripLeadingSlash(path);\n\n if (!normalizedPath) {\n return normalizedBase || \"/\";\n }\n\n return normalizedBase ? `${normalizedBase}/${normalizedPath}` : `/${normalizedPath}`;\n}\n\nfunction stripLeadingSlash(value: string): string {\n return value.replace(/^\\/+/, \"\");\n}\n\nfunction stripTrailingSlash(value: string): string {\n return value.replace(/\\/+$/, \"\");\n}\n\nfunction ensureLeadingSlash(value: string): string {\n if (!value) {\n return \"\";\n }\n return value.startsWith(\"/\") ? value : `/${value}`;\n}\n"]}
1
+ {"version":3,"sources":["../../src/shared/coordinates.ts","../../src/shared/bytes.ts","../../src/shared/overlays.ts","../../src/shared/manifest.ts","../../src/shared/pdfWorkerUrl.ts"],"names":["z"],"mappings":"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","file":"index.cjs","sourcesContent":["export interface NormalizedPoint {\n x: number;\n y: number;\n}\n\nexport interface NormalizedRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface PixelSize {\n width: number;\n height: number;\n}\n\nexport function clamp01(value: number): number {\n return Math.min(1, Math.max(0, value));\n}\n\nexport function clampNormalizedPoint(point: NormalizedPoint): NormalizedPoint {\n return {\n x: clamp01(point.x),\n y: clamp01(point.y),\n };\n}\n\nexport function clampNormalizedRect(rect: NormalizedRect): NormalizedRect {\n const x = clamp01(rect.x);\n const y = clamp01(rect.y);\n const width = Math.min(1 - x, Math.max(0, rect.width));\n const height = Math.min(1 - y, Math.max(0, rect.height));\n return { x, y, width, height };\n}\n\nexport function normalizedToPixels(point: NormalizedPoint, size: PixelSize): NormalizedPoint {\n return {\n x: point.x * size.width,\n y: point.y * size.height,\n };\n}\n\nexport function pixelsToNormalized(point: NormalizedPoint, size: PixelSize): NormalizedPoint {\n if (size.width <= 0 || size.height <= 0) {\n return { x: 0, y: 0 };\n }\n\n return {\n x: point.x / size.width,\n y: point.y / size.height,\n };\n}\n\nexport function rectCenter(rect: NormalizedRect): NormalizedPoint {\n return {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2,\n };\n}\n\nexport function unionRects(rects: readonly NormalizedRect[]): NormalizedRect | null {\n if (rects.length === 0) {\n return null;\n }\n\n let minX = Number.POSITIVE_INFINITY;\n let minY = Number.POSITIVE_INFINITY;\n let maxX = Number.NEGATIVE_INFINITY;\n let maxY = Number.NEGATIVE_INFINITY;\n\n for (const rect of rects) {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n\n return clampNormalizedRect({\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n });\n}\n","export function toUint8Array(input: Buffer | Uint8Array | ArrayBuffer): Uint8Array {\n if (input instanceof ArrayBuffer) {\n return new Uint8Array(input);\n }\n\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n}\n","import { z } from \"zod\";\n\nimport type { NormalizedPoint, NormalizedRect } from \"./coordinates\";\n\nexport type RegionGeometryType = \"polygon\" | \"rectangle\" | \"point\" | \"label\";\n\nexport interface PolygonGeometry {\n type: \"polygon\";\n points: NormalizedPoint[];\n}\n\nexport interface RectangleGeometry {\n type: \"rectangle\";\n rect: NormalizedRect;\n}\n\nexport interface PointGeometry {\n type: \"point\";\n point: NormalizedPoint;\n radius?: number;\n}\n\nexport interface LabelGeometry {\n type: \"label\";\n point: NormalizedPoint;\n text: string;\n}\n\nexport type RegionGeometry =\n | PolygonGeometry\n | RectangleGeometry\n | PointGeometry\n | LabelGeometry;\n\nexport interface RegionFeature<Metadata = Record<string, unknown>> {\n id: string;\n geometry: RegionGeometry;\n label?: string;\n metadata?: Metadata;\n}\n\nexport interface RegionCollection<Metadata = Record<string, unknown>> {\n type: \"FeatureCollection\";\n regions: RegionFeature<Metadata>[];\n}\n\nconst normalizedPointSchema = z.object({\n x: z.number().finite().min(0).max(1),\n y: z.number().finite().min(0).max(1),\n});\n\nconst normalizedRectSchema = z.object({\n x: z.number().finite().min(0).max(1),\n y: z.number().finite().min(0).max(1),\n width: z.number().finite().min(0).max(1),\n height: z.number().finite().min(0).max(1),\n});\n\nexport const regionFeatureSchema = z.object({\n id: z.string().min(1),\n geometry: z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"polygon\"),\n points: z.array(normalizedPointSchema).min(3),\n }),\n z.object({\n type: z.literal(\"rectangle\"),\n rect: normalizedRectSchema,\n }),\n z.object({\n type: z.literal(\"point\"),\n point: normalizedPointSchema,\n radius: z.number().finite().positive().optional(),\n }),\n z.object({\n type: z.literal(\"label\"),\n point: normalizedPointSchema,\n text: z.string().min(1),\n }),\n ]),\n label: z.string().optional(),\n metadata: z.record(z.unknown()).optional(),\n});\n\nexport const regionCollectionSchema = z.object({\n type: z.literal(\"FeatureCollection\"),\n regions: z.array(regionFeatureSchema),\n});\n\nexport function normalizeRegions(\n input?: RegionCollection | RegionFeature[] | null,\n): RegionFeature[] {\n if (!input) {\n return [];\n }\n\n if (Array.isArray(input)) {\n return input;\n }\n\n return input.regions;\n}\n","import { z } from \"zod\";\n\nimport { regionCollectionSchema } from \"./overlays\";\nimport type { RegionCollection } from \"./overlays\";\nimport type { TileFormat } from \"./ingest\";\n\nexport interface TileLevelManifest {\n z: number;\n width: number;\n height: number;\n columns: number;\n rows: number;\n scale: number;\n}\n\nexport interface PdfMapManifest {\n version: 1;\n kind: \"pdf-map\";\n id: string;\n source: {\n type: \"pdf\" | \"image\";\n originalFilename?: string;\n page?: number;\n width: number;\n height: number;\n mimeType?: string;\n };\n coordinateSpace: {\n normalized: true;\n width: number;\n height: number;\n };\n tiles: {\n tileSize: number;\n format: TileFormat;\n minZoom: number;\n maxZoom: number;\n pathTemplate: string;\n levels: TileLevelManifest[];\n };\n view: {\n defaultCenter: [number, number];\n defaultZoom: number;\n minZoom: number;\n maxZoom: number;\n };\n overlays?: {\n inline?: RegionCollection;\n url?: string;\n };\n assets?: {\n preview?: string;\n };\n metadata?: {\n title?: string;\n createdAt?: string;\n [key: string]: unknown;\n };\n}\n\nexport interface CreateManifestInput extends Omit<PdfMapManifest, \"version\" | \"kind\"> {}\n\nexport interface ResolveTileUrlArgs {\n manifest: PdfMapManifest;\n z: number;\n x: number;\n y: number;\n baseUrl?: string;\n overrideTemplate?: string;\n}\n\nconst tileLevelSchema = z.object({\n z: z.number().int().min(0),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n columns: z.number().int().positive(),\n rows: z.number().int().positive(),\n scale: z.number().positive(),\n});\n\nexport const manifestSchema: z.ZodType<PdfMapManifest> = z.object({\n version: z.literal(1),\n kind: z.literal(\"pdf-map\"),\n id: z.string().min(1),\n source: z.object({\n type: z.union([z.literal(\"pdf\"), z.literal(\"image\")]),\n originalFilename: z.string().optional(),\n page: z.number().int().positive().optional(),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n mimeType: z.string().optional(),\n }),\n coordinateSpace: z.object({\n normalized: z.literal(true),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n }),\n tiles: z.object({\n tileSize: z.number().int().positive(),\n format: z.union([z.literal(\"webp\"), z.literal(\"jpeg\"), z.literal(\"png\")]),\n minZoom: z.number().int().min(0),\n maxZoom: z.number().int().min(0),\n pathTemplate: z.string().min(1),\n levels: z.array(tileLevelSchema),\n }),\n view: z.object({\n defaultCenter: z.tuple([\n z.number().finite().min(0).max(1),\n z.number().finite().min(0).max(1),\n ]),\n defaultZoom: z.number().finite(),\n minZoom: z.number().finite(),\n maxZoom: z.number().finite(),\n }),\n overlays: z\n .object({\n inline: regionCollectionSchema.optional(),\n url: z.string().optional(),\n })\n .optional(),\n assets: z\n .object({\n preview: z.string().optional(),\n })\n .optional(),\n metadata: z\n .object({\n title: z.string().optional(),\n createdAt: z.string().optional(),\n })\n .catchall(z.unknown())\n .optional(),\n});\n\nexport function createManifest(input: CreateManifestInput): PdfMapManifest {\n return manifestSchema.parse({\n version: 1,\n kind: \"pdf-map\",\n ...input,\n });\n}\n\nexport function parseManifest(input: unknown): PdfMapManifest {\n return manifestSchema.parse(input);\n}\n\nexport function resolveTileUrl(args: ResolveTileUrlArgs): string {\n const template = args.overrideTemplate ?? args.manifest.tiles.pathTemplate;\n const relative = template\n .replaceAll(\"{z}\", String(args.z))\n .replaceAll(\"{x}\", String(args.x))\n .replaceAll(\"{y}\", String(args.y));\n\n if (/^https?:\\/\\//.test(relative)) {\n return relative;\n }\n\n if (!args.baseUrl) {\n return relative;\n }\n\n if (/^https?:\\/\\//.test(args.baseUrl)) {\n return new URL(relative.replace(/^\\//, \"\"), ensureTrailingSlash(args.baseUrl)).toString();\n }\n\n return joinRelativeUrl(args.baseUrl, relative);\n}\n\nfunction ensureTrailingSlash(value: string): string {\n return value.endsWith(\"/\") ? value : `${value}/`;\n}\n\nfunction joinRelativeUrl(baseUrl: string, path: string): string {\n const normalizedBase = ensureLeadingSlash(stripTrailingSlash(baseUrl));\n const normalizedPath = stripLeadingSlash(path);\n\n if (!normalizedPath) {\n return normalizedBase || \"/\";\n }\n\n return normalizedBase ? `${normalizedBase}/${normalizedPath}` : `/${normalizedPath}`;\n}\n\nfunction stripLeadingSlash(value: string): string {\n return value.replace(/^\\/+/, \"\");\n}\n\nfunction stripTrailingSlash(value: string): string {\n return value.replace(/\\/+$/, \"\");\n}\n\nfunction ensureLeadingSlash(value: string): string {\n if (!value) {\n return \"\";\n }\n return value.startsWith(\"/\") ? value : `/${value}`;\n}\n","export const pdfWorkerUrl = new URL(\"../pdf.worker.min.mjs\", import.meta.url).toString();\n\nexport default pdfWorkerUrl;\n"]}
@@ -1,5 +1,5 @@
1
1
  export { C as CreateManifestInput, F as FinalizeStorageArgs, I as IngestCommonOptions, a as IngestImageOptions, b as IngestPdfOptions, c as IngestResult, L as LabelGeometry, N as NormalizedPoint, d as NormalizedRect, O as OutputArtifact, P as PdfMapManifest, e as PixelSize, f as PointGeometry, g as PolygonGeometry, R as RectangleGeometry, h as RegionCollection, i as RegionFeature, j as RegionGeometry, k as RegionGeometryType, l as ResolveTileUrlArgs, S as StorageAdapter, m as StorageFinalizeResult, n as StoredArtifact, T as TileFormat, o as TileLevelManifest, W as WriteAssetArgs, p as WriteManifestArgs, q as WriteTileArgs, r as clamp01, s as clampNormalizedPoint, t as clampNormalizedRect, u as createManifest, v as manifestSchema, w as normalizeRegions, x as normalizedToPixels, y as parseManifest, z as pixelsToNormalized, A as rectCenter, B as regionCollectionSchema, D as regionFeatureSchema, E as resolveTileUrl, G as unionRects } from '../ingest-sfbf6503.cjs';
2
- export { G as GetTileUrl, a as GetTileUrlArgs, I as ImageSource, M as MapPointerEvent, b as MapViewState, P as PdfMapSource, c as PdfSource, S as ScreenPoint, T as TilesSource, V as ViewTransitionOptions, d as ViewportController } from '../source-DHrup45h.cjs';
2
+ export { G as GetTileUrl, a as GetTileUrlArgs, I as ImageSource, M as MapPointerEvent, b as MapViewState, P as PdfMapSource, c as PdfSource, S as ScreenPoint, T as TilesSource, V as ViewTransitionOptions, d as ViewportController, p as pdfWorkerUrl } from '../source-CGfHymsL.cjs';
3
3
  import 'zod';
4
4
  import 'react';
5
5
 
@@ -1,5 +1,5 @@
1
1
  export { C as CreateManifestInput, F as FinalizeStorageArgs, I as IngestCommonOptions, a as IngestImageOptions, b as IngestPdfOptions, c as IngestResult, L as LabelGeometry, N as NormalizedPoint, d as NormalizedRect, O as OutputArtifact, P as PdfMapManifest, e as PixelSize, f as PointGeometry, g as PolygonGeometry, R as RectangleGeometry, h as RegionCollection, i as RegionFeature, j as RegionGeometry, k as RegionGeometryType, l as ResolveTileUrlArgs, S as StorageAdapter, m as StorageFinalizeResult, n as StoredArtifact, T as TileFormat, o as TileLevelManifest, W as WriteAssetArgs, p as WriteManifestArgs, q as WriteTileArgs, r as clamp01, s as clampNormalizedPoint, t as clampNormalizedRect, u as createManifest, v as manifestSchema, w as normalizeRegions, x as normalizedToPixels, y as parseManifest, z as pixelsToNormalized, A as rectCenter, B as regionCollectionSchema, D as regionFeatureSchema, E as resolveTileUrl, G as unionRects } from '../ingest-sfbf6503.js';
2
- export { G as GetTileUrl, a as GetTileUrlArgs, I as ImageSource, M as MapPointerEvent, b as MapViewState, P as PdfMapSource, c as PdfSource, S as ScreenPoint, T as TilesSource, V as ViewTransitionOptions, d as ViewportController } from '../source-Cb1QZPVw.js';
2
+ export { G as GetTileUrl, a as GetTileUrlArgs, I as ImageSource, M as MapPointerEvent, b as MapViewState, P as PdfMapSource, c as PdfSource, S as ScreenPoint, T as TilesSource, V as ViewTransitionOptions, d as ViewportController, p as pdfWorkerUrl } from '../source-CfLTVdEE.js';
3
3
  import 'zod';
4
4
  import 'react';
5
5
 
@@ -217,6 +217,9 @@ function ensureLeadingSlash(value) {
217
217
  return value.startsWith("/") ? value : `/${value}`;
218
218
  }
219
219
 
220
- export { clamp01, clampNormalizedPoint, clampNormalizedRect, createManifest, manifestSchema, normalizeRegions, normalizedToPixels, parseManifest, pixelsToNormalized, rectCenter, regionCollectionSchema, regionFeatureSchema, resolveTileUrl, toUint8Array, unionRects };
220
+ // src/shared/pdfWorkerUrl.ts
221
+ var pdfWorkerUrl = new URL("../pdf.worker.min.mjs", import.meta.url).toString();
222
+
223
+ export { clamp01, clampNormalizedPoint, clampNormalizedRect, createManifest, manifestSchema, normalizeRegions, normalizedToPixels, parseManifest, pdfWorkerUrl, pixelsToNormalized, rectCenter, regionCollectionSchema, regionFeatureSchema, resolveTileUrl, toUint8Array, unionRects };
221
224
  //# sourceMappingURL=index.js.map
222
225
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/coordinates.ts","../../src/shared/bytes.ts","../../src/shared/overlays.ts","../../src/shared/manifest.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["export interface NormalizedPoint {\n x: number;\n y: number;\n}\n\nexport interface NormalizedRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface PixelSize {\n width: number;\n height: number;\n}\n\nexport function clamp01(value: number): number {\n return Math.min(1, Math.max(0, value));\n}\n\nexport function clampNormalizedPoint(point: NormalizedPoint): NormalizedPoint {\n return {\n x: clamp01(point.x),\n y: clamp01(point.y),\n };\n}\n\nexport function clampNormalizedRect(rect: NormalizedRect): NormalizedRect {\n const x = clamp01(rect.x);\n const y = clamp01(rect.y);\n const width = Math.min(1 - x, Math.max(0, rect.width));\n const height = Math.min(1 - y, Math.max(0, rect.height));\n return { x, y, width, height };\n}\n\nexport function normalizedToPixels(point: NormalizedPoint, size: PixelSize): NormalizedPoint {\n return {\n x: point.x * size.width,\n y: point.y * size.height,\n };\n}\n\nexport function pixelsToNormalized(point: NormalizedPoint, size: PixelSize): NormalizedPoint {\n if (size.width <= 0 || size.height <= 0) {\n return { x: 0, y: 0 };\n }\n\n return {\n x: point.x / size.width,\n y: point.y / size.height,\n };\n}\n\nexport function rectCenter(rect: NormalizedRect): NormalizedPoint {\n return {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2,\n };\n}\n\nexport function unionRects(rects: readonly NormalizedRect[]): NormalizedRect | null {\n if (rects.length === 0) {\n return null;\n }\n\n let minX = Number.POSITIVE_INFINITY;\n let minY = Number.POSITIVE_INFINITY;\n let maxX = Number.NEGATIVE_INFINITY;\n let maxY = Number.NEGATIVE_INFINITY;\n\n for (const rect of rects) {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n\n return clampNormalizedRect({\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n });\n}\n","export function toUint8Array(input: Buffer | Uint8Array | ArrayBuffer): Uint8Array {\n if (input instanceof ArrayBuffer) {\n return new Uint8Array(input);\n }\n\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n}\n","import { z } from \"zod\";\n\nimport type { NormalizedPoint, NormalizedRect } from \"./coordinates\";\n\nexport type RegionGeometryType = \"polygon\" | \"rectangle\" | \"point\" | \"label\";\n\nexport interface PolygonGeometry {\n type: \"polygon\";\n points: NormalizedPoint[];\n}\n\nexport interface RectangleGeometry {\n type: \"rectangle\";\n rect: NormalizedRect;\n}\n\nexport interface PointGeometry {\n type: \"point\";\n point: NormalizedPoint;\n radius?: number;\n}\n\nexport interface LabelGeometry {\n type: \"label\";\n point: NormalizedPoint;\n text: string;\n}\n\nexport type RegionGeometry =\n | PolygonGeometry\n | RectangleGeometry\n | PointGeometry\n | LabelGeometry;\n\nexport interface RegionFeature<Metadata = Record<string, unknown>> {\n id: string;\n geometry: RegionGeometry;\n label?: string;\n metadata?: Metadata;\n}\n\nexport interface RegionCollection<Metadata = Record<string, unknown>> {\n type: \"FeatureCollection\";\n regions: RegionFeature<Metadata>[];\n}\n\nconst normalizedPointSchema = z.object({\n x: z.number().finite().min(0).max(1),\n y: z.number().finite().min(0).max(1),\n});\n\nconst normalizedRectSchema = z.object({\n x: z.number().finite().min(0).max(1),\n y: z.number().finite().min(0).max(1),\n width: z.number().finite().min(0).max(1),\n height: z.number().finite().min(0).max(1),\n});\n\nexport const regionFeatureSchema = z.object({\n id: z.string().min(1),\n geometry: z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"polygon\"),\n points: z.array(normalizedPointSchema).min(3),\n }),\n z.object({\n type: z.literal(\"rectangle\"),\n rect: normalizedRectSchema,\n }),\n z.object({\n type: z.literal(\"point\"),\n point: normalizedPointSchema,\n radius: z.number().finite().positive().optional(),\n }),\n z.object({\n type: z.literal(\"label\"),\n point: normalizedPointSchema,\n text: z.string().min(1),\n }),\n ]),\n label: z.string().optional(),\n metadata: z.record(z.unknown()).optional(),\n});\n\nexport const regionCollectionSchema = z.object({\n type: z.literal(\"FeatureCollection\"),\n regions: z.array(regionFeatureSchema),\n});\n\nexport function normalizeRegions(\n input?: RegionCollection | RegionFeature[] | null,\n): RegionFeature[] {\n if (!input) {\n return [];\n }\n\n if (Array.isArray(input)) {\n return input;\n }\n\n return input.regions;\n}\n","import { z } from \"zod\";\n\nimport { regionCollectionSchema } from \"./overlays\";\nimport type { RegionCollection } from \"./overlays\";\nimport type { TileFormat } from \"./ingest\";\n\nexport interface TileLevelManifest {\n z: number;\n width: number;\n height: number;\n columns: number;\n rows: number;\n scale: number;\n}\n\nexport interface PdfMapManifest {\n version: 1;\n kind: \"pdf-map\";\n id: string;\n source: {\n type: \"pdf\" | \"image\";\n originalFilename?: string;\n page?: number;\n width: number;\n height: number;\n mimeType?: string;\n };\n coordinateSpace: {\n normalized: true;\n width: number;\n height: number;\n };\n tiles: {\n tileSize: number;\n format: TileFormat;\n minZoom: number;\n maxZoom: number;\n pathTemplate: string;\n levels: TileLevelManifest[];\n };\n view: {\n defaultCenter: [number, number];\n defaultZoom: number;\n minZoom: number;\n maxZoom: number;\n };\n overlays?: {\n inline?: RegionCollection;\n url?: string;\n };\n assets?: {\n preview?: string;\n };\n metadata?: {\n title?: string;\n createdAt?: string;\n [key: string]: unknown;\n };\n}\n\nexport interface CreateManifestInput extends Omit<PdfMapManifest, \"version\" | \"kind\"> {}\n\nexport interface ResolveTileUrlArgs {\n manifest: PdfMapManifest;\n z: number;\n x: number;\n y: number;\n baseUrl?: string;\n overrideTemplate?: string;\n}\n\nconst tileLevelSchema = z.object({\n z: z.number().int().min(0),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n columns: z.number().int().positive(),\n rows: z.number().int().positive(),\n scale: z.number().positive(),\n});\n\nexport const manifestSchema: z.ZodType<PdfMapManifest> = z.object({\n version: z.literal(1),\n kind: z.literal(\"pdf-map\"),\n id: z.string().min(1),\n source: z.object({\n type: z.union([z.literal(\"pdf\"), z.literal(\"image\")]),\n originalFilename: z.string().optional(),\n page: z.number().int().positive().optional(),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n mimeType: z.string().optional(),\n }),\n coordinateSpace: z.object({\n normalized: z.literal(true),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n }),\n tiles: z.object({\n tileSize: z.number().int().positive(),\n format: z.union([z.literal(\"webp\"), z.literal(\"jpeg\"), z.literal(\"png\")]),\n minZoom: z.number().int().min(0),\n maxZoom: z.number().int().min(0),\n pathTemplate: z.string().min(1),\n levels: z.array(tileLevelSchema),\n }),\n view: z.object({\n defaultCenter: z.tuple([\n z.number().finite().min(0).max(1),\n z.number().finite().min(0).max(1),\n ]),\n defaultZoom: z.number().finite(),\n minZoom: z.number().finite(),\n maxZoom: z.number().finite(),\n }),\n overlays: z\n .object({\n inline: regionCollectionSchema.optional(),\n url: z.string().optional(),\n })\n .optional(),\n assets: z\n .object({\n preview: z.string().optional(),\n })\n .optional(),\n metadata: z\n .object({\n title: z.string().optional(),\n createdAt: z.string().optional(),\n })\n .catchall(z.unknown())\n .optional(),\n});\n\nexport function createManifest(input: CreateManifestInput): PdfMapManifest {\n return manifestSchema.parse({\n version: 1,\n kind: \"pdf-map\",\n ...input,\n });\n}\n\nexport function parseManifest(input: unknown): PdfMapManifest {\n return manifestSchema.parse(input);\n}\n\nexport function resolveTileUrl(args: ResolveTileUrlArgs): string {\n const template = args.overrideTemplate ?? args.manifest.tiles.pathTemplate;\n const relative = template\n .replaceAll(\"{z}\", String(args.z))\n .replaceAll(\"{x}\", String(args.x))\n .replaceAll(\"{y}\", String(args.y));\n\n if (/^https?:\\/\\//.test(relative)) {\n return relative;\n }\n\n if (!args.baseUrl) {\n return relative;\n }\n\n if (/^https?:\\/\\//.test(args.baseUrl)) {\n return new URL(relative.replace(/^\\//, \"\"), ensureTrailingSlash(args.baseUrl)).toString();\n }\n\n return joinRelativeUrl(args.baseUrl, relative);\n}\n\nfunction ensureTrailingSlash(value: string): string {\n return value.endsWith(\"/\") ? value : `${value}/`;\n}\n\nfunction joinRelativeUrl(baseUrl: string, path: string): string {\n const normalizedBase = ensureLeadingSlash(stripTrailingSlash(baseUrl));\n const normalizedPath = stripLeadingSlash(path);\n\n if (!normalizedPath) {\n return normalizedBase || \"/\";\n }\n\n return normalizedBase ? `${normalizedBase}/${normalizedPath}` : `/${normalizedPath}`;\n}\n\nfunction stripLeadingSlash(value: string): string {\n return value.replace(/^\\/+/, \"\");\n}\n\nfunction stripTrailingSlash(value: string): string {\n return value.replace(/\\/+$/, \"\");\n}\n\nfunction ensureLeadingSlash(value: string): string {\n if (!value) {\n return \"\";\n }\n return value.startsWith(\"/\") ? value : `/${value}`;\n}\n"]}
1
+ {"version":3,"sources":["../../src/shared/coordinates.ts","../../src/shared/bytes.ts","../../src/shared/overlays.ts","../../src/shared/manifest.ts","../../src/shared/pdfWorkerUrl.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["export interface NormalizedPoint {\n x: number;\n y: number;\n}\n\nexport interface NormalizedRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface PixelSize {\n width: number;\n height: number;\n}\n\nexport function clamp01(value: number): number {\n return Math.min(1, Math.max(0, value));\n}\n\nexport function clampNormalizedPoint(point: NormalizedPoint): NormalizedPoint {\n return {\n x: clamp01(point.x),\n y: clamp01(point.y),\n };\n}\n\nexport function clampNormalizedRect(rect: NormalizedRect): NormalizedRect {\n const x = clamp01(rect.x);\n const y = clamp01(rect.y);\n const width = Math.min(1 - x, Math.max(0, rect.width));\n const height = Math.min(1 - y, Math.max(0, rect.height));\n return { x, y, width, height };\n}\n\nexport function normalizedToPixels(point: NormalizedPoint, size: PixelSize): NormalizedPoint {\n return {\n x: point.x * size.width,\n y: point.y * size.height,\n };\n}\n\nexport function pixelsToNormalized(point: NormalizedPoint, size: PixelSize): NormalizedPoint {\n if (size.width <= 0 || size.height <= 0) {\n return { x: 0, y: 0 };\n }\n\n return {\n x: point.x / size.width,\n y: point.y / size.height,\n };\n}\n\nexport function rectCenter(rect: NormalizedRect): NormalizedPoint {\n return {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2,\n };\n}\n\nexport function unionRects(rects: readonly NormalizedRect[]): NormalizedRect | null {\n if (rects.length === 0) {\n return null;\n }\n\n let minX = Number.POSITIVE_INFINITY;\n let minY = Number.POSITIVE_INFINITY;\n let maxX = Number.NEGATIVE_INFINITY;\n let maxY = Number.NEGATIVE_INFINITY;\n\n for (const rect of rects) {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n\n return clampNormalizedRect({\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n });\n}\n","export function toUint8Array(input: Buffer | Uint8Array | ArrayBuffer): Uint8Array {\n if (input instanceof ArrayBuffer) {\n return new Uint8Array(input);\n }\n\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n}\n","import { z } from \"zod\";\n\nimport type { NormalizedPoint, NormalizedRect } from \"./coordinates\";\n\nexport type RegionGeometryType = \"polygon\" | \"rectangle\" | \"point\" | \"label\";\n\nexport interface PolygonGeometry {\n type: \"polygon\";\n points: NormalizedPoint[];\n}\n\nexport interface RectangleGeometry {\n type: \"rectangle\";\n rect: NormalizedRect;\n}\n\nexport interface PointGeometry {\n type: \"point\";\n point: NormalizedPoint;\n radius?: number;\n}\n\nexport interface LabelGeometry {\n type: \"label\";\n point: NormalizedPoint;\n text: string;\n}\n\nexport type RegionGeometry =\n | PolygonGeometry\n | RectangleGeometry\n | PointGeometry\n | LabelGeometry;\n\nexport interface RegionFeature<Metadata = Record<string, unknown>> {\n id: string;\n geometry: RegionGeometry;\n label?: string;\n metadata?: Metadata;\n}\n\nexport interface RegionCollection<Metadata = Record<string, unknown>> {\n type: \"FeatureCollection\";\n regions: RegionFeature<Metadata>[];\n}\n\nconst normalizedPointSchema = z.object({\n x: z.number().finite().min(0).max(1),\n y: z.number().finite().min(0).max(1),\n});\n\nconst normalizedRectSchema = z.object({\n x: z.number().finite().min(0).max(1),\n y: z.number().finite().min(0).max(1),\n width: z.number().finite().min(0).max(1),\n height: z.number().finite().min(0).max(1),\n});\n\nexport const regionFeatureSchema = z.object({\n id: z.string().min(1),\n geometry: z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"polygon\"),\n points: z.array(normalizedPointSchema).min(3),\n }),\n z.object({\n type: z.literal(\"rectangle\"),\n rect: normalizedRectSchema,\n }),\n z.object({\n type: z.literal(\"point\"),\n point: normalizedPointSchema,\n radius: z.number().finite().positive().optional(),\n }),\n z.object({\n type: z.literal(\"label\"),\n point: normalizedPointSchema,\n text: z.string().min(1),\n }),\n ]),\n label: z.string().optional(),\n metadata: z.record(z.unknown()).optional(),\n});\n\nexport const regionCollectionSchema = z.object({\n type: z.literal(\"FeatureCollection\"),\n regions: z.array(regionFeatureSchema),\n});\n\nexport function normalizeRegions(\n input?: RegionCollection | RegionFeature[] | null,\n): RegionFeature[] {\n if (!input) {\n return [];\n }\n\n if (Array.isArray(input)) {\n return input;\n }\n\n return input.regions;\n}\n","import { z } from \"zod\";\n\nimport { regionCollectionSchema } from \"./overlays\";\nimport type { RegionCollection } from \"./overlays\";\nimport type { TileFormat } from \"./ingest\";\n\nexport interface TileLevelManifest {\n z: number;\n width: number;\n height: number;\n columns: number;\n rows: number;\n scale: number;\n}\n\nexport interface PdfMapManifest {\n version: 1;\n kind: \"pdf-map\";\n id: string;\n source: {\n type: \"pdf\" | \"image\";\n originalFilename?: string;\n page?: number;\n width: number;\n height: number;\n mimeType?: string;\n };\n coordinateSpace: {\n normalized: true;\n width: number;\n height: number;\n };\n tiles: {\n tileSize: number;\n format: TileFormat;\n minZoom: number;\n maxZoom: number;\n pathTemplate: string;\n levels: TileLevelManifest[];\n };\n view: {\n defaultCenter: [number, number];\n defaultZoom: number;\n minZoom: number;\n maxZoom: number;\n };\n overlays?: {\n inline?: RegionCollection;\n url?: string;\n };\n assets?: {\n preview?: string;\n };\n metadata?: {\n title?: string;\n createdAt?: string;\n [key: string]: unknown;\n };\n}\n\nexport interface CreateManifestInput extends Omit<PdfMapManifest, \"version\" | \"kind\"> {}\n\nexport interface ResolveTileUrlArgs {\n manifest: PdfMapManifest;\n z: number;\n x: number;\n y: number;\n baseUrl?: string;\n overrideTemplate?: string;\n}\n\nconst tileLevelSchema = z.object({\n z: z.number().int().min(0),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n columns: z.number().int().positive(),\n rows: z.number().int().positive(),\n scale: z.number().positive(),\n});\n\nexport const manifestSchema: z.ZodType<PdfMapManifest> = z.object({\n version: z.literal(1),\n kind: z.literal(\"pdf-map\"),\n id: z.string().min(1),\n source: z.object({\n type: z.union([z.literal(\"pdf\"), z.literal(\"image\")]),\n originalFilename: z.string().optional(),\n page: z.number().int().positive().optional(),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n mimeType: z.string().optional(),\n }),\n coordinateSpace: z.object({\n normalized: z.literal(true),\n width: z.number().int().positive(),\n height: z.number().int().positive(),\n }),\n tiles: z.object({\n tileSize: z.number().int().positive(),\n format: z.union([z.literal(\"webp\"), z.literal(\"jpeg\"), z.literal(\"png\")]),\n minZoom: z.number().int().min(0),\n maxZoom: z.number().int().min(0),\n pathTemplate: z.string().min(1),\n levels: z.array(tileLevelSchema),\n }),\n view: z.object({\n defaultCenter: z.tuple([\n z.number().finite().min(0).max(1),\n z.number().finite().min(0).max(1),\n ]),\n defaultZoom: z.number().finite(),\n minZoom: z.number().finite(),\n maxZoom: z.number().finite(),\n }),\n overlays: z\n .object({\n inline: regionCollectionSchema.optional(),\n url: z.string().optional(),\n })\n .optional(),\n assets: z\n .object({\n preview: z.string().optional(),\n })\n .optional(),\n metadata: z\n .object({\n title: z.string().optional(),\n createdAt: z.string().optional(),\n })\n .catchall(z.unknown())\n .optional(),\n});\n\nexport function createManifest(input: CreateManifestInput): PdfMapManifest {\n return manifestSchema.parse({\n version: 1,\n kind: \"pdf-map\",\n ...input,\n });\n}\n\nexport function parseManifest(input: unknown): PdfMapManifest {\n return manifestSchema.parse(input);\n}\n\nexport function resolveTileUrl(args: ResolveTileUrlArgs): string {\n const template = args.overrideTemplate ?? args.manifest.tiles.pathTemplate;\n const relative = template\n .replaceAll(\"{z}\", String(args.z))\n .replaceAll(\"{x}\", String(args.x))\n .replaceAll(\"{y}\", String(args.y));\n\n if (/^https?:\\/\\//.test(relative)) {\n return relative;\n }\n\n if (!args.baseUrl) {\n return relative;\n }\n\n if (/^https?:\\/\\//.test(args.baseUrl)) {\n return new URL(relative.replace(/^\\//, \"\"), ensureTrailingSlash(args.baseUrl)).toString();\n }\n\n return joinRelativeUrl(args.baseUrl, relative);\n}\n\nfunction ensureTrailingSlash(value: string): string {\n return value.endsWith(\"/\") ? value : `${value}/`;\n}\n\nfunction joinRelativeUrl(baseUrl: string, path: string): string {\n const normalizedBase = ensureLeadingSlash(stripTrailingSlash(baseUrl));\n const normalizedPath = stripLeadingSlash(path);\n\n if (!normalizedPath) {\n return normalizedBase || \"/\";\n }\n\n return normalizedBase ? `${normalizedBase}/${normalizedPath}` : `/${normalizedPath}`;\n}\n\nfunction stripLeadingSlash(value: string): string {\n return value.replace(/^\\/+/, \"\");\n}\n\nfunction stripTrailingSlash(value: string): string {\n return value.replace(/\\/+$/, \"\");\n}\n\nfunction ensureLeadingSlash(value: string): string {\n if (!value) {\n return \"\";\n }\n return value.startsWith(\"/\") ? value : `/${value}`;\n}\n","export const pdfWorkerUrl = new URL(\"../pdf.worker.min.mjs\", import.meta.url).toString();\n\nexport default pdfWorkerUrl;\n"]}
@@ -30,6 +30,8 @@ interface ViewportController {
30
30
  normalizedToScreen(point: NormalizedPoint): ScreenPoint;
31
31
  }
32
32
 
33
+ declare const pdfWorkerUrl: string;
34
+
33
35
  interface GetTileUrlArgs {
34
36
  manifest: PdfMapManifest;
35
37
  z: number;
@@ -54,7 +56,8 @@ interface PdfSource {
54
56
  type: "pdf";
55
57
  file: string | Uint8Array | ArrayBuffer;
56
58
  page?: number;
59
+ workerSrc?: string;
57
60
  }
58
61
  type PdfMapSource = TilesSource | ImageSource | PdfSource;
59
62
 
60
- export type { GetTileUrl as G, ImageSource as I, MapPointerEvent as M, PdfMapSource as P, ScreenPoint as S, TilesSource as T, ViewTransitionOptions as V, GetTileUrlArgs as a, MapViewState as b, PdfSource as c, ViewportController as d };
63
+ export { type GetTileUrl as G, type ImageSource as I, type MapPointerEvent as M, type PdfMapSource as P, type ScreenPoint as S, type TilesSource as T, type ViewTransitionOptions as V, type GetTileUrlArgs as a, type MapViewState as b, type PdfSource as c, type ViewportController as d, pdfWorkerUrl as p };
@@ -30,6 +30,8 @@ interface ViewportController {
30
30
  normalizedToScreen(point: NormalizedPoint): ScreenPoint;
31
31
  }
32
32
 
33
+ declare const pdfWorkerUrl: string;
34
+
33
35
  interface GetTileUrlArgs {
34
36
  manifest: PdfMapManifest;
35
37
  z: number;
@@ -54,7 +56,8 @@ interface PdfSource {
54
56
  type: "pdf";
55
57
  file: string | Uint8Array | ArrayBuffer;
56
58
  page?: number;
59
+ workerSrc?: string;
57
60
  }
58
61
  type PdfMapSource = TilesSource | ImageSource | PdfSource;
59
62
 
60
- export type { GetTileUrl as G, ImageSource as I, MapPointerEvent as M, PdfMapSource as P, ScreenPoint as S, TilesSource as T, ViewTransitionOptions as V, GetTileUrlArgs as a, MapViewState as b, PdfSource as c, ViewportController as d };
63
+ export { type GetTileUrl as G, type ImageSource as I, type MapPointerEvent as M, type PdfMapSource as P, type ScreenPoint as S, type TilesSource as T, type ViewTransitionOptions as V, type GetTileUrlArgs as a, type MapViewState as b, type PdfSource as c, type ViewportController as d, pdfWorkerUrl as p };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdf-mapview",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "React viewer and ingest toolkit for map-like PDF, floorplan, and large image experiences.",
5
5
  "keywords": [
6
6
  "pdf",