@tileflow/capture 0.1.0-alpha.36 → 0.1.0-alpha.38
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/THIRD_PARTY_NOTICES.md +1 -1
- package/dist/{chunk-BI5PWIH4.js → chunk-EM6T7YER.js} +44 -37
- package/dist/index.d.ts +3 -3
- package/dist/index.js +32 -12
- package/dist/{receipt-CfZkzyXd.d.ts → receipt-CgJMeTdQ.d.ts} +22 -18
- package/dist/receipt.d.ts +1 -1
- package/dist/receipt.js +1 -1
- package/package.json +8 -8
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -18,7 +18,7 @@ the platform-specific headless shell into its versioned per-user browser cache;
|
|
|
18
18
|
distribution carries Chromium's license and credits. Chromium source and license information are
|
|
19
19
|
available at https://www.chromium.org/chromium-projects/.
|
|
20
20
|
|
|
21
|
-
## MapLibre GL JS 6.
|
|
21
|
+
## MapLibre GL JS 6.16.0
|
|
22
22
|
|
|
23
23
|
Copyright (c) 2023 MapLibre contributors. Licensed under BSD-3-Clause. The installed `maplibre-gl`
|
|
24
24
|
package includes `LICENSE.txt`, including notices for code derived from Mapbox GL JS and other
|
|
@@ -73,7 +73,7 @@ function boundText(value, limit) {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
// src/receipt.ts
|
|
76
|
-
var tileflowCaptureReceiptSchemaVersion =
|
|
76
|
+
var tileflowCaptureReceiptSchemaVersion = 5;
|
|
77
77
|
var tileflowCaptureReceiptLimits = Object.freeze({ maximumBytes: 64 * 1024 });
|
|
78
78
|
var maximumReceiptBindingEntries = 128;
|
|
79
79
|
function createTileflowCaptureReceipt(input) {
|
|
@@ -458,10 +458,10 @@ function validateDataIdentity(value) {
|
|
|
458
458
|
"releaseId",
|
|
459
459
|
"schema",
|
|
460
460
|
"schemaVersion",
|
|
461
|
-
"
|
|
462
|
-
"
|
|
461
|
+
"sourceId",
|
|
462
|
+
"sources"
|
|
463
463
|
]);
|
|
464
|
-
if (data.product !== "world-v1" || data.schema !== "
|
|
464
|
+
if (data.product !== "world-v1" || data.schema !== "tileflow-world" || data.sourceId !== "tileflow") {
|
|
465
465
|
throw invalidReceipt("The baseline receipt has an unsupported World data contract.");
|
|
466
466
|
}
|
|
467
467
|
return {
|
|
@@ -472,40 +472,67 @@ function validateDataIdentity(value) {
|
|
|
472
472
|
kind: "tileflow-world",
|
|
473
473
|
product: "world-v1",
|
|
474
474
|
releaseId: requireWorldReleaseId(data.releaseId),
|
|
475
|
-
schema: "
|
|
475
|
+
schema: "tileflow-world",
|
|
476
476
|
schemaVersion: requirePositiveInteger(data.schemaVersion, "data.schemaVersion"),
|
|
477
|
-
|
|
478
|
-
|
|
477
|
+
sourceId: "tileflow",
|
|
478
|
+
sources: validateWorldSources(data.sources)
|
|
479
479
|
};
|
|
480
480
|
}
|
|
481
481
|
if (data.kind !== "vector-tiles") {
|
|
482
482
|
throw invalidReceipt("The baseline receipt has an invalid data.kind.");
|
|
483
483
|
}
|
|
484
|
+
const openMapTiles = data.schema === "openmaptiles";
|
|
484
485
|
requireExactKeys(data, [
|
|
485
|
-
"bindings",
|
|
486
|
-
"capabilities",
|
|
486
|
+
...openMapTiles ? ["bindings"] : [],
|
|
487
487
|
"kind",
|
|
488
488
|
...data.revision === void 0 ? [] : ["revision"],
|
|
489
489
|
"schema",
|
|
490
490
|
"schemaVersion",
|
|
491
|
-
"semantics",
|
|
491
|
+
...openMapTiles ? ["semantics"] : [],
|
|
492
492
|
"source",
|
|
493
493
|
"sourceId"
|
|
494
494
|
]);
|
|
495
|
-
if (data.schema !== "
|
|
495
|
+
if (!openMapTiles && data.schema !== "tileflow-world" || data.sourceId !== "tileflow") {
|
|
496
496
|
throw invalidReceipt("The baseline receipt has an unsupported data contract.");
|
|
497
497
|
}
|
|
498
|
-
|
|
499
|
-
bindings: validateDataBindings(data.bindings, "data.bindings"),
|
|
500
|
-
capabilities: validateDataCapabilities(data.capabilities, "data.capabilities"),
|
|
498
|
+
const common = {
|
|
501
499
|
kind: "vector-tiles",
|
|
502
500
|
...data.revision === void 0 ? {} : { revision: requireSourceRevision(data.revision) },
|
|
503
|
-
schema: "openmaptiles",
|
|
504
501
|
schemaVersion: requirePositiveInteger(data.schemaVersion, "data.schemaVersion"),
|
|
505
|
-
semantics: validateDataSemantics(data.semantics, "data.semantics"),
|
|
506
502
|
source: validateDataSource(data.source, "data.source"),
|
|
507
503
|
sourceId: "tileflow"
|
|
508
504
|
};
|
|
505
|
+
return openMapTiles ? {
|
|
506
|
+
...common,
|
|
507
|
+
bindings: validateDataBindings(data.bindings, "data.bindings"),
|
|
508
|
+
schema: "openmaptiles",
|
|
509
|
+
semantics: validateDataSemantics(data.semantics, "data.semantics")
|
|
510
|
+
} : { ...common, schema: "tileflow-world" };
|
|
511
|
+
}
|
|
512
|
+
function validateWorldSources(value) {
|
|
513
|
+
if (!Array.isArray(value) || value.length < 1 || value.length > 2) {
|
|
514
|
+
throw invalidReceipt("The baseline receipt has invalid data.sources.");
|
|
515
|
+
}
|
|
516
|
+
const sources = value.map((entry, index) => {
|
|
517
|
+
const source = requireRecord(entry, `data.sources[${index}]`);
|
|
518
|
+
requireExactKeys(source, ["archiveSha256", "contractSha256", "dataContractSha256", "id"]);
|
|
519
|
+
if (source.id !== "world" && source.id !== "world-detail") {
|
|
520
|
+
throw invalidReceipt("The baseline receipt has an invalid World source.");
|
|
521
|
+
}
|
|
522
|
+
return {
|
|
523
|
+
archiveSha256: requireHash(source.archiveSha256, `data.sources[${index}].archiveSha256`),
|
|
524
|
+
contractSha256: requireHash(source.contractSha256, `data.sources[${index}].contractSha256`),
|
|
525
|
+
dataContractSha256: requireHash(
|
|
526
|
+
source.dataContractSha256,
|
|
527
|
+
`data.sources[${index}].dataContractSha256`
|
|
528
|
+
),
|
|
529
|
+
id: source.id
|
|
530
|
+
};
|
|
531
|
+
});
|
|
532
|
+
if (sources.length === 2 && (sources[0].id !== "world" || sources[1].id !== "world-detail")) {
|
|
533
|
+
throw invalidReceipt("The baseline receipt has World sources out of order.");
|
|
534
|
+
}
|
|
535
|
+
return sources;
|
|
509
536
|
}
|
|
510
537
|
function normalizeCaptureDataInput(input) {
|
|
511
538
|
if (input.kind === "tileflow-world") return input;
|
|
@@ -553,26 +580,6 @@ function requireBindingValue(value, field) {
|
|
|
553
580
|
}
|
|
554
581
|
return value;
|
|
555
582
|
}
|
|
556
|
-
function validateDataCapabilities(value, field) {
|
|
557
|
-
const capabilities = requireRecord(value, field);
|
|
558
|
-
requireExactKeys(capabilities, [
|
|
559
|
-
"businessCorridor",
|
|
560
|
-
"bathymetry",
|
|
561
|
-
"canopy",
|
|
562
|
-
"globalLandcover",
|
|
563
|
-
"tree"
|
|
564
|
-
]);
|
|
565
|
-
if (typeof capabilities.businessCorridor !== "boolean" || typeof capabilities.bathymetry !== "boolean" || typeof capabilities.canopy !== "boolean" || typeof capabilities.globalLandcover !== "boolean" || typeof capabilities.tree !== "boolean") {
|
|
566
|
-
throw invalidReceipt(`The baseline receipt has an invalid ${field} object.`);
|
|
567
|
-
}
|
|
568
|
-
return {
|
|
569
|
-
businessCorridor: capabilities.businessCorridor,
|
|
570
|
-
bathymetry: capabilities.bathymetry,
|
|
571
|
-
canopy: capabilities.canopy,
|
|
572
|
-
globalLandcover: capabilities.globalLandcover,
|
|
573
|
-
tree: capabilities.tree
|
|
574
|
-
};
|
|
575
|
-
}
|
|
576
583
|
function validateDataSource(value, field) {
|
|
577
584
|
const source = requireRecord(value, field);
|
|
578
585
|
requireExactKeys(source, ["kind", "sha256"]);
|
|
@@ -611,7 +618,7 @@ function assertPlainReceiptData(value, path = "receipt", state = {
|
|
|
611
618
|
if (value === null || value === void 0 || typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
612
619
|
return;
|
|
613
620
|
}
|
|
614
|
-
if (typeof value === "object" && Array.isArray(value) && state.allowArrays) {
|
|
621
|
+
if (typeof value === "object" && Array.isArray(value) && (state.allowArrays || path.endsWith(".data.sources"))) {
|
|
615
622
|
assertPlainReceiptArray(value, path, state, depth);
|
|
616
623
|
return;
|
|
617
624
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Browser } from 'playwright';
|
|
2
|
-
import { T as TileflowCaptureRendererIdentity, a as TileflowShotReceiptV1, b as TileflowCaptureReceipt, c as TileflowCaptureDataInput, d as TileflowCaptureWorldIdentity } from './receipt-
|
|
3
|
-
export { C as CreateTileflowCaptureReceiptInput, e as CreateTileflowShotReceiptInput, f as TileflowCaptureDataBindings, g as
|
|
2
|
+
import { T as TileflowCaptureRendererIdentity, a as TileflowShotReceiptV1, b as TileflowCaptureReceipt, c as TileflowCaptureDataInput, d as TileflowCaptureWorldIdentity } from './receipt-CgJMeTdQ.js';
|
|
3
|
+
export { C as CreateTileflowCaptureReceiptInput, e as CreateTileflowShotReceiptInput, f as TileflowCaptureDataBindings, g as TileflowCaptureDataIdentity, h as TileflowCaptureDataSemantics, i as TileflowCaptureDataSource, j as TileflowCaptureVectorIdentity, k as TileflowCaptureVerification, l as TileflowCaptureWorldSource, m as createTileflowCaptureReceipt, n as createTileflowCaptureRendererIdentity, o as createTileflowShotReceipt, p as parseTileflowCaptureReceipt, q as parseTileflowShotReceipt, s as serializeTileflowCaptureReceipt, r as serializeTileflowShotReceipt, t as tileflowCaptureReceiptLimits, u as tileflowCaptureReceiptSchemaVersion, v as tileflowCaptureRuntime, w as tileflowShotReceiptLimits, x as tileflowShotReceiptSchemaVersion, y as validateTileflowCaptureReceipt, z as validateTileflowShotReceipt } from './receipt-CgJMeTdQ.js';
|
|
4
4
|
import { NormalizedTileflowCaptureShot, NormalizedTileflowCaptureScene, TileflowCaptureScene, MapLibreStyle } from '@tileflow/core';
|
|
5
5
|
import { TileflowBuildAsset, TileflowIconResolutionOptions, TileflowBuildArtifacts } from '@tileflow/dev/artifacts';
|
|
6
6
|
|
|
@@ -181,7 +181,7 @@ type FetchTileJson = (input: string, init: {
|
|
|
181
181
|
signal?: AbortSignal;
|
|
182
182
|
}) => Promise<Pick<Response, 'ok' | 'status' | 'text'>>;
|
|
183
183
|
type TileflowCaptureResolvedWorldV1 = Readonly<{
|
|
184
|
-
identity: Omit<TileflowCaptureWorldIdentity, 'kind' | 'schema' | 'schemaVersion' | '
|
|
184
|
+
identity: Omit<TileflowCaptureWorldIdentity, 'kind' | 'schema' | 'schemaVersion' | 'sourceId'>;
|
|
185
185
|
tileJsonUrl: string;
|
|
186
186
|
tileJson: string;
|
|
187
187
|
tiles: readonly [string];
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
tileflowShotReceiptSchemaVersion,
|
|
14
14
|
validateTileflowCaptureReceipt,
|
|
15
15
|
validateTileflowShotReceipt
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-EM6T7YER.js";
|
|
17
17
|
|
|
18
18
|
// src/browser.ts
|
|
19
19
|
import { spawn } from "child_process";
|
|
@@ -2292,7 +2292,8 @@ function uniqueFontFaces(styles) {
|
|
|
2292
2292
|
import { createHash } from "crypto";
|
|
2293
2293
|
import {
|
|
2294
2294
|
isTileflowWorldReleaseId,
|
|
2295
|
-
tileflowWorldTileJsonUrl
|
|
2295
|
+
tileflowWorldTileJsonUrl,
|
|
2296
|
+
tileflowWorldTilesets
|
|
2296
2297
|
} from "@tileflow/core";
|
|
2297
2298
|
var tileflowWorldCurrentTileJsonUrl = tileflowWorldTileJsonUrl;
|
|
2298
2299
|
var maximumTileJsonBytes = 1024 * 1024;
|
|
@@ -2314,9 +2315,8 @@ var TileflowCaptureWorldSession = class {
|
|
|
2314
2315
|
const data = {
|
|
2315
2316
|
...resolution.identity,
|
|
2316
2317
|
kind: "tileflow-world",
|
|
2317
|
-
schema: requireLiteral(metadata.schema, "
|
|
2318
|
+
schema: requireLiteral(metadata.schema, "tileflow-world", "schema"),
|
|
2318
2319
|
schemaVersion: requirePositiveInteger(metadata.schemaVersion, "schemaVersion"),
|
|
2319
|
-
semantics: validateSemantics(metadata.semantics),
|
|
2320
2320
|
sourceId: requireLiteral(metadata.sourceId, "tileflow", "sourceId")
|
|
2321
2321
|
};
|
|
2322
2322
|
const { tiles: _mutableTiles, url: _mutableUrl, ...sourceWithoutSelector } = source;
|
|
@@ -2398,7 +2398,9 @@ async function resolveTileflowCaptureWorldTileJson(tileJsonUrl, options = {}) {
|
|
|
2398
2398
|
"dataContractSha256",
|
|
2399
2399
|
"descriptorSha256",
|
|
2400
2400
|
"product",
|
|
2401
|
-
"releaseId"
|
|
2401
|
+
"releaseId",
|
|
2402
|
+
"releaseSources",
|
|
2403
|
+
"sources"
|
|
2402
2404
|
]);
|
|
2403
2405
|
if (world.product !== "world-v1") {
|
|
2404
2406
|
throw worldResolutionError("Tileflow World TileJSON has an unsupported product.");
|
|
@@ -2411,6 +2413,25 @@ async function resolveTileflowCaptureWorldTileJson(tileJsonUrl, options = {}) {
|
|
|
2411
2413
|
);
|
|
2412
2414
|
}
|
|
2413
2415
|
const tileTemplate = validateExactTileTemplate(tileJson.tiles[0], releaseId, descriptorSha256);
|
|
2416
|
+
const releaseSources = requireWorldSources(world.releaseSources, "releaseSources");
|
|
2417
|
+
if (!Array.isArray(world.sources) || world.sources.length === 0) {
|
|
2418
|
+
throw worldResolutionError("Tileflow World TileJSON has no selected sources.");
|
|
2419
|
+
}
|
|
2420
|
+
const sources = world.sources.map((value) => {
|
|
2421
|
+
const source = requireRecord(value, "TileJSON tileflow.world.sources entry");
|
|
2422
|
+
requireExactKeys(source, ["archiveSha256", "contractSha256", "dataContractSha256", "id"]);
|
|
2423
|
+
return {
|
|
2424
|
+
archiveSha256: requireHash(source.archiveSha256, "sources.archiveSha256"),
|
|
2425
|
+
contractSha256: requireHash(source.contractSha256, "sources.contractSha256"),
|
|
2426
|
+
dataContractSha256: requireHash(source.dataContractSha256, "sources.dataContractSha256"),
|
|
2427
|
+
id: requireWorldSources([source.id], "sources.id")[0]
|
|
2428
|
+
};
|
|
2429
|
+
});
|
|
2430
|
+
const ids = sources.map(({ id: id2 }) => id2);
|
|
2431
|
+
const canonical = tileflowWorldTilesets.filter((id2) => ids.includes(id2));
|
|
2432
|
+
if (new Set(ids).size !== ids.length || ids.join() !== canonical.join() || ids.some((id2) => !releaseSources.includes(id2))) {
|
|
2433
|
+
throw worldResolutionError("Tileflow World TileJSON sources are not a canonical selection.");
|
|
2434
|
+
}
|
|
2414
2435
|
return {
|
|
2415
2436
|
identity: {
|
|
2416
2437
|
archiveSha256: requireHash(world.archiveSha256, "archiveSha256"),
|
|
@@ -2418,7 +2439,8 @@ async function resolveTileflowCaptureWorldTileJson(tileJsonUrl, options = {}) {
|
|
|
2418
2439
|
dataContractSha256: requireHash(world.dataContractSha256, "dataContractSha256"),
|
|
2419
2440
|
descriptorSha256,
|
|
2420
2441
|
product: "world-v1",
|
|
2421
|
-
releaseId
|
|
2442
|
+
releaseId,
|
|
2443
|
+
sources
|
|
2422
2444
|
},
|
|
2423
2445
|
tileJsonUrl: normalizedUrl,
|
|
2424
2446
|
tileJson: text,
|
|
@@ -2501,13 +2523,11 @@ function validateExactTileTemplate(value, releaseId, descriptorSha256) {
|
|
|
2501
2523
|
}
|
|
2502
2524
|
return value;
|
|
2503
2525
|
}
|
|
2504
|
-
function
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
if (semantics.parkLayer !== "mixed" && semantics.parkLayer !== "protected-only") {
|
|
2508
|
-
throw worldResolutionError("The compiled style has invalid park semantics.");
|
|
2526
|
+
function requireWorldSources(value, field) {
|
|
2527
|
+
if (!Array.isArray(value) || value.length === 0 || value.some((id2) => !tileflowWorldTilesets.includes(id2)) || new Set(value).size !== value.length) {
|
|
2528
|
+
throw worldResolutionError(`Tileflow World TileJSON has invalid ${field}.`);
|
|
2509
2529
|
}
|
|
2510
|
-
return
|
|
2530
|
+
return value;
|
|
2511
2531
|
}
|
|
2512
2532
|
function requireRecord(value, field) {
|
|
2513
2533
|
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
@@ -16,7 +16,7 @@ declare const tileflowCaptureRuntime: Readonly<{
|
|
|
16
16
|
}>;
|
|
17
17
|
declare function createTileflowCaptureRendererIdentity(browser?: Pick<Browser, 'version'>): TileflowCaptureRendererIdentity;
|
|
18
18
|
|
|
19
|
-
declare const tileflowCaptureReceiptSchemaVersion:
|
|
19
|
+
declare const tileflowCaptureReceiptSchemaVersion: 5;
|
|
20
20
|
declare const tileflowCaptureReceiptLimits: Readonly<{
|
|
21
21
|
maximumBytes: number;
|
|
22
22
|
}>;
|
|
@@ -24,13 +24,6 @@ type TileflowCaptureDataBindings = {
|
|
|
24
24
|
fields: Record<string, string>;
|
|
25
25
|
layers: Record<string, string>;
|
|
26
26
|
};
|
|
27
|
-
type TileflowCaptureDataCapabilities = {
|
|
28
|
-
businessCorridor: boolean;
|
|
29
|
-
bathymetry: boolean;
|
|
30
|
-
canopy: boolean;
|
|
31
|
-
globalLandcover: boolean;
|
|
32
|
-
tree: boolean;
|
|
33
|
-
};
|
|
34
27
|
type TileflowCaptureDataSource = {
|
|
35
28
|
kind: 'loopback' | 'opaque' | 'remote' | 'root-relative';
|
|
36
29
|
/** SHA-256 of a credential-free, query-free endpoint identity. */
|
|
@@ -39,6 +32,13 @@ type TileflowCaptureDataSource = {
|
|
|
39
32
|
type TileflowCaptureDataSemantics = {
|
|
40
33
|
parkLayer: 'mixed' | 'protected-only';
|
|
41
34
|
};
|
|
35
|
+
/** One World tileset a capture read, with its archive and data contract digests. */
|
|
36
|
+
type TileflowCaptureWorldSource = {
|
|
37
|
+
archiveSha256: string;
|
|
38
|
+
contractSha256: string;
|
|
39
|
+
dataContractSha256: string;
|
|
40
|
+
id: 'world' | 'world-detail';
|
|
41
|
+
};
|
|
42
42
|
/** Exact Tileflow World release identity. */
|
|
43
43
|
type TileflowCaptureWorldIdentity = {
|
|
44
44
|
archiveSha256: string;
|
|
@@ -48,33 +48,37 @@ type TileflowCaptureWorldIdentity = {
|
|
|
48
48
|
kind: 'tileflow-world';
|
|
49
49
|
product: 'world-v1';
|
|
50
50
|
releaseId: string;
|
|
51
|
-
schema: '
|
|
51
|
+
schema: 'tileflow-world';
|
|
52
52
|
schemaVersion: number;
|
|
53
|
-
semantics: TileflowCaptureDataSemantics;
|
|
54
53
|
sourceId: 'tileflow';
|
|
54
|
+
/** The release's tilesets the map read, `world` and, when it draws them, `world-detail`. */
|
|
55
|
+
sources: TileflowCaptureWorldSource[];
|
|
55
56
|
};
|
|
56
57
|
/** External vector-tile identity. Its endpoint is recorded only as a safe fingerprint. */
|
|
57
58
|
type TileflowCaptureVectorIdentity = {
|
|
58
|
-
bindings: TileflowCaptureDataBindings;
|
|
59
|
-
capabilities: TileflowCaptureDataCapabilities;
|
|
60
59
|
kind: 'vector-tiles';
|
|
61
60
|
/** Explicit revision supplied by the data configuration. */
|
|
62
61
|
revision?: string;
|
|
63
|
-
schema: 'openmaptiles';
|
|
64
62
|
schemaVersion: number;
|
|
65
|
-
semantics: TileflowCaptureDataSemantics;
|
|
66
63
|
source: TileflowCaptureDataSource;
|
|
67
64
|
sourceId: 'tileflow';
|
|
68
|
-
}
|
|
65
|
+
} & ({
|
|
66
|
+
schema: 'tileflow-world';
|
|
67
|
+
} | {
|
|
68
|
+
/** The source names of OpenMapTiles tiles' layers and fields. */
|
|
69
|
+
bindings: TileflowCaptureDataBindings;
|
|
70
|
+
schema: 'openmaptiles';
|
|
71
|
+
semantics: TileflowCaptureDataSemantics;
|
|
72
|
+
});
|
|
69
73
|
/** Durable data identity owned by capture rather than the live core authoring API. */
|
|
70
74
|
type TileflowCaptureDataIdentity = TileflowCaptureVectorIdentity | TileflowCaptureWorldIdentity;
|
|
71
75
|
/**
|
|
72
76
|
* Data identity accepted by `createTileflowCaptureReceipt`. A vector `url` is transient input:
|
|
73
77
|
* it is converted to `source` and never returned or serialized.
|
|
74
78
|
*/
|
|
75
|
-
type TileflowCaptureDataInput = (Omit<
|
|
79
|
+
type TileflowCaptureDataInput = (TileflowCaptureVectorIdentity extends infer TIdentity ? TIdentity extends unknown ? Omit<TIdentity, 'source'> & {
|
|
76
80
|
url: string;
|
|
77
|
-
}) | TileflowCaptureWorldIdentity;
|
|
81
|
+
} : never : never) | TileflowCaptureWorldIdentity;
|
|
78
82
|
type TileflowCaptureVerification = {
|
|
79
83
|
data: 'expected-unverified' | 'rendered';
|
|
80
84
|
style: 'expected-unverified' | 'rendered';
|
|
@@ -219,4 +223,4 @@ declare function serializeTileflowShotReceipt(receipt: TileflowShotReceiptV1): s
|
|
|
219
223
|
declare function parseTileflowShotReceipt(source: string | Uint8Array): TileflowShotReceiptV1;
|
|
220
224
|
declare function validateTileflowShotReceipt(value: unknown): TileflowShotReceiptV1;
|
|
221
225
|
|
|
222
|
-
export { type CreateTileflowCaptureReceiptInput as C, type TileflowCaptureRendererIdentity as T, type TileflowShotReceiptV1 as a, type TileflowCaptureReceipt as b, type TileflowCaptureDataInput as c, type TileflowCaptureWorldIdentity as d, type CreateTileflowShotReceiptInput as e, type TileflowCaptureDataBindings as f, type
|
|
226
|
+
export { type CreateTileflowCaptureReceiptInput as C, type TileflowCaptureRendererIdentity as T, type TileflowShotReceiptV1 as a, type TileflowCaptureReceipt as b, type TileflowCaptureDataInput as c, type TileflowCaptureWorldIdentity as d, type CreateTileflowShotReceiptInput as e, type TileflowCaptureDataBindings as f, type TileflowCaptureDataIdentity as g, type TileflowCaptureDataSemantics as h, type TileflowCaptureDataSource as i, type TileflowCaptureVectorIdentity as j, type TileflowCaptureVerification as k, type TileflowCaptureWorldSource as l, createTileflowCaptureReceipt as m, createTileflowCaptureRendererIdentity as n, createTileflowShotReceipt as o, parseTileflowCaptureReceipt as p, parseTileflowShotReceipt as q, serializeTileflowShotReceipt as r, serializeTileflowCaptureReceipt as s, tileflowCaptureReceiptLimits as t, tileflowCaptureReceiptSchemaVersion as u, tileflowCaptureRuntime as v, tileflowShotReceiptLimits as w, tileflowShotReceiptSchemaVersion as x, validateTileflowCaptureReceipt as y, validateTileflowShotReceipt as z };
|
package/dist/receipt.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { C as CreateTileflowCaptureReceiptInput, e as CreateTileflowShotReceiptInput, f as TileflowCaptureDataBindings, g as
|
|
1
|
+
export { C as CreateTileflowCaptureReceiptInput, e as CreateTileflowShotReceiptInput, f as TileflowCaptureDataBindings, g as TileflowCaptureDataIdentity, c as TileflowCaptureDataInput, h as TileflowCaptureDataSemantics, i as TileflowCaptureDataSource, b as TileflowCaptureReceipt, j as TileflowCaptureVectorIdentity, k as TileflowCaptureVerification, d as TileflowCaptureWorldIdentity, l as TileflowCaptureWorldSource, a as TileflowShotReceiptV1, m as createTileflowCaptureReceipt, o as createTileflowShotReceipt, p as parseTileflowCaptureReceipt, q as parseTileflowShotReceipt, s as serializeTileflowCaptureReceipt, r as serializeTileflowShotReceipt, t as tileflowCaptureReceiptLimits, u as tileflowCaptureReceiptSchemaVersion, w as tileflowShotReceiptLimits, x as tileflowShotReceiptSchemaVersion, y as validateTileflowCaptureReceipt, z as validateTileflowShotReceipt } from './receipt-CgJMeTdQ.js';
|
|
2
2
|
import 'playwright';
|
package/dist/receipt.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tileflow/capture",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.38",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Deterministic local visual capture and comparison for Tileflow maps.",
|
|
6
6
|
"engines": {
|
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@tileflow/core": ">=0.1.0-alpha.
|
|
51
|
-
"@tileflow/dev": ">=0.1.0-alpha.
|
|
52
|
-
"maplibre-gl": "6.
|
|
50
|
+
"@tileflow/core": ">=0.1.0-alpha.47 <0.1.0-beta.0",
|
|
51
|
+
"@tileflow/dev": ">=0.1.0-alpha.42 <0.1.0-beta.0",
|
|
52
|
+
"maplibre-gl": "6.16.0",
|
|
53
53
|
"pixelmatch": "7.2.0",
|
|
54
54
|
"playwright": "1.62.1",
|
|
55
55
|
"pngjs": "7.0.0"
|
|
@@ -67,12 +67,12 @@
|
|
|
67
67
|
"vite": "^8.3.4",
|
|
68
68
|
"vue": "^3.5.43",
|
|
69
69
|
"webpack": "5.108.3",
|
|
70
|
-
"@tileflow/maps": "0.1.0-alpha.
|
|
70
|
+
"@tileflow/maps": "0.1.0-alpha.19",
|
|
71
71
|
"@tileflow/next": "0.1.0-alpha.25",
|
|
72
|
-
"@tileflow/react": "0.1.0-alpha.
|
|
73
|
-
"@tileflow/svelte": "0.1.0-alpha.
|
|
72
|
+
"@tileflow/react": "0.1.0-alpha.37",
|
|
73
|
+
"@tileflow/svelte": "0.1.0-alpha.35",
|
|
74
74
|
"@tileflow/vite": "0.1.0-alpha.26",
|
|
75
|
-
"@tileflow/vue": "0.1.0-alpha.
|
|
75
|
+
"@tileflow/vue": "0.1.0-alpha.35",
|
|
76
76
|
"@tileflow/webpack": "0.1.0-alpha.25"
|
|
77
77
|
},
|
|
78
78
|
"scripts": {
|