@osmix/shared 0.0.8 → 0.0.11

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 (138) hide show
  1. package/dist/content-hasher.d.ts +28 -0
  2. package/dist/content-hasher.d.ts.map +1 -0
  3. package/dist/content-hasher.js +62 -0
  4. package/dist/content-hasher.js.map +1 -0
  5. package/dist/csv-parse-stream.d.ts +38 -0
  6. package/dist/csv-parse-stream.d.ts.map +1 -0
  7. package/dist/csv-parse-stream.js +157 -0
  8. package/dist/csv-parse-stream.js.map +1 -0
  9. package/dist/fixtures.d.ts.map +1 -0
  10. package/dist/{src/test/fixtures.js → fixtures.js} +2 -1
  11. package/dist/fixtures.js.map +1 -0
  12. package/dist/relation-kind.d.ts.map +1 -1
  13. package/dist/relation-kind.js +5 -3
  14. package/dist/relation-kind.js.map +1 -1
  15. package/dist/stream-to-bytes.js +2 -1
  16. package/dist/stream-to-bytes.js.map +1 -1
  17. package/dist/utils.d.ts +6 -1
  18. package/dist/utils.d.ts.map +1 -1
  19. package/dist/utils.js +21 -0
  20. package/dist/utils.js.map +1 -1
  21. package/package.json +34 -19
  22. package/src/content-hasher.ts +70 -0
  23. package/src/csv-parse-stream.ts +215 -0
  24. package/src/{test/fixtures.ts → fixtures.ts} +2 -1
  25. package/src/relation-kind.ts +5 -3
  26. package/src/stream-to-bytes.ts +1 -1
  27. package/src/utils.ts +20 -0
  28. package/CHANGELOG.md +0 -52
  29. package/dist/src/assert.d.ts +0 -24
  30. package/dist/src/assert.d.ts.map +0 -1
  31. package/dist/src/assert.js +0 -28
  32. package/dist/src/assert.js.map +0 -1
  33. package/dist/src/bbox-intersects.d.ts +0 -15
  34. package/dist/src/bbox-intersects.d.ts.map +0 -1
  35. package/dist/src/bbox-intersects.js +0 -24
  36. package/dist/src/bbox-intersects.js.map +0 -1
  37. package/dist/src/bytes-to-stream.d.ts +0 -18
  38. package/dist/src/bytes-to-stream.d.ts.map +0 -1
  39. package/dist/src/bytes-to-stream.js +0 -25
  40. package/dist/src/bytes-to-stream.js.map +0 -1
  41. package/dist/src/color.d.ts +0 -4
  42. package/dist/src/color.d.ts.map +0 -1
  43. package/dist/src/color.js +0 -33
  44. package/dist/src/color.js.map +0 -1
  45. package/dist/src/concat-bytes.d.ts +0 -5
  46. package/dist/src/concat-bytes.d.ts.map +0 -1
  47. package/dist/src/concat-bytes.js +0 -14
  48. package/dist/src/concat-bytes.js.map +0 -1
  49. package/dist/src/coordinates.d.ts +0 -28
  50. package/dist/src/coordinates.d.ts.map +0 -1
  51. package/dist/src/coordinates.js +0 -38
  52. package/dist/src/coordinates.js.map +0 -1
  53. package/dist/src/haversine-distance.d.ts +0 -16
  54. package/dist/src/haversine-distance.d.ts.map +0 -1
  55. package/dist/src/haversine-distance.js +0 -26
  56. package/dist/src/haversine-distance.js.map +0 -1
  57. package/dist/src/lineclip.d.ts +0 -2
  58. package/dist/src/lineclip.d.ts.map +0 -1
  59. package/dist/src/lineclip.js +0 -3
  60. package/dist/src/lineclip.js.map +0 -1
  61. package/dist/src/progress.d.ts +0 -42
  62. package/dist/src/progress.d.ts.map +0 -1
  63. package/dist/src/progress.js +0 -53
  64. package/dist/src/progress.js.map +0 -1
  65. package/dist/src/relation-kind.d.ts +0 -69
  66. package/dist/src/relation-kind.d.ts.map +0 -1
  67. package/dist/src/relation-kind.js +0 -375
  68. package/dist/src/relation-kind.js.map +0 -1
  69. package/dist/src/relation-multipolygon.d.ts +0 -43
  70. package/dist/src/relation-multipolygon.d.ts.map +0 -1
  71. package/dist/src/relation-multipolygon.js +0 -195
  72. package/dist/src/relation-multipolygon.js.map +0 -1
  73. package/dist/src/stream-to-bytes.d.ts +0 -18
  74. package/dist/src/stream-to-bytes.d.ts.map +0 -1
  75. package/dist/src/stream-to-bytes.js +0 -30
  76. package/dist/src/stream-to-bytes.js.map +0 -1
  77. package/dist/src/test/fixtures.d.ts.map +0 -1
  78. package/dist/src/test/fixtures.js.map +0 -1
  79. package/dist/src/throttle.d.ts +0 -25
  80. package/dist/src/throttle.d.ts.map +0 -1
  81. package/dist/src/throttle.js +0 -34
  82. package/dist/src/throttle.js.map +0 -1
  83. package/dist/src/tile.d.ts +0 -34
  84. package/dist/src/tile.d.ts.map +0 -1
  85. package/dist/src/tile.js +0 -72
  86. package/dist/src/tile.js.map +0 -1
  87. package/dist/src/transform-bytes.d.ts +0 -24
  88. package/dist/src/transform-bytes.d.ts.map +0 -1
  89. package/dist/src/transform-bytes.js +0 -28
  90. package/dist/src/transform-bytes.js.map +0 -1
  91. package/dist/src/types.d.ts +0 -99
  92. package/dist/src/types.d.ts.map +0 -1
  93. package/dist/src/types.js +0 -9
  94. package/dist/src/types.js.map +0 -1
  95. package/dist/src/utils.d.ts +0 -30
  96. package/dist/src/utils.d.ts.map +0 -1
  97. package/dist/src/utils.js +0 -70
  98. package/dist/src/utils.js.map +0 -1
  99. package/dist/src/way-is-area.d.ts +0 -24
  100. package/dist/src/way-is-area.d.ts.map +0 -1
  101. package/dist/src/way-is-area.js +0 -104
  102. package/dist/src/way-is-area.js.map +0 -1
  103. package/dist/src/zigzag.d.ts +0 -33
  104. package/dist/src/zigzag.d.ts.map +0 -1
  105. package/dist/src/zigzag.js +0 -40
  106. package/dist/src/zigzag.js.map +0 -1
  107. package/dist/test/fixtures.d.ts +0 -36
  108. package/dist/test/fixtures.d.ts.map +0 -1
  109. package/dist/test/fixtures.js +0 -175
  110. package/dist/test/fixtures.js.map +0 -1
  111. package/dist/test/haversine-distance.test.d.ts +0 -2
  112. package/dist/test/haversine-distance.test.d.ts.map +0 -1
  113. package/dist/test/haversine-distance.test.js +0 -8
  114. package/dist/test/haversine-distance.test.js.map +0 -1
  115. package/dist/test/relation-kind.test.d.ts +0 -2
  116. package/dist/test/relation-kind.test.d.ts.map +0 -1
  117. package/dist/test/relation-kind.test.js +0 -367
  118. package/dist/test/relation-kind.test.js.map +0 -1
  119. package/dist/test/relation-multipolygon.test.d.ts +0 -2
  120. package/dist/test/relation-multipolygon.test.d.ts.map +0 -1
  121. package/dist/test/relation-multipolygon.test.js +0 -237
  122. package/dist/test/relation-multipolygon.test.js.map +0 -1
  123. package/dist/test/utils.test.d.ts +0 -2
  124. package/dist/test/utils.test.d.ts.map +0 -1
  125. package/dist/test/utils.test.js +0 -76
  126. package/dist/test/utils.test.js.map +0 -1
  127. package/dist/test/way-is-area.test.d.ts +0 -2
  128. package/dist/test/way-is-area.test.d.ts.map +0 -1
  129. package/dist/test/way-is-area.test.js +0 -31
  130. package/dist/test/way-is-area.test.js.map +0 -1
  131. package/test/haversine-distance.test.ts +0 -8
  132. package/test/relation-kind.test.ts +0 -426
  133. package/test/relation-multipolygon.test.ts +0 -265
  134. package/test/utils.test.ts +0 -103
  135. package/test/way-is-area.test.ts +0 -42
  136. package/tsconfig.build.json +0 -5
  137. package/tsconfig.json +0 -9
  138. /package/dist/{src/test/fixtures.d.ts → fixtures.d.ts} +0 -0
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Hash state that can be incrementally updated with multiple buffers.
3
+ */
4
+ export declare class ContentHasher {
5
+ private hash;
6
+ /**
7
+ * Update the hash with a typed array's underlying bytes.
8
+ */
9
+ update(data: ArrayBufferView | ArrayBuffer): this;
10
+ /**
11
+ * Update the hash with a number (as 8 bytes).
12
+ */
13
+ updateNumber(n: number): this;
14
+ /**
15
+ * Get the final hash as a hex string.
16
+ */
17
+ digest(): string;
18
+ /**
19
+ * Get the raw hash value.
20
+ */
21
+ digestNumber(): number;
22
+ }
23
+ /**
24
+ * Create a content hash from multiple typed arrays.
25
+ * Returns a hex string suitable for use as a content identifier.
26
+ */
27
+ export declare function hashBuffers(...buffers: (ArrayBufferView | ArrayBuffer)[]): string;
28
+ //# sourceMappingURL=content-hasher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-hasher.d.ts","sourceRoot":"","sources":["../src/content-hasher.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,IAAI,CAAmB;IAE/B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI;IAOjD;;OAEG;IACH,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAM7B;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,YAAY,IAAI,MAAM;CAGtB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAC1B,GAAG,OAAO,EAAE,CAAC,eAAe,GAAG,WAAW,CAAC,EAAE,GAC3C,MAAM,CAMR"}
@@ -0,0 +1,62 @@
1
+ // FNV-1a hash constants (32-bit)
2
+ const FNV_OFFSET_BASIS = 2166136261;
3
+ const FNV_PRIME = 16777619;
4
+ /**
5
+ * FNV-1a hash implementation for Uint8Array.
6
+ * Fast, non-cryptographic hash suitable for content comparison.
7
+ */
8
+ function fnv1aHash(data, initialHash = FNV_OFFSET_BASIS) {
9
+ let hash = initialHash;
10
+ for (let i = 0; i < data.length; i++) {
11
+ hash ^= data[i];
12
+ hash = Math.imul(hash, FNV_PRIME) >>> 0;
13
+ }
14
+ return hash >>> 0;
15
+ }
16
+ /**
17
+ * Hash state that can be incrementally updated with multiple buffers.
18
+ */
19
+ export class ContentHasher {
20
+ hash = FNV_OFFSET_BASIS;
21
+ /**
22
+ * Update the hash with a typed array's underlying bytes.
23
+ */
24
+ update(data) {
25
+ const buffer = data instanceof ArrayBuffer ? data : data.buffer;
26
+ const bytes = new Uint8Array(buffer);
27
+ this.hash = fnv1aHash(bytes, this.hash);
28
+ return this;
29
+ }
30
+ /**
31
+ * Update the hash with a number (as 8 bytes).
32
+ */
33
+ updateNumber(n) {
34
+ const buffer = new ArrayBuffer(8);
35
+ new Float64Array(buffer)[0] = n;
36
+ return this.update(buffer);
37
+ }
38
+ /**
39
+ * Get the final hash as a hex string.
40
+ */
41
+ digest() {
42
+ return this.hash.toString(16).padStart(8, "0");
43
+ }
44
+ /**
45
+ * Get the raw hash value.
46
+ */
47
+ digestNumber() {
48
+ return this.hash;
49
+ }
50
+ }
51
+ /**
52
+ * Create a content hash from multiple typed arrays.
53
+ * Returns a hex string suitable for use as a content identifier.
54
+ */
55
+ export function hashBuffers(...buffers) {
56
+ const hasher = new ContentHasher();
57
+ for (const buffer of buffers) {
58
+ hasher.update(buffer);
59
+ }
60
+ return hasher.digest();
61
+ }
62
+ //# sourceMappingURL=content-hasher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-hasher.js","sourceRoot":"","sources":["../src/content-hasher.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,MAAM,gBAAgB,GAAG,UAAU,CAAA;AACnC,MAAM,SAAS,GAAG,QAAQ,CAAA;AAE1B;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAgB,EAAE,WAAW,GAAG,gBAAgB;IAClE,IAAI,IAAI,GAAG,WAAW,CAAA;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAW,CAAA;QACzB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IACjB,IAAI,GAAG,gBAAgB,CAAA;IAE/B;;OAEG;IACH,MAAM,CAAC,IAAmC;QACzC,MAAM,MAAM,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;QAC/D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,CAAS;QACrB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC/C,CAAC;IAED;;OAEG;IACH,YAAY;QACX,OAAO,IAAI,CAAC,IAAI,CAAA;IACjB,CAAC;CACD;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAC1B,GAAG,OAA0C;IAE7C,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAA;IAClC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAA;AACvB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Browser-friendly streaming CSV parser.
3
+ *
4
+ * Adapted from mafintosh/csv-parser's parsing approach,
5
+ * but implemented with Web Streams for modern runtimes.
6
+ *
7
+ * @module
8
+ */
9
+ export interface CsvParseStreamOptions {
10
+ separator?: string;
11
+ quote?: string;
12
+ escape?: string;
13
+ headers?: Array<string | null> | false | null;
14
+ skipFirstRow?: boolean;
15
+ skipComments?: boolean | string;
16
+ skipLines?: number;
17
+ strict?: boolean;
18
+ mapHeaders?: (args: {
19
+ header: string;
20
+ index: number;
21
+ }) => string | null;
22
+ mapValues?: (args: {
23
+ header: string | undefined;
24
+ index: number;
25
+ value: string;
26
+ }) => string;
27
+ }
28
+ /**
29
+ * TransformStream-like wrapper for CSV parsing.
30
+ *
31
+ * Exposes `writable` + `readable` so it can be used directly in `pipeThrough`.
32
+ */
33
+ export declare class CsvParseStream {
34
+ readonly readable: ReadableStream<Record<string, string>>;
35
+ readonly writable: WritableStream<string>;
36
+ constructor(opts?: CsvParseStreamOptions);
37
+ }
38
+ //# sourceMappingURL=csv-parse-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-parse-stream.d.ts","sourceRoot":"","sources":["../src/csv-parse-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,qBAAqB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAA;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,GAAG,IAAI,CAAA;IACvE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAClB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACb,KAAK,MAAM,CAAA;CACZ;AAqBD;;;;GAIG;AACH,qBAAa,cAAc;IAC1B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACzD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;gBAE7B,IAAI,GAAE,qBAA0B;CAgK5C"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Browser-friendly streaming CSV parser.
3
+ *
4
+ * Adapted from mafintosh/csv-parser's parsing approach,
5
+ * but implemented with Web Streams for modern runtimes.
6
+ *
7
+ * @module
8
+ */
9
+ const defaults = {
10
+ separator: ",",
11
+ quote: '"',
12
+ escape: '"',
13
+ skipFirstRow: false,
14
+ skipComments: false,
15
+ strict: false,
16
+ };
17
+ /**
18
+ * TransformStream-like wrapper for CSV parsing.
19
+ *
20
+ * Exposes `writable` + `readable` so it can be used directly in `pipeThrough`.
21
+ */
22
+ export class CsvParseStream {
23
+ readable;
24
+ writable;
25
+ constructor(opts = {}) {
26
+ const options = {
27
+ ...defaults,
28
+ ...opts,
29
+ headers: opts.headers ?? null,
30
+ skipLines: opts.skipLines ?? 0,
31
+ mapHeaders: opts.mapHeaders ?? (({ header }) => header),
32
+ mapValues: opts.mapValues ?? (({ value }) => value),
33
+ };
34
+ let headers = options.headers;
35
+ let lineNumber = 0;
36
+ let row = [];
37
+ let field = "";
38
+ let inQuotes = false;
39
+ const stream = new TransformStream({
40
+ transform(chunk, controller) {
41
+ const emitRow = (cells) => {
42
+ const skip = options.skipLines > lineNumber;
43
+ lineNumber++;
44
+ if (skip)
45
+ return;
46
+ if (options.skipComments) {
47
+ const commentPrefix = typeof options.skipComments === "string"
48
+ ? options.skipComments
49
+ : "#";
50
+ const firstCell = cells[0] ?? "";
51
+ if (firstCell.startsWith(commentPrefix))
52
+ return;
53
+ }
54
+ if (headers === null || (lineNumber === 1 && options.skipFirstRow)) {
55
+ headers = cells.map((header, index) => options.mapHeaders({ header, index }));
56
+ return;
57
+ }
58
+ if (headers === false) {
59
+ const out = Object.fromEntries(cells.map((value, index) => [index, value]));
60
+ controller.enqueue(out);
61
+ return;
62
+ }
63
+ if (options.strict && cells.length !== headers.length) {
64
+ throw new RangeError(`Row length ${cells.length} does not match header length ${headers.length}`);
65
+ }
66
+ const out = {};
67
+ for (let index = 0; index < cells.length; index++) {
68
+ const header = headers[index] ?? `_${index}`;
69
+ if (header === null)
70
+ continue;
71
+ out[header] = options.mapValues({
72
+ header,
73
+ index,
74
+ value: cells[index] ?? "",
75
+ });
76
+ }
77
+ controller.enqueue(out);
78
+ };
79
+ for (let i = 0; i < chunk.length; i++) {
80
+ const ch = chunk[i];
81
+ const next = chunk[i + 1];
82
+ if (ch === options.escape && inQuotes && next === options.quote) {
83
+ field += options.quote;
84
+ i++;
85
+ continue;
86
+ }
87
+ if (ch === options.quote) {
88
+ inQuotes = !inQuotes;
89
+ continue;
90
+ }
91
+ if (!inQuotes && ch === options.separator) {
92
+ row.push(field);
93
+ field = "";
94
+ continue;
95
+ }
96
+ if (!inQuotes && (ch === "\n" || ch === "\r")) {
97
+ if (ch === "\r" && next === "\n")
98
+ i++;
99
+ row.push(field);
100
+ field = "";
101
+ emitRow(row);
102
+ row = [];
103
+ continue;
104
+ }
105
+ field += ch;
106
+ }
107
+ },
108
+ flush(controller) {
109
+ const emitRow = (cells) => {
110
+ const skip = options.skipLines > lineNumber;
111
+ lineNumber++;
112
+ if (skip)
113
+ return;
114
+ if (options.skipComments) {
115
+ const commentPrefix = typeof options.skipComments === "string"
116
+ ? options.skipComments
117
+ : "#";
118
+ const firstCell = cells[0] ?? "";
119
+ if (firstCell.startsWith(commentPrefix))
120
+ return;
121
+ }
122
+ if (headers === null || (lineNumber === 1 && options.skipFirstRow)) {
123
+ headers = cells.map((header, index) => options.mapHeaders({ header, index }));
124
+ return;
125
+ }
126
+ if (headers === false) {
127
+ const out = Object.fromEntries(cells.map((value, index) => [index, value]));
128
+ controller.enqueue(out);
129
+ return;
130
+ }
131
+ if (options.strict && cells.length !== headers.length) {
132
+ throw new RangeError(`Row length ${cells.length} does not match header length ${headers.length}`);
133
+ }
134
+ const out = {};
135
+ for (let index = 0; index < cells.length; index++) {
136
+ const header = headers[index] ?? `_${index}`;
137
+ if (header === null)
138
+ continue;
139
+ out[header] = options.mapValues({
140
+ header,
141
+ index,
142
+ value: cells[index] ?? "",
143
+ });
144
+ }
145
+ controller.enqueue(out);
146
+ };
147
+ if (field.length > 0 || row.length > 0) {
148
+ row.push(field);
149
+ emitRow(row);
150
+ }
151
+ },
152
+ });
153
+ this.readable = stream.readable;
154
+ this.writable = stream.writable;
155
+ }
156
+ }
157
+ //# sourceMappingURL=csv-parse-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-parse-stream.js","sourceRoot":"","sources":["../src/csv-parse-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmBH,MAAM,QAAQ,GAUV;IACH,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,KAAK;IACnB,MAAM,EAAE,KAAK;CACb,CAAA;AAED;;;;GAIG;AACH,MAAM,OAAO,cAAc;IACjB,QAAQ,CAAwC;IAChD,QAAQ,CAAwB;IAEzC,YAAY,OAA8B,EAAE;QAC3C,MAAM,OAAO,GAAoC;YAChD,GAAG,QAAQ;YACX,GAAG,IAAI;YACP,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;YAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;YACvD,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC;SACnD,CAAA;QAED,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC7B,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,IAAI,GAAG,GAAa,EAAE,CAAA;QACtB,IAAI,KAAK,GAAG,EAAE,CAAA;QACd,IAAI,QAAQ,GAAG,KAAK,CAAA;QAEpB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAiC;YAClE,SAAS,CAAC,KAAK,EAAE,UAAU;gBAC1B,MAAM,OAAO,GAAG,CAAC,KAAe,EAAE,EAAE;oBACnC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,UAAU,CAAA;oBAC3C,UAAU,EAAE,CAAA;oBACZ,IAAI,IAAI;wBAAE,OAAM;oBAEhB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;wBAC1B,MAAM,aAAa,GAClB,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;4BACvC,CAAC,CAAC,OAAO,CAAC,YAAY;4BACtB,CAAC,CAAC,GAAG,CAAA;wBACP,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;wBAChC,IAAI,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC;4BAAE,OAAM;oBAChD,CAAC;oBAED,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;wBACpE,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACrC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CACrC,CAAA;wBACD,OAAM;oBACP,CAAC;oBAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;wBACvB,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAC3C,CAAA;wBACD,UAAU,CAAC,OAAO,CAAC,GAAwC,CAAC,CAAA;wBAC5D,OAAM;oBACP,CAAC;oBAED,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;wBACvD,MAAM,IAAI,UAAU,CACnB,cAAc,KAAK,CAAC,MAAM,iCAAiC,OAAO,CAAC,MAAM,EAAE,CAC3E,CAAA;oBACF,CAAC;oBAED,MAAM,GAAG,GAA2B,EAAE,CAAA;oBACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;wBACnD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAA;wBAC5C,IAAI,MAAM,KAAK,IAAI;4BAAE,SAAQ;wBAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;4BAC/B,MAAM;4BACN,KAAK;4BACL,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;yBACzB,CAAC,CAAA;oBACH,CAAC;oBAED,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBACxB,CAAC,CAAA;gBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;oBACnB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAEzB,IAAI,EAAE,KAAK,OAAO,CAAC,MAAM,IAAI,QAAQ,IAAI,IAAI,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;wBACjE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAA;wBACtB,CAAC,EAAE,CAAA;wBACH,SAAQ;oBACT,CAAC;oBAED,IAAI,EAAE,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;wBAC1B,QAAQ,GAAG,CAAC,QAAQ,CAAA;wBACpB,SAAQ;oBACT,CAAC;oBAED,IAAI,CAAC,QAAQ,IAAI,EAAE,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;wBAC3C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;wBACf,KAAK,GAAG,EAAE,CAAA;wBACV,SAAQ;oBACT,CAAC;oBAED,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;wBAC/C,IAAI,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;4BAAE,CAAC,EAAE,CAAA;wBACrC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;wBACf,KAAK,GAAG,EAAE,CAAA;wBACV,OAAO,CAAC,GAAG,CAAC,CAAA;wBACZ,GAAG,GAAG,EAAE,CAAA;wBACR,SAAQ;oBACT,CAAC;oBAED,KAAK,IAAI,EAAE,CAAA;gBACZ,CAAC;YACF,CAAC;YACD,KAAK,CAAC,UAAU;gBACf,MAAM,OAAO,GAAG,CAAC,KAAe,EAAE,EAAE;oBACnC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,UAAU,CAAA;oBAC3C,UAAU,EAAE,CAAA;oBACZ,IAAI,IAAI;wBAAE,OAAM;oBAEhB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;wBAC1B,MAAM,aAAa,GAClB,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;4BACvC,CAAC,CAAC,OAAO,CAAC,YAAY;4BACtB,CAAC,CAAC,GAAG,CAAA;wBACP,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;wBAChC,IAAI,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC;4BAAE,OAAM;oBAChD,CAAC;oBAED,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;wBACpE,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACrC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CACrC,CAAA;wBACD,OAAM;oBACP,CAAC;oBAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;wBACvB,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAC3C,CAAA;wBACD,UAAU,CAAC,OAAO,CAAC,GAAwC,CAAC,CAAA;wBAC5D,OAAM;oBACP,CAAC;oBAED,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;wBACvD,MAAM,IAAI,UAAU,CACnB,cAAc,KAAK,CAAC,MAAM,iCAAiC,OAAO,CAAC,MAAM,EAAE,CAC3E,CAAA;oBACF,CAAC;oBAED,MAAM,GAAG,GAA2B,EAAE,CAAA;oBACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;wBACnD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAA;wBAC5C,IAAI,MAAM,KAAK,IAAI;4BAAE,SAAQ;wBAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;4BAC/B,MAAM;4BACN,KAAK;4BACL,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;yBACzB,CAAC,CAAA;oBACH,CAAC;oBAED,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBACxB,CAAC,CAAA;gBAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACf,OAAO,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;YACF,CAAC;SACD,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QAC/B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAChC,CAAC;CACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,UAOzC;AAED;;GAEG;AACH,wBAAsB,cAAc,CACnC,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAetC;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,2CAEnD;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,+CAUpD;AAED,MAAM,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;QACd,GAAG,EAAE,MAAM,CAAA;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;KACb,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE;QACN,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;QACX,EAAE,EAAE,MAAM,CAAA;KACV,CAAA;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;CACvB,CAAA;AAiCD,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CA0FrC,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAgC,CAAA"}
@@ -1,7 +1,8 @@
1
1
  import { dirname, join, resolve } from "node:path";
2
2
  import { fileURLToPath } from "node:url";
3
+ import * as Bun from "bun";
3
4
  const __dirname = dirname(fileURLToPath(import.meta.url));
4
- const ROOT_DIR = resolve(__dirname, "../../../../");
5
+ const ROOT_DIR = resolve(__dirname, "../../../");
5
6
  const FIXTURES_DIR = resolve(ROOT_DIR, "fixtures");
6
7
  export function getFixturePath(url) {
7
8
  if (url.startsWith("http")) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"relation-kind.d.ts","sourceRoot":"","sources":["../src/relation-kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACX,MAAM,EACN,WAAW,EAEX,MAAM,EACN,YAAY,EACZ,oBAAoB,EACpB,MAAM,SAAS,CAAA;AAEhB;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,YAAY,CA4CnE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,WAAW,GACnB,oBAAoB,CAyCtB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,EACxC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GACxD,MAAM,EAAE,EAAE,CAiCZ;AAqJD;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,WAAW,EACrB,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GACxD,MAAM,EAAE,CAWV;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,WAAW,EACrB,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,EACvD,QAAQ,SAAK,EACb,OAAO,cAAoB,GACzB;IACF,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,EAAE,CAAA;CACnB,CA4DA"}
1
+ {"version":3,"file":"relation-kind.d.ts","sourceRoot":"","sources":["../src/relation-kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACX,MAAM,EACN,WAAW,EAEX,MAAM,EACN,YAAY,EACZ,oBAAoB,EACpB,MAAM,SAAS,CAAA;AAEhB;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,YAAY,CA4CnE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,WAAW,GACnB,oBAAoB,CAyCtB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,EACxC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GACxD,MAAM,EAAE,EAAE,CAmCZ;AAqJD;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,WAAW,EACrB,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GACxD,MAAM,EAAE,CAWV;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,WAAW,EACrB,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,EACvD,QAAQ,SAAK,EACb,OAAO,cAAoB,GACzB;IACF,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,EAAE,CAAA;CACnB,CA4DA"}
@@ -138,10 +138,12 @@ export function buildRelationLineStrings(relation, getWay, getNodeCoordinates) {
138
138
  const roleGroups = new Map();
139
139
  for (const member of wayMembers) {
140
140
  const role = member.role?.toLowerCase() ?? "";
141
- if (!roleGroups.has(role)) {
142
- roleGroups.set(role, []);
141
+ let roleGroup = roleGroups.get(role);
142
+ if (!roleGroup) {
143
+ roleGroup = [];
144
+ roleGroups.set(role, roleGroup);
143
145
  }
144
- roleGroups.get(role).push(member);
146
+ roleGroup.push(member);
145
147
  }
146
148
  // If no roles or single role group, process all ways together
147
149
  const groupsToProcess = roleGroups.size === 1 || !relation.members.some((m) => m.role)
@@ -1 +1 @@
1
- {"version":3,"file":"relation-kind.js","sourceRoot":"","sources":["../src/relation-kind.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation-kind.js","sourceRoot":"","sources":["../src/relation-kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,QAAqB;IACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAA;IACvC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC7C,oEAAoE;QACpE,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;YACzD,OAAO,OAAO,CAAA;QACf,CAAC;QACD,yCAAyC;QACzC,OAAO,OAAO,CAAA;IACf,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IAE5C,iBAAiB;IACjB,IACC,cAAc,KAAK,cAAc;QACjC,cAAc,KAAK,UAAU;QAC7B,cAAc,KAAK,MAAM,EACxB,CAAC;QACF,OAAO,MAAM,CAAA;IACd,CAAC;IAED,iBAAiB;IACjB,IACC,cAAc,KAAK,OAAO;QAC1B,cAAc,KAAK,UAAU;QAC7B,cAAc,KAAK,iBAAiB;QACpC,cAAc,KAAK,OAAO,EACzB,CAAC;QACF,OAAO,MAAM,CAAA;IACd,CAAC;IAED,kBAAkB;IAClB,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;QACrC,OAAO,OAAO,CAAA;IACf,CAAC;IAED,kDAAkD;IAClD,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;QACzD,OAAO,OAAO,CAAA;IACf,CAAC;IAED,0FAA0F;IAC1F,OAAO,OAAO,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACtC,QAAqB;IAErB,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IAEtC,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,MAAM;YACV,OAAO;gBACN,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACjC,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,8CAA8C;aAC3D,CAAA;QACF,KAAK,MAAM;YACV,OAAO;gBACN,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,SAAS,EAAE,gCAAgC;gBAC1D,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,kDAAkD;aAC/D,CAAA;QACF,KAAK,OAAO;YACX,OAAO;gBACN,IAAI,EAAE,OAAO;gBACb,aAAa,EAAE,SAAS;gBACxB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,6BAA6B;aAC1C,CAAA;QACF,KAAK,OAAO;YACX,OAAO;gBACN,IAAI,EAAE,OAAO;gBACb,aAAa,EAAE,SAAS;gBACxB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,2CAA2C;aACxD,CAAA;QACF,KAAK,OAAO;YACX,OAAO;gBACN,IAAI,EAAE,OAAO;gBACb,aAAa,EAAE,SAAS;gBACxB,YAAY,EAAE,KAAK;gBACnB,WAAW,EACV,yEAAyE;aAC1E,CAAA;IACH,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAqB;IACnD,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAA;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAqB;IACnD,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAA;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAqB;IACpD,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAA;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAqB;IACpD,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAA;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAqB;IACpD,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAA;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACvC,QAAqB,EACrB,MAAwC,EACxC,kBAA0D;IAE1D,MAAM,WAAW,GAAe,EAAE,CAAA;IAClC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;IAEnE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAA;IAE/C,uCAAuC;IACvC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAA;IACzD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;QAC7C,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,SAAS,GAAG,EAAE,CAAA;YACd,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAChC,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC;IAED,8DAA8D;IAC9D,MAAM,eAAe,GACpB,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,CAAC,CAAC,CAAC,UAAU,CAAC;QACd,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IAEnC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACrC,kDAAkD;QAClD,MAAM,SAAS,GAAG,wBAAwB,CACzC,KAAK,EACL,MAAM,EACN,kBAAkB,CAClB,CAAA;QACD,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,WAAW,CAAA;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAChC,UAA+B,EAC/B,MAAwC,EACxC,kBAA0D;IAE1D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEtC,MAAM,WAAW,GAAe,EAAE,CAAA;IAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IAExC,6BAA6B;IAC7B,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,GAAG,EAAE,CAAC;YACT,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC5B,CAAC;IACF,CAAC;IAED,uCAAuC;IACvC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,SAAQ;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,SAAQ;QAEnD,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,MAAM,UAAU,GAAG,QAAQ,CAAA;QAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAEpB,uCAAuC;QACvC,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;YACxC,IAAI,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;QAED,wBAAwB;QACxB,OAAO,IAAI,EAAE,CAAC;YACb,IAAI,KAAK,GAAG,KAAK,CAAA;YACjB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC3C,IAAI,CAAC,SAAS;gBAAE,MAAK;YAErB,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAQ;gBACtC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;gBAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;oBAAE,SAAQ;gBAEjD,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAA;gBACtD,MAAM,OAAO,GAAG,kBAAkB,CACjC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CACtC,CAAA;gBAED,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;oBAAE,SAAQ;gBAEpC,4CAA4C;gBAC5C,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpE,mBAAmB;oBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBAC9B,IAAI,MAAM,KAAK,SAAS;4BAAE,SAAQ;wBAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;wBACxC,IAAI,KAAK;4BAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBAC9B,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBACxB,KAAK,GAAG,IAAI,CAAA;oBACZ,MAAK;gBACN,CAAC;gBACD,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChE,2BAA2B;oBAC3B,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBACnD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBAC9B,IAAI,MAAM,KAAK,SAAS;4BAAE,SAAQ;wBAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;wBACxC,IAAI,KAAK;4BAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBAC9B,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBACxB,KAAK,GAAG,IAAI,CAAA;oBACZ,MAAK;gBACN,CAAC;YACF,CAAC;YAED,IAAI,CAAC,KAAK;gBAAE,MAAK;QAClB,CAAC;QAED,yBAAyB;QACzB,OAAO,IAAI,EAAE,CAAC;YACb,IAAI,KAAK,GAAG,KAAK,CAAA;YACjB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YAC5B,IAAI,CAAC,UAAU;gBAAE,MAAK;YAEtB,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAQ;gBACtC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;gBAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;oBAAE,SAAQ;gBAEjD,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAA;gBACtD,MAAM,OAAO,GAAG,kBAAkB,CACjC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CACtC,CAAA;gBAED,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;oBAAE,SAAQ;gBAEpC,8CAA8C;gBAC9C,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,6BAA6B;oBAC7B,MAAM,SAAS,GAAa,EAAE,CAAA;oBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAClD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBAC9B,IAAI,MAAM,KAAK,SAAS;4BAAE,SAAQ;wBAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;wBACxC,IAAI,KAAK;4BAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACjC,CAAC;oBACD,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAA;oBAC5B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBACxB,KAAK,GAAG,IAAI,CAAA;oBACZ,MAAK;gBACN,CAAC;gBACD,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtE,8CAA8C;oBAC9C,MAAM,SAAS,GAAa,EAAE,CAAA;oBAC9B,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAClD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBAC9B,IAAI,MAAM,KAAK,SAAS;4BAAE,SAAQ;wBAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;wBACxC,IAAI,KAAK;4BAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACjC,CAAC;oBACD,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAA;oBAC5B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBACxB,KAAK,GAAG,IAAI,CAAA;oBACZ,MAAK;gBACN,CAAC;YACF,CAAC;YAED,IAAI,CAAC,KAAK;gBAAE,MAAK;QAClB,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzB,CAAC;IACF,CAAC;IAED,OAAO,WAAW,CAAA;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACpC,QAAqB,EACrB,kBAA0D;IAE1D,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACnB,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACrC,QAAqB,EACrB,WAAuD,EACvD,QAAQ,GAAG,EAAE,EACb,UAAU,IAAI,GAAG,EAAU;IAM3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IAEnC,uCAAuC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC9C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAExB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACtB,CAAC;QACF,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACrB,CAAC;QACF,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAEzB,sCAAsC;gBACtC,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC9C,IAAI,cAAc,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAG,sBAAsB,CACpC,cAAc,EACd,WAAW,EACX,QAAQ,GAAG,CAAC,EACZ,OAAO,CACP,CAAA;oBACD,uBAAuB;oBACvB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;wBACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4BACxB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;wBAClB,CAAC;oBACF,CAAC;oBACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;4BACtB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;wBAChB,CAAC;oBACF,CAAC;oBACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wBACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC3B,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;wBACrB,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO;QACN,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;KAChC,CAAA;AACF,CAAC"}
@@ -23,7 +23,8 @@ export async function streamToBytes(stream) {
23
23
  if (done) {
24
24
  break;
25
25
  }
26
- chunks.push(value);
26
+ if (value !== undefined)
27
+ chunks.push(value);
27
28
  }
28
29
  return concatBytes(chunks);
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stream-to-bytes.js","sourceRoot":"","sources":["../src/stream-to-bytes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAA+C;IAE/C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IACjC,MAAM,MAAM,GAA8B,EAAE,CAAA;IAE5C,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAE3C,IAAI,IAAI,EAAE,CAAC;YACV,MAAK;QACN,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;IAED,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC"}
1
+ {"version":3,"file":"stream-to-bytes.js","sourceRoot":"","sources":["../src/stream-to-bytes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAA+C;IAE/C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IACjC,MAAM,MAAM,GAA8B,EAAE,CAAA;IAE5C,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAE3C,IAAI,IAAI,EAAE,CAAC;YACV,MAAK;QACN,CAAC;QAED,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC"}
package/dist/utils.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @module
8
8
  */
9
- import type { OsmEntity, OsmEntityType, OsmNode, OsmRelation, OsmWay } from "./types";
9
+ import type { GeoBbox2D, LonLat, OsmEntity, OsmEntityType, OsmNode, OsmRelation, OsmWay } from "./types";
10
10
  /** Type guard: check if entity is a Node. */
11
11
  export declare function isNode(entity: OsmEntity): entity is OsmNode;
12
12
  /** Check if two nodes are equal (position, tags, and info). */
@@ -27,4 +27,9 @@ export declare function getEntityType(entity: OsmEntity): OsmEntityType;
27
27
  * Check if a relation is a multipolygon relation.
28
28
  */
29
29
  export declare function isMultipolygonRelation(relation: OsmRelation): boolean;
30
+ /**
31
+ * Compute the bounding box of a set of coordinates.
32
+ * Returns `[minLon, minLat, maxLon, maxLat]`.
33
+ */
34
+ export declare function bboxFromLonLats(lonLats: LonLat[]): GeoBbox2D;
30
35
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACX,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,EACX,MAAM,EACN,MAAM,SAAS,CAAA;AAShB,6CAA6C;AAC7C,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,OAAO,CAE3D;AAED,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,WAEjD;AAED,4CAA4C;AAC5C,wBAAgB,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,MAAM,CAEzD;AAED,iDAAiD;AACjD,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,WAAW,CAEnE;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,WAE9C;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,WAE7D;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,WAO/D;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,CAK9D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAErE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACX,SAAS,EACT,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,EACX,MAAM,EACN,MAAM,SAAS,CAAA;AAShB,6CAA6C;AAC7C,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,OAAO,CAE3D;AAED,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,WAEjD;AAED,4CAA4C;AAC5C,wBAAgB,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,MAAM,CAEzD;AAED,iDAAiD;AACjD,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,WAAW,CAEnE;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,WAE9C;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,WAE7D;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,WAO/D;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,CAK9D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAErE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAY5D"}
package/dist/utils.js CHANGED
@@ -67,4 +67,25 @@ export function getEntityType(entity) {
67
67
  export function isMultipolygonRelation(relation) {
68
68
  return relation.tags?.["type"] === "multipolygon";
69
69
  }
70
+ /**
71
+ * Compute the bounding box of a set of coordinates.
72
+ * Returns `[minLon, minLat, maxLon, maxLat]`.
73
+ */
74
+ export function bboxFromLonLats(lonLats) {
75
+ let minLon = Number.POSITIVE_INFINITY;
76
+ let minLat = Number.POSITIVE_INFINITY;
77
+ let maxLon = Number.NEGATIVE_INFINITY;
78
+ let maxLat = Number.NEGATIVE_INFINITY;
79
+ for (const [lon, lat] of lonLats) {
80
+ if (lon < minLon)
81
+ minLon = lon;
82
+ if (lat < minLat)
83
+ minLat = lat;
84
+ if (lon > maxLon)
85
+ maxLon = lon;
86
+ if (lat > maxLat)
87
+ maxLat = lat;
88
+ }
89
+ return [minLon, minLat, maxLon, maxLat];
90
+ }
70
91
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AASpC;;GAEG;AACH,SAAS,kBAAkB,CAAC,CAAY,EAAE,CAAY;IACrD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;AACxD,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,MAAM,CAAC,MAAiB;IACvC,OAAO,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,CAAA;AAC1C,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,WAAW,CAAC,CAAU,EAAE,CAAU;IACjD,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACtE,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,KAAK,CAAC,MAAiB;IACtC,OAAO,MAAM,IAAI,MAAM,CAAA;AACxB,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,UAAU,CAAC,MAAiB;IAC3C,OAAO,SAAS,IAAI,MAAM,CAAA;AAC3B,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAS;IAC9C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,CAAc,EAAE,CAAc;IAC7D,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAChE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB,CAAC,CAAY,EAAE,CAAY;IAC/D,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;QAAE,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACpD,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjD,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAChE,OAAO,KAAK,CAAA;AACb,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC9C,IAAI,MAAM,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IACjC,IAAI,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAC/B,IAAI,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,UAAU,CAAA;IACzC,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAA;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAqB;IAC3D,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,cAAc,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,28 +2,36 @@
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@osmix/shared",
4
4
  "type": "module",
5
- "version": "0.0.8",
5
+ "version": "0.0.11",
6
6
  "description": "Shared utilities for Osmix",
7
7
  "exports": {
8
- "./*": "./src/*.ts",
9
8
  "./tsconfig/base.json": "./tsconfig/base.json",
10
9
  "./tsconfig/test.json": "./tsconfig/test.json",
11
10
  "./tsconfig/app.json": "./tsconfig/app.json",
12
- "./test/*": "./src/test/*.ts"
11
+ "./*": {
12
+ "types": "./src/*.ts",
13
+ "bun": "./src/*.ts",
14
+ "default": "./dist/*.js"
15
+ }
16
+ },
17
+ "typesVersions": {
18
+ "*": {
19
+ "tsconfig/base.json": [
20
+ "tsconfig/base.json"
21
+ ],
22
+ "tsconfig/test.json": [
23
+ "tsconfig/test.json"
24
+ ],
25
+ "tsconfig/app.json": [
26
+ "tsconfig/app.json"
27
+ ],
28
+ "*": [
29
+ "src/*"
30
+ ]
31
+ }
13
32
  },
14
33
  "publishConfig": {
15
- "access": "public",
16
- "exports": {
17
- "./*": {
18
- "import": "./dist/*.js",
19
- "types": "./dist/*.d.ts"
20
- }
21
- },
22
- "files": [
23
- "dist",
24
- "README.md",
25
- "LICENSE"
26
- ]
34
+ "access": "public"
27
35
  },
28
36
  "license": "MIT",
29
37
  "repository": {
@@ -44,12 +52,19 @@
44
52
  "typecheck": "tsgo --noEmit"
45
53
  },
46
54
  "devDependencies": {
47
- "@types/bun": "^1.3.3",
48
- "typescript": "^5.9.0"
55
+ "@types/bun": "catalog:",
56
+ "typescript": "catalog:"
49
57
  },
50
58
  "dependencies": {
51
59
  "@mapbox/tilebelt": "^2.0.3",
52
- "dequal": "^2.0.3",
60
+ "dequal": "catalog:",
53
61
  "lineclip": "^2.0.0"
54
- }
62
+ },
63
+ "files": [
64
+ "dist",
65
+ "src",
66
+ "tsconfig",
67
+ "README.md",
68
+ "LICENSE"
69
+ ]
55
70
  }
@@ -0,0 +1,70 @@
1
+ // FNV-1a hash constants (32-bit)
2
+ const FNV_OFFSET_BASIS = 2166136261
3
+ const FNV_PRIME = 16777619
4
+
5
+ /**
6
+ * FNV-1a hash implementation for Uint8Array.
7
+ * Fast, non-cryptographic hash suitable for content comparison.
8
+ */
9
+ function fnv1aHash(data: Uint8Array, initialHash = FNV_OFFSET_BASIS): number {
10
+ let hash = initialHash
11
+ for (let i = 0; i < data.length; i++) {
12
+ hash ^= data[i] as number
13
+ hash = Math.imul(hash, FNV_PRIME) >>> 0
14
+ }
15
+ return hash >>> 0
16
+ }
17
+
18
+ /**
19
+ * Hash state that can be incrementally updated with multiple buffers.
20
+ */
21
+ export class ContentHasher {
22
+ private hash = FNV_OFFSET_BASIS
23
+
24
+ /**
25
+ * Update the hash with a typed array's underlying bytes.
26
+ */
27
+ update(data: ArrayBufferView | ArrayBuffer): this {
28
+ const buffer = data instanceof ArrayBuffer ? data : data.buffer
29
+ const bytes = new Uint8Array(buffer)
30
+ this.hash = fnv1aHash(bytes, this.hash)
31
+ return this
32
+ }
33
+
34
+ /**
35
+ * Update the hash with a number (as 8 bytes).
36
+ */
37
+ updateNumber(n: number): this {
38
+ const buffer = new ArrayBuffer(8)
39
+ new Float64Array(buffer)[0] = n
40
+ return this.update(buffer)
41
+ }
42
+
43
+ /**
44
+ * Get the final hash as a hex string.
45
+ */
46
+ digest(): string {
47
+ return this.hash.toString(16).padStart(8, "0")
48
+ }
49
+
50
+ /**
51
+ * Get the raw hash value.
52
+ */
53
+ digestNumber(): number {
54
+ return this.hash
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Create a content hash from multiple typed arrays.
60
+ * Returns a hex string suitable for use as a content identifier.
61
+ */
62
+ export function hashBuffers(
63
+ ...buffers: (ArrayBufferView | ArrayBuffer)[]
64
+ ): string {
65
+ const hasher = new ContentHasher()
66
+ for (const buffer of buffers) {
67
+ hasher.update(buffer)
68
+ }
69
+ return hasher.digest()
70
+ }