@osmix/core 0.1.10 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/LICENSE +21 -0
  3. package/README.md +136 -72
  4. package/dist/contracts.d.ts +27 -0
  5. package/dist/contracts.d.ts.map +1 -0
  6. package/dist/contracts.js +1 -0
  7. package/dist/contracts.js.map +1 -0
  8. package/dist/entities.d.ts +22 -2
  9. package/dist/entities.d.ts.map +1 -1
  10. package/dist/entities.js +54 -10
  11. package/dist/entities.js.map +1 -1
  12. package/dist/ids.d.ts +20 -5
  13. package/dist/ids.d.ts.map +1 -1
  14. package/dist/ids.js +87 -29
  15. package/dist/ids.js.map +1 -1
  16. package/dist/index.d.ts +7 -4
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +6 -4
  19. package/dist/index.js.map +1 -1
  20. package/dist/indirect-kd-index.d.ts +28 -0
  21. package/dist/indirect-kd-index.d.ts.map +1 -0
  22. package/dist/indirect-kd-index.js +163 -0
  23. package/dist/indirect-kd-index.js.map +1 -0
  24. package/dist/limits.d.ts +30 -0
  25. package/dist/limits.d.ts.map +1 -0
  26. package/dist/limits.js +51 -0
  27. package/dist/limits.js.map +1 -0
  28. package/dist/mocks.d.ts.map +1 -1
  29. package/dist/mocks.js.map +1 -1
  30. package/dist/nodes.d.ts +36 -15
  31. package/dist/nodes.d.ts.map +1 -1
  32. package/dist/nodes.js +185 -62
  33. package/dist/nodes.js.map +1 -1
  34. package/dist/osm.d.ts +60 -4
  35. package/dist/osm.d.ts.map +1 -1
  36. package/dist/osm.js +32 -6
  37. package/dist/osm.js.map +1 -1
  38. package/dist/relations.d.ts +11 -4
  39. package/dist/relations.d.ts.map +1 -1
  40. package/dist/relations.js +73 -29
  41. package/dist/relations.js.map +1 -1
  42. package/dist/renumber.d.ts +23 -0
  43. package/dist/renumber.d.ts.map +1 -0
  44. package/dist/renumber.js +64 -0
  45. package/dist/renumber.js.map +1 -0
  46. package/dist/stringtable.d.ts +2 -1
  47. package/dist/stringtable.d.ts.map +1 -1
  48. package/dist/stringtable.js +9 -14
  49. package/dist/stringtable.js.map +1 -1
  50. package/dist/tags.d.ts +45 -12
  51. package/dist/tags.d.ts.map +1 -1
  52. package/dist/tags.js +153 -27
  53. package/dist/tags.js.map +1 -1
  54. package/dist/typed-arrays.d.ts +63 -48
  55. package/dist/typed-arrays.d.ts.map +1 -1
  56. package/dist/typed-arrays.js +184 -107
  57. package/dist/typed-arrays.js.map +1 -1
  58. package/dist/ways.d.ts +52 -3
  59. package/dist/ways.d.ts.map +1 -1
  60. package/dist/ways.js +223 -46
  61. package/dist/ways.js.map +1 -1
  62. package/package.json +45 -31
  63. package/src/contracts.ts +29 -0
  64. package/src/entities.ts +242 -194
  65. package/src/ids.ts +278 -235
  66. package/src/index.ts +22 -13
  67. package/src/indirect-kd-index.ts +212 -0
  68. package/src/limits.ts +73 -0
  69. package/src/mocks.ts +114 -113
  70. package/src/nodes.ts +538 -397
  71. package/src/osm.ts +282 -207
  72. package/src/relations.ts +580 -558
  73. package/src/renumber.ts +80 -0
  74. package/src/stringtable.ts +189 -184
  75. package/src/tags.ts +406 -272
  76. package/src/typed-arrays.ts +307 -205
  77. package/src/types/geoflatbush.d.ts +28 -33
  78. package/src/ways.ts +577 -406
  79. package/test/entity-index-errors.test.ts +41 -0
  80. package/test/ids.bench.ts +33 -0
  81. package/test/ids.test.ts +122 -0
  82. package/test/limits.test.ts +83 -0
  83. package/test/memory.test.ts +29 -30
  84. package/test/no-shared-array-buffer.test.ts +41 -0
  85. package/test/nodes-spatial-index.test.ts +261 -0
  86. package/test/osm-bbox.test.ts +30 -0
  87. package/test/relations.bench.ts +32 -0
  88. package/test/relations.test.ts +124 -0
  89. package/test/renumber.test.ts +54 -0
  90. package/test/spatial-index-rebuild.test.ts +33 -0
  91. package/test/storage-compaction.test.ts +269 -0
  92. package/test/tags-search.test.ts +89 -56
  93. package/test/typed-arrays.test.ts +252 -132
  94. package/tsconfig.build.json +6 -6
  95. package/tsconfig.json +7 -7
  96. package/src/types/geokdbush.d.ts +0 -37
  97. package/src/types/kdbush.d.ts +0 -47
@@ -1 +1 @@
1
- {"version":3,"file":"relations.js","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relations.js","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { Osm } from "./osm.ts";
2
+ /** Old ID → new ID for each renumbered entity, by type. JSON- and structured-clone-safe. */
3
+ export interface OsmIdMap {
4
+ nodes: Record<number, number>;
5
+ ways: Record<number, number>;
6
+ relations: Record<number, number>;
7
+ }
8
+ /**
9
+ * A copy of `osm` whose negative node, way and relation IDs are replaced by positive ones, for
10
+ * tools that reject negative IDs. In OSM files a negative ID conventionally marks a new, not yet
11
+ * uploaded entity, so only do this when the consumer needs it. Each type gets IDs after its own
12
+ * highest positive ID, in −1, −2, … order, so the result is deterministic. Way refs and relation
13
+ * members follow. `osm` is unchanged; the copy has its indexes built.
14
+ */
15
+ export declare function renumberNegativeIds(osm: Osm, options?: {
16
+ id?: string;
17
+ }): {
18
+ osm: Osm;
19
+ idMap: OsmIdMap;
20
+ };
21
+ /** The ID map `renumberNegativeIds(osm)` would apply, without copying the data. */
22
+ export declare function negativeIdMap(osm: Osm): OsmIdMap;
23
+ //# sourceMappingURL=renumber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renumber.d.ts","sourceRoot":"","sources":["../src/renumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,4FAA4F;AAC5F,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAeD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO;IA4BhE,GAAG;IAAc,KAAK;EAChC;AAcD,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,CAMhD"}
@@ -0,0 +1,64 @@
1
+ import { Osm } from "./osm.js";
2
+ /** New positive IDs for one type's negative IDs, after its highest positive ID, in −1, −2, … order. */
3
+ function positiveIds(ids) {
4
+ let max = 0;
5
+ const negative = [];
6
+ for (let index = 0; index < ids.size; index++) {
7
+ const id = ids.at(index);
8
+ if (id < 0)
9
+ negative.push(id);
10
+ else
11
+ max = Math.max(max, id);
12
+ }
13
+ negative.sort((a, b) => b - a);
14
+ return new Map(negative.map((id, index) => [id, max + index + 1]));
15
+ }
16
+ /**
17
+ * A copy of `osm` whose negative node, way and relation IDs are replaced by positive ones, for
18
+ * tools that reject negative IDs. In OSM files a negative ID conventionally marks a new, not yet
19
+ * uploaded entity, so only do this when the consumer needs it. Each type gets IDs after its own
20
+ * highest positive ID, in −1, −2, … order, so the result is deterministic. Way refs and relation
21
+ * members follow. `osm` is unchanged; the copy has its indexes built.
22
+ */
23
+ export function renumberNegativeIds(osm, options = {}) {
24
+ const nodeIds = positiveIds(osm.nodes.ids);
25
+ const wayIds = positiveIds(osm.ways.ids);
26
+ const relationIds = positiveIds(osm.relations.ids);
27
+ const mapped = { node: nodeIds, way: wayIds, relation: relationIds };
28
+ const renumbered = new Osm({ id: options.id ?? osm.id, header: osm.header });
29
+ for (const node of osm.nodes.sorted()) {
30
+ renumbered.nodes.addNode({ ...node, id: nodeIds.get(node.id) ?? node.id });
31
+ }
32
+ for (const way of osm.ways.sorted()) {
33
+ renumbered.ways.addWay({
34
+ ...way,
35
+ id: wayIds.get(way.id) ?? way.id,
36
+ refs: way.refs.map((ref) => nodeIds.get(ref) ?? ref),
37
+ });
38
+ }
39
+ for (const relation of osm.relations.sorted()) {
40
+ renumbered.relations.addRelation({
41
+ ...relation,
42
+ id: relationIds.get(relation.id) ?? relation.id,
43
+ members: relation.members.map((member) => ({
44
+ ...member,
45
+ ref: mapped[member.type].get(member.ref) ?? member.ref,
46
+ })),
47
+ });
48
+ }
49
+ renumbered.buildIndexes();
50
+ renumbered.buildSpatialIndexes();
51
+ return { osm: renumbered, idMap: toIdMap(nodeIds, wayIds, relationIds) };
52
+ }
53
+ function toIdMap(nodes, ways, relations) {
54
+ return {
55
+ nodes: Object.fromEntries(nodes),
56
+ ways: Object.fromEntries(ways),
57
+ relations: Object.fromEntries(relations),
58
+ };
59
+ }
60
+ /** The ID map `renumberNegativeIds(osm)` would apply, without copying the data. */
61
+ export function negativeIdMap(osm) {
62
+ return toIdMap(positiveIds(osm.nodes.ids), positiveIds(osm.ways.ids), positiveIds(osm.relations.ids));
63
+ }
64
+ //# sourceMappingURL=renumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renumber.js","sourceRoot":"","sources":["../src/renumber.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,8 @@ export interface StringTableTransferables<T extends BufferType = BufferType> {
23
23
  /**
24
24
  * Append-only deduplicated string table.
25
25
  *
26
- * Limits: Max string length 65,535 bytes.
26
+ * Limits: a string holds at most `MAX_STRING_BYTES` (65,535) UTF-8 bytes, and the table
27
+ * holds at most `MAX_UINT32_OFFSET` bytes in total. Larger input throws `OsmCapacityError`.
27
28
  * Rebuilds reverse index lazily after transfer.
28
29
  */
29
30
  export default class StringTable {
@@ -1 +1 @@
1
- {"version":3,"file":"stringtable.d.ts","sourceRoot":"","sources":["../src/stringtable.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,KAAK,UAAU,EAAE,oBAAoB,IAAI,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAEhF;;GAEG;AACH,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IAC1E,gCAAgC;IAChC,KAAK,EAAE,CAAC,CAAA;IACR,uCAAuC;IACvC,KAAK,EAAE,CAAC,CAAA;IACR,uCAAuC;IACvC,KAAK,EAAE,CAAC,CAAA;CACR;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC/B,gDAAgD;IAChD,OAAO,CAAC,GAAG,CAAoB;IAC/B,gDAAgD;IAChD,OAAO,CAAC,GAAG,CAAoB;IAG/B,8CAA8C;IAC9C,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;IACtB,qDAAqD;IACrD,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;IACvB,sCAAsC;IACtC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;IAGvB,4DAA4D;IAC5D,OAAO,CAAC,aAAa,CAA4B;IAEjD,qEAAqE;IACrE,OAAO,CAAC,iBAAiB,CAAQ;IAGjC,gEAAgE;IAChE,OAAO,CAAC,aAAa,CAA4B;IAEjD;;OAEG;IACH,YAAY,IAAI,CAAC,EAAE,wBAAwB,EAU1C;IAED;;OAEG;IACH,aAAa,IAAI,wBAAwB,CAMxC;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUvB;IAED;;;OAGG;IACH,mBAAmB,CAAC,gBAAgB,EAAE,iBAAiB,4BAatD;IAED;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUzB;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAMlC;IAED,sCAAsC;IACtC,IAAI,MAAM,WAET;IAED;;;;;OAKG;IACH,UAAU,SAKT;IAED;;OAEG;IACH,mBAAmB,IAAI,iBAAiB,CAMvC;IAED;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxB;IAED;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAK/C;CACD"}
1
+ {"version":3,"file":"stringtable.d.ts","sourceRoot":"","sources":["../src/stringtable.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,EAAE,KAAK,UAAU,EAAE,oBAAoB,IAAI,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IACzE,gCAAgC;IAChC,KAAK,EAAE,CAAC,CAAC;IACT,uCAAuC;IACvC,KAAK,EAAE,CAAC,CAAC;IACT,uCAAuC;IACvC,KAAK,EAAE,CAAC,CAAC;CACV;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,gDAAgD;IAChD,OAAO,CAAC,GAAG,CAAqB;IAChC,gDAAgD;IAChD,OAAO,CAAC,GAAG,CAAqB;IAGhC,8CAA8C;IAC9C,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACvB,qDAAqD;IACrD,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACxB,sCAAsC;IACtC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAGxB,4DAA4D;IAC5D,OAAO,CAAC,aAAa,CAA6B;IAElD,qEAAqE;IACrE,OAAO,CAAC,iBAAiB,CAAS;IAGlC,gEAAgE;IAChE,OAAO,CAAC,aAAa,CAA6B;IAElD;;OAEG;IACH,YAAY,IAAI,CAAC,EAAE,wBAAwB,EAI1C;IAED;;OAEG;IACH,aAAa,IAAI,wBAAwB,CAMxC;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAsBvB;IAED;;;OAGG;IACH,mBAAmB,CAAC,gBAAgB,EAAE,iBAAiB,4BAatD;IAED;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUzB;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAKlC;IAED,sCAAsC;IACtC,IAAI,MAAM,WAET;IAED;;;;;OAKG;IACH,UAAU,SAKT;IAED;;OAEG;IACH,mBAAmB,IAAI,iBAAiB,CAMvC;IAED;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxB;IAED;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAE/C;CACF"}
@@ -6,11 +6,13 @@
6
6
  *
7
7
  * @module
8
8
  */
9
+ import { MAX_STRING_BYTES, MAX_UINT32_OFFSET, assertCapacity } from "./limits.js";
9
10
  import { ResizeableTypedArray as RTA } from "./typed-arrays.js";
10
11
  /**
11
12
  * Append-only deduplicated string table.
12
13
  *
13
- * Limits: Max string length 65,535 bytes.
14
+ * Limits: a string holds at most `MAX_STRING_BYTES` (65,535) UTF-8 bytes, and the table
15
+ * holds at most `MAX_UINT32_OFFSET` bytes in total. Larger input throws `OsmCapacityError`.
14
16
  * Rebuilds reverse index lazily after transfer.
15
17
  */
16
18
  export default class StringTable {
@@ -37,15 +39,9 @@ export default class StringTable {
37
39
  * Create a new StringTable.
38
40
  */
39
41
  constructor(opts) {
40
- this.bytes = opts?.bytes
41
- ? RTA.from(Uint8Array, opts.bytes)
42
- : new RTA(Uint8Array);
43
- this.start = opts?.start
44
- ? RTA.from(Uint32Array, opts.start)
45
- : new RTA(Uint32Array);
46
- this.count = opts?.count
47
- ? RTA.from(Uint16Array, opts.count)
48
- : new RTA(Uint16Array);
42
+ this.bytes = opts?.bytes ? RTA.from(Uint8Array, opts.bytes) : new RTA(Uint8Array);
43
+ this.start = opts?.start ? RTA.from(Uint32Array, opts.start) : new RTA(Uint32Array);
44
+ this.count = opts?.count ? RTA.from(Uint16Array, opts.count) : new RTA(Uint16Array);
49
45
  }
50
46
  /**
51
47
  * Get transferable objects for passing to another thread.
@@ -66,6 +62,8 @@ export default class StringTable {
66
62
  return existingIndex;
67
63
  const startIndex = this.start.length;
68
64
  const encoded = this.enc.encode(str);
65
+ assertCapacity("string-bytes", encoded.length, MAX_STRING_BYTES, () => `String "${str.slice(0, 40)}…"`);
66
+ assertCapacity("total-string-bytes", this.bytes.length + encoded.length, MAX_UINT32_OFFSET, () => "The string table");
69
67
  this.start.push(this.bytes.length);
70
68
  this.bytes.pushMany(encoded);
71
69
  this.count.push(encoded.length);
@@ -171,10 +169,7 @@ export default class StringTable {
171
169
  * Hashes the bytes, start offsets, and counts.
172
170
  */
173
171
  updateHash(hasher) {
174
- return hasher
175
- .update(this.bytes.array)
176
- .update(this.start.array)
177
- .update(this.count.array);
172
+ return hasher.update(this.bytes.array).update(this.start.array).update(this.count.array);
178
173
  }
179
174
  }
180
175
  //# sourceMappingURL=stringtable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stringtable.js","sourceRoot":"","sources":["../src/stringtable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stringtable.js","sourceRoot":"","sources":["../src/stringtable.ts"],"names":[],"mappings":"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"}
package/dist/tags.d.ts CHANGED
@@ -8,17 +8,21 @@
8
8
  * @module
9
9
  */
10
10
  import type { ContentHasher } from "@osmix/shared/content-hasher";
11
- import type { OsmTags } from "@osmix/shared/types";
11
+ import type { OsmTags } from "@osmix/types";
12
12
  import StringTable from "./stringtable.ts";
13
13
  import { type BufferType } from "./typed-arrays.ts";
14
14
  /**
15
15
  * Serializable state for worker transfer.
16
16
  */
17
17
  export interface TagsTransferables<T extends BufferType = BufferType> {
18
- /** Maps entity index → start position in tagKeys/tagVals. */
19
- tagStart: T;
20
- /** Maps entity index → number of tags. */
21
- tagCount: T;
18
+ /** Exact number of entities represented by this tag index. */
19
+ tagEntityCount: number;
20
+ /** One presence bit per entity. */
21
+ taggedEntityBits: T;
22
+ /** Tagged-entity prefix count at each 256-entity boundary. */
23
+ tagRankCheckpoints: T;
24
+ /** Tag offsets for tagged entities, including a final sentinel. */
25
+ tagOffsets: T;
22
26
  /** Flattened tag key indices. */
23
27
  tagKeys: T;
24
28
  /** Flattened tag value indices. */
@@ -33,16 +37,19 @@ export interface TagsTransferables<T extends BufferType = BufferType> {
33
37
  /**
34
38
  * Bidirectional tag storage.
35
39
  *
36
- * Limits: Max 255 tags per entity.
37
40
  * Note: String indices reference a shared `StringTable`.
38
41
  */
39
42
  export declare class Tags {
40
43
  /** Reference to the shared string table for key/value storage */
41
44
  private stringTable;
42
- /** Maps entity index → start position in tagKeys/tagVals */
43
- private tagStart;
44
- /** Maps entity index → number of tags (max 255) */
45
- private tagCount;
45
+ /** Exact number of entities represented by this tag index. */
46
+ private entityCount;
47
+ /** One presence bit per entity. */
48
+ private taggedEntityBits;
49
+ /** Tagged-entity prefix count at each 256-entity boundary. */
50
+ private tagRankCheckpoints;
51
+ /** Tag offsets for tagged entities, including a final sentinel. */
52
+ private tagOffsets;
46
53
  /** All tag key string indices, concatenated */
47
54
  private tagKeys;
48
55
  /** All tag value string indices, concatenated (parallel to tagKeys) */
@@ -61,6 +68,10 @@ export declare class Tags {
61
68
  * Converted to flat arrays during buildIndex() and then cleared.
62
69
  */
63
70
  private keyEntityIndexBuilder;
71
+ /** Tagged entity indexes collected during ingestion and released on finalization. */
72
+ private taggedEntityIndexBuilder;
73
+ /** Largest tagged entity index seen so far; enforces ascending ingestion order. */
74
+ private lastTaggedEntityIndex;
64
75
  /** Whether buildIndex() has been called */
65
76
  private indexBuilt;
66
77
  /**
@@ -73,6 +84,12 @@ export declare class Tags {
73
84
  addTags(index: number, tags?: OsmTags): [number[], number[]];
74
85
  /**
75
86
  * Add tags to an entity using key and value indexes.
87
+ *
88
+ * Tagged entities must be added in strictly ascending entity-index order and
89
+ * at most once per entity: the rank/popcount lookup orders tagged entities by
90
+ * index while `tagOffsets` records them in call order, so an out-of-order or
91
+ * repeated tagged index would silently misalign every later entity's tags.
92
+ * `Entities.addEntity` (append-only) satisfies this naturally.
76
93
  */
77
94
  addTagKeysAndValues(index: number, keys: number[], values: number[]): void;
78
95
  /**
@@ -90,6 +107,10 @@ export declare class Tags {
90
107
  * Get the number of tags for an entity.
91
108
  */
92
109
  cardinality(index: number): number;
110
+ /** Number of entities that have at least one tag. */
111
+ get taggedEntityCount(): number;
112
+ /** Iterate tagged entity indexes without allocating an intermediate array. */
113
+ taggedEntityIndexes(): Generator<number>;
93
114
  /**
94
115
  * Get the tags for an entity.
95
116
  */
@@ -116,9 +137,12 @@ export declare class Tags {
116
137
  */
117
138
  transferables(): TagsTransferables;
118
139
  /**
119
- * Get the approximate memory requirements for a given number of tags in bytes.
140
+ * Get the approximate memory requirements for a tag index in bytes.
141
+ *
142
+ * @param tagCount - Total key/value pairs. Each costs 12 bytes: key, value and the
143
+ * reverse key → entity index. The small per-key index arrays are not counted.
120
144
  */
121
- static getBytesRequired(count: number): number;
145
+ static getBytesRequired(entityCount: number, taggedEntityCount?: number, tagCount?: number): number;
122
146
  /**
123
147
  * Reconstruct a Tags index from transferable objects.
124
148
  */
@@ -128,5 +152,14 @@ export declare class Tags {
128
152
  * Hashes tag keys and values for each entity.
129
153
  */
130
154
  updateHash(hasher: ContentHasher): ContentHasher;
155
+ /**
156
+ * Return the compact tagged-entity ordinal, or -1 when the entity has no tags.
157
+ *
158
+ * The ordinal is the entity's rank among tagged entities: read the cached
159
+ * prefix count at the nearest 256-entity checkpoint, popcount the presence
160
+ * words between the checkpoint and the entity's word, then popcount the bits
161
+ * below the entity within its own word. The result indexes `tagOffsets`.
162
+ */
163
+ private getTaggedEntityIndex;
131
164
  }
132
165
  //# sourceMappingURL=tags.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../src/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,KAAK,UAAU,EAA+B,MAAM,mBAAmB,CAAA;AAEhF;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IACnE,6DAA6D;IAC7D,QAAQ,EAAE,CAAC,CAAA;IACX,0CAA0C;IAC1C,QAAQ,EAAE,CAAC,CAAA;IACX,iCAAiC;IACjC,OAAO,EAAE,CAAC,CAAA;IACV,mCAAmC;IACnC,OAAO,EAAE,CAAC,CAAA;IAEV,uDAAuD;IACvD,WAAW,EAAE,CAAC,CAAA;IACd,sDAAsD;IACtD,aAAa,EAAE,CAAC,CAAA;IAChB,wDAAwD;IACxD,aAAa,EAAE,CAAC,CAAA;CAChB;AAED;;;;;GAKG;AACH,qBAAa,IAAI;IAChB,iEAAiE;IACjE,OAAO,CAAC,WAAW,CAAiC;IAGpD,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAkB;IAClC,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAiB;IACjC,+CAA+C;IAC/C,OAAO,CAAC,OAAO,CAAkB;IACjC,uEAAuE;IACvE,OAAO,CAAC,OAAO,CAAkB;IAGjC;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAkB;IAErC,4DAA4D;IAC5D,OAAO,CAAC,aAAa,CAAkB;IACvC,8DAA8D;IAC9D,OAAO,CAAC,aAAa,CAAkB;IAEvC;;;OAGG;IACH,OAAO,CAAC,qBAAqB,CAA8B;IAE3D,2CAA2C;IAC3C,OAAO,CAAC,UAAU,CAAQ;IAE1B;;OAEG;IACH,YAAY,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,iBAAiB,EAoBtE;IAED;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAc3D;IAED;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAclE;IAED;;;;;OAKG;IACH,UAAU,SAkBT;IAED;;OAEG;IACH,OAAO,YAEN;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjC;IAED;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAqB1C;IAED;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAU5D;IAED;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExB;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAKjC;IAED;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAGjC;IAED;;OAEG;IACH,aAAa,IAAI,iBAAiB,CAUjC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,UAKpC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACvB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,iBAAiB,QAKhC;IAED;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAM/C;CACD"}
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../src/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAqB,KAAK,UAAU,EAA+B,MAAM,mBAAmB,CAAC;AAKpG;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IAClE,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,gBAAgB,EAAE,CAAC,CAAC;IACpB,8DAA8D;IAC9D,kBAAkB,EAAE,CAAC,CAAC;IACtB,mEAAmE;IACnE,UAAU,EAAE,CAAC,CAAC;IACd,iCAAiC;IACjC,OAAO,EAAE,CAAC,CAAC;IACX,mCAAmC;IACnC,OAAO,EAAE,CAAC,CAAC;IAEX,uDAAuD;IACvD,WAAW,EAAE,CAAC,CAAC;IACf,sDAAsD;IACtD,aAAa,EAAE,CAAC,CAAC;IACjB,wDAAwD;IACxD,aAAa,EAAE,CAAC,CAAC;CAClB;AAED;;;;GAIG;AACH,qBAAa,IAAI;IACf,iEAAiE;IACjE,OAAO,CAAC,WAAW,CAAkC;IAGrD,8DAA8D;IAC9D,OAAO,CAAC,WAAW,CAAK;IACxB,mCAAmC;IACnC,OAAO,CAAC,gBAAgB,CAAc;IACtC,8DAA8D;IAC9D,OAAO,CAAC,kBAAkB,CAAc;IACxC,mEAAmE;IACnE,OAAO,CAAC,UAAU,CAAmB;IACrC,+CAA+C;IAC/C,OAAO,CAAC,OAAO,CAAmB;IAClC,uEAAuE;IACvE,OAAO,CAAC,OAAO,CAAmB;IAGlC;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAmB;IAEtC,4DAA4D;IAC5D,OAAO,CAAC,aAAa,CAAmB;IACxC,8DAA8D;IAC9D,OAAO,CAAC,aAAa,CAAmB;IAExC;;;OAGG;IACH,OAAO,CAAC,qBAAqB,CAA+B;IAE5D,qFAAqF;IACrF,OAAO,CAAC,wBAAwB,CAA0B;IAE1D,mFAAmF;IACnF,OAAO,CAAC,qBAAqB,CAAM;IAEnC,2CAA2C;IAC3C,OAAO,CAAC,UAAU,CAAS;IAE3B;;OAEG;IACH,YAAY,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,iBAAiB,EAyBtE;IAED;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAc3D;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QA0BlE;IAED;;;;;OAKG;IACH,UAAU,SAmDT;IAED;;OAEG;IACH,OAAO,YAEN;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjC;IAED,qDAAqD;IACrD,IAAI,iBAAiB,IAAI,MAAM,CAI9B;IAED,8EAA8E;IAC7E,mBAAmB,IAAI,SAAS,CAAC,MAAM,CAAC,CAYxC;IAED;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAgB1C;IAED;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAU5D;IAED;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExB;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAUjC;IAED;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAGjC;IAED;;OAEG;IACH,aAAa,IAAI,iBAAiB,CAYjC;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,SAAc,EAAE,QAAQ,SAAI,UAOzF;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,QAIlF;IAED;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAO/C;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;CAgB7B"}