@osmix/pbf 0.0.2 → 0.0.4

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 (105) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +75 -82
  3. package/dist/blobs-to-blocks.d.ts +52 -3
  4. package/dist/blobs-to-blocks.d.ts.map +1 -0
  5. package/dist/blobs-to-blocks.js +63 -9
  6. package/dist/blobs-to-blocks.js.map +1 -0
  7. package/dist/blocks-to-pbf.d.ts +43 -6
  8. package/dist/blocks-to-pbf.d.ts.map +1 -0
  9. package/dist/blocks-to-pbf.js +44 -7
  10. package/dist/blocks-to-pbf.js.map +1 -0
  11. package/dist/index.d.ts +29 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +29 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/pbf-to-blobs.d.ts +23 -3
  16. package/dist/pbf-to-blobs.d.ts.map +1 -0
  17. package/dist/pbf-to-blobs.js +25 -3
  18. package/dist/pbf-to-blobs.js.map +1 -0
  19. package/dist/pbf-to-blocks.d.ts +50 -7
  20. package/dist/pbf-to-blocks.d.ts.map +1 -0
  21. package/dist/pbf-to-blocks.js +51 -8
  22. package/dist/pbf-to-blocks.js.map +1 -0
  23. package/dist/proto/fileformat.d.ts +1 -0
  24. package/dist/proto/fileformat.d.ts.map +1 -0
  25. package/dist/proto/fileformat.js +1 -0
  26. package/dist/proto/fileformat.js.map +1 -0
  27. package/dist/proto/osmformat.d.ts +1 -0
  28. package/dist/proto/osmformat.d.ts.map +1 -0
  29. package/dist/proto/osmformat.js +1 -0
  30. package/dist/proto/osmformat.js.map +1 -0
  31. package/dist/spec.d.ts +1 -0
  32. package/dist/spec.d.ts.map +1 -0
  33. package/dist/spec.js +1 -0
  34. package/dist/spec.js.map +1 -0
  35. package/dist/src/blobs-to-blocks.d.ts +51 -3
  36. package/dist/src/blobs-to-blocks.d.ts.map +1 -1
  37. package/dist/src/blobs-to-blocks.js +60 -7
  38. package/dist/src/blobs-to-blocks.js.map +1 -1
  39. package/dist/src/blocks-to-pbf.d.ts +41 -5
  40. package/dist/src/blocks-to-pbf.d.ts.map +1 -1
  41. package/dist/src/blocks-to-pbf.js +41 -5
  42. package/dist/src/blocks-to-pbf.js.map +1 -1
  43. package/dist/src/index.d.ts +28 -0
  44. package/dist/src/index.d.ts.map +1 -1
  45. package/dist/src/index.js +28 -0
  46. package/dist/src/index.js.map +1 -1
  47. package/dist/src/pbf-to-blobs.d.ts +22 -3
  48. package/dist/src/pbf-to-blobs.d.ts.map +1 -1
  49. package/dist/src/pbf-to-blobs.js +24 -3
  50. package/dist/src/pbf-to-blobs.js.map +1 -1
  51. package/dist/src/pbf-to-blocks.d.ts +46 -4
  52. package/dist/src/pbf-to-blocks.d.ts.map +1 -1
  53. package/dist/src/pbf-to-blocks.js +46 -4
  54. package/dist/src/pbf-to-blocks.js.map +1 -1
  55. package/dist/src/utils.d.ts +0 -4
  56. package/dist/src/utils.d.ts.map +1 -1
  57. package/dist/src/utils.js +0 -32
  58. package/dist/src/utils.js.map +1 -1
  59. package/dist/test/blobs-to-blocks.test.js +22 -18
  60. package/dist/test/blobs-to-blocks.test.js.map +1 -1
  61. package/dist/test/pbf-to-blobs.test.js +24 -16
  62. package/dist/test/pbf-to-blobs.test.js.map +1 -1
  63. package/dist/test/read.bench.js +6 -4
  64. package/dist/test/read.bench.js.map +1 -1
  65. package/dist/test/read.test.js +5 -5
  66. package/dist/test/read.test.js.map +1 -1
  67. package/dist/test/streams.test.js +21 -13
  68. package/dist/test/streams.test.js.map +1 -1
  69. package/dist/test/utils.d.ts.map +1 -1
  70. package/dist/test/utils.js +8 -8
  71. package/dist/test/utils.js.map +1 -1
  72. package/dist/test/utils.test.js +8 -8
  73. package/dist/test/utils.test.js.map +1 -1
  74. package/dist/test/write.test.js +13 -8
  75. package/dist/test/write.test.js.map +1 -1
  76. package/dist/utils.d.ts +5 -10
  77. package/dist/utils.d.ts.map +1 -0
  78. package/dist/utils.js +8 -32
  79. package/dist/utils.js.map +1 -0
  80. package/package.json +12 -11
  81. package/src/blobs-to-blocks.ts +78 -7
  82. package/src/blocks-to-pbf.ts +42 -5
  83. package/src/index.ts +29 -0
  84. package/src/pbf-to-blobs.ts +24 -3
  85. package/src/pbf-to-blocks.ts +46 -4
  86. package/src/utils.ts +0 -29
  87. package/test/blobs-to-blocks.test.ts +25 -19
  88. package/test/pbf-to-blobs.test.ts +23 -17
  89. package/test/read.bench.ts +8 -4
  90. package/test/read.test.ts +5 -5
  91. package/test/streams.test.ts +22 -13
  92. package/test/utils.test.ts +8 -8
  93. package/test/utils.ts +8 -8
  94. package/test/write.test.ts +13 -8
  95. package/tsconfig.build.json +5 -0
  96. package/dist/test/utils.bun.test.d.ts +0 -2
  97. package/dist/test/utils.bun.test.d.ts.map +0 -1
  98. package/dist/test/utils.bun.test.js +0 -221
  99. package/dist/test/utils.bun.test.js.map +0 -1
  100. package/dist/test/verify-pbf-reading.bun.test.d.ts +0 -2
  101. package/dist/test/verify-pbf-reading.bun.test.d.ts.map +0 -1
  102. package/dist/test/verify-pbf-reading.bun.test.js +0 -32
  103. package/dist/test/verify-pbf-reading.bun.test.js.map +0 -1
  104. package/test/utils.bun.test.ts +0 -277
  105. package/test/verify-pbf-reading.bun.test.ts +0 -39
@@ -2,9 +2,28 @@ import Pbf from "pbf";
2
2
  import { HEADER_LENGTH_BYTES } from "./pbf-to-blocks";
3
3
  import { readBlob, readBlobHeader, } from "./proto/fileformat";
4
4
  /**
5
- * Creates a stateful parser that slices incoming bytes into compressed OSM PBF blobs.
6
- * Works with buffers, iterables, or streams and yields `Uint8Array` payloads ready to decompress.
7
- * The first blob represents the file header; subsequent blobs hold primitive data.
5
+ * Create a stateful parser that extracts compressed blobs from raw PBF bytes.
6
+ *
7
+ * OSM PBF files consist of length-prefixed blobs. This function returns a generator
8
+ * that accumulates incoming byte chunks and yields complete compressed blobs as they
9
+ * become available. The caller is responsible for decompression.
10
+ *
11
+ * The first yielded blob contains the file header; subsequent blobs contain primitive data.
12
+ *
13
+ * @returns A generator function that accepts byte chunks and yields compressed blob payloads.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { createOsmPbfBlobGenerator } from "@osmix/pbf"
18
+ *
19
+ * const generateBlobs = createOsmPbfBlobGenerator()
20
+ *
21
+ * for await (const chunk of stream) {
22
+ * for (const compressedBlob of generateBlobs(chunk)) {
23
+ * // Decompress and parse blob...
24
+ * }
25
+ * }
26
+ * ```
8
27
  */
9
28
  export function createOsmPbfBlobGenerator() {
10
29
  let pbf = new Pbf(new Uint8Array(0));
@@ -13,6 +32,8 @@ export function createOsmPbfBlobGenerator() {
13
32
  let blobHeader = null;
14
33
  /**
15
34
  * Feed the parser with the next chunk of bytes and yield any complete compressed blobs.
35
+ * @param chunk - Raw bytes from the PBF file.
36
+ * @yields Compressed blob payloads (zlib-compressed protobuf data).
16
37
  */
17
38
  return function* nextChunk(chunk) {
18
39
  const currentBuffer = pbf.buf.slice(pbf.pos);
@@ -46,3 +67,4 @@ export function createOsmPbfBlobGenerator() {
46
67
  }
47
68
  };
48
69
  }
70
+ //# sourceMappingURL=pbf-to-blobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbf-to-blobs.js","sourceRoot":"","sources":["../src/pbf-to-blobs.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAEN,QAAQ,EACR,cAAc,GACd,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,yBAAyB;IACxC,IAAI,GAAG,GAAQ,IAAI,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACzC,IAAI,KAAK,GAAwC,eAAe,CAAA;IAChE,IAAI,WAAW,GAAW,mBAAmB,CAAA;IAC7C,IAAI,UAAU,GAA4B,IAAI,CAAA;IAE9C;;;;OAIG;IACH,OAAO,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAiB;QAC3C,MAAM,aAAa,GAAe,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxD,MAAM,SAAS,GAAG,IAAI,UAAU,CAC/B,aAAa,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAClD,CAAA;QACD,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,SAAS,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9D,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;QAExB,OAAO,GAAG,CAAC,GAAG,GAAG,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC5C,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBAC7C,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,qBAAqB;gBACrE,GAAG,CAAC,GAAG,IAAI,mBAAmB,CAAA;gBAC9B,KAAK,GAAG,QAAQ,CAAA;YACjB,CAAC;iBAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/B,UAAU,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC,CAAA;gBACvD,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAA;gBACjC,KAAK,GAAG,MAAM,CAAA;YACf,CAAC;iBAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC7B,IAAI,UAAU,IAAI,IAAI;oBAAE,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC,CAAA;gBACjD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;oBAC9D,MAAM,KAAK,CAAC,+CAA+C,CAAC,CAAA;gBAE7D,MAAM,IAAI,CAAC,SAAoC,CAAA;gBAE/C,KAAK,GAAG,eAAe,CAAA;gBACvB,WAAW,GAAG,mBAAmB,CAAA;gBACjC,UAAU,GAAG,IAAI,CAAA;YAClB,CAAC;QACF,CAAC;IACF,CAAC,CAAA;AACF,CAAC"}
@@ -1,20 +1,63 @@
1
1
  import { type OsmPbfBlock, type OsmPbfHeaderBlock } from "./proto/osmformat";
2
2
  import { type AsyncGeneratorValue } from "./utils";
3
+ /** Number of bytes used to encode the BlobHeader length prefix (big-endian uint32). */
3
4
  export declare const HEADER_LENGTH_BYTES = 4;
4
5
  /**
5
- * Parses OSM PBF bytes from buffers, streams, or generators into header + block iterators.
6
- * Returns the decoded header and a lazy async generator of primitive blocks.
6
+ * Parse an OSM PBF file from various input sources.
7
+ *
8
+ * Accepts `ArrayBuffer`, `Uint8Array`, `ReadableStream<Uint8Array>`, or async generators.
9
+ * Returns the file header and a lazy async generator of primitive blocks for on-demand parsing.
10
+ *
11
+ * @param data - PBF bytes as buffer, stream, or async iterable.
12
+ * @returns Object with `header` (file metadata) and `blocks` (async generator of primitive blocks).
13
+ * @throws If the header block is missing or malformed.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { readOsmPbf } from "@osmix/pbf"
18
+ *
19
+ * // From a file stream
20
+ * const { header, blocks } = await readOsmPbf(Bun.file('./monaco.pbf').stream())
21
+ *
22
+ * // From a fetch response
23
+ * const response = await fetch('/data/monaco.pbf')
24
+ * const { header, blocks } = await readOsmPbf(response.body!)
25
+ *
26
+ * // Iterate blocks lazily
27
+ * for await (const block of blocks) {
28
+ * for (const group of block.primitivegroup) {
29
+ * console.log(group.dense?.id.length ?? 0, "dense nodes")
30
+ * }
31
+ * }
32
+ * ```
7
33
  */
8
- export declare function readOsmPbf(data: AsyncGeneratorValue<ArrayBufferLike>): Promise<{
34
+ export declare function readOsmPbf(data: AsyncGeneratorValue<Uint8Array<ArrayBufferLike>>): Promise<{
9
35
  header: OsmPbfHeaderBlock;
10
36
  blocks: AsyncGenerator<OsmPbfBlock>;
11
37
  }>;
12
38
  /**
13
- * Web `TransformStream` that turns raw PBF byte chunks into OSM header/data blocks.
14
- * Assumes the first decoded blob carries the header and emits it before any primitive blocks.
39
+ * Web `TransformStream` that decodes raw PBF byte chunks into OSM header and data blocks.
40
+ *
41
+ * The first blob in an OSM PBF file is always the header block; subsequent blobs
42
+ * contain primitive data (nodes, ways, relations). This stream handles the framing,
43
+ * decompression, and protobuf decoding automatically.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * import { OsmPbfBytesToBlocksTransformStream } from "@osmix/pbf"
48
+ *
49
+ * const response = await fetch('/data/monaco.pbf')
50
+ * const blocksStream = response.body!
51
+ * .pipeThrough(new OsmPbfBytesToBlocksTransformStream())
52
+ *
53
+ * const reader = blocksStream.getReader()
54
+ * const { value: header } = await reader.read() // First read yields header
55
+ * // Subsequent reads yield primitive blocks
56
+ * ```
15
57
  */
16
- export declare class OsmPbfBytesToBlocksTransformStream extends TransformStream<ArrayBufferLike, OsmPbfHeaderBlock | OsmPbfBlock> {
58
+ export declare class OsmPbfBytesToBlocksTransformStream extends TransformStream<Uint8Array<ArrayBufferLike>, OsmPbfHeaderBlock | OsmPbfBlock> {
17
59
  generateBlobsFromChunk: (chunk: Uint8Array) => Generator<Uint8Array<ArrayBuffer>, void, unknown>;
18
60
  header: OsmPbfHeaderBlock | null;
19
- constructor();
61
+ constructor(decompress?: (data: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>);
20
62
  }
63
+ //# sourceMappingURL=pbf-to-blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbf-to-blocks.d.ts","sourceRoot":"","sources":["../src/pbf-to-blocks.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAGtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACN,KAAK,mBAAmB,EAGxB,MAAM,SAAS,CAAA;AAEhB,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,UAAU,CAC/B,IAAI,EAAE,mBAAmB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;;YAkBnC,cAAc,CAAC,WAAW,CAAC;GAE9C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,kCAAmC,SAAQ,eAAe,CACtE,UAAU,CAAC,eAAe,CAAC,EAC3B,iBAAiB,GAAG,WAAW,CAC/B;IACA,sBAAsB,2EAA8B;IACpD,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAO;gBAEtC,UAAU,GAAE,CACX,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,KACzB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAiB;CAiBtD"}
@@ -2,17 +2,43 @@ import Pbf from "pbf";
2
2
  import { osmPbfBlobsToBlocksGenerator } from "./blobs-to-blocks";
3
3
  import { createOsmPbfBlobGenerator } from "./pbf-to-blobs";
4
4
  import { readHeaderBlock, readPrimitiveBlock, } from "./proto/osmformat";
5
- import { decompress, toAsyncGenerator } from "./utils";
5
+ import { toAsyncGenerator, webDecompress, } from "./utils";
6
+ /** Number of bytes used to encode the BlobHeader length prefix (big-endian uint32). */
6
7
  export const HEADER_LENGTH_BYTES = 4;
7
8
  /**
8
- * Parses OSM PBF bytes from buffers, streams, or generators into header + block iterators.
9
- * Returns the decoded header and a lazy async generator of primitive blocks.
9
+ * Parse an OSM PBF file from various input sources.
10
+ *
11
+ * Accepts `ArrayBuffer`, `Uint8Array`, `ReadableStream<Uint8Array>`, or async generators.
12
+ * Returns the file header and a lazy async generator of primitive blocks for on-demand parsing.
13
+ *
14
+ * @param data - PBF bytes as buffer, stream, or async iterable.
15
+ * @returns Object with `header` (file metadata) and `blocks` (async generator of primitive blocks).
16
+ * @throws If the header block is missing or malformed.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { readOsmPbf } from "@osmix/pbf"
21
+ *
22
+ * // From a file stream
23
+ * const { header, blocks } = await readOsmPbf(Bun.file('./monaco.pbf').stream())
24
+ *
25
+ * // From a fetch response
26
+ * const response = await fetch('/data/monaco.pbf')
27
+ * const { header, blocks } = await readOsmPbf(response.body!)
28
+ *
29
+ * // Iterate blocks lazily
30
+ * for await (const block of blocks) {
31
+ * for (const group of block.primitivegroup) {
32
+ * console.log(group.dense?.id.length ?? 0, "dense nodes")
33
+ * }
34
+ * }
35
+ * ```
10
36
  */
11
37
  export async function readOsmPbf(data) {
12
38
  const generateBlobsFromChunk = createOsmPbfBlobGenerator();
13
39
  const blocks = osmPbfBlobsToBlocksGenerator((async function* () {
14
40
  for await (const chunk of toAsyncGenerator(data)) {
15
- for await (const blob of generateBlobsFromChunk(new Uint8Array(chunk))) {
41
+ for await (const blob of generateBlobsFromChunk(chunk)) {
16
42
  yield blob;
17
43
  }
18
44
  }
@@ -27,16 +53,32 @@ export async function readOsmPbf(data) {
27
53
  };
28
54
  }
29
55
  /**
30
- * Web `TransformStream` that turns raw PBF byte chunks into OSM header/data blocks.
31
- * Assumes the first decoded blob carries the header and emits it before any primitive blocks.
56
+ * Web `TransformStream` that decodes raw PBF byte chunks into OSM header and data blocks.
57
+ *
58
+ * The first blob in an OSM PBF file is always the header block; subsequent blobs
59
+ * contain primitive data (nodes, ways, relations). This stream handles the framing,
60
+ * decompression, and protobuf decoding automatically.
61
+ *
62
+ * @example
63
+ * ```ts
64
+ * import { OsmPbfBytesToBlocksTransformStream } from "@osmix/pbf"
65
+ *
66
+ * const response = await fetch('/data/monaco.pbf')
67
+ * const blocksStream = response.body!
68
+ * .pipeThrough(new OsmPbfBytesToBlocksTransformStream())
69
+ *
70
+ * const reader = blocksStream.getReader()
71
+ * const { value: header } = await reader.read() // First read yields header
72
+ * // Subsequent reads yield primitive blocks
73
+ * ```
32
74
  */
33
75
  export class OsmPbfBytesToBlocksTransformStream extends TransformStream {
34
76
  generateBlobsFromChunk = createOsmPbfBlobGenerator();
35
77
  header = null;
36
- constructor() {
78
+ constructor(decompress = webDecompress) {
37
79
  super({
38
80
  transform: async (bytesChunk, controller) => {
39
- for await (const rawBlobs of this.generateBlobsFromChunk(new Uint8Array(bytesChunk))) {
81
+ for await (const rawBlobs of this.generateBlobsFromChunk(bytesChunk)) {
40
82
  const decompressed = await decompress(rawBlobs);
41
83
  const pbf = new Pbf(decompressed);
42
84
  if (this.header == null) {
@@ -51,3 +93,4 @@ export class OsmPbfBytesToBlocksTransformStream extends TransformStream {
51
93
  });
52
94
  }
53
95
  }
96
+ //# sourceMappingURL=pbf-to-blocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbf-to-blocks.js","sourceRoot":"","sources":["../src/pbf-to-blocks.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAGN,eAAe,EACf,kBAAkB,GAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAEN,gBAAgB,EAChB,aAAa,GACb,MAAM,SAAS,CAAA;AAEhB,uFAAuF;AACvF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC/B,IAAsD;IAEtD,MAAM,sBAAsB,GAAG,yBAAyB,EAAE,CAAA;IAC1D,MAAM,MAAM,GAAG,4BAA4B,CAC1C,CAAC,KAAK,SAAS,CAAC;QACf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,CAAA;YACX,CAAC;QACF,CAAC;IACF,CAAC,CAAC,EAAE,CACJ,CAAA;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAA;IAC1C,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,mBAAmB,IAAI,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO;QACN,MAAM;QACN,MAAM,EAAE,MAAqC;KAC7C,CAAA;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,kCAAmC,SAAQ,eAGvD;IACA,sBAAsB,GAAG,yBAAyB,EAAE,CAAA;IACpD,MAAM,GAA6B,IAAI,CAAA;IACvC,YACC,aAEwC,aAAa;QAErD,KAAK,CAAC;YACL,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE;gBAC3C,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtE,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAA;oBAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAA;oBACjC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;wBACzB,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;wBAClC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAChC,CAAC;yBAAM,CAAC;wBACP,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC5C,CAAC;gBACF,CAAC;YACF,CAAC;SACD,CAAC,CAAA;IACH,CAAC;CACD"}
@@ -24,3 +24,4 @@ export declare function readBlobHeader(pbf: Pbf, end?: number): OsmPbfBlobHeader
24
24
  * Writes an `OsmPbfBlobHeader` message to the provided Pbf writer.
25
25
  */
26
26
  export declare function writeBlobHeader(obj: OsmPbfBlobHeader, pbf: Pbf): void;
27
+ //# sourceMappingURL=fileformat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileformat.d.ts","sourceRoot":"","sources":["../../src/proto/fileformat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAE1B,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,SAAS,CAAC,EAAE,UAAU,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAQ3D;AAYD;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,QAIlD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAMvE;AAQD;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,QAG9D"}
@@ -54,3 +54,4 @@ export function writeBlobHeader(obj, pbf) {
54
54
  if (obj.datasize)
55
55
  pbf.writeVarintField(3, obj.datasize);
56
56
  }
57
+ //# sourceMappingURL=fileformat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileformat.js","sourceRoot":"","sources":["../../src/proto/fileformat.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAQ,EAAE,GAAY;IAC9C,OAAO,GAAG,CAAC,UAAU,CACpB,aAAa,EACb;QACC,QAAQ,EAAE,CAAC;KACX,EACD,GAAG,CACH,CAAA;AACF,CAAC;AACD;;GAEG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,GAAe,EAAE,GAAQ;IAC5D,IAAI,GAAG,KAAK,CAAC;QAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;SAC7C,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACpB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,CAAA;IAC1B,CAAC;SAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,CAAA;IAChC,CAAC;AACF,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAe,EAAE,GAAQ;IAClD,IAAI,GAAG,CAAC,QAAQ;QAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IACvD,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI;QAAE,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;IACpD,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI;QAAE,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAQ,EAAE,GAAY;IACpD,OAAO,GAAG,CAAC,UAAU,CACpB,mBAAmB,EACnB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,EAChC,GAAG,CACH,CAAA;AACF,CAAC;AACD;;GAEG;AACH,SAAS,mBAAmB,CAAC,GAAW,EAAE,GAAqB,EAAE,GAAQ;IACxE,IAAI,GAAG,KAAK,CAAC;QAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,EAA8B,CAAA;SACjE,IAAI,GAAG,KAAK,CAAC;QAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACxD,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAqB,EAAE,GAAQ;IAC9D,IAAI,GAAG,CAAC,IAAI;QAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC/C,IAAI,GAAG,CAAC,QAAQ;QAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;AACxD,CAAC"}
@@ -89,3 +89,4 @@ export declare function readPrimitiveBlock(pbf: Pbf, end?: number): OsmPbfBlock;
89
89
  * Serializes a primitive block including its string table and primitive groups.
90
90
  */
91
91
  export declare function writePrimitiveBlock(obj: OsmPbfBlock, pbf: Pbf): void;
92
+ //# sourceMappingURL=osmformat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"osmformat.d.ts","sourceRoot":"","sources":["../../src/proto/osmformat.ts"],"names":[],"mappings":"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"}
@@ -456,3 +456,4 @@ function writeRelation(obj, pbf) {
456
456
  if (obj.types)
457
457
  pbf.writePackedVarint(10, obj.types);
458
458
  }
459
+ //# sourceMappingURL=osmformat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"osmformat.js","sourceRoot":"","sources":["../../src/proto/osmformat.ts"],"names":[],"mappings":"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"}
package/dist/spec.d.ts CHANGED
@@ -3,3 +3,4 @@ export declare const MAX_HEADER_SIZE_BYTES: number;
3
3
  export declare const RECOMMENDED_BLOB_SIZE_BYTES: number;
4
4
  export declare const MAX_BLOB_SIZE_BYTES: number;
5
5
  export declare const MAX_ENTITIES_PER_BLOCK = 8000;
6
+ //# sourceMappingURL=spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,6BAA6B,QAAY,CAAA;AACtD,eAAO,MAAM,qBAAqB,QAAY,CAAA;AAE9C,eAAO,MAAM,2BAA2B,QAAmB,CAAA;AAC3D,eAAO,MAAM,mBAAmB,QAAmB,CAAA;AAGnD,eAAO,MAAM,sBAAsB,OAAQ,CAAA"}
package/dist/spec.js CHANGED
@@ -7,3 +7,4 @@ export const RECOMMENDED_BLOB_SIZE_BYTES = 16 * 1024 * 1024;
7
7
  export const MAX_BLOB_SIZE_BYTES = 32 * 1024 * 1024;
8
8
  // Recommended maximum number of entities per block
9
9
  export const MAX_ENTITIES_PER_BLOCK = 8_000;
10
+ //# sourceMappingURL=spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,IAAI,CAAA;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,CAAA;AAC9C,0BAA0B;AAC1B,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAEnD,mDAAmD;AACnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAA"}
@@ -1,6 +1,54 @@
1
1
  /**
2
- * Decompresses raw OSM PBF blobs and yields typed header and primitive blocks.
3
- * Expects the first blob to contain the file header and streams the rest as data blocks.
2
+ * Blob-to-block conversion utilities.
3
+ *
4
+ * Handles decompression and protobuf decoding of raw OSM PBF blobs into
5
+ * typed header and primitive block structures.
6
+ *
7
+ * @module
4
8
  */
5
- export declare function osmPbfBlobsToBlocksGenerator(blobs: AsyncGenerator<Uint8Array<ArrayBuffer>> | Generator<Uint8Array<ArrayBuffer>>, decompress?: (data: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>): AsyncGenerator<import(".").OsmPbfHeaderBlock | import(".").OsmPbfBlock, void, unknown>;
9
+ import { type OsmPbfBlock, type OsmPbfHeaderBlock } from "./proto/osmformat";
10
+ /**
11
+ * Decompress and decode a stream of raw PBF blobs into typed blocks.
12
+ *
13
+ * This async generator handles the transition from compressed bytes to parsed
14
+ * protobuf structures. The first blob is always decoded as a header block;
15
+ * subsequent blobs are decoded as primitive blocks containing OSM entities.
16
+ *
17
+ * @param blobs - Async or sync generator yielding compressed blob payloads.
18
+ * @param decompress - Optional decompression function (defaults to Web Streams zlib).
19
+ * @yields Header block first, then primitive blocks.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { osmPbfBlobsToBlocksGenerator, createOsmPbfBlobGenerator } from "@osmix/pbf"
24
+ *
25
+ * const generateBlobs = createOsmPbfBlobGenerator()
26
+ * const blobsGen = (async function* () {
27
+ * for await (const chunk of stream) {
28
+ * yield* generateBlobs(chunk)
29
+ * }
30
+ * })()
31
+ *
32
+ * for await (const block of osmPbfBlobsToBlocksGenerator(blobsGen)) {
33
+ * // First iteration yields header, rest yield primitive blocks
34
+ * }
35
+ * ```
36
+ */
37
+ export declare function osmPbfBlobsToBlocksGenerator(blobs: AsyncGenerator<Uint8Array<ArrayBuffer>> | Generator<Uint8Array<ArrayBuffer>>, decompress?: (data: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>): AsyncGenerator<OsmPbfHeaderBlock | OsmPbfBlock, void, unknown>;
38
+ /**
39
+ * Decompress and parse a header block from a compressed blob.
40
+ *
41
+ * @param compressedBlob - Zlib-compressed protobuf header blob.
42
+ * @param decompress - Optional decompression function.
43
+ * @returns Parsed header block with required/optional features and bbox.
44
+ */
45
+ export declare function readOsmHeaderBlock(compressedBlob: Uint8Array<ArrayBuffer>, decompress?: (data: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>): Promise<OsmPbfHeaderBlock>;
46
+ /**
47
+ * Decompress and parse a primitive block from a compressed blob.
48
+ *
49
+ * @param compressedBlob - Zlib-compressed protobuf primitive blob.
50
+ * @param decompress - Optional decompression function.
51
+ * @returns Parsed primitive block with string table and primitive groups.
52
+ */
53
+ export declare function readOsmPrimitiveBlock(compressedBlob: Uint8Array<ArrayBuffer>, decompress?: (data: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>): Promise<OsmPbfBlock>;
6
54
  //# sourceMappingURL=blobs-to-blocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blobs-to-blocks.d.ts","sourceRoot":"","sources":["../../src/blobs-to-blocks.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAuB,4BAA4B,CAClD,KAAK,EACF,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GACvC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EACrC,UAAU,GAAE,CACX,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,KACzB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAiB,0FAarD"}
1
+ {"version":3,"file":"blobs-to-blocks.d.ts","sourceRoot":"","sources":["../../src/blobs-to-blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAGtB,MAAM,mBAAmB,CAAA;AAG1B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAuB,4BAA4B,CAClD,KAAK,EACF,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GACvC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EACrC,UAAU,GAAE,CACX,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,KACzB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAiB,kEAWrD;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACvC,cAAc,EAAE,UAAU,CAAC,WAAW,CAAC,EACvC,UAAU,GAAE,CACX,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,KACzB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAiB,GACnD,OAAO,CAAC,iBAAiB,CAAC,CAI5B;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAC1C,cAAc,EAAE,UAAU,CAAC,WAAW,CAAC,EACvC,UAAU,GAAE,CACX,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,KACzB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAiB,GACnD,OAAO,CAAC,WAAW,CAAC,CAItB"}
@@ -1,22 +1,75 @@
1
+ /**
2
+ * Blob-to-block conversion utilities.
3
+ *
4
+ * Handles decompression and protobuf decoding of raw OSM PBF blobs into
5
+ * typed header and primitive block structures.
6
+ *
7
+ * @module
8
+ */
1
9
  import Pbf from "pbf";
2
- import { readHeaderBlock, readPrimitiveBlock } from "./proto/osmformat";
10
+ import { readHeaderBlock, readPrimitiveBlock, } from "./proto/osmformat";
3
11
  import { webDecompress } from "./utils";
4
12
  /**
5
- * Decompresses raw OSM PBF blobs and yields typed header and primitive blocks.
6
- * Expects the first blob to contain the file header and streams the rest as data blocks.
13
+ * Decompress and decode a stream of raw PBF blobs into typed blocks.
14
+ *
15
+ * This async generator handles the transition from compressed bytes to parsed
16
+ * protobuf structures. The first blob is always decoded as a header block;
17
+ * subsequent blobs are decoded as primitive blocks containing OSM entities.
18
+ *
19
+ * @param blobs - Async or sync generator yielding compressed blob payloads.
20
+ * @param decompress - Optional decompression function (defaults to Web Streams zlib).
21
+ * @yields Header block first, then primitive blocks.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import { osmPbfBlobsToBlocksGenerator, createOsmPbfBlobGenerator } from "@osmix/pbf"
26
+ *
27
+ * const generateBlobs = createOsmPbfBlobGenerator()
28
+ * const blobsGen = (async function* () {
29
+ * for await (const chunk of stream) {
30
+ * yield* generateBlobs(chunk)
31
+ * }
32
+ * })()
33
+ *
34
+ * for await (const block of osmPbfBlobsToBlocksGenerator(blobsGen)) {
35
+ * // First iteration yields header, rest yield primitive blocks
36
+ * }
37
+ * ```
7
38
  */
8
39
  export async function* osmPbfBlobsToBlocksGenerator(blobs, decompress = webDecompress) {
9
40
  let headerRead = false;
10
41
  for await (const blob of blobs) {
11
- const decompressedBlob = await decompress(blob);
12
- const pbf = new Pbf(decompressedBlob);
13
42
  if (!headerRead) {
14
43
  headerRead = true;
15
- yield readHeaderBlock(pbf);
44
+ yield readOsmHeaderBlock(blob, decompress);
16
45
  }
17
46
  else {
18
- yield readPrimitiveBlock(pbf);
47
+ yield readOsmPrimitiveBlock(blob, decompress);
19
48
  }
20
49
  }
21
50
  }
51
+ /**
52
+ * Decompress and parse a header block from a compressed blob.
53
+ *
54
+ * @param compressedBlob - Zlib-compressed protobuf header blob.
55
+ * @param decompress - Optional decompression function.
56
+ * @returns Parsed header block with required/optional features and bbox.
57
+ */
58
+ export async function readOsmHeaderBlock(compressedBlob, decompress = webDecompress) {
59
+ const decompressedBlob = await decompress(compressedBlob);
60
+ const pbf = new Pbf(decompressedBlob);
61
+ return readHeaderBlock(pbf);
62
+ }
63
+ /**
64
+ * Decompress and parse a primitive block from a compressed blob.
65
+ *
66
+ * @param compressedBlob - Zlib-compressed protobuf primitive blob.
67
+ * @param decompress - Optional decompression function.
68
+ * @returns Parsed primitive block with string table and primitive groups.
69
+ */
70
+ export async function readOsmPrimitiveBlock(compressedBlob, decompress = webDecompress) {
71
+ const decompressedBlob = await decompress(compressedBlob);
72
+ const pbf = new Pbf(decompressedBlob);
73
+ return readPrimitiveBlock(pbf);
74
+ }
22
75
  //# sourceMappingURL=blobs-to-blocks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blobs-to-blocks.js","sourceRoot":"","sources":["../../src/blobs-to-blocks.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvC;;;GAGG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,4BAA4B,CAClD,KAEqC,EACrC,aAEwC,aAAa;IAErD,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAChC,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;QAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAA;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,UAAU,GAAG,IAAI,CAAA;YACjB,MAAM,eAAe,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACP,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;IACF,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"blobs-to-blocks.js","sourceRoot":"","sources":["../../src/blobs-to-blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAGN,eAAe,EACf,kBAAkB,GAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,4BAA4B,CAClD,KAEqC,EACrC,aAEwC,aAAa;IAErD,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,UAAU,GAAG,IAAI,CAAA;YACjB,MAAM,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAC3C,CAAC;aAAM,CAAC;YACP,MAAM,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAC9C,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,cAAuC,EACvC,aAEwC,aAAa;IAErD,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,CAAA;IACzD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACrC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,cAAuC,EACvC,aAEwC,aAAa;IAErD,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,CAAA;IACzD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACrC,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAC/B,CAAC"}
@@ -1,14 +1,50 @@
1
+ /**
2
+ * Block-to-PBF serialization utilities.
3
+ *
4
+ * Converts parsed OSM header and primitive blocks back into spec-compliant
5
+ * PBF byte sequences with proper framing, compression, and size validation.
6
+ *
7
+ * @module
8
+ */
1
9
  import type { OsmPbfBlock, OsmPbfHeaderBlock } from "./proto/osmformat";
2
10
  /**
3
- * Serializes a header or primitive block into a spec-compliant compressed blob.
4
- * Automatically sets the blob type, compresses the payload, and enforces size guardrails.
11
+ * Serialize a header or primitive block into spec-compliant PBF bytes.
12
+ *
13
+ * Handles protobuf encoding, zlib compression, blob wrapping, and length prefixing.
14
+ * Validates output against OSM PBF specification size limits and logs warnings
15
+ * if recommended sizes are exceeded.
16
+ *
5
17
  * @param block - Parsed header or primitive block to encode.
6
- * @returns BlobHeader length prefix + Blob bytes as a single Uint8Array.
18
+ * @param compress - Optional compression function (defaults to Web Streams zlib).
19
+ * @returns Complete blob bytes: 4-byte length prefix + BlobHeader + Blob.
20
+ * @throws If blob exceeds maximum size limits (64 KiB header, 32 MiB data).
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import { osmBlockToPbfBlobBytes } from "@osmix/pbf"
25
+ *
26
+ * const headerBytes = await osmBlockToPbfBlobBytes({
27
+ * required_features: ["OsmSchema-V0.6", "DenseNodes"],
28
+ * optional_features: [],
29
+ * })
30
+ * ```
7
31
  */
8
32
  export declare function osmBlockToPbfBlobBytes(block: OsmPbfBlock | OsmPbfHeaderBlock, compress?: (data: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>): Promise<Uint8Array<ArrayBufferLike>>;
9
33
  /**
10
- * Web `TransformStream` that converts OSM header/data blocks into PBF byte chunks.
11
- * Throws if the header is not the first block and reuses `osmBlockToPbfBlobBytes` for encoding.
34
+ * Web `TransformStream` that encodes OSM blocks into PBF byte chunks.
35
+ *
36
+ * Accepts a stream of header and primitive blocks and outputs spec-compliant
37
+ * PBF bytes. The header block must be the first item in the stream.
38
+ *
39
+ * @throws If a primitive block is received before the header.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * import { OsmBlocksToPbfBytesTransformStream } from "@osmix/pbf"
44
+ *
45
+ * const pbfStream = blocksStream.pipeThrough(new OsmBlocksToPbfBytesTransformStream())
46
+ * await pbfStream.pipeTo(writableFile)
47
+ * ```
12
48
  */
13
49
  export declare class OsmBlocksToPbfBytesTransformStream extends TransformStream<OsmPbfHeaderBlock | OsmPbfBlock, Uint8Array> {
14
50
  headerEnqueued: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"blocks-to-pbf.d.ts","sourceRoot":"","sources":["../../src/blocks-to-pbf.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAUvE;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC3C,KAAK,EAAE,WAAW,GAAG,iBAAiB,EACtC,QAAQ,GAAE,CACT,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,KACzB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAe,wCAqDnD;AAED;;;GAGG;AACH,qBAAa,kCAAmC,SAAQ,eAAe,CACtE,iBAAiB,GAAG,WAAW,EAC/B,UAAU,CACV;IACA,cAAc,UAAQ;;CAYtB"}
1
+ {"version":3,"file":"blocks-to-pbf.d.ts","sourceRoot":"","sources":["../../src/blocks-to-pbf.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAUvE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,sBAAsB,CAC3C,KAAK,EAAE,WAAW,GAAG,iBAAiB,EACtC,QAAQ,GAAE,CACT,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,KACzB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAe,wCAqDnD;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kCAAmC,SAAQ,eAAe,CACtE,iBAAiB,GAAG,WAAW,EAC/B,UAAU,CACV;IACA,cAAc,UAAQ;;CAYtB"}
@@ -1,13 +1,37 @@
1
+ /**
2
+ * Block-to-PBF serialization utilities.
3
+ *
4
+ * Converts parsed OSM header and primitive blocks back into spec-compliant
5
+ * PBF byte sequences with proper framing, compression, and size validation.
6
+ *
7
+ * @module
8
+ */
1
9
  import Pbf from "pbf";
2
10
  import { writeBlob, writeBlobHeader } from "./proto/fileformat";
3
11
  import { writeHeaderBlock, writePrimitiveBlock } from "./proto/osmformat";
4
12
  import { MAX_BLOB_SIZE_BYTES, MAX_HEADER_SIZE_BYTES, RECOMMENDED_BLOB_SIZE_BYTES, RECOMMENDED_HEADER_SIZE_BYTES, } from "./spec";
5
13
  import { concatUint8, uint32BE, webCompress } from "./utils";
6
14
  /**
7
- * Serializes a header or primitive block into a spec-compliant compressed blob.
8
- * Automatically sets the blob type, compresses the payload, and enforces size guardrails.
15
+ * Serialize a header or primitive block into spec-compliant PBF bytes.
16
+ *
17
+ * Handles protobuf encoding, zlib compression, blob wrapping, and length prefixing.
18
+ * Validates output against OSM PBF specification size limits and logs warnings
19
+ * if recommended sizes are exceeded.
20
+ *
9
21
  * @param block - Parsed header or primitive block to encode.
10
- * @returns BlobHeader length prefix + Blob bytes as a single Uint8Array.
22
+ * @param compress - Optional compression function (defaults to Web Streams zlib).
23
+ * @returns Complete blob bytes: 4-byte length prefix + BlobHeader + Blob.
24
+ * @throws If blob exceeds maximum size limits (64 KiB header, 32 MiB data).
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import { osmBlockToPbfBlobBytes } from "@osmix/pbf"
29
+ *
30
+ * const headerBytes = await osmBlockToPbfBlobBytes({
31
+ * required_features: ["OsmSchema-V0.6", "DenseNodes"],
32
+ * optional_features: [],
33
+ * })
34
+ * ```
11
35
  */
12
36
  export async function osmBlockToPbfBlobBytes(block, compress = webCompress) {
13
37
  const contentPbf = new Pbf();
@@ -54,8 +78,20 @@ export async function osmBlockToPbfBlobBytes(block, compress = webCompress) {
54
78
  return concatUint8(blobHeaderSize, blobHeader, blob);
55
79
  }
56
80
  /**
57
- * Web `TransformStream` that converts OSM header/data blocks into PBF byte chunks.
58
- * Throws if the header is not the first block and reuses `osmBlockToPbfBlobBytes` for encoding.
81
+ * Web `TransformStream` that encodes OSM blocks into PBF byte chunks.
82
+ *
83
+ * Accepts a stream of header and primitive blocks and outputs spec-compliant
84
+ * PBF bytes. The header block must be the first item in the stream.
85
+ *
86
+ * @throws If a primitive block is received before the header.
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * import { OsmBlocksToPbfBytesTransformStream } from "@osmix/pbf"
91
+ *
92
+ * const pbfStream = blocksStream.pipeThrough(new OsmBlocksToPbfBytesTransformStream())
93
+ * await pbfStream.pipeTo(writableFile)
94
+ * ```
59
95
  */
60
96
  export class OsmBlocksToPbfBytesTransformStream extends TransformStream {
61
97
  headerEnqueued = false;
@@ -1 +1 @@
1
- {"version":3,"file":"blocks-to-pbf.js","sourceRoot":"","sources":["../../src/blocks-to-pbf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocks-to-pbf.js","sourceRoot":"","sources":["../../src/blocks-to-pbf.ts"],"names":[],"mappings":"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"}