styled-map-package 4.0.1 → 5.0.0-pre.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/bin/smp-download.js +10 -6
  2. package/bin/smp-mbtiles.js +5 -7
  3. package/bin/smp-view.js +34 -26
  4. package/lib/reporters.js +92 -0
  5. package/package.json +8 -187
  6. package/LICENSE.md +0 -7
  7. package/README.md +0 -28
  8. package/dist/download.cjs +0 -101
  9. package/dist/download.d.cts +0 -65
  10. package/dist/download.d.ts +0 -65
  11. package/dist/download.js +0 -77
  12. package/dist/from-mbtiles.cjs +0 -91
  13. package/dist/from-mbtiles.d.cts +0 -17
  14. package/dist/from-mbtiles.d.ts +0 -17
  15. package/dist/from-mbtiles.js +0 -57
  16. package/dist/index.cjs +0 -49
  17. package/dist/index.d.cts +0 -27
  18. package/dist/index.d.ts +0 -27
  19. package/dist/index.js +0 -18
  20. package/dist/reader-watch.cjs +0 -135
  21. package/dist/reader-watch.d.cts +0 -24
  22. package/dist/reader-watch.d.ts +0 -24
  23. package/dist/reader-watch.js +0 -101
  24. package/dist/reader.cjs +0 -167
  25. package/dist/reader.d.cts +0 -62
  26. package/dist/reader.d.ts +0 -62
  27. package/dist/reader.js +0 -138
  28. package/dist/reporters.cjs +0 -122
  29. package/dist/reporters.d.cts +0 -10
  30. package/dist/reporters.d.ts +0 -10
  31. package/dist/reporters.js +0 -88
  32. package/dist/server.cjs +0 -78
  33. package/dist/server.d.cts +0 -48
  34. package/dist/server.d.ts +0 -48
  35. package/dist/server.js +0 -54
  36. package/dist/style-downloader.cjs +0 -312
  37. package/dist/style-downloader.d.cts +0 -120
  38. package/dist/style-downloader.d.ts +0 -120
  39. package/dist/style-downloader.js +0 -288
  40. package/dist/tile-downloader.cjs +0 -158
  41. package/dist/tile-downloader.d.cts +0 -84
  42. package/dist/tile-downloader.d.ts +0 -84
  43. package/dist/tile-downloader.js +0 -126
  44. package/dist/types-B4Xn1F9K.d.cts +0 -189
  45. package/dist/types-B4Xn1F9K.d.ts +0 -189
  46. package/dist/utils/errors.cjs +0 -41
  47. package/dist/utils/errors.d.cts +0 -18
  48. package/dist/utils/errors.d.ts +0 -18
  49. package/dist/utils/errors.js +0 -16
  50. package/dist/utils/fetch.cjs +0 -96
  51. package/dist/utils/fetch.d.cts +0 -51
  52. package/dist/utils/fetch.d.ts +0 -51
  53. package/dist/utils/fetch.js +0 -62
  54. package/dist/utils/file-formats.cjs +0 -98
  55. package/dist/utils/file-formats.d.cts +0 -35
  56. package/dist/utils/file-formats.d.ts +0 -35
  57. package/dist/utils/file-formats.js +0 -62
  58. package/dist/utils/geo.cjs +0 -84
  59. package/dist/utils/geo.d.cts +0 -46
  60. package/dist/utils/geo.d.ts +0 -46
  61. package/dist/utils/geo.js +0 -56
  62. package/dist/utils/mapbox.cjs +0 -121
  63. package/dist/utils/mapbox.d.cts +0 -43
  64. package/dist/utils/mapbox.d.ts +0 -43
  65. package/dist/utils/mapbox.js +0 -91
  66. package/dist/utils/misc.cjs +0 -39
  67. package/dist/utils/misc.d.cts +0 -22
  68. package/dist/utils/misc.d.ts +0 -22
  69. package/dist/utils/misc.js +0 -13
  70. package/dist/utils/streams.cjs +0 -130
  71. package/dist/utils/streams.d.cts +0 -73
  72. package/dist/utils/streams.d.ts +0 -73
  73. package/dist/utils/streams.js +0 -103
  74. package/dist/utils/style.cjs +0 -126
  75. package/dist/utils/style.d.cts +0 -69
  76. package/dist/utils/style.d.ts +0 -69
  77. package/dist/utils/style.js +0 -98
  78. package/dist/utils/templates.cjs +0 -114
  79. package/dist/utils/templates.d.cts +0 -78
  80. package/dist/utils/templates.d.ts +0 -78
  81. package/dist/utils/templates.js +0 -79
  82. package/dist/writer.cjs +0 -401
  83. package/dist/writer.d.cts +0 -7
  84. package/dist/writer.d.ts +0 -7
  85. package/dist/writer.js +0 -374
@@ -1,65 +0,0 @@
1
- import { GlyphDownloadStats } from './style-downloader.js';
2
- import { TileDownloadStats } from './tile-downloader.js';
3
- import { D as DownloadStream } from './types-B4Xn1F9K.js';
4
- import { BBox } from './utils/geo.js';
5
- import 'ky';
6
- import 'stream';
7
- import '@maplibre/maplibre-gl-style-spec';
8
- import './utils/fetch.js';
9
- import './utils/streams.js';
10
- import 'readable-stream';
11
- import 'geojson';
12
- import 'type-fest';
13
- import 'events';
14
-
15
- /**
16
- * @typedef {object} DownloadProgress
17
- * @property {import('./tile-downloader.js').TileDownloadStats & { done: boolean }} tiles
18
- * @property {{ done: boolean }} style
19
- * @property {{ downloaded: number, done: boolean }} sprites
20
- * @property {import('./style-downloader.js').GlyphDownloadStats & { done: boolean }} glyphs
21
- * @property {{ totalBytes: number, done: boolean }} output
22
- * @property {number} elapsedMs
23
- */
24
- /**
25
- * Download a map style and its resources for a given bounding box and max zoom
26
- * level. Returns a readable stream of a "styled map package", a zip file
27
- * containing all the resources needed to serve the style offline.
28
- *
29
- * @param {object} opts
30
- * @param {import("./utils/geo.js").BBox} opts.bbox Bounding box to download tiles for
31
- * @param {number} opts.maxzoom Max zoom level to download tiles for
32
- * @param {string} opts.styleUrl URL of the style to download
33
- * @param { (progress: DownloadProgress) => void } [opts.onprogress] Optional callback for reporting progress
34
- * @param {string} [opts.accessToken]
35
- * @returns {import('./types.js').DownloadStream} Readable stream of the output styled map file
36
- */
37
- declare function download({ bbox, maxzoom, styleUrl, onprogress, accessToken }: {
38
- bbox: BBox;
39
- maxzoom: number;
40
- styleUrl: string;
41
- onprogress?: ((progress: DownloadProgress) => void) | undefined;
42
- accessToken?: string | undefined;
43
- }): DownloadStream;
44
- type DownloadProgress = {
45
- tiles: TileDownloadStats & {
46
- done: boolean;
47
- };
48
- style: {
49
- done: boolean;
50
- };
51
- sprites: {
52
- downloaded: number;
53
- done: boolean;
54
- };
55
- glyphs: GlyphDownloadStats & {
56
- done: boolean;
57
- };
58
- output: {
59
- totalBytes: number;
60
- done: boolean;
61
- };
62
- elapsedMs: number;
63
- };
64
-
65
- export { type DownloadProgress, download };
package/dist/download.js DELETED
@@ -1,77 +0,0 @@
1
- import { Transform } from "readable-stream";
2
- import { pipeline } from "stream/promises";
3
- import { StyleDownloader } from "./style-downloader.js";
4
- import { Writer } from "./writer.js";
5
- function download({ bbox, maxzoom, styleUrl, onprogress, accessToken }) {
6
- const downloader = new StyleDownloader(styleUrl, {
7
- concurrency: 24,
8
- mapboxAccessToken: accessToken
9
- });
10
- let start = Date.now();
11
- let progress = {
12
- tiles: { downloaded: 0, totalBytes: 0, total: 0, skipped: 0, done: false },
13
- style: { done: false },
14
- sprites: { downloaded: 0, done: false },
15
- glyphs: { downloaded: 0, total: 0, totalBytes: 0, done: false },
16
- output: { totalBytes: 0, done: false },
17
- elapsedMs: 0
18
- };
19
- const sizeCounter = new Transform({
20
- transform(chunk, encoding, cb) {
21
- handleProgress({
22
- output: {
23
- totalBytes: progress.output.totalBytes + chunk.length,
24
- done: false
25
- }
26
- });
27
- cb(null, chunk);
28
- },
29
- final(cb) {
30
- handleProgress({ output: { ...progress.output, done: true } });
31
- cb();
32
- }
33
- });
34
- function handleProgress(update) {
35
- progress = { ...progress, ...update, elapsedMs: Date.now() - start };
36
- onprogress?.(progress);
37
- }
38
- ;
39
- (async () => {
40
- const style = await downloader.getStyle();
41
- const writer = new Writer(style);
42
- handleProgress({ style: { done: true } });
43
- writer.outputStream.pipe(sizeCounter);
44
- writer.on("error", (err) => sizeCounter.destroy(err));
45
- try {
46
- for await (const spriteInfo of downloader.getSprites()) {
47
- await writer.addSprite(spriteInfo);
48
- handleProgress({
49
- sprites: { downloaded: progress.sprites.downloaded + 1, done: false }
50
- });
51
- }
52
- handleProgress({ sprites: { ...progress.sprites, done: true } });
53
- const tiles = downloader.getTiles({
54
- bounds: bbox,
55
- maxzoom,
56
- onprogress: (tileStats) => handleProgress({ tiles: { ...tileStats, done: false } })
57
- });
58
- await pipeline(tiles, writer.createTileWriteStream({ concurrency: 24 }));
59
- handleProgress({ tiles: { ...progress.tiles, done: true } });
60
- const glyphs = downloader.getGlyphs({
61
- onprogress: (glyphStats) => handleProgress({ glyphs: { ...glyphStats, done: false } })
62
- });
63
- await pipeline(glyphs, writer.createGlyphWriteStream());
64
- handleProgress({ glyphs: { ...progress.glyphs, done: true } });
65
- writer.finish();
66
- } catch (err) {
67
- writer.outputStream.destroy(
68
- /** @type {Error} */
69
- err
70
- );
71
- }
72
- })();
73
- return sizeCounter;
74
- }
75
- export {
76
- download
77
- };
@@ -1,91 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var from_mbtiles_exports = {};
30
- __export(from_mbtiles_exports, {
31
- fromMBTiles: () => fromMBTiles
32
- });
33
- module.exports = __toCommonJS(from_mbtiles_exports);
34
- var import_mbtiles_reader = require("mbtiles-reader");
35
- var import_node_fs = __toESM(require("node:fs"), 1);
36
- var import_node_stream = require("node:stream");
37
- var import_node_stream2 = require("node:stream");
38
- var import_promises = require("node:stream/promises");
39
- var import_writer = require('./writer.cjs');
40
- const SOURCE_ID = "mbtiles-source";
41
- function fromMBTiles(mbtilesPath, outputPath) {
42
- const reader = new import_mbtiles_reader.MBTiles(mbtilesPath);
43
- if (reader.metadata.format === "pbf") {
44
- throw new Error("Vector MBTiles are not yet supported");
45
- }
46
- const style = {
47
- version: 8,
48
- name: reader.metadata.name,
49
- sources: {
50
- [SOURCE_ID]: {
51
- ...reader.metadata,
52
- type: "raster"
53
- }
54
- },
55
- layers: [
56
- {
57
- id: "background",
58
- type: "background",
59
- paint: {
60
- "background-color": "white"
61
- }
62
- },
63
- {
64
- id: "raster",
65
- type: "raster",
66
- source: SOURCE_ID,
67
- paint: {
68
- "raster-opacity": 1
69
- }
70
- }
71
- ]
72
- };
73
- const writer = new import_writer.Writer(style);
74
- const returnValue = outputPath ? (0, import_promises.pipeline)(writer.outputStream, import_node_fs.default.createWriteStream(outputPath)) : writer.outputStream;
75
- const tileWriteStream = writer.createTileWriteStream();
76
- const transform = new import_node_stream.Transform({
77
- objectMode: true,
78
- transform({ z, x, y, data, format }, encoding, callback) {
79
- callback(null, [data, { z, x, y, format, sourceId: SOURCE_ID }]);
80
- }
81
- });
82
- (0, import_node_stream2.pipeline)(reader, transform, tileWriteStream, (err) => {
83
- if (err) return writer.outputStream.destroy(err);
84
- writer.finish();
85
- });
86
- return returnValue;
87
- }
88
- // Annotate the CommonJS export names for ESM import in node:
89
- 0 && (module.exports = {
90
- fromMBTiles
91
- });
@@ -1,17 +0,0 @@
1
- import * as stream from 'stream';
2
-
3
- /**
4
- * @overload
5
- * @param {string} mbtilesPath
6
- * @returns {import('stream').Readable}
7
- */
8
- declare function fromMBTiles(mbtilesPath: string): stream.Readable;
9
- /**
10
- * @overload
11
- * @param {string} mbtilesPath
12
- * @param {string} outputPath
13
- * @returns {Promise<void>}
14
- */
15
- declare function fromMBTiles(mbtilesPath: string, outputPath: string): Promise<void>;
16
-
17
- export { fromMBTiles };
@@ -1,17 +0,0 @@
1
- import * as stream from 'stream';
2
-
3
- /**
4
- * @overload
5
- * @param {string} mbtilesPath
6
- * @returns {import('stream').Readable}
7
- */
8
- declare function fromMBTiles(mbtilesPath: string): stream.Readable;
9
- /**
10
- * @overload
11
- * @param {string} mbtilesPath
12
- * @param {string} outputPath
13
- * @returns {Promise<void>}
14
- */
15
- declare function fromMBTiles(mbtilesPath: string, outputPath: string): Promise<void>;
16
-
17
- export { fromMBTiles };
@@ -1,57 +0,0 @@
1
- import { MBTiles } from "mbtiles-reader";
2
- import fs from "node:fs";
3
- import { Transform } from "node:stream";
4
- import { pipeline } from "node:stream";
5
- import { pipeline as pipelinePromise } from "node:stream/promises";
6
- import { Writer } from "./writer.js";
7
- const SOURCE_ID = "mbtiles-source";
8
- function fromMBTiles(mbtilesPath, outputPath) {
9
- const reader = new MBTiles(mbtilesPath);
10
- if (reader.metadata.format === "pbf") {
11
- throw new Error("Vector MBTiles are not yet supported");
12
- }
13
- const style = {
14
- version: 8,
15
- name: reader.metadata.name,
16
- sources: {
17
- [SOURCE_ID]: {
18
- ...reader.metadata,
19
- type: "raster"
20
- }
21
- },
22
- layers: [
23
- {
24
- id: "background",
25
- type: "background",
26
- paint: {
27
- "background-color": "white"
28
- }
29
- },
30
- {
31
- id: "raster",
32
- type: "raster",
33
- source: SOURCE_ID,
34
- paint: {
35
- "raster-opacity": 1
36
- }
37
- }
38
- ]
39
- };
40
- const writer = new Writer(style);
41
- const returnValue = outputPath ? pipelinePromise(writer.outputStream, fs.createWriteStream(outputPath)) : writer.outputStream;
42
- const tileWriteStream = writer.createTileWriteStream();
43
- const transform = new Transform({
44
- objectMode: true,
45
- transform({ z, x, y, data, format }, encoding, callback) {
46
- callback(null, [data, { z, x, y, format, sourceId: SOURCE_ID }]);
47
- }
48
- });
49
- pipeline(reader, transform, tileWriteStream, (err) => {
50
- if (err) return writer.outputStream.destroy(err);
51
- writer.finish();
52
- });
53
- return returnValue;
54
- }
55
- export {
56
- fromMBTiles
57
- };
package/dist/index.cjs DELETED
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var index_exports = {};
20
- __export(index_exports, {
21
- Reader: () => import_reader.Reader,
22
- ReaderWatch: () => import_reader_watch.ReaderWatch,
23
- StyleDownloader: () => import_style_downloader.StyleDownloader,
24
- Writer: () => import_writer.Writer,
25
- createServer: () => import_server.createServer,
26
- download: () => import_download.download,
27
- downloadTiles: () => import_tile_downloader.downloadTiles,
28
- fromMBTiles: () => import_from_mbtiles.fromMBTiles
29
- });
30
- module.exports = __toCommonJS(index_exports);
31
- var import_reader = require('./reader.cjs');
32
- var import_reader_watch = require('./reader-watch.cjs');
33
- var import_writer = require('./writer.cjs');
34
- var import_server = require('./server.cjs');
35
- var import_style_downloader = require('./style-downloader.cjs');
36
- var import_tile_downloader = require('./tile-downloader.cjs');
37
- var import_download = require('./download.cjs');
38
- var import_from_mbtiles = require('./from-mbtiles.cjs');
39
- // Annotate the CommonJS export names for ESM import in node:
40
- 0 && (module.exports = {
41
- Reader,
42
- ReaderWatch,
43
- StyleDownloader,
44
- Writer,
45
- createServer,
46
- download,
47
- downloadTiles,
48
- fromMBTiles
49
- });
package/dist/index.d.cts DELETED
@@ -1,27 +0,0 @@
1
- import { S as SMPSource$1, a as SMPStyle$1 } from './types-B4Xn1F9K.cjs';
2
- export { W as Writer } from './types-B4Xn1F9K.cjs';
3
- export { Reader } from './reader.cjs';
4
- export { ReaderWatch } from './reader-watch.cjs';
5
- export { createServer } from './server.cjs';
6
- export { StyleDownloader } from './style-downloader.cjs';
7
- export { downloadTiles } from './tile-downloader.cjs';
8
- export { download } from './download.cjs';
9
- export { fromMBTiles } from './from-mbtiles.cjs';
10
- import '@maplibre/maplibre-gl-style-spec';
11
- import 'geojson';
12
- import 'stream';
13
- import 'type-fest';
14
- import 'readable-stream';
15
- import 'events';
16
- import 'yauzl-promise';
17
- import 'itty-router';
18
- import 'itty-router/IttyRouter';
19
- import 'ky';
20
- import './utils/geo.cjs';
21
- import './utils/fetch.cjs';
22
- import './utils/streams.cjs';
23
-
24
- type SMPSource = SMPSource$1;
25
- type SMPStyle = SMPStyle$1;
26
-
27
- export type { SMPSource, SMPStyle };
package/dist/index.d.ts DELETED
@@ -1,27 +0,0 @@
1
- import { S as SMPSource$1, a as SMPStyle$1 } from './types-B4Xn1F9K.js';
2
- export { W as Writer } from './types-B4Xn1F9K.js';
3
- export { Reader } from './reader.js';
4
- export { ReaderWatch } from './reader-watch.js';
5
- export { createServer } from './server.js';
6
- export { StyleDownloader } from './style-downloader.js';
7
- export { downloadTiles } from './tile-downloader.js';
8
- export { download } from './download.js';
9
- export { fromMBTiles } from './from-mbtiles.js';
10
- import '@maplibre/maplibre-gl-style-spec';
11
- import 'geojson';
12
- import 'stream';
13
- import 'type-fest';
14
- import 'readable-stream';
15
- import 'events';
16
- import 'yauzl-promise';
17
- import 'itty-router';
18
- import 'itty-router/IttyRouter';
19
- import 'ky';
20
- import './utils/geo.js';
21
- import './utils/fetch.js';
22
- import './utils/streams.js';
23
-
24
- type SMPSource = SMPSource$1;
25
- type SMPStyle = SMPStyle$1;
26
-
27
- export type { SMPSource, SMPStyle };
package/dist/index.js DELETED
@@ -1,18 +0,0 @@
1
- import { Reader } from "./reader.js";
2
- import { ReaderWatch } from "./reader-watch.js";
3
- import { Writer } from "./writer.js";
4
- import { createServer } from "./server.js";
5
- import { StyleDownloader } from "./style-downloader.js";
6
- import { downloadTiles } from "./tile-downloader.js";
7
- import { download } from "./download.js";
8
- import { fromMBTiles } from "./from-mbtiles.js";
9
- export {
10
- Reader,
11
- ReaderWatch,
12
- StyleDownloader,
13
- Writer,
14
- createServer,
15
- download,
16
- downloadTiles,
17
- fromMBTiles
18
- };
@@ -1,135 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var reader_watch_exports = {};
30
- __export(reader_watch_exports, {
31
- ReaderWatch: () => ReaderWatch
32
- });
33
- module.exports = __toCommonJS(reader_watch_exports);
34
- var import_events = require("events");
35
- var import_node_fs = __toESM(require("node:fs"), 1);
36
- var import_promises = __toESM(require("node:fs/promises"), 1);
37
- var import_reader = require('./reader.cjs');
38
- var import_errors = require('./utils/errors.cjs');
39
- var import_misc = require('./utils/misc.cjs');
40
- class ReaderWatch {
41
- /** @type {Reader | undefined} */
42
- #reader;
43
- /** @type {Reader | undefined} */
44
- #maybeReader;
45
- /** @type {Promise<Reader> | undefined} */
46
- #readerOpeningPromise;
47
- #filepath;
48
- /** @type {fs.FSWatcher | undefined} */
49
- #watch;
50
- /**
51
- * @param {string} filepath
52
- */
53
- constructor(filepath) {
54
- this.#filepath = filepath;
55
- this.#tryToWatchFile();
56
- this.#get().catch(import_misc.noop);
57
- }
58
- #tryToWatchFile() {
59
- if (this.#watch) return;
60
- try {
61
- this.#watch = import_node_fs.default.watch(this.#filepath, { persistent: false }, () => {
62
- this.#reader?.close().catch(import_misc.noop);
63
- this.#reader = void 0;
64
- this.#maybeReader = void 0;
65
- this.#readerOpeningPromise = void 0;
66
- this.#watch?.close();
67
- this.#watch = void 0;
68
- }).on("error", import_misc.noop);
69
- } catch (error) {
70
- if ((0, import_errors.isFileNotThereError)(error)) {
71
- } else {
72
- throw error;
73
- }
74
- }
75
- }
76
- async #get() {
77
- if (isWin() && (this.#reader || this.#readerOpeningPromise)) {
78
- try {
79
- await import_promises.default.stat(this.#filepath);
80
- } catch {
81
- this.#watch?.close();
82
- this.#watch = void 0;
83
- this.#reader?.close().catch(import_misc.noop);
84
- this.#reader = void 0;
85
- this.#maybeReader = void 0;
86
- this.#readerOpeningPromise = void 0;
87
- }
88
- }
89
- this.#tryToWatchFile();
90
- if (this.#reader) return this.#reader;
91
- if (this.#readerOpeningPromise) return this.#readerOpeningPromise;
92
- this.#maybeReader = new import_reader.Reader(this.#filepath);
93
- this.#readerOpeningPromise = this.#maybeReader.opened().then(() => {
94
- if (!this.#maybeReader) {
95
- throw new import_errors.ENOENT(this.#filepath);
96
- }
97
- this.#reader = this.#maybeReader;
98
- return this.#reader;
99
- }).finally(() => {
100
- this.#maybeReader = void 0;
101
- this.#readerOpeningPromise = void 0;
102
- });
103
- return this.#readerOpeningPromise;
104
- }
105
- /** @type {Reader['opened']} */
106
- async opened() {
107
- const reader = await this.#get();
108
- return reader.opened();
109
- }
110
- /** @type {Reader['getStyle']} */
111
- async getStyle(baseUrl = null) {
112
- const reader = await this.#get();
113
- return reader.getStyle(baseUrl);
114
- }
115
- /** @type {Reader['getResource']} */
116
- async getResource(path) {
117
- const reader = await this.#get();
118
- return reader.getResource(path);
119
- }
120
- async close() {
121
- const reader = await this.#get();
122
- if (this.#watch) {
123
- this.#watch.close();
124
- await (0, import_events.once)(this.#watch, "close");
125
- }
126
- await reader.close();
127
- }
128
- }
129
- function isWin() {
130
- return process.platform === "win32";
131
- }
132
- // Annotate the CommonJS export names for ESM import in node:
133
- 0 && (module.exports = {
134
- ReaderWatch
135
- });
@@ -1,24 +0,0 @@
1
- import { a as SMPStyle } from './types-B4Xn1F9K.cjs';
2
- import { Reader } from './reader.cjs';
3
- import '@maplibre/maplibre-gl-style-spec';
4
- import 'geojson';
5
- import 'stream';
6
- import 'type-fest';
7
- import 'readable-stream';
8
- import 'events';
9
- import 'yauzl-promise';
10
-
11
- /** @implements {Pick<Reader, keyof Reader>} */
12
- declare class ReaderWatch implements Pick<Reader, keyof Reader> {
13
- /**
14
- * @param {string} filepath
15
- */
16
- constructor(filepath: string);
17
- opened(): Promise<void>;
18
- getStyle(baseUrl?: string | null): Promise<SMPStyle>;
19
- getResource(path: string): Promise<Resource>;
20
- close(): Promise<void>;
21
- #private;
22
- }
23
-
24
- export { ReaderWatch };
@@ -1,24 +0,0 @@
1
- import { a as SMPStyle } from './types-B4Xn1F9K.js';
2
- import { Reader } from './reader.js';
3
- import '@maplibre/maplibre-gl-style-spec';
4
- import 'geojson';
5
- import 'stream';
6
- import 'type-fest';
7
- import 'readable-stream';
8
- import 'events';
9
- import 'yauzl-promise';
10
-
11
- /** @implements {Pick<Reader, keyof Reader>} */
12
- declare class ReaderWatch implements Pick<Reader, keyof Reader> {
13
- /**
14
- * @param {string} filepath
15
- */
16
- constructor(filepath: string);
17
- opened(): Promise<void>;
18
- getStyle(baseUrl?: string | null): Promise<SMPStyle>;
19
- getResource(path: string): Promise<Resource>;
20
- close(): Promise<void>;
21
- #private;
22
- }
23
-
24
- export { ReaderWatch };