@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
@@ -1,3 +1,31 @@
1
+ /**
2
+ * @osmix/pbf - Low-level OSM PBF parsing and serialization.
3
+ *
4
+ * Provides streaming primitives for reading and writing OpenStreetMap PBF files
5
+ * using Web Streams and native compression APIs. Stays close to the official
6
+ * protobuf schema (`osmformat.proto`, `fileformat.proto`) while exposing
7
+ * predictable TypeScript types.
8
+ *
9
+ * Key capabilities:
10
+ * - **Parse**: Read headers and primitive blocks from `ArrayBuffer`, async iterables, or `ReadableStream`.
11
+ * - **Stream**: Use `TransformStream` helpers to process large files without buffering entirely in memory.
12
+ * - **Serialize**: Write header and primitive blocks back to spec-compliant blobs with size guardrails.
13
+ * - **Types**: Generated protobuf readers/writers and TypeScript interfaces for OSM data structures.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { readOsmPbf } from "@osmix/pbf"
18
+ *
19
+ * const { header, blocks } = await readOsmPbf(Bun.file('./monaco.pbf').stream())
20
+ * console.log(header.required_features)
21
+ *
22
+ * for await (const block of blocks) {
23
+ * console.log(block.primitivegroup.length, "groups")
24
+ * }
25
+ * ```
26
+ *
27
+ * @module @osmix/pbf
28
+ */
1
29
  export * from "./blobs-to-blocks";
2
30
  export * from "./blocks-to-pbf";
3
31
  export * from "./pbf-to-blobs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
package/dist/src/index.js CHANGED
@@ -1,3 +1,31 @@
1
+ /**
2
+ * @osmix/pbf - Low-level OSM PBF parsing and serialization.
3
+ *
4
+ * Provides streaming primitives for reading and writing OpenStreetMap PBF files
5
+ * using Web Streams and native compression APIs. Stays close to the official
6
+ * protobuf schema (`osmformat.proto`, `fileformat.proto`) while exposing
7
+ * predictable TypeScript types.
8
+ *
9
+ * Key capabilities:
10
+ * - **Parse**: Read headers and primitive blocks from `ArrayBuffer`, async iterables, or `ReadableStream`.
11
+ * - **Stream**: Use `TransformStream` helpers to process large files without buffering entirely in memory.
12
+ * - **Serialize**: Write header and primitive blocks back to spec-compliant blobs with size guardrails.
13
+ * - **Types**: Generated protobuf readers/writers and TypeScript interfaces for OSM data structures.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { readOsmPbf } from "@osmix/pbf"
18
+ *
19
+ * const { header, blocks } = await readOsmPbf(Bun.file('./monaco.pbf').stream())
20
+ * console.log(header.required_features)
21
+ *
22
+ * for await (const block of blocks) {
23
+ * console.log(block.primitivegroup.length, "groups")
24
+ * }
25
+ * ```
26
+ *
27
+ * @module @osmix/pbf
28
+ */
1
29
  export * from "./blobs-to-blocks";
2
30
  export * from "./blocks-to-pbf";
3
31
  export * from "./pbf-to-blobs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
@@ -1,7 +1,26 @@
1
1
  /**
2
- * Creates a stateful parser that slices incoming bytes into compressed OSM PBF blobs.
3
- * Works with buffers, iterables, or streams and yields `Uint8Array` payloads ready to decompress.
4
- * The first blob represents the file header; subsequent blobs hold primitive data.
2
+ * Create a stateful parser that extracts compressed blobs from raw PBF bytes.
3
+ *
4
+ * OSM PBF files consist of length-prefixed blobs. This function returns a generator
5
+ * that accumulates incoming byte chunks and yields complete compressed blobs as they
6
+ * become available. The caller is responsible for decompression.
7
+ *
8
+ * The first yielded blob contains the file header; subsequent blobs contain primitive data.
9
+ *
10
+ * @returns A generator function that accepts byte chunks and yields compressed blob payloads.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import { createOsmPbfBlobGenerator } from "@osmix/pbf"
15
+ *
16
+ * const generateBlobs = createOsmPbfBlobGenerator()
17
+ *
18
+ * for await (const chunk of stream) {
19
+ * for (const compressedBlob of generateBlobs(chunk)) {
20
+ * // Decompress and parse blob...
21
+ * }
22
+ * }
23
+ * ```
5
24
  */
6
25
  export declare function createOsmPbfBlobGenerator(): (chunk: Uint8Array) => Generator<Uint8Array<ArrayBuffer>, void, unknown>;
7
26
  //# sourceMappingURL=pbf-to-blobs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pbf-to-blobs.d.ts","sourceRoot":"","sources":["../../src/pbf-to-blobs.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,wBAAgB,yBAAyB,KASb,OAAO,UAAU,uDAiC5C"}
1
+ {"version":3,"file":"pbf-to-blobs.d.ts","sourceRoot":"","sources":["../../src/pbf-to-blobs.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,KAWb,OAAO,UAAU,uDAiC5C"}
@@ -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);
@@ -1 +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;;;;GAIG;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;;OAEG;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
+ {"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,17 +1,59 @@
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
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
58
  export declare class OsmPbfBytesToBlocksTransformStream extends TransformStream<Uint8Array<ArrayBufferLike>, OsmPbfHeaderBlock | OsmPbfBlock> {
17
59
  generateBlobsFromChunk: (chunk: Uint8Array) => Generator<Uint8Array<ArrayBuffer>, void, unknown>;
@@ -1 +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,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC;;;GAGG;AACH,wBAAsB,UAAU,CAC/B,IAAI,EAAE,mBAAmB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;;YAkBnC,cAAc,CAAC,WAAW,CAAC;GAE9C;AAED;;;GAGG;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"}
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"}
@@ -3,10 +3,36 @@ import { osmPbfBlobsToBlocksGenerator } from "./blobs-to-blocks";
3
3
  import { createOsmPbfBlobGenerator } from "./pbf-to-blobs";
4
4
  import { readHeaderBlock, readPrimitiveBlock, } from "./proto/osmformat";
5
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();
@@ -27,8 +53,24 @@ 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();
@@ -1 +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,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAEpC;;;GAGG;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;;;GAGG;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"}
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"}
@@ -3,10 +3,6 @@ export type AsyncGeneratorValue<T> = T | ReadableStream<T> | AsyncGenerator<T> |
3
3
  * Normalizes values, streams, and iterables into a unified async generator interface.
4
4
  */
5
5
  export declare function toAsyncGenerator<T>(v: AsyncGeneratorValue<T>): AsyncGenerator<T>;
6
- /**
7
- * Returns true when executing inside the Bun runtime.
8
- */
9
- export declare function isBun(): boolean;
10
6
  /**
11
7
  * Web decompression stream
12
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAC9B,CAAC,GACD,cAAc,CAAC,CAAC,CAAC,GACjB,cAAc,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC,CAAC,CAAC,GACV,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7B;;GAEG;AACH,wBAAuB,gBAAgB,CAAC,CAAC,EACxC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GACvB,cAAc,CAAC,CAAC,CAAC,CAuBnB;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED;;GAEG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAalC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAChC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAalC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,CAS9D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAO9C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAC9B,CAAC,GACD,cAAc,CAAC,CAAC,CAAC,GACjB,cAAc,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC,CAAC,CAAC,GACV,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7B;;GAEG;AACH,wBAAuB,gBAAgB,CAAC,CAAC,EACxC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GACvB,cAAc,CAAC,CAAC,CAAC,CAuBnB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAElC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAChC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAElC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,CAS9D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAO9C"}
package/dist/src/utils.js CHANGED
@@ -29,48 +29,16 @@ export async function* toAsyncGenerator(v) {
29
29
  yield v;
30
30
  }
31
31
  }
32
- /**
33
- * Returns true when executing inside the Bun runtime.
34
- */
35
- export function isBun() {
36
- return "Bun" in globalThis;
37
- }
38
32
  /**
39
33
  * Web decompression stream
40
34
  */
41
35
  export async function webDecompress(data) {
42
- if (isBun()) {
43
- // @ts-ignore Only used in Bun runtime.
44
- const { inflate } = await import("node:zlib");
45
- const result = await new Promise((resolve, reject) => {
46
- inflate(data, (error, result) => {
47
- if (error)
48
- reject(error);
49
- else
50
- resolve(new Uint8Array(result));
51
- });
52
- });
53
- return result;
54
- }
55
36
  return transformBytes(data, new DecompressionStream("deflate"));
56
37
  }
57
38
  /**
58
39
  * Web compression stream
59
40
  */
60
41
  export async function webCompress(data) {
61
- if (isBun()) {
62
- // @ts-ignore Only used in Bun runtime.
63
- const { deflate } = await import("node:zlib");
64
- const result = await new Promise((resolve, reject) => {
65
- deflate(data, (error, result) => {
66
- if (error)
67
- reject(error);
68
- else
69
- resolve(new Uint8Array(result));
70
- });
71
- });
72
- return result;
73
- }
74
42
  return transformBytes(data, new CompressionStream("deflate"));
75
43
  }
76
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAU9D;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,gBAAgB,CACtC,CAAyB;IAEzB,IAAI,CAAC,YAAY,OAAO;QAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;IAE1D,IAAI,CAAC,IAAI,IAAI;QAAE,MAAM,KAAK,CAAC,eAAe,CAAC,CAAA;IAC3C,IAAI,CAAC,YAAY,cAAc,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAA;QAC5B,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI;gBAAE,MAAK;YACf,MAAM,KAAK,CAAA;QACZ,CAAC;QACD,MAAM,CAAC,WAAW,EAAE,CAAA;IACrB,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;QAC9D,+EAA+E;QAC/E,MAAM,CAAM,CAAA;IACb,CAAC;SAAM,IACN,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,EAClD,CAAC;QACF,OAAO,CAAC,CAAA;IACT,CAAC;SAAM,CAAC;QACP,MAAM,CAAC,CAAA;IACR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,IAA6B;IAE7B,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAA;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,IAA6B;IAE7B,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAG,KAAmB;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACrD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAClB,MAAM,IAAI,CAAC,CAAC,MAAM,CAAA;IACnB,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAS;IACjC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAA;IACzB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACjB,OAAO,GAAG,CAAA;AACX,CAAC"}
@@ -1,4 +1,4 @@
1
- import { assert, describe, it } from "vitest";
1
+ import { describe, expect, it } from "bun:test";
2
2
  import { osmPbfBlobsToBlocksGenerator } from "../src/blobs-to-blocks";
3
3
  import { createOsmPbfBlobGenerator } from "../src/pbf-to-blobs";
4
4
  import { createSamplePbfFileBytes, isHeaderBlock, isPrimitiveBlock, } from "./helpers";
@@ -16,27 +16,31 @@ describe("osmPbfBlobsToBlocksGenerator", () => {
16
16
  }
17
17
  })());
18
18
  const { value: headerBlock, done } = await generator.next();
19
- assert.isFalse(done);
19
+ expect(done).toBe(false);
20
20
  if (!isHeaderBlock(headerBlock)) {
21
- assert.fail("Expected header block");
21
+ throw new Error("Expected header block");
22
22
  }
23
- assert.deepEqual(headerBlock.bbox, header.bbox);
24
- assert.deepEqual(headerBlock.required_features, header.required_features);
25
- assert.deepEqual(headerBlock.optional_features, header.optional_features);
23
+ expect(headerBlock.bbox).toEqual(header.bbox);
24
+ expect(headerBlock.required_features).toEqual(header.required_features);
25
+ expect(headerBlock.optional_features).toEqual(header.optional_features);
26
26
  const { value: block, done: blockDone } = await generator.next();
27
- assert.isFalse(blockDone);
27
+ expect(blockDone).toBe(false);
28
28
  if (!isPrimitiveBlock(block)) {
29
- assert.fail("Expected primitive block");
29
+ throw new Error("Expected primitive block");
30
30
  }
31
- assert.lengthOf(block.primitivegroup, primitiveBlock.primitivegroup.length);
31
+ expect(block.primitivegroup).toHaveLength(primitiveBlock.primitivegroup.length);
32
32
  const group = block.primitivegroup[0];
33
- assert.exists(primitiveBlock.primitivegroup[0]);
34
- assert.exists(group?.dense);
35
- assert.exists(group?.ways?.[0]);
36
- assert.lengthOf(group.ways, primitiveBlock.primitivegroup[0].ways.length);
37
- assert.deepEqual(group.ways[0].refs, primitiveBlock.primitivegroup[0]?.ways?.[0]?.refs);
33
+ expect(primitiveBlock.primitivegroup[0]).toBeDefined();
34
+ expect(group?.dense).toBeDefined();
35
+ expect(group?.ways?.[0]).toBeDefined();
36
+ if (!group)
37
+ throw new Error("group is undefined");
38
+ if (!primitiveBlock.primitivegroup[0])
39
+ throw new Error("primitiveBlock.primitivegroup[0] is undefined");
40
+ expect(group.ways).toHaveLength(primitiveBlock.primitivegroup[0].ways.length);
41
+ expect(group.ways[0]?.refs).toEqual(primitiveBlock.primitivegroup[0]?.ways?.[0]?.refs);
38
42
  const final = await generator.next();
39
- assert.isTrue(final.done);
43
+ expect(final.done).toBe(true);
40
44
  });
41
45
  it("accepts synchronous generators", async () => {
42
46
  const { fileBytes } = await createSamplePbfFileBytes();
@@ -47,11 +51,11 @@ describe("osmPbfBlobsToBlocksGenerator", () => {
47
51
  yield blob;
48
52
  })());
49
53
  const header = await generator.next();
50
- assert.isFalse(header.done);
54
+ expect(header.done).toBe(false);
51
55
  const block = await generator.next();
52
- assert.isFalse(block.done);
56
+ expect(block.done).toBe(false);
53
57
  const final = await generator.next();
54
- assert.isTrue(final.done);
58
+ expect(final.done).toBe(true);
55
59
  });
56
60
  });
57
61
  //# sourceMappingURL=blobs-to-blocks.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blobs-to-blocks.test.js","sourceRoot":"","sources":["../../test/blobs-to-blocks.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blobs-to-blocks.test.js","sourceRoot":"","sources":["../../test/blobs-to-blocks.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
+ import { describe, expect, it } from "bun:test";
1
2
  import Pbf from "pbf";
2
- import { assert, describe, it } from "vitest";
3
3
  import { osmPbfBlobsToBlocksGenerator } from "../src/blobs-to-blocks";
4
4
  import { createOsmPbfBlobGenerator } from "../src/pbf-to-blobs";
5
5
  import { writeBlob, writeBlobHeader } from "../src/proto/fileformat";
@@ -23,31 +23,39 @@ describe("createOsmPbfBlobGenerator", () => {
23
23
  for (const blob of generate(fileBytes.slice(offset)))
24
24
  yielded.push(blob);
25
25
  }
26
- assert.equal(yielded.length, 2);
26
+ expect(yielded.length).toBe(2);
27
27
  const blocks = osmPbfBlobsToBlocksGenerator((async function* () {
28
28
  for (const blob of yielded)
29
29
  yield blob;
30
30
  })());
31
31
  const { value: headerBlock, done } = await blocks.next();
32
- assert.isFalse(done);
32
+ expect(done).toBe(false);
33
33
  if (!isHeaderBlock(headerBlock)) {
34
- assert.fail("Expected first block to be a header");
34
+ throw new Error("Expected first block to be a header");
35
35
  }
36
- assert.deepEqual(headerBlock.bbox, header.bbox);
37
- assert.deepEqual(headerBlock.required_features, header.required_features);
38
- assert.deepEqual(headerBlock.optional_features, header.optional_features);
36
+ expect(headerBlock.bbox).toEqual(header.bbox);
37
+ expect(headerBlock.required_features).toEqual(header.required_features);
38
+ expect(headerBlock.optional_features).toEqual(header.optional_features);
39
39
  const { value: primitive } = await blocks.next();
40
40
  if (!isPrimitiveBlock(primitive)) {
41
- assert.fail("Expected primitive block after header");
41
+ throw new Error("Expected primitive block after header");
42
42
  }
43
- assert.lengthOf(primitive.primitivegroup, primitiveBlock.primitivegroup.length);
44
- assert.exists(primitive.primitivegroup[0]);
45
- assert.exists(primitiveBlock.primitivegroup[0]);
43
+ expect(primitive.primitivegroup).toHaveLength(primitiveBlock.primitivegroup.length);
44
+ expect(primitive.primitivegroup[0]).toBeDefined();
45
+ expect(primitiveBlock.primitivegroup[0]).toBeDefined();
46
+ if (!primitive.primitivegroup[0])
47
+ throw new Error("primitive.primitivegroup[0] is undefined");
48
+ if (!primitiveBlock.primitivegroup[0])
49
+ throw new Error("primitiveBlock.primitivegroup[0] is undefined");
46
50
  const dense = primitive.primitivegroup[0].dense;
47
- assert.exists(dense);
48
- assert.deepEqual(dense?.id, primitiveBlock.primitivegroup[0].dense?.id);
49
- assert.deepEqual(dense?.lat, primitiveBlock.primitivegroup[0].dense?.lat);
50
- assert.deepEqual(dense?.lon, primitiveBlock.primitivegroup[0].dense?.lon);
51
+ expect(dense).toBeDefined();
52
+ if (!dense)
53
+ throw new Error("dense is undefined");
54
+ if (!primitiveBlock.primitivegroup[0]?.dense)
55
+ throw new Error("primitiveBlock.primitivegroup[0].dense is undefined");
56
+ expect(dense.id).toEqual(primitiveBlock.primitivegroup[0].dense.id);
57
+ expect(dense.lat).toEqual(primitiveBlock.primitivegroup[0].dense.lat);
58
+ expect(dense.lon).toEqual(primitiveBlock.primitivegroup[0].dense.lon);
51
59
  });
52
60
  it("throws when a blob omits zlib data", () => {
53
61
  const headerBlock = createSampleHeader();
@@ -63,7 +71,7 @@ describe("createOsmPbfBlobGenerator", () => {
63
71
  const chunk = concatUint8(uint32BE(blobHeader.byteLength), blobHeader, blob);
64
72
  const generate = createOsmPbfBlobGenerator();
65
73
  const iterator = generate(chunk);
66
- assert.throws(() => iterator.next(), /Blob has no zlib data/);
74
+ expect(() => iterator.next()).toThrow(/Blob has no zlib data/);
67
75
  });
68
76
  });
69
77
  //# sourceMappingURL=pbf-to-blobs.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pbf-to-blobs.test.js","sourceRoot":"","sources":["../../test/pbf-to-blobs.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pbf-to-blobs.test.js","sourceRoot":"","sources":["../../test/pbf-to-blobs.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import { beforeAll, describe, expect } from "bun:test";
1
2
  import { getFixtureFile, getFixtureFileReadStream, PBFs, } from "@osmix/shared/test/fixtures";
2
- import { assert, beforeAll, bench, describe } from "vitest";
3
+ // @ts-expect-error - bench is available at runtime but not in types
4
+ const { bench } = globalThis;
3
5
  import { OsmPbfBytesToBlocksTransformStream, readOsmPbf, } from "../src/pbf-to-blocks";
4
6
  import { createOsmEntityCounter, testOsmPbfReader } from "./utils";
5
7
  describe.each(Object.entries(PBFs))("%s", (_name, pbf) => {
@@ -21,9 +23,9 @@ describe.each(Object.entries(PBFs))("%s", (_name, pbf) => {
21
23
  }
22
24
  },
23
25
  }));
24
- assert.equal(count.nodes, pbf.nodes);
25
- assert.equal(count.ways, pbf.ways);
26
- assert.equal(count.relations, pbf.relations);
26
+ expect(count.nodes).toBe(pbf.nodes);
27
+ expect(count.ways).toBe(pbf.ways);
28
+ expect(count.relations).toBe(pbf.relations);
27
29
  });
28
30
  });
29
31
  //# sourceMappingURL=read.bench.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read.bench.js","sourceRoot":"","sources":["../../test/read.bench.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,wBAAwB,EACxB,IAAI,GACJ,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC3D,OAAO,EACN,kCAAkC,EAClC,UAAU,GACV,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAElE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACxD,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAExC,KAAK,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;QAElC,MAAM,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,sBAAsB,EAAE,CAAA;QAEnD,MAAM,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC;aACrC,WAAW,CAAC,IAAI,kCAAkC,EAAE,CAAC;aACrD,MAAM,CACN,IAAI,cAAc,CAAC;YAClB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,IAAI,gBAAgB,IAAI,KAAK,EAAE,CAAC;oBAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,cAAc;wBAAE,OAAO,CAAC,KAAK,CAAC,CAAA;gBACzD,CAAC;YACF,CAAC;SACD,CAAC,CACF,CAAA;QAEF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QAClC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"read.bench.js","sourceRoot":"","sources":["../../test/read.bench.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EACN,cAAc,EACd,wBAAwB,EACxB,IAAI,GACJ,MAAM,6BAA6B,CAAA;AAEpC,oEAAoE;AACpE,MAAM,EAAE,KAAK,EAAE,GAAG,UAAuD,CAAA;AAEzE,OAAO,EACN,kCAAkC,EAClC,UAAU,GACV,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAElE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACxD,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAExC,KAAK,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;QAElC,MAAM,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,sBAAsB,EAAE,CAAA;QAEnD,MAAM,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC;aACrC,WAAW,CAAC,IAAI,kCAAkC,EAAE,CAAC;aACrD,MAAM,CACN,IAAI,cAAc,CAAC;YAClB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,IAAI,gBAAgB,IAAI,KAAK,EAAE,CAAC;oBAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,cAAc;wBAAE,OAAO,CAAC,KAAK,CAAC,CAAA;gBACzD,CAAC;YACF,CAAC;SACD,CAAC,CACF,CAAA;QAEF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}