@drawtonomy/sdk 0.4.0 → 0.5.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 (46) hide show
  1. package/LICENSE +190 -0
  2. package/README.ja.md +2 -2
  3. package/README.md +29 -2
  4. package/dist/exporter/index.d.ts +9 -0
  5. package/dist/exporter/index.d.ts.map +1 -0
  6. package/dist/exporter/index.js +15 -0
  7. package/dist/exporter/index.js.map +1 -0
  8. package/dist/exporter/laneCenterline.d.ts +38 -0
  9. package/dist/exporter/laneCenterline.d.ts.map +1 -0
  10. package/dist/exporter/laneCenterline.js +94 -0
  11. package/dist/exporter/laneCenterline.js.map +1 -0
  12. package/dist/exporter/opendrive.d.ts +6 -0
  13. package/dist/exporter/opendrive.d.ts.map +1 -0
  14. package/dist/exporter/opendrive.js +565 -0
  15. package/dist/exporter/opendrive.js.map +1 -0
  16. package/dist/exporter/openscenario.d.ts +30 -0
  17. package/dist/exporter/openscenario.d.ts.map +1 -0
  18. package/dist/exporter/openscenario.js +393 -0
  19. package/dist/exporter/openscenario.js.map +1 -0
  20. package/dist/exporter/packageEsmini.d.ts +18 -0
  21. package/dist/exporter/packageEsmini.d.ts.map +1 -0
  22. package/dist/exporter/packageEsmini.js +23 -0
  23. package/dist/exporter/packageEsmini.js.map +1 -0
  24. package/dist/exporter/sanitize.d.ts +8 -0
  25. package/dist/exporter/sanitize.d.ts.map +1 -0
  26. package/dist/exporter/sanitize.js +29 -0
  27. package/dist/exporter/sanitize.js.map +1 -0
  28. package/dist/exporter/trajectory.d.ts +41 -0
  29. package/dist/exporter/trajectory.d.ts.map +1 -0
  30. package/dist/exporter/trajectory.js +200 -0
  31. package/dist/exporter/trajectory.js.map +1 -0
  32. package/dist/exporter/units.d.ts +16 -0
  33. package/dist/exporter/units.d.ts.map +1 -0
  34. package/dist/exporter/units.js +38 -0
  35. package/dist/exporter/units.js.map +1 -0
  36. package/dist/exporter/zip.d.ts +13 -0
  37. package/dist/exporter/zip.d.ts.map +1 -0
  38. package/dist/exporter/zip.js +137 -0
  39. package/dist/exporter/zip.js.map +1 -0
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +2 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/types.d.ts +22 -7
  45. package/dist/types.d.ts.map +1 -1
  46. package/package.json +9 -10
@@ -0,0 +1,200 @@
1
+ // Path → OpenSCENARIO Trajectory conversion utility.
2
+ //
3
+ // Generates the vertex sequence used by <FollowTrajectoryAction> from a path
4
+ // (a polyline + optional footprint configuration).
5
+ //
6
+ // Input:
7
+ // - Control points in canvas coordinates (px, y-down)
8
+ // - Footprint config (interval/offset, or pre-computed tValues)
9
+ // - Default speed (m/s)
10
+ //
11
+ // Output:
12
+ // - Per-sample (x_m, y_m, heading_rad, time_sec) in ENU space (y-up)
13
+ //
14
+ // Modes:
15
+ // - When tValues are provided, each footprint position is mapped to an equal
16
+ // time slice over the total path duration.
17
+ // - Otherwise, footprints are placed at equal arc-length intervals and the
18
+ // time is computed assuming a constant speed.
19
+ //
20
+ // Coordinate systems:
21
+ // - Input: canvas px (x right +, y down +)
22
+ // - Output: ENU meters (x east +, y north +); heading 0 = +X, CCW positive
23
+ //
24
+ // Default speed: 10 m/s (≈ 36 km/h, residential).
25
+ import { PIXELS_PER_METER } from './units';
26
+ export const DEFAULT_PATH_SPEED_MPS = 10;
27
+ /**
28
+ * Cumulative arc lengths along the polyline (in input units).
29
+ * Returns an array of the same length as points; cumLen[i] = sum of segment
30
+ * lengths from index 0 to i.
31
+ */
32
+ function computeCumulativeLengths(points) {
33
+ const lens = [0];
34
+ for (let i = 1; i < points.length; i++) {
35
+ const dx = points[i].x - points[i - 1].x;
36
+ const dy = points[i].y - points[i - 1].y;
37
+ lens.push(lens[i - 1] + Math.hypot(dx, dy));
38
+ }
39
+ return lens;
40
+ }
41
+ /**
42
+ * Evaluate the polyline at normalized arc-length parameter t in [0, 1].
43
+ * Returns the interpolated point and tangent direction.
44
+ */
45
+ function evaluateAt(points, cumLens, t) {
46
+ const total = cumLens[cumLens.length - 1];
47
+ if (total <= 0 || points.length < 2) {
48
+ const p = points[0] ?? { x: 0, y: 0 };
49
+ return { x: p.x, y: p.y, tangentDx: 1, tangentDy: 0 };
50
+ }
51
+ const target = Math.max(0, Math.min(1, t)) * total;
52
+ for (let i = 1; i < points.length; i++) {
53
+ if (cumLens[i] >= target) {
54
+ const segLen = cumLens[i] - cumLens[i - 1];
55
+ const localT = segLen > 1e-9 ? (target - cumLens[i - 1]) / segLen : 0;
56
+ const dx = points[i].x - points[i - 1].x;
57
+ const dy = points[i].y - points[i - 1].y;
58
+ return {
59
+ x: points[i - 1].x + dx * localT,
60
+ y: points[i - 1].y + dy * localT,
61
+ tangentDx: dx,
62
+ tangentDy: dy,
63
+ };
64
+ }
65
+ }
66
+ const last = points[points.length - 1];
67
+ const prev = points[points.length - 2];
68
+ return { x: last.x, y: last.y, tangentDx: last.x - prev.x, tangentDy: last.y - prev.y };
69
+ }
70
+ /**
71
+ * Canvas (px, y-down) → ENU (m, y-up).
72
+ */
73
+ function pxToEnu(x, y) {
74
+ return {
75
+ x: x / PIXELS_PER_METER,
76
+ y: -y / PIXELS_PER_METER,
77
+ };
78
+ }
79
+ /**
80
+ * Tangent vector (canvas px space, y-down) → ENU heading (rad, y-up).
81
+ * Canvas y is down (CW positive), ENU y is up (CCW positive); flip dy then atan2.
82
+ */
83
+ function tangentToEnuHeading(dx, dy) {
84
+ return Math.atan2(-dy, dx);
85
+ }
86
+ /**
87
+ * Build the sample sequence used by <FollowTrajectoryAction> from a path.
88
+ *
89
+ * - tValues mode: each value is treated as a normalized position along the path,
90
+ * distributed across equal time slices over the total duration. A vertex at
91
+ * t=0 is prepended when the first tValue is non-zero so the trajectory starts
92
+ * from the path origin.
93
+ * - interval/offset mode: places samples at equal arc-length intervals and
94
+ * computes time as cumulative_distance / speed.
95
+ *
96
+ * In both cases time strictly increases (small back-steps are nudged forward
97
+ * by 1 ms because trajectory replay rejects non-monotonic timestamps).
98
+ */
99
+ export function buildPathTrajectory(input) {
100
+ const { points, tValues, interval, offset, speedMps } = input;
101
+ if (points.length < 2)
102
+ return [];
103
+ const speed = speedMps && speedMps > 0 ? speedMps : DEFAULT_PATH_SPEED_MPS;
104
+ const cumLens = computeCumulativeLengths(points);
105
+ const totalLenPx = cumLens[cumLens.length - 1];
106
+ if (totalLenPx <= 0)
107
+ return [];
108
+ const totalLenM = totalLenPx / PIXELS_PER_METER;
109
+ const totalDurationSec = totalLenM / speed;
110
+ const samples = [];
111
+ if (tValues && tValues.length > 0) {
112
+ // Prepend the path origin if the first sample is past the start.
113
+ const firstT = tValues[0];
114
+ if (firstT > 1e-6) {
115
+ const start = evaluateAt(points, cumLens, 0);
116
+ const enu = pxToEnu(start.x, start.y);
117
+ samples.push({
118
+ x: enu.x,
119
+ y: enu.y,
120
+ heading: tangentToEnuHeading(start.tangentDx, start.tangentDy),
121
+ time: 0,
122
+ });
123
+ }
124
+ const N = tValues.length;
125
+ const dt = N > 1 ? totalDurationSec / (N - 1) : totalDurationSec;
126
+ for (let i = 0; i < N; i++) {
127
+ const t = Math.max(0, Math.min(1, tValues[i]));
128
+ const ev = evaluateAt(points, cumLens, t);
129
+ const enu = pxToEnu(ev.x, ev.y);
130
+ samples.push({
131
+ x: enu.x,
132
+ y: enu.y,
133
+ heading: tangentToEnuHeading(ev.tangentDx, ev.tangentDy),
134
+ time: i * dt + (firstT > 1e-6 ? dt : 0),
135
+ });
136
+ }
137
+ }
138
+ else if (interval && interval > 0) {
139
+ // Equal arc-length intervals; time = cumulative_distance / speed.
140
+ const off = offset ?? 0;
141
+ let dPx = off;
142
+ if (dPx > 1e-6) {
143
+ const start = evaluateAt(points, cumLens, 0);
144
+ const enu = pxToEnu(start.x, start.y);
145
+ samples.push({
146
+ x: enu.x,
147
+ y: enu.y,
148
+ heading: tangentToEnuHeading(start.tangentDx, start.tangentDy),
149
+ time: 0,
150
+ });
151
+ }
152
+ while (dPx <= totalLenPx + 1e-6) {
153
+ const t = dPx / totalLenPx;
154
+ const ev = evaluateAt(points, cumLens, t);
155
+ const enu = pxToEnu(ev.x, ev.y);
156
+ const distM = dPx / PIXELS_PER_METER;
157
+ samples.push({
158
+ x: enu.x,
159
+ y: enu.y,
160
+ heading: tangentToEnuHeading(ev.tangentDx, ev.tangentDy),
161
+ time: distM / speed,
162
+ });
163
+ dPx += interval;
164
+ }
165
+ // Force-append the path endpoint if the last interval did not reach it.
166
+ const lastSample = samples[samples.length - 1];
167
+ const endTime = totalDurationSec;
168
+ if (Math.abs(lastSample.time - endTime) > 1e-3) {
169
+ const ev = evaluateAt(points, cumLens, 1);
170
+ const enu = pxToEnu(ev.x, ev.y);
171
+ samples.push({
172
+ x: enu.x,
173
+ y: enu.y,
174
+ heading: tangentToEnuHeading(ev.tangentDx, ev.tangentDy),
175
+ time: endTime,
176
+ });
177
+ }
178
+ }
179
+ else {
180
+ // Fallback: traverse all control points at constant speed.
181
+ for (let i = 0; i < points.length; i++) {
182
+ const ev = evaluateAt(points, cumLens, cumLens[i] / totalLenPx);
183
+ const enu = pxToEnu(ev.x, ev.y);
184
+ samples.push({
185
+ x: enu.x,
186
+ y: enu.y,
187
+ heading: tangentToEnuHeading(ev.tangentDx, ev.tangentDy),
188
+ time: (cumLens[i] / PIXELS_PER_METER) / speed,
189
+ });
190
+ }
191
+ }
192
+ // Trajectory replay requires strictly increasing time; nudge tiny regressions.
193
+ for (let i = 1; i < samples.length; i++) {
194
+ if (samples[i].time <= samples[i - 1].time) {
195
+ samples[i].time = samples[i - 1].time + 1e-3;
196
+ }
197
+ }
198
+ return samples;
199
+ }
200
+ //# sourceMappingURL=trajectory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trajectory.js","sourceRoot":"","sources":["../../src/exporter/trajectory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /** Conversion factor from canvas pixels to meters. */
2
+ export declare const PIXELS_PER_METER = 16.67;
3
+ /** Canvas pixels → meters (scalar). */
4
+ export declare function pxToMeter(px: number): number;
5
+ /** Canvas x → ENU x (no axis flip). */
6
+ export declare function pxToEnuX(x: number): number;
7
+ /** Canvas y → ENU y (axis flipped: canvas y is down, ENU y is up). */
8
+ export declare function pxToEnuY(y: number): number;
9
+ /**
10
+ * Format a number for OpenDRIVE / OpenSCENARIO output: 6 decimal places, no
11
+ * exponential. Non-finite values become "0".
12
+ */
13
+ export declare function fmt(n: number): string;
14
+ /** XML attribute / text escaping. */
15
+ export declare function escapeXml(s: string): string;
16
+ //# sourceMappingURL=units.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/exporter/units.ts"],"names":[],"mappings":"AAMA,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,QAAQ,CAAA;AAErC,uCAAuC;AACvC,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,uCAAuC;AACvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,sEAAsE;AACtE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrC;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO3C"}
@@ -0,0 +1,38 @@
1
+ // Coordinate / unit conversions shared by the OpenDRIVE / OpenSCENARIO
2
+ // exporters.
3
+ //
4
+ // The drawtonomy canvas uses pixels with y growing downward.
5
+ // OpenDRIVE / OpenSCENARIO both use ENU meters with y growing upward.
6
+ /** Conversion factor from canvas pixels to meters. */
7
+ export const PIXELS_PER_METER = 16.67;
8
+ /** Canvas pixels → meters (scalar). */
9
+ export function pxToMeter(px) {
10
+ return px / PIXELS_PER_METER;
11
+ }
12
+ /** Canvas x → ENU x (no axis flip). */
13
+ export function pxToEnuX(x) {
14
+ return pxToMeter(x);
15
+ }
16
+ /** Canvas y → ENU y (axis flipped: canvas y is down, ENU y is up). */
17
+ export function pxToEnuY(y) {
18
+ return -pxToMeter(y);
19
+ }
20
+ /**
21
+ * Format a number for OpenDRIVE / OpenSCENARIO output: 6 decimal places, no
22
+ * exponential. Non-finite values become "0".
23
+ */
24
+ export function fmt(n) {
25
+ if (!Number.isFinite(n))
26
+ return '0';
27
+ return n.toFixed(6);
28
+ }
29
+ /** XML attribute / text escaping. */
30
+ export function escapeXml(s) {
31
+ return s
32
+ .replace(/&/g, '&amp;')
33
+ .replace(/</g, '&lt;')
34
+ .replace(/>/g, '&gt;')
35
+ .replace(/"/g, '&quot;')
36
+ .replace(/'/g, '&apos;');
37
+ }
38
+ //# sourceMappingURL=units.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/exporter/units.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,aAAa;AACb,EAAE;AACF,6DAA6D;AAC7D,sEAAsE;AAEtE,sDAAsD;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAA;AAErC,uCAAuC;AACvC,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,OAAO,EAAE,GAAG,gBAAgB,CAAA;AAC9B,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAA;IACnC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AAC5B,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface ZipEntry {
2
+ /** Path inside the zip, e.g. "scene/scene.xodr" */
3
+ path: string;
4
+ /** Entry content; strings are UTF-8 encoded internally */
5
+ data: string | Uint8Array;
6
+ }
7
+ declare function crc32(bytes: Uint8Array): number;
8
+ /**
9
+ * Bundle ZipEntry[] into a single application/zip Blob.
10
+ */
11
+ export declare function buildZip(entries: ZipEntry[]): Blob;
12
+ export { crc32 as _crc32ForTest };
13
+ //# sourceMappingURL=zip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../../src/exporter/zip.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ;IACvB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,0DAA0D;IAC1D,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B;AAmBD,iBAAS,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAMxC;AA2BD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAuFlD;AAeD,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,CAAA"}
@@ -0,0 +1,137 @@
1
+ // Minimal ZIP builder (store mode, no compression) with no external deps.
2
+ //
3
+ // PKZIP APPNOTE.TXT 6.3.10 compatible. Bundles multiple files into a single
4
+ // zip. Compression method = 0 (store), which is fine for small XML payloads.
5
+ // Directories are implicit via slashes in entry paths.
6
+ const TEXT_ENCODER = new TextEncoder();
7
+ /**
8
+ * Standard CRC-32 (IEEE 802.3, polynomial 0xEDB88320), table-driven.
9
+ */
10
+ const CRC32_TABLE = (() => {
11
+ const table = new Uint32Array(256);
12
+ for (let i = 0; i < 256; i++) {
13
+ let c = i;
14
+ for (let k = 0; k < 8; k++) {
15
+ c = (c & 1) ? (0xedb88320 ^ (c >>> 1)) : (c >>> 1);
16
+ }
17
+ table[i] = c >>> 0;
18
+ }
19
+ return table;
20
+ })();
21
+ function crc32(bytes) {
22
+ let crc = 0xffffffff;
23
+ for (let i = 0; i < bytes.length; i++) {
24
+ crc = CRC32_TABLE[(crc ^ bytes[i]) & 0xff] ^ (crc >>> 8);
25
+ }
26
+ return (crc ^ 0xffffffff) >>> 0;
27
+ }
28
+ /** Little-endian writer helpers. */
29
+ function writeU16(buf, offset, value) {
30
+ buf[offset] = value & 0xff;
31
+ buf[offset + 1] = (value >>> 8) & 0xff;
32
+ }
33
+ function writeU32(buf, offset, value) {
34
+ buf[offset] = value & 0xff;
35
+ buf[offset + 1] = (value >>> 8) & 0xff;
36
+ buf[offset + 2] = (value >>> 16) & 0xff;
37
+ buf[offset + 3] = (value >>> 24) & 0xff;
38
+ }
39
+ function toBytes(d) {
40
+ return typeof d === 'string' ? TEXT_ENCODER.encode(d) : d;
41
+ }
42
+ /**
43
+ * Bundle ZipEntry[] into a single application/zip Blob.
44
+ */
45
+ export function buildZip(entries) {
46
+ // 1. Emit Local File Header + data for each entry, tracking offsets.
47
+ const prepared = [];
48
+ let cursor = 0;
49
+ const localChunks = [];
50
+ for (const entry of entries) {
51
+ const pathBytes = TEXT_ENCODER.encode(entry.path);
52
+ const data = toBytes(entry.data);
53
+ const crc = crc32(data);
54
+ const localHeader = new Uint8Array(30 + pathBytes.length);
55
+ // Local File Header signature 0x04034b50.
56
+ writeU32(localHeader, 0, 0x04034b50);
57
+ writeU16(localHeader, 4, 20); // version needed to extract (2.0)
58
+ writeU16(localHeader, 6, 0x0800); // general purpose bit flag (UTF-8 filename)
59
+ writeU16(localHeader, 8, 0); // compression = store
60
+ writeU16(localHeader, 10, 0); // last mod time
61
+ writeU16(localHeader, 12, 0); // last mod date
62
+ writeU32(localHeader, 14, crc); // CRC-32
63
+ writeU32(localHeader, 18, data.length); // compressed size
64
+ writeU32(localHeader, 22, data.length); // uncompressed size
65
+ writeU16(localHeader, 26, pathBytes.length); // file name length
66
+ writeU16(localHeader, 28, 0); // extra field length
67
+ localHeader.set(pathBytes, 30);
68
+ const localHeaderOffset = cursor;
69
+ localChunks.push(localHeader);
70
+ localChunks.push(data);
71
+ cursor += localHeader.length + data.length;
72
+ prepared.push({
73
+ path: entry.path,
74
+ pathBytes,
75
+ data,
76
+ crc,
77
+ localHeaderOffset,
78
+ });
79
+ }
80
+ const localBytes = concatBytes(localChunks);
81
+ // 2. Central Directory.
82
+ const cdChunks = [];
83
+ let cdSize = 0;
84
+ for (const e of prepared) {
85
+ const cdHeader = new Uint8Array(46 + e.pathBytes.length);
86
+ // Central Directory File Header signature 0x02014b50.
87
+ writeU32(cdHeader, 0, 0x02014b50);
88
+ writeU16(cdHeader, 4, 20); // version made by
89
+ writeU16(cdHeader, 6, 20); // version needed to extract
90
+ writeU16(cdHeader, 8, 0x0800); // general purpose bit flag
91
+ writeU16(cdHeader, 10, 0); // compression = store
92
+ writeU16(cdHeader, 12, 0); // last mod time
93
+ writeU16(cdHeader, 14, 0); // last mod date
94
+ writeU32(cdHeader, 16, e.crc);
95
+ writeU32(cdHeader, 20, e.data.length); // compressed size
96
+ writeU32(cdHeader, 24, e.data.length); // uncompressed size
97
+ writeU16(cdHeader, 28, e.pathBytes.length);
98
+ writeU16(cdHeader, 30, 0); // extra field length
99
+ writeU16(cdHeader, 32, 0); // file comment length
100
+ writeU16(cdHeader, 34, 0); // disk number start
101
+ writeU16(cdHeader, 36, 0); // internal file attributes
102
+ writeU32(cdHeader, 38, 0); // external file attributes
103
+ writeU32(cdHeader, 42, e.localHeaderOffset);
104
+ cdHeader.set(e.pathBytes, 46);
105
+ cdChunks.push(cdHeader);
106
+ cdSize += cdHeader.length;
107
+ }
108
+ const cdBytes = concatBytes(cdChunks);
109
+ // 3. End Of Central Directory record (22 bytes).
110
+ const eocd = new Uint8Array(22);
111
+ writeU32(eocd, 0, 0x06054b50); // EOCD signature
112
+ writeU16(eocd, 4, 0); // disk number
113
+ writeU16(eocd, 6, 0); // disk where CD starts
114
+ writeU16(eocd, 8, prepared.length); // number of CD records on this disk
115
+ writeU16(eocd, 10, prepared.length); // total number of CD records
116
+ writeU32(eocd, 12, cdSize); // size of CD
117
+ writeU32(eocd, 16, localBytes.length); // offset of CD start
118
+ writeU16(eocd, 20, 0); // .ZIP file comment length
119
+ // Slice() exposes plain ArrayBuffer; the DOM Blob constructor type does
120
+ // not accept ArrayBufferLike views directly under strict TS settings.
121
+ return new Blob([localBytes.slice().buffer, cdBytes.slice().buffer, eocd.slice().buffer], { type: 'application/zip' });
122
+ }
123
+ function concatBytes(chunks) {
124
+ let total = 0;
125
+ for (const c of chunks)
126
+ total += c.length;
127
+ const out = new Uint8Array(total);
128
+ let offset = 0;
129
+ for (const c of chunks) {
130
+ out.set(c, offset);
131
+ offset += c.length;
132
+ }
133
+ return out;
134
+ }
135
+ // Exported for test use only.
136
+ export { crc32 as _crc32ForTest };
137
+ //# sourceMappingURL=zip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.js","sourceRoot":"","sources":["../../src/exporter/zip.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export * from './types';
2
2
  export * from './helpers';
3
3
  export * from './geometry';
4
4
  export { ExtensionClient } from './ExtensionClient';
5
+ export * as exporter from './exporter';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -3,4 +3,6 @@ export * from './types';
3
3
  export * from './helpers';
4
4
  export * from './geometry';
5
5
  export { ExtensionClient } from './ExtensionClient';
6
+ // Exporter sub-module is also available via "@drawtonomy/sdk/exporter".
7
+ export * as exporter from './exporter';
6
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,wEAAwE;AACxE,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA"}
package/dist/types.d.ts CHANGED
@@ -141,21 +141,36 @@ export interface TrafficLightProps {
141
141
  w: number;
142
142
  h: number;
143
143
  color: string;
144
+ /** Visual style identifier (e.g. "pedestrian", "traffic_red"). */
145
+ style: string;
146
+ /** Currently lit lamp index for the configured style. */
147
+ activeLight?: string;
148
+ size?: string;
144
149
  attributes: {
145
- type: 'traffic_light';
150
+ type?: string;
146
151
  subtype?: string;
147
- };
152
+ } & Record<string, string>;
148
153
  osmId: string;
149
154
  }
150
155
  export interface CrosswalkProps {
151
- pointIds: string[];
152
- color: string;
156
+ /** Crosswalk axis start in shape-local coordinates. */
157
+ startX: number;
158
+ startY: number;
159
+ /** Crosswalk axis end in shape-local coordinates. */
160
+ endX: number;
161
+ endY: number;
162
+ /** Stripe band thickness across the road. */
163
+ crosswalkWidth: number;
164
+ /** Width of each white stripe. */
153
165
  stripeWidth?: number;
154
- stripeGap?: number;
166
+ /** Spacing between stripes. */
167
+ stripeSpacing?: number;
168
+ color: string;
169
+ opacity?: number | null;
155
170
  attributes: {
156
- type: 'crosswalk';
171
+ type?: string;
157
172
  subtype?: string;
158
- };
173
+ } & Record<string, string>;
159
174
  osmId: string;
160
175
  }
161
176
  export interface FreehandProps {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drawtonomy/sdk",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "SDK for building drawtonomy extensions",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -15,11 +15,6 @@
15
15
  "dist",
16
16
  "README.md"
17
17
  ],
18
- "scripts": {
19
- "build": "tsc",
20
- "test": "vitest run",
21
- "prepublishOnly": "npm run build"
22
- },
23
18
  "keywords": [
24
19
  "drawtonomy",
25
20
  "extension",
@@ -29,8 +24,12 @@
29
24
  ],
30
25
  "license": "Apache-2.0",
31
26
  "devDependencies": {
32
- "jsdom": "^29.0.1",
33
- "typescript": "^5.7.0",
34
- "vitest": "^4.1.2"
27
+ "jsdom": "29.0.1",
28
+ "typescript": "5.9.3",
29
+ "vitest": "4.1.2"
30
+ },
31
+ "scripts": {
32
+ "build": "tsc",
33
+ "test": "vitest run"
35
34
  }
36
- }
35
+ }