@osmix/shared 0.0.7 → 0.0.10

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 (125) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/content-hasher.d.ts +28 -0
  3. package/dist/content-hasher.d.ts.map +1 -0
  4. package/dist/content-hasher.js +62 -0
  5. package/dist/content-hasher.js.map +1 -0
  6. package/dist/csv-parse-stream.d.ts +38 -0
  7. package/dist/csv-parse-stream.d.ts.map +1 -0
  8. package/dist/csv-parse-stream.js +157 -0
  9. package/dist/csv-parse-stream.js.map +1 -0
  10. package/dist/relation-kind.d.ts.map +1 -1
  11. package/dist/relation-kind.js +5 -3
  12. package/dist/relation-kind.js.map +1 -1
  13. package/dist/stream-to-bytes.js +2 -1
  14. package/dist/stream-to-bytes.js.map +1 -1
  15. package/dist/utils.d.ts +6 -1
  16. package/dist/utils.d.ts.map +1 -1
  17. package/dist/utils.js +21 -0
  18. package/dist/utils.js.map +1 -1
  19. package/package.json +1 -1
  20. package/src/content-hasher.ts +70 -0
  21. package/src/csv-parse-stream.ts +215 -0
  22. package/src/relation-kind.ts +5 -3
  23. package/src/stream-to-bytes.ts +1 -1
  24. package/src/utils.ts +20 -0
  25. package/test/csv-parse-stream.test.ts +74 -0
  26. package/dist/src/assert.d.ts +0 -24
  27. package/dist/src/assert.d.ts.map +0 -1
  28. package/dist/src/assert.js +0 -28
  29. package/dist/src/assert.js.map +0 -1
  30. package/dist/src/bbox-intersects.d.ts +0 -15
  31. package/dist/src/bbox-intersects.d.ts.map +0 -1
  32. package/dist/src/bbox-intersects.js +0 -24
  33. package/dist/src/bbox-intersects.js.map +0 -1
  34. package/dist/src/bytes-to-stream.d.ts +0 -18
  35. package/dist/src/bytes-to-stream.d.ts.map +0 -1
  36. package/dist/src/bytes-to-stream.js +0 -25
  37. package/dist/src/bytes-to-stream.js.map +0 -1
  38. package/dist/src/color.d.ts +0 -4
  39. package/dist/src/color.d.ts.map +0 -1
  40. package/dist/src/color.js +0 -33
  41. package/dist/src/color.js.map +0 -1
  42. package/dist/src/concat-bytes.d.ts +0 -5
  43. package/dist/src/concat-bytes.d.ts.map +0 -1
  44. package/dist/src/concat-bytes.js +0 -14
  45. package/dist/src/concat-bytes.js.map +0 -1
  46. package/dist/src/coordinates.d.ts +0 -28
  47. package/dist/src/coordinates.d.ts.map +0 -1
  48. package/dist/src/coordinates.js +0 -38
  49. package/dist/src/coordinates.js.map +0 -1
  50. package/dist/src/haversine-distance.d.ts +0 -16
  51. package/dist/src/haversine-distance.d.ts.map +0 -1
  52. package/dist/src/haversine-distance.js +0 -26
  53. package/dist/src/haversine-distance.js.map +0 -1
  54. package/dist/src/lineclip.d.ts +0 -2
  55. package/dist/src/lineclip.d.ts.map +0 -1
  56. package/dist/src/lineclip.js +0 -3
  57. package/dist/src/lineclip.js.map +0 -1
  58. package/dist/src/progress.d.ts +0 -42
  59. package/dist/src/progress.d.ts.map +0 -1
  60. package/dist/src/progress.js +0 -53
  61. package/dist/src/progress.js.map +0 -1
  62. package/dist/src/relation-kind.d.ts +0 -69
  63. package/dist/src/relation-kind.d.ts.map +0 -1
  64. package/dist/src/relation-kind.js +0 -375
  65. package/dist/src/relation-kind.js.map +0 -1
  66. package/dist/src/relation-multipolygon.d.ts +0 -43
  67. package/dist/src/relation-multipolygon.d.ts.map +0 -1
  68. package/dist/src/relation-multipolygon.js +0 -195
  69. package/dist/src/relation-multipolygon.js.map +0 -1
  70. package/dist/src/stream-to-bytes.d.ts +0 -18
  71. package/dist/src/stream-to-bytes.d.ts.map +0 -1
  72. package/dist/src/stream-to-bytes.js +0 -30
  73. package/dist/src/stream-to-bytes.js.map +0 -1
  74. package/dist/src/test/fixtures.d.ts +0 -36
  75. package/dist/src/test/fixtures.d.ts.map +0 -1
  76. package/dist/src/test/fixtures.js +0 -175
  77. package/dist/src/test/fixtures.js.map +0 -1
  78. package/dist/src/throttle.d.ts +0 -25
  79. package/dist/src/throttle.d.ts.map +0 -1
  80. package/dist/src/throttle.js +0 -34
  81. package/dist/src/throttle.js.map +0 -1
  82. package/dist/src/tile.d.ts +0 -34
  83. package/dist/src/tile.d.ts.map +0 -1
  84. package/dist/src/tile.js +0 -72
  85. package/dist/src/tile.js.map +0 -1
  86. package/dist/src/transform-bytes.d.ts +0 -24
  87. package/dist/src/transform-bytes.d.ts.map +0 -1
  88. package/dist/src/transform-bytes.js +0 -28
  89. package/dist/src/transform-bytes.js.map +0 -1
  90. package/dist/src/types.d.ts +0 -99
  91. package/dist/src/types.d.ts.map +0 -1
  92. package/dist/src/types.js +0 -9
  93. package/dist/src/types.js.map +0 -1
  94. package/dist/src/utils.d.ts +0 -30
  95. package/dist/src/utils.d.ts.map +0 -1
  96. package/dist/src/utils.js +0 -70
  97. package/dist/src/utils.js.map +0 -1
  98. package/dist/src/way-is-area.d.ts +0 -24
  99. package/dist/src/way-is-area.d.ts.map +0 -1
  100. package/dist/src/way-is-area.js +0 -104
  101. package/dist/src/way-is-area.js.map +0 -1
  102. package/dist/src/zigzag.d.ts +0 -33
  103. package/dist/src/zigzag.d.ts.map +0 -1
  104. package/dist/src/zigzag.js +0 -40
  105. package/dist/src/zigzag.js.map +0 -1
  106. package/dist/test/haversine-distance.test.d.ts +0 -2
  107. package/dist/test/haversine-distance.test.d.ts.map +0 -1
  108. package/dist/test/haversine-distance.test.js +0 -8
  109. package/dist/test/haversine-distance.test.js.map +0 -1
  110. package/dist/test/relation-kind.test.d.ts +0 -2
  111. package/dist/test/relation-kind.test.d.ts.map +0 -1
  112. package/dist/test/relation-kind.test.js +0 -367
  113. package/dist/test/relation-kind.test.js.map +0 -1
  114. package/dist/test/relation-multipolygon.test.d.ts +0 -2
  115. package/dist/test/relation-multipolygon.test.d.ts.map +0 -1
  116. package/dist/test/relation-multipolygon.test.js +0 -237
  117. package/dist/test/relation-multipolygon.test.js.map +0 -1
  118. package/dist/test/utils.test.d.ts +0 -2
  119. package/dist/test/utils.test.d.ts.map +0 -1
  120. package/dist/test/utils.test.js +0 -76
  121. package/dist/test/utils.test.js.map +0 -1
  122. package/dist/test/way-is-area.test.d.ts +0 -2
  123. package/dist/test/way-is-area.test.d.ts.map +0 -1
  124. package/dist/test/way-is-area.test.js +0 -31
  125. package/dist/test/way-is-area.test.js.map +0 -1
@@ -1,76 +0,0 @@
1
- import { describe, expect, it } from "bun:test";
2
- import { entityPropertiesEqual, getEntityType, isMultipolygonRelation, isNode, isNodeEqual, isRelation, isRelationEqual, isWay, isWayEqual, } from "../src/utils";
3
- describe("utils", () => {
4
- const node = {
5
- id: 1,
6
- lat: 10,
7
- lon: 20,
8
- tags: { name: "node" },
9
- };
10
- const way = {
11
- id: 2,
12
- refs: [1, 2, 3],
13
- tags: { highway: "residential" },
14
- };
15
- const members = [
16
- {
17
- type: "node",
18
- ref: 1,
19
- },
20
- ];
21
- const relation = {
22
- id: 3,
23
- members,
24
- tags: { type: "multipolygon" },
25
- };
26
- it("narrows entity types", () => {
27
- expect(isNode(node)).toBe(true);
28
- expect(isWay(way)).toBe(true);
29
- expect(isRelation(relation)).toBe(true);
30
- });
31
- it("compares entity equality", () => {
32
- expect(isNodeEqual(node, { ...node })).toBe(true);
33
- expect(isWayEqual(way, { ...way })).toBe(true);
34
- expect(isRelationEqual(relation, { ...relation })).toBe(true);
35
- });
36
- it("detects property differences", () => {
37
- expect(entityPropertiesEqual(node, { ...node, tags: { name: "changed" } })).toBe(false);
38
- expect(entityPropertiesEqual(way, { ...way, refs: [1, 2, 4] })).toBe(false);
39
- expect(entityPropertiesEqual(relation, {
40
- ...relation,
41
- members: [{ type: "node", ref: 2 }],
42
- })).toBe(false);
43
- });
44
- it("provides entity type", () => {
45
- expect(getEntityType(node)).toBe("node");
46
- expect(getEntityType(way)).toBe("way");
47
- expect(getEntityType(relation)).toBe("relation");
48
- });
49
- describe("isMultipolygonRelation", () => {
50
- it("identifies multipolygon relations", () => {
51
- const relation = {
52
- id: 1,
53
- tags: { type: "multipolygon" },
54
- members: [],
55
- };
56
- expect(isMultipolygonRelation(relation)).toBe(true);
57
- });
58
- it("rejects non-multipolygon relations", () => {
59
- const relation = {
60
- id: 1,
61
- tags: { type: "route" },
62
- members: [],
63
- };
64
- expect(isMultipolygonRelation(relation)).toBe(false);
65
- });
66
- it("rejects relations without type tag", () => {
67
- const relation = {
68
- id: 1,
69
- tags: { name: "test" },
70
- members: [],
71
- };
72
- expect(isMultipolygonRelation(relation)).toBe(false);
73
- });
74
- });
75
- });
76
- //# sourceMappingURL=utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../test/utils.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=way-is-area.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"way-is-area.test.d.ts","sourceRoot":"","sources":["../../test/way-is-area.test.ts"],"names":[],"mappings":""}
@@ -1,31 +0,0 @@
1
- import { describe, expect, it } from "bun:test";
2
- import { wayIsArea } from "../src/way-is-area";
3
- describe("wayIsArea", () => {
4
- it("returns false for open ways", () => {
5
- const refs = [1, 2, 3];
6
- expect(wayIsArea({ id: 0, refs, tags: { building: "yes" } })).toBe(false);
7
- });
8
- it("returns true for closed way without tags", () => {
9
- const refs = [1, 2, 3, 1];
10
- expect(wayIsArea({ id: 0, refs })).toBe(true);
11
- });
12
- it("honors explicit area override", () => {
13
- const refs = [1, 2, 3, 1];
14
- expect(wayIsArea({ id: 0, refs, tags: { area: "no", building: "yes" } })).toBe(false);
15
- expect(wayIsArea({ id: 0, refs, tags: { area: "yes" } })).toBe(true);
16
- });
17
- it("treats implied tags as areas", () => {
18
- const refs = [1, 2, 3, 1];
19
- expect(wayIsArea({ id: 0, refs, tags: { building: "yes" } })).toBe(true);
20
- });
21
- it("considers included values", () => {
22
- const refs = [1, 2, 3, 1];
23
- expect(wayIsArea({ id: 0, refs, tags: { highway: "rest_area" } })).toBe(true);
24
- expect(wayIsArea({ id: 0, refs, tags: { highway: "primary" } })).toBe(false);
25
- });
26
- it("rejects excluded values", () => {
27
- const refs = [1, 2, 3, 1];
28
- expect(wayIsArea({ id: 0, refs, tags: { natural: "coastline" } })).toBe(false);
29
- });
30
- });
31
- //# sourceMappingURL=way-is-area.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"way-is-area.test.js","sourceRoot":"","sources":["../../test/way-is-area.test.ts"],"names":[],"mappings":"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"}