@drawtonomy/sdk 0.1.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.
- package/README.md +141 -0
- package/dist/ExtensionClient.d.ts +41 -0
- package/dist/ExtensionClient.d.ts.map +1 -0
- package/dist/ExtensionClient.js +111 -0
- package/dist/ExtensionClient.js.map +1 -0
- package/dist/helpers.d.ts +54 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +204 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +205 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/package.json +33 -0
package/README.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# @drawtonomy/sdk
|
|
2
|
+
|
|
3
|
+
Drawtonomy エクステンション開発用SDK。
|
|
4
|
+
|
|
5
|
+
## インストール
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @drawtonomy/sdk
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## クイックスタート
|
|
12
|
+
|
|
13
|
+
### 1. マニフェストを作成
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"id": "my-extension",
|
|
18
|
+
"name": "My Extension",
|
|
19
|
+
"version": "1.0.0",
|
|
20
|
+
"description": "何をするエクステンションか",
|
|
21
|
+
"author": { "name": "Your Name" },
|
|
22
|
+
"entry": "./index.html",
|
|
23
|
+
"capabilities": ["shapes:write", "shapes:read", "ui:panel"]
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 2. SDKを使ってエクステンションを実装
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { ExtensionClient, createVehicle, createLaneWithBoundaries } from '@drawtonomy/sdk'
|
|
31
|
+
|
|
32
|
+
const client = new ExtensionClient('my-extension')
|
|
33
|
+
|
|
34
|
+
// ホストとの接続を待つ
|
|
35
|
+
const init = await client.waitForInit()
|
|
36
|
+
console.log('Connected! Capabilities:', init.grantedCapabilities)
|
|
37
|
+
|
|
38
|
+
// 車両を追加
|
|
39
|
+
client.addShapes([
|
|
40
|
+
createVehicle(200, 300, { templateId: 'sedan', color: 'blue' })
|
|
41
|
+
])
|
|
42
|
+
|
|
43
|
+
// レーンを一括作成
|
|
44
|
+
const laneShapes = createLaneWithBoundaries(
|
|
45
|
+
[{ x: 0, y: 0 }, { x: 500, y: 0 }],
|
|
46
|
+
[{ x: 0, y: 70 }, { x: 500, y: 70 }]
|
|
47
|
+
)
|
|
48
|
+
client.addShapes(laneShapes)
|
|
49
|
+
|
|
50
|
+
// 既存シェイプを読み取り
|
|
51
|
+
const vehicles = await client.requestShapes({ types: ['vehicle'] })
|
|
52
|
+
|
|
53
|
+
// 通知を表示
|
|
54
|
+
client.notify('完了しました', 'success')
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 3. 開発サーバーで起動
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm run dev -- --port 3001
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 4. Drawtonomyで読み込む
|
|
64
|
+
|
|
65
|
+
ブラウザで以下のURLにアクセス:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
https://drawtonomy.com?ext=http://localhost:3001/manifest.json
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## API
|
|
72
|
+
|
|
73
|
+
### ExtensionClient
|
|
74
|
+
|
|
75
|
+
| メソッド | 必要なCapability | 説明 |
|
|
76
|
+
|---------|-----------------|------|
|
|
77
|
+
| `waitForInit()` | - | ホストとの接続を待つ |
|
|
78
|
+
| `addShapes(shapes)` | `shapes:write` | シェイプを追加 |
|
|
79
|
+
| `updateShapes(updates)` | `shapes:write` | シェイプを更新 |
|
|
80
|
+
| `deleteShapes(ids)` | `shapes:write` | シェイプを削除 |
|
|
81
|
+
| `requestShapes(filter?)` | `shapes:read` | シェイプを読み取り |
|
|
82
|
+
| `requestSnapshot()` | `snapshot:read` | スナップショットを取得 |
|
|
83
|
+
| `requestViewport()` | `viewport:read` | ビューポート情報を取得 |
|
|
84
|
+
| `requestSelection()` | `selection:read` | 選択状態を取得 |
|
|
85
|
+
| `notify(message, level?)` | `ui:notify` | 通知を表示 |
|
|
86
|
+
| `resize(height, width?)` | `ui:panel` | パネルサイズを変更 |
|
|
87
|
+
|
|
88
|
+
### ファクトリ関数
|
|
89
|
+
|
|
90
|
+
| 関数 | 説明 |
|
|
91
|
+
|------|------|
|
|
92
|
+
| `createPoint(x, y, options?)` | ポイントを作成 |
|
|
93
|
+
| `createLinestring(x, y, pointIds, options?)` | ラインストリングを作成 |
|
|
94
|
+
| `createLane(x, y, leftId, rightId, options?)` | レーンを作成 |
|
|
95
|
+
| `createLaneWithBoundaries(leftPts, rightPts, options?)` | レーン+境界を一括作成 |
|
|
96
|
+
| `createVehicle(x, y, options?)` | 車両を作成 |
|
|
97
|
+
| `createPedestrian(x, y, options?)` | 歩行者を作成 |
|
|
98
|
+
| `createRectangle(x, y, w, h, options?)` | 矩形を作成 |
|
|
99
|
+
| `createEllipse(x, y, w, h, options?)` | 楕円を作成 |
|
|
100
|
+
| `createText(x, y, text, options?)` | テキストを作成 |
|
|
101
|
+
| `createSnapshot(shapes)` | スナップショットを作成 |
|
|
102
|
+
|
|
103
|
+
## デプロイ
|
|
104
|
+
|
|
105
|
+
エクステンションは任意のHTTPSホスティングサービスにデプロイできます。
|
|
106
|
+
|
|
107
|
+
### GitHub Pages
|
|
108
|
+
|
|
109
|
+
`manifest.json`のCORSヘッダーは自動付与されるため設定不要。
|
|
110
|
+
|
|
111
|
+
### Vercel
|
|
112
|
+
|
|
113
|
+
`vercel.json`:
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"headers": [
|
|
117
|
+
{
|
|
118
|
+
"source": "/manifest.json",
|
|
119
|
+
"headers": [
|
|
120
|
+
{ "key": "Access-Control-Allow-Origin", "value": "*" }
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Netlify
|
|
128
|
+
|
|
129
|
+
`_headers`:
|
|
130
|
+
```
|
|
131
|
+
/manifest.json
|
|
132
|
+
Access-Control-Allow-Origin: *
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### ローカル開発
|
|
136
|
+
|
|
137
|
+
Vite devサーバーはデフォルトでCORS許可済み。`localhost`はHTTPでも動作します。
|
|
138
|
+
|
|
139
|
+
## ドキュメント
|
|
140
|
+
|
|
141
|
+
詳細は https://github.com/kosuke55/drawtonomy-app/blob/main/docs/extensions.md を参照。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { InitPayload, ShapeFilter, BaseShape, DrawtonomySnapshot } from './types';
|
|
2
|
+
export declare class ExtensionClient {
|
|
3
|
+
private manifestId;
|
|
4
|
+
private initPromise;
|
|
5
|
+
private initResolve;
|
|
6
|
+
private pendingRequests;
|
|
7
|
+
private requestTimeout;
|
|
8
|
+
constructor(manifestId: string, options?: {
|
|
9
|
+
requestTimeout?: number;
|
|
10
|
+
});
|
|
11
|
+
/**
|
|
12
|
+
* Wait for the host to send init payload
|
|
13
|
+
*/
|
|
14
|
+
waitForInit(): Promise<InitPayload>;
|
|
15
|
+
addShapes(shapes: BaseShape[]): void;
|
|
16
|
+
updateShapes(updates: Array<{
|
|
17
|
+
id: string;
|
|
18
|
+
props: Record<string, unknown>;
|
|
19
|
+
}>): void;
|
|
20
|
+
deleteShapes(ids: string[]): void;
|
|
21
|
+
requestShapes(filter?: ShapeFilter): Promise<BaseShape[]>;
|
|
22
|
+
requestSnapshot(): Promise<DrawtonomySnapshot>;
|
|
23
|
+
requestViewport(): Promise<{
|
|
24
|
+
x: number;
|
|
25
|
+
y: number;
|
|
26
|
+
zoom: number;
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
}>;
|
|
30
|
+
requestSelection(): Promise<{
|
|
31
|
+
ids: string[];
|
|
32
|
+
}>;
|
|
33
|
+
notify(message: string, level?: 'info' | 'success' | 'error'): void;
|
|
34
|
+
resize(height: number, width?: number): void;
|
|
35
|
+
private send;
|
|
36
|
+
private handleMessage;
|
|
37
|
+
private requestIdCounter;
|
|
38
|
+
private nextRequestId;
|
|
39
|
+
private waitForResponse;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=ExtensionClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionClient.d.ts","sourceRoot":"","sources":["../src/ExtensionClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAQhB,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,cAAc,CAAQ;gBAElB,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;IAcrE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAMzC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE;IAI7B,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAI3E,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE;IAMpB,aAAa,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IASzD,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAS9C,eAAe,IAAI,OAAO,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAQjG,gBAAgB,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAQpD,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,SAAS,GAAG,OAAgB;IAMpE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAMrC,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,gBAAgB,CAAI;IAE5B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,eAAe;CAUxB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
export class ExtensionClient {
|
|
2
|
+
constructor(manifestId, options) {
|
|
3
|
+
this.pendingRequests = new Map();
|
|
4
|
+
this.requestIdCounter = 0;
|
|
5
|
+
this.manifestId = manifestId;
|
|
6
|
+
this.requestTimeout = options?.requestTimeout ?? 30000;
|
|
7
|
+
this.initPromise = new Promise(resolve => {
|
|
8
|
+
this.initResolve = resolve;
|
|
9
|
+
});
|
|
10
|
+
window.addEventListener('message', this.handleMessage.bind(this));
|
|
11
|
+
// Send ready signal
|
|
12
|
+
this.send({ type: 'ext:ready', payload: { manifestId } });
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Wait for the host to send init payload
|
|
16
|
+
*/
|
|
17
|
+
async waitForInit() {
|
|
18
|
+
return this.initPromise;
|
|
19
|
+
}
|
|
20
|
+
// --- shapes:write ---
|
|
21
|
+
addShapes(shapes) {
|
|
22
|
+
this.send({ type: 'ext:shapes-add', payload: { shapes } });
|
|
23
|
+
}
|
|
24
|
+
updateShapes(updates) {
|
|
25
|
+
this.send({ type: 'ext:shapes-update', payload: { updates } });
|
|
26
|
+
}
|
|
27
|
+
deleteShapes(ids) {
|
|
28
|
+
this.send({ type: 'ext:shapes-delete', payload: { ids } });
|
|
29
|
+
}
|
|
30
|
+
// --- shapes:read ---
|
|
31
|
+
async requestShapes(filter) {
|
|
32
|
+
const requestId = this.nextRequestId();
|
|
33
|
+
this.send({ type: 'ext:shapes-request', payload: { requestId, filter } });
|
|
34
|
+
const response = await this.waitForResponse(requestId);
|
|
35
|
+
return response.shapes;
|
|
36
|
+
}
|
|
37
|
+
// --- snapshot:read ---
|
|
38
|
+
async requestSnapshot() {
|
|
39
|
+
const requestId = this.nextRequestId();
|
|
40
|
+
this.send({ type: 'ext:snapshot-request', payload: { requestId } });
|
|
41
|
+
const response = await this.waitForResponse(requestId);
|
|
42
|
+
return response.snapshot;
|
|
43
|
+
}
|
|
44
|
+
// --- viewport:read ---
|
|
45
|
+
async requestViewport() {
|
|
46
|
+
const requestId = this.nextRequestId();
|
|
47
|
+
this.send({ type: 'ext:viewport-request', payload: { requestId } });
|
|
48
|
+
return await this.waitForResponse(requestId);
|
|
49
|
+
}
|
|
50
|
+
// --- selection:read ---
|
|
51
|
+
async requestSelection() {
|
|
52
|
+
const requestId = this.nextRequestId();
|
|
53
|
+
this.send({ type: 'ext:selection-request', payload: { requestId } });
|
|
54
|
+
return await this.waitForResponse(requestId);
|
|
55
|
+
}
|
|
56
|
+
// --- ui:notify ---
|
|
57
|
+
notify(message, level = 'info') {
|
|
58
|
+
this.send({ type: 'ext:notify', payload: { message, level } });
|
|
59
|
+
}
|
|
60
|
+
// --- ui:panel ---
|
|
61
|
+
resize(height, width) {
|
|
62
|
+
this.send({ type: 'ext:resize', payload: { height, width } });
|
|
63
|
+
}
|
|
64
|
+
// --- Internal ---
|
|
65
|
+
send(message) {
|
|
66
|
+
window.parent.postMessage(message, '*');
|
|
67
|
+
}
|
|
68
|
+
handleMessage(event) {
|
|
69
|
+
const data = event.data;
|
|
70
|
+
if (!data || typeof data !== 'object' || typeof data.type !== 'string')
|
|
71
|
+
return;
|
|
72
|
+
if (!data.type.startsWith('ext:'))
|
|
73
|
+
return;
|
|
74
|
+
if (data.type === 'ext:init') {
|
|
75
|
+
this.initResolve(data.payload);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
// Handle responses
|
|
79
|
+
if (data.type === 'ext:error' && data.payload?.requestId) {
|
|
80
|
+
const pending = this.pendingRequests.get(data.payload.requestId);
|
|
81
|
+
if (pending) {
|
|
82
|
+
clearTimeout(pending.timeout);
|
|
83
|
+
this.pendingRequests.delete(data.payload.requestId);
|
|
84
|
+
pending.reject(new Error(data.payload.message));
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const requestId = data.payload?.requestId;
|
|
89
|
+
if (requestId) {
|
|
90
|
+
const pending = this.pendingRequests.get(requestId);
|
|
91
|
+
if (pending) {
|
|
92
|
+
clearTimeout(pending.timeout);
|
|
93
|
+
this.pendingRequests.delete(requestId);
|
|
94
|
+
pending.resolve(data.payload);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
nextRequestId() {
|
|
99
|
+
return `${this.manifestId}_${++this.requestIdCounter}_${Date.now().toString(36)}`;
|
|
100
|
+
}
|
|
101
|
+
waitForResponse(requestId) {
|
|
102
|
+
return new Promise((resolve, reject) => {
|
|
103
|
+
const timeout = setTimeout(() => {
|
|
104
|
+
this.pendingRequests.delete(requestId);
|
|
105
|
+
reject(new Error(`Request ${requestId} timed out`));
|
|
106
|
+
}, this.requestTimeout);
|
|
107
|
+
this.pendingRequests.set(requestId, { resolve, reject, timeout });
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=ExtensionClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionClient.js","sourceRoot":"","sources":["../src/ExtensionClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { BaseShape, PointProps, LinestringProps, LaneProps, VehicleProps, PedestrianProps, RectangleProps, EllipseProps, TextProps, DrawtonomySnapshot } from './types';
|
|
2
|
+
export declare function resetIdCounter(): void;
|
|
3
|
+
export declare function createPoint(x: number, y: number, options?: Partial<PointProps> & {
|
|
4
|
+
id?: string;
|
|
5
|
+
}): BaseShape<'point', PointProps>;
|
|
6
|
+
export declare function createLinestring(x: number, y: number, pointIds: string[], options?: Partial<LinestringProps> & {
|
|
7
|
+
id?: string;
|
|
8
|
+
}): BaseShape<'linestring', LinestringProps>;
|
|
9
|
+
export declare function createLane(x: number, y: number, leftBoundaryId: string, rightBoundaryId: string, options?: Partial<LaneProps> & {
|
|
10
|
+
id?: string;
|
|
11
|
+
}): BaseShape<'lane', LaneProps>;
|
|
12
|
+
export interface LaneWithBoundariesOptions {
|
|
13
|
+
laneOptions?: Partial<LaneProps> & {
|
|
14
|
+
id?: string;
|
|
15
|
+
};
|
|
16
|
+
leftOptions?: Partial<LinestringProps> & {
|
|
17
|
+
id?: string;
|
|
18
|
+
};
|
|
19
|
+
rightOptions?: Partial<LinestringProps> & {
|
|
20
|
+
id?: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create a complete lane with its boundary linestrings and points.
|
|
25
|
+
*
|
|
26
|
+
* @param leftPoints - Array of {x, y} for left boundary
|
|
27
|
+
* @param rightPoints - Array of {x, y} for right boundary
|
|
28
|
+
* @param options - Optional configuration for lane and boundaries
|
|
29
|
+
* @returns Array of shapes: points, linestrings, lane (in dependency order)
|
|
30
|
+
*/
|
|
31
|
+
export declare function createLaneWithBoundaries(leftPoints: Array<{
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
}>, rightPoints: Array<{
|
|
35
|
+
x: number;
|
|
36
|
+
y: number;
|
|
37
|
+
}>, options?: LaneWithBoundariesOptions): BaseShape<string, any>[];
|
|
38
|
+
export declare function createVehicle(x: number, y: number, options?: Partial<VehicleProps> & {
|
|
39
|
+
id?: string;
|
|
40
|
+
}): BaseShape<'vehicle', VehicleProps>;
|
|
41
|
+
export declare function createPedestrian(x: number, y: number, options?: Partial<PedestrianProps> & {
|
|
42
|
+
id?: string;
|
|
43
|
+
}): BaseShape<'pedestrian', PedestrianProps>;
|
|
44
|
+
export declare function createRectangle(x: number, y: number, w: number, h: number, options?: Partial<RectangleProps> & {
|
|
45
|
+
id?: string;
|
|
46
|
+
}): BaseShape<'rectangle', RectangleProps>;
|
|
47
|
+
export declare function createEllipse(x: number, y: number, w: number, h: number, options?: Partial<EllipseProps> & {
|
|
48
|
+
id?: string;
|
|
49
|
+
}): BaseShape<'ellipse', EllipseProps>;
|
|
50
|
+
export declare function createText(x: number, y: number, text: string, options?: Partial<TextProps> & {
|
|
51
|
+
id?: string;
|
|
52
|
+
}): BaseShape<'text', TextProps>;
|
|
53
|
+
export declare function createSnapshot(shapes: BaseShape[]): DrawtonomySnapshot;
|
|
54
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/helpers.js
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
let idCounter = 0;
|
|
2
|
+
function nextId(prefix = 'ext') {
|
|
3
|
+
return `${prefix}_${++idCounter}_${Date.now().toString(36)}`;
|
|
4
|
+
}
|
|
5
|
+
export function resetIdCounter() {
|
|
6
|
+
idCounter = 0;
|
|
7
|
+
}
|
|
8
|
+
// --- Point ---
|
|
9
|
+
export function createPoint(x, y, options) {
|
|
10
|
+
return {
|
|
11
|
+
id: options?.id ?? nextId('pt'),
|
|
12
|
+
type: 'point',
|
|
13
|
+
x,
|
|
14
|
+
y,
|
|
15
|
+
rotation: 0,
|
|
16
|
+
zIndex: 0,
|
|
17
|
+
props: {
|
|
18
|
+
color: options?.color ?? 'black',
|
|
19
|
+
visible: options?.visible ?? true,
|
|
20
|
+
osmId: options?.osmId ?? '',
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
// --- Linestring ---
|
|
25
|
+
export function createLinestring(x, y, pointIds, options) {
|
|
26
|
+
return {
|
|
27
|
+
id: options?.id ?? nextId('ls'),
|
|
28
|
+
type: 'linestring',
|
|
29
|
+
x,
|
|
30
|
+
y,
|
|
31
|
+
rotation: 0,
|
|
32
|
+
zIndex: 0,
|
|
33
|
+
props: {
|
|
34
|
+
pointIds,
|
|
35
|
+
color: options?.color ?? 'black',
|
|
36
|
+
strokeWidth: options?.strokeWidth ?? 2,
|
|
37
|
+
attributes: options?.attributes ?? { type: 'linestring', subtype: 'solid' },
|
|
38
|
+
osmId: options?.osmId ?? '',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// --- Lane ---
|
|
43
|
+
export function createLane(x, y, leftBoundaryId, rightBoundaryId, options) {
|
|
44
|
+
return {
|
|
45
|
+
id: options?.id ?? nextId('lane'),
|
|
46
|
+
type: 'lane',
|
|
47
|
+
x,
|
|
48
|
+
y,
|
|
49
|
+
rotation: 0,
|
|
50
|
+
zIndex: 0,
|
|
51
|
+
props: {
|
|
52
|
+
leftBoundaryId,
|
|
53
|
+
rightBoundaryId,
|
|
54
|
+
invertLeft: options?.invertLeft ?? false,
|
|
55
|
+
invertRight: options?.invertRight ?? false,
|
|
56
|
+
color: options?.color ?? 'default',
|
|
57
|
+
size: options?.size ?? 'm',
|
|
58
|
+
attributes: options?.attributes ?? { type: 'lanelet', subtype: 'road', speed_limit: '30' },
|
|
59
|
+
next: options?.next ?? [],
|
|
60
|
+
prev: options?.prev ?? [],
|
|
61
|
+
osmId: options?.osmId ?? '',
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Create a complete lane with its boundary linestrings and points.
|
|
67
|
+
*
|
|
68
|
+
* @param leftPoints - Array of {x, y} for left boundary
|
|
69
|
+
* @param rightPoints - Array of {x, y} for right boundary
|
|
70
|
+
* @param options - Optional configuration for lane and boundaries
|
|
71
|
+
* @returns Array of shapes: points, linestrings, lane (in dependency order)
|
|
72
|
+
*/
|
|
73
|
+
export function createLaneWithBoundaries(leftPoints, rightPoints, options) {
|
|
74
|
+
const shapes = [];
|
|
75
|
+
// Create left boundary points
|
|
76
|
+
const leftPointIds = [];
|
|
77
|
+
for (const pt of leftPoints) {
|
|
78
|
+
const point = createPoint(pt.x, pt.y);
|
|
79
|
+
leftPointIds.push(point.id);
|
|
80
|
+
shapes.push(point);
|
|
81
|
+
}
|
|
82
|
+
// Create right boundary points
|
|
83
|
+
const rightPointIds = [];
|
|
84
|
+
for (const pt of rightPoints) {
|
|
85
|
+
const point = createPoint(pt.x, pt.y);
|
|
86
|
+
rightPointIds.push(point.id);
|
|
87
|
+
shapes.push(point);
|
|
88
|
+
}
|
|
89
|
+
// Create linestrings
|
|
90
|
+
const leftLs = createLinestring(0, 0, leftPointIds, options?.leftOptions);
|
|
91
|
+
const rightLs = createLinestring(0, 0, rightPointIds, options?.rightOptions);
|
|
92
|
+
shapes.push(leftLs);
|
|
93
|
+
shapes.push(rightLs);
|
|
94
|
+
// Create lane
|
|
95
|
+
const lane = createLane(0, 0, leftLs.id, rightLs.id, options?.laneOptions);
|
|
96
|
+
shapes.push(lane);
|
|
97
|
+
return shapes;
|
|
98
|
+
}
|
|
99
|
+
// --- Vehicle ---
|
|
100
|
+
export function createVehicle(x, y, options) {
|
|
101
|
+
return {
|
|
102
|
+
id: options?.id ?? nextId('veh'),
|
|
103
|
+
type: 'vehicle',
|
|
104
|
+
x,
|
|
105
|
+
y,
|
|
106
|
+
rotation: options?.templateId ? 0 : 0,
|
|
107
|
+
zIndex: 0,
|
|
108
|
+
props: {
|
|
109
|
+
w: options?.w ?? 90,
|
|
110
|
+
h: options?.h ?? 45,
|
|
111
|
+
color: options?.color ?? 'black',
|
|
112
|
+
size: options?.size ?? 'm',
|
|
113
|
+
attributes: options?.attributes ?? { type: 'vehicle', subtype: 'car' },
|
|
114
|
+
osmId: options?.osmId ?? '',
|
|
115
|
+
templateId: options?.templateId ?? 'default',
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// --- Pedestrian ---
|
|
120
|
+
export function createPedestrian(x, y, options) {
|
|
121
|
+
return {
|
|
122
|
+
id: options?.id ?? nextId('ped'),
|
|
123
|
+
type: 'pedestrian',
|
|
124
|
+
x,
|
|
125
|
+
y,
|
|
126
|
+
rotation: 0,
|
|
127
|
+
zIndex: 0,
|
|
128
|
+
props: {
|
|
129
|
+
w: options?.w ?? 22,
|
|
130
|
+
h: options?.h ?? 22,
|
|
131
|
+
color: options?.color ?? 'black',
|
|
132
|
+
size: options?.size ?? 'm',
|
|
133
|
+
attributes: options?.attributes ?? { type: 'pedestrian', subtype: 'person' },
|
|
134
|
+
osmId: options?.osmId ?? '',
|
|
135
|
+
templateId: options?.templateId ?? 'filled',
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
// --- Rectangle ---
|
|
140
|
+
export function createRectangle(x, y, w, h, options) {
|
|
141
|
+
return {
|
|
142
|
+
id: options?.id ?? nextId('rect'),
|
|
143
|
+
type: 'rectangle',
|
|
144
|
+
x,
|
|
145
|
+
y,
|
|
146
|
+
rotation: 0,
|
|
147
|
+
zIndex: 0,
|
|
148
|
+
props: {
|
|
149
|
+
w,
|
|
150
|
+
h,
|
|
151
|
+
color: options?.color ?? '#000000',
|
|
152
|
+
fill: options?.fill ?? 'none',
|
|
153
|
+
strokeWidth: options?.strokeWidth ?? 2,
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
// --- Ellipse ---
|
|
158
|
+
export function createEllipse(x, y, w, h, options) {
|
|
159
|
+
return {
|
|
160
|
+
id: options?.id ?? nextId('ell'),
|
|
161
|
+
type: 'ellipse',
|
|
162
|
+
x,
|
|
163
|
+
y,
|
|
164
|
+
rotation: 0,
|
|
165
|
+
zIndex: 0,
|
|
166
|
+
props: {
|
|
167
|
+
w,
|
|
168
|
+
h,
|
|
169
|
+
color: options?.color ?? '#000000',
|
|
170
|
+
fill: options?.fill ?? 'none',
|
|
171
|
+
strokeWidth: options?.strokeWidth ?? 2,
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
// --- Text ---
|
|
176
|
+
export function createText(x, y, text, options) {
|
|
177
|
+
return {
|
|
178
|
+
id: options?.id ?? nextId('txt'),
|
|
179
|
+
type: 'text',
|
|
180
|
+
x,
|
|
181
|
+
y,
|
|
182
|
+
rotation: 0,
|
|
183
|
+
zIndex: 0,
|
|
184
|
+
props: {
|
|
185
|
+
w: options?.w ?? 200,
|
|
186
|
+
h: options?.h ?? 32,
|
|
187
|
+
text,
|
|
188
|
+
color: options?.color ?? 'black',
|
|
189
|
+
fontSize: options?.fontSize ?? 20,
|
|
190
|
+
font: options?.font ?? 'sans',
|
|
191
|
+
textAlign: options?.textAlign ?? 'left',
|
|
192
|
+
autoSize: options?.autoSize ?? true,
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// --- Snapshot ---
|
|
197
|
+
export function createSnapshot(shapes) {
|
|
198
|
+
return {
|
|
199
|
+
version: '1.1',
|
|
200
|
+
timestamp: new Date().toISOString(),
|
|
201
|
+
shapes,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +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,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
export type ShapeId = string;
|
|
2
|
+
export interface BaseShape<Type extends string = string, Props = Record<string, unknown>> {
|
|
3
|
+
id: ShapeId;
|
|
4
|
+
type: Type;
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
rotation: number;
|
|
8
|
+
zIndex: number;
|
|
9
|
+
index?: string;
|
|
10
|
+
props: Props;
|
|
11
|
+
}
|
|
12
|
+
export interface PointProps {
|
|
13
|
+
color: string;
|
|
14
|
+
visible: boolean;
|
|
15
|
+
osmId: string;
|
|
16
|
+
}
|
|
17
|
+
export interface LinestringProps {
|
|
18
|
+
pointIds: string[];
|
|
19
|
+
color: string;
|
|
20
|
+
strokeWidth: number;
|
|
21
|
+
opacity?: number | null;
|
|
22
|
+
attributes: {
|
|
23
|
+
type: string;
|
|
24
|
+
subtype: string;
|
|
25
|
+
};
|
|
26
|
+
osmId: string;
|
|
27
|
+
isPath?: boolean;
|
|
28
|
+
arrowHead?: string | null;
|
|
29
|
+
arrowHeadSize?: number | null;
|
|
30
|
+
smooth?: boolean | null;
|
|
31
|
+
segments?: Record<string, {
|
|
32
|
+
color?: string;
|
|
33
|
+
strokeWidth?: number;
|
|
34
|
+
opacity?: number;
|
|
35
|
+
}> | null;
|
|
36
|
+
}
|
|
37
|
+
export interface LaneProps {
|
|
38
|
+
leftBoundaryId: string | null;
|
|
39
|
+
rightBoundaryId: string | null;
|
|
40
|
+
invertLeft: boolean;
|
|
41
|
+
invertRight: boolean;
|
|
42
|
+
color: string;
|
|
43
|
+
opacity?: number | null;
|
|
44
|
+
smooth?: boolean | null;
|
|
45
|
+
size: string;
|
|
46
|
+
attributes: {
|
|
47
|
+
type: string;
|
|
48
|
+
subtype: string;
|
|
49
|
+
speed_limit?: string;
|
|
50
|
+
};
|
|
51
|
+
next: string[];
|
|
52
|
+
prev: string[];
|
|
53
|
+
osmId: string;
|
|
54
|
+
}
|
|
55
|
+
export interface VehicleProps {
|
|
56
|
+
w: number;
|
|
57
|
+
h: number;
|
|
58
|
+
color: string;
|
|
59
|
+
size: string;
|
|
60
|
+
opacity?: number | null;
|
|
61
|
+
attributes: {
|
|
62
|
+
type: 'vehicle';
|
|
63
|
+
subtype: string;
|
|
64
|
+
};
|
|
65
|
+
osmId: string;
|
|
66
|
+
templateId: string;
|
|
67
|
+
}
|
|
68
|
+
export interface PedestrianProps {
|
|
69
|
+
w: number;
|
|
70
|
+
h: number;
|
|
71
|
+
color: string;
|
|
72
|
+
size: string;
|
|
73
|
+
opacity?: number | null;
|
|
74
|
+
attributes: {
|
|
75
|
+
type: 'pedestrian';
|
|
76
|
+
subtype: string;
|
|
77
|
+
};
|
|
78
|
+
osmId: string;
|
|
79
|
+
templateId: string;
|
|
80
|
+
}
|
|
81
|
+
export interface RectangleProps {
|
|
82
|
+
w: number;
|
|
83
|
+
h: number;
|
|
84
|
+
color: string;
|
|
85
|
+
fill: string;
|
|
86
|
+
strokeWidth: number;
|
|
87
|
+
opacity?: number | null;
|
|
88
|
+
}
|
|
89
|
+
export interface EllipseProps {
|
|
90
|
+
w: number;
|
|
91
|
+
h: number;
|
|
92
|
+
color: string;
|
|
93
|
+
fill: string;
|
|
94
|
+
strokeWidth: number;
|
|
95
|
+
opacity?: number | null;
|
|
96
|
+
}
|
|
97
|
+
export interface ArrowProps {
|
|
98
|
+
w: number;
|
|
99
|
+
h: number;
|
|
100
|
+
color: string;
|
|
101
|
+
fill: string;
|
|
102
|
+
strokeWidth: number;
|
|
103
|
+
opacity?: number | null;
|
|
104
|
+
direction: string;
|
|
105
|
+
headPosition: number;
|
|
106
|
+
bodyThickness: number;
|
|
107
|
+
}
|
|
108
|
+
export interface TextProps {
|
|
109
|
+
w: number;
|
|
110
|
+
h: number;
|
|
111
|
+
text: string;
|
|
112
|
+
color: string;
|
|
113
|
+
fontSize: number;
|
|
114
|
+
font: string;
|
|
115
|
+
textAlign: 'left' | 'center' | 'right';
|
|
116
|
+
autoSize: boolean;
|
|
117
|
+
}
|
|
118
|
+
export interface PolygonProps {
|
|
119
|
+
pointIds: string[];
|
|
120
|
+
color: string;
|
|
121
|
+
strokeWidth: number;
|
|
122
|
+
fillOpacity?: number | null;
|
|
123
|
+
attributes: Record<string, unknown>;
|
|
124
|
+
osmId: string;
|
|
125
|
+
smooth?: boolean | null;
|
|
126
|
+
segments?: Record<string, {
|
|
127
|
+
color?: string;
|
|
128
|
+
strokeWidth?: number;
|
|
129
|
+
opacity?: number;
|
|
130
|
+
}> | null;
|
|
131
|
+
}
|
|
132
|
+
export interface TrafficLightProps {
|
|
133
|
+
w: number;
|
|
134
|
+
h: number;
|
|
135
|
+
color: string;
|
|
136
|
+
attributes: {
|
|
137
|
+
type: 'traffic_light';
|
|
138
|
+
subtype?: string;
|
|
139
|
+
};
|
|
140
|
+
osmId: string;
|
|
141
|
+
}
|
|
142
|
+
export interface CrosswalkProps {
|
|
143
|
+
pointIds: string[];
|
|
144
|
+
color: string;
|
|
145
|
+
stripeWidth?: number;
|
|
146
|
+
stripeGap?: number;
|
|
147
|
+
attributes: {
|
|
148
|
+
type: 'crosswalk';
|
|
149
|
+
subtype?: string;
|
|
150
|
+
};
|
|
151
|
+
osmId: string;
|
|
152
|
+
}
|
|
153
|
+
export interface FreehandProps {
|
|
154
|
+
points: Array<{
|
|
155
|
+
x: number;
|
|
156
|
+
y: number;
|
|
157
|
+
}>;
|
|
158
|
+
color: string;
|
|
159
|
+
strokeWidth: number;
|
|
160
|
+
opacity?: number | null;
|
|
161
|
+
isComplete: boolean;
|
|
162
|
+
}
|
|
163
|
+
export interface DrawtonomySnapshot {
|
|
164
|
+
version: string;
|
|
165
|
+
timestamp: string;
|
|
166
|
+
shapes: BaseShape[];
|
|
167
|
+
camera?: {
|
|
168
|
+
x: number;
|
|
169
|
+
y: number;
|
|
170
|
+
z: number;
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
export type ExtensionCapability = 'shapes:write' | 'shapes:read' | 'snapshot:read' | 'viewport:read' | 'selection:read' | 'ui:panel' | 'ui:notify';
|
|
174
|
+
export interface ExtensionManifest {
|
|
175
|
+
id: string;
|
|
176
|
+
name: string;
|
|
177
|
+
version: string;
|
|
178
|
+
description: string;
|
|
179
|
+
author: {
|
|
180
|
+
name: string;
|
|
181
|
+
url?: string;
|
|
182
|
+
};
|
|
183
|
+
entry: string;
|
|
184
|
+
icon?: string;
|
|
185
|
+
capabilities: ExtensionCapability[];
|
|
186
|
+
minHostVersion?: string;
|
|
187
|
+
}
|
|
188
|
+
export interface ShapeFilter {
|
|
189
|
+
types?: string[];
|
|
190
|
+
ids?: string[];
|
|
191
|
+
selectedOnly?: boolean;
|
|
192
|
+
}
|
|
193
|
+
export interface ShapeUpdate {
|
|
194
|
+
id: string;
|
|
195
|
+
props: Record<string, unknown>;
|
|
196
|
+
}
|
|
197
|
+
export interface InitPayload {
|
|
198
|
+
hostVersion: string;
|
|
199
|
+
grantedCapabilities: ExtensionCapability[];
|
|
200
|
+
viewport: {
|
|
201
|
+
width: number;
|
|
202
|
+
height: number;
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,oDAAoD"}
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@drawtonomy/sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "SDK for building Drawtonomy extensions",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"README.md"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"prepublishOnly": "npm run build"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"drawtonomy",
|
|
24
|
+
"extension",
|
|
25
|
+
"sdk",
|
|
26
|
+
"traffic",
|
|
27
|
+
"drawing"
|
|
28
|
+
],
|
|
29
|
+
"license": "Apache-2.0",
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"typescript": "^5.7.0"
|
|
32
|
+
}
|
|
33
|
+
}
|