@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.
- package/CHANGELOG.md +18 -0
- package/dist/content-hasher.d.ts +28 -0
- package/dist/content-hasher.d.ts.map +1 -0
- package/dist/content-hasher.js +62 -0
- package/dist/content-hasher.js.map +1 -0
- package/dist/csv-parse-stream.d.ts +38 -0
- package/dist/csv-parse-stream.d.ts.map +1 -0
- package/dist/csv-parse-stream.js +157 -0
- package/dist/csv-parse-stream.js.map +1 -0
- package/dist/relation-kind.d.ts.map +1 -1
- package/dist/relation-kind.js +5 -3
- package/dist/relation-kind.js.map +1 -1
- package/dist/stream-to-bytes.js +2 -1
- package/dist/stream-to-bytes.js.map +1 -1
- package/dist/utils.d.ts +6 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +21 -0
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/content-hasher.ts +70 -0
- package/src/csv-parse-stream.ts +215 -0
- package/src/relation-kind.ts +5 -3
- package/src/stream-to-bytes.ts +1 -1
- package/src/utils.ts +20 -0
- package/test/csv-parse-stream.test.ts +74 -0
- package/dist/src/assert.d.ts +0 -24
- package/dist/src/assert.d.ts.map +0 -1
- package/dist/src/assert.js +0 -28
- package/dist/src/assert.js.map +0 -1
- package/dist/src/bbox-intersects.d.ts +0 -15
- package/dist/src/bbox-intersects.d.ts.map +0 -1
- package/dist/src/bbox-intersects.js +0 -24
- package/dist/src/bbox-intersects.js.map +0 -1
- package/dist/src/bytes-to-stream.d.ts +0 -18
- package/dist/src/bytes-to-stream.d.ts.map +0 -1
- package/dist/src/bytes-to-stream.js +0 -25
- package/dist/src/bytes-to-stream.js.map +0 -1
- package/dist/src/color.d.ts +0 -4
- package/dist/src/color.d.ts.map +0 -1
- package/dist/src/color.js +0 -33
- package/dist/src/color.js.map +0 -1
- package/dist/src/concat-bytes.d.ts +0 -5
- package/dist/src/concat-bytes.d.ts.map +0 -1
- package/dist/src/concat-bytes.js +0 -14
- package/dist/src/concat-bytes.js.map +0 -1
- package/dist/src/coordinates.d.ts +0 -28
- package/dist/src/coordinates.d.ts.map +0 -1
- package/dist/src/coordinates.js +0 -38
- package/dist/src/coordinates.js.map +0 -1
- package/dist/src/haversine-distance.d.ts +0 -16
- package/dist/src/haversine-distance.d.ts.map +0 -1
- package/dist/src/haversine-distance.js +0 -26
- package/dist/src/haversine-distance.js.map +0 -1
- package/dist/src/lineclip.d.ts +0 -2
- package/dist/src/lineclip.d.ts.map +0 -1
- package/dist/src/lineclip.js +0 -3
- package/dist/src/lineclip.js.map +0 -1
- package/dist/src/progress.d.ts +0 -42
- package/dist/src/progress.d.ts.map +0 -1
- package/dist/src/progress.js +0 -53
- package/dist/src/progress.js.map +0 -1
- package/dist/src/relation-kind.d.ts +0 -69
- package/dist/src/relation-kind.d.ts.map +0 -1
- package/dist/src/relation-kind.js +0 -375
- package/dist/src/relation-kind.js.map +0 -1
- package/dist/src/relation-multipolygon.d.ts +0 -43
- package/dist/src/relation-multipolygon.d.ts.map +0 -1
- package/dist/src/relation-multipolygon.js +0 -195
- package/dist/src/relation-multipolygon.js.map +0 -1
- package/dist/src/stream-to-bytes.d.ts +0 -18
- package/dist/src/stream-to-bytes.d.ts.map +0 -1
- package/dist/src/stream-to-bytes.js +0 -30
- package/dist/src/stream-to-bytes.js.map +0 -1
- package/dist/src/test/fixtures.d.ts +0 -36
- package/dist/src/test/fixtures.d.ts.map +0 -1
- package/dist/src/test/fixtures.js +0 -175
- package/dist/src/test/fixtures.js.map +0 -1
- package/dist/src/throttle.d.ts +0 -25
- package/dist/src/throttle.d.ts.map +0 -1
- package/dist/src/throttle.js +0 -34
- package/dist/src/throttle.js.map +0 -1
- package/dist/src/tile.d.ts +0 -34
- package/dist/src/tile.d.ts.map +0 -1
- package/dist/src/tile.js +0 -72
- package/dist/src/tile.js.map +0 -1
- package/dist/src/transform-bytes.d.ts +0 -24
- package/dist/src/transform-bytes.d.ts.map +0 -1
- package/dist/src/transform-bytes.js +0 -28
- package/dist/src/transform-bytes.js.map +0 -1
- package/dist/src/types.d.ts +0 -99
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -9
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils.d.ts +0 -30
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/utils.js +0 -70
- package/dist/src/utils.js.map +0 -1
- package/dist/src/way-is-area.d.ts +0 -24
- package/dist/src/way-is-area.d.ts.map +0 -1
- package/dist/src/way-is-area.js +0 -104
- package/dist/src/way-is-area.js.map +0 -1
- package/dist/src/zigzag.d.ts +0 -33
- package/dist/src/zigzag.d.ts.map +0 -1
- package/dist/src/zigzag.js +0 -40
- package/dist/src/zigzag.js.map +0 -1
- package/dist/test/haversine-distance.test.d.ts +0 -2
- package/dist/test/haversine-distance.test.d.ts.map +0 -1
- package/dist/test/haversine-distance.test.js +0 -8
- package/dist/test/haversine-distance.test.js.map +0 -1
- package/dist/test/relation-kind.test.d.ts +0 -2
- package/dist/test/relation-kind.test.d.ts.map +0 -1
- package/dist/test/relation-kind.test.js +0 -367
- package/dist/test/relation-kind.test.js.map +0 -1
- package/dist/test/relation-multipolygon.test.d.ts +0 -2
- package/dist/test/relation-multipolygon.test.d.ts.map +0 -1
- package/dist/test/relation-multipolygon.test.js +0 -237
- package/dist/test/relation-multipolygon.test.js.map +0 -1
- package/dist/test/utils.test.d.ts +0 -2
- package/dist/test/utils.test.d.ts.map +0 -1
- package/dist/test/utils.test.js +0 -76
- package/dist/test/utils.test.js.map +0 -1
- package/dist/test/way-is-area.test.d.ts +0 -2
- package/dist/test/way-is-area.test.d.ts.map +0 -1
- package/dist/test/way-is-area.test.js +0 -31
- package/dist/test/way-is-area.test.js.map +0 -1
package/dist/test/utils.test.js
DELETED
|
@@ -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 +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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"}
|