kanban-lite 1.0.8 → 1.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/README.md +1 -1
- package/dist/cli.js +17 -10
- package/dist/extension.js +17 -10
- package/dist/sdk/index.cjs +928 -0
- package/dist/sdk/index.js +928 -0
- package/dist/sdk/index.mjs +876 -0
- package/dist/sdk/sdk/KanbanSDK.d.ts +34 -0
- package/dist/sdk/sdk/fileUtils.d.ts +6 -0
- package/dist/sdk/sdk/index.d.ts +9 -0
- package/dist/sdk/sdk/parser.d.ts +3 -0
- package/dist/sdk/sdk/types.d.ts +13 -0
- package/dist/sdk/shared/config.d.ts +30 -0
- package/dist/sdk/shared/types.d.ts +163 -0
- package/docs/sdk.md +5 -5
- package/package.json +18 -2
- package/src/standalone/server.ts +16 -10
- package/tsconfig.sdk.json +25 -0
package/README.md
CHANGED
|
@@ -347,7 +347,7 @@ kanban-mcp --dir .kanban
|
|
|
347
347
|
Use the kanban SDK programmatically in your own tools. The `KanbanSDK` class is the single source of truth — the CLI, MCP server, VSCode extension, and standalone server all delegate to it.
|
|
348
348
|
|
|
349
349
|
```typescript
|
|
350
|
-
import { KanbanSDK } from 'kanban-lite/
|
|
350
|
+
import { KanbanSDK } from 'kanban-lite/sdk'
|
|
351
351
|
|
|
352
352
|
const sdk = new KanbanSDK('/path/to/.kanban')
|
|
353
353
|
|
package/dist/cli.js
CHANGED
|
@@ -6536,12 +6536,7 @@ function startServer(featuresDir, port, webviewDir) {
|
|
|
6536
6536
|
</body>
|
|
6537
6537
|
</html>`;
|
|
6538
6538
|
async function loadFeatures() {
|
|
6539
|
-
|
|
6540
|
-
try {
|
|
6541
|
-
features = await sdk.listCards(sdk.listColumns().map((c) => c.id));
|
|
6542
|
-
} finally {
|
|
6543
|
-
migrating = false;
|
|
6544
|
-
}
|
|
6539
|
+
features = await sdk.listCards(sdk.listColumns().map((c) => c.id));
|
|
6545
6540
|
}
|
|
6546
6541
|
function buildInitMessage() {
|
|
6547
6542
|
const settings = sdk.getSettings();
|
|
@@ -6767,8 +6762,13 @@ function startServer(featuresDir, port, webviewDir) {
|
|
|
6767
6762
|
const msg = message;
|
|
6768
6763
|
switch (msg.type) {
|
|
6769
6764
|
case "ready":
|
|
6770
|
-
|
|
6771
|
-
|
|
6765
|
+
migrating = true;
|
|
6766
|
+
try {
|
|
6767
|
+
await loadFeatures();
|
|
6768
|
+
ws.send(JSON.stringify(buildInitMessage()));
|
|
6769
|
+
} finally {
|
|
6770
|
+
migrating = false;
|
|
6771
|
+
}
|
|
6772
6772
|
break;
|
|
6773
6773
|
case "createFeature":
|
|
6774
6774
|
await doCreateFeature(msg.data);
|
|
@@ -7355,8 +7355,15 @@ function startServer(featuresDir, port, webviewDir) {
|
|
|
7355
7355
|
if (debounceTimer)
|
|
7356
7356
|
clearTimeout(debounceTimer);
|
|
7357
7357
|
debounceTimer = setTimeout(async () => {
|
|
7358
|
-
|
|
7359
|
-
|
|
7358
|
+
if (migrating)
|
|
7359
|
+
return;
|
|
7360
|
+
migrating = true;
|
|
7361
|
+
try {
|
|
7362
|
+
await loadFeatures();
|
|
7363
|
+
broadcast(buildInitMessage());
|
|
7364
|
+
} finally {
|
|
7365
|
+
migrating = false;
|
|
7366
|
+
}
|
|
7360
7367
|
if (currentEditingFeatureId && changedPath) {
|
|
7361
7368
|
const editingFeature = features.find((f) => f.id === currentEditingFeatureId);
|
|
7362
7369
|
if (editingFeature && editingFeature.filePath === changedPath) {
|
package/dist/extension.js
CHANGED
|
@@ -6492,12 +6492,7 @@ function startServer(featuresDir, port, webviewDir) {
|
|
|
6492
6492
|
</body>
|
|
6493
6493
|
</html>`;
|
|
6494
6494
|
async function loadFeatures() {
|
|
6495
|
-
|
|
6496
|
-
try {
|
|
6497
|
-
features = await sdk.listCards(sdk.listColumns().map((c) => c.id));
|
|
6498
|
-
} finally {
|
|
6499
|
-
migrating = false;
|
|
6500
|
-
}
|
|
6495
|
+
features = await sdk.listCards(sdk.listColumns().map((c) => c.id));
|
|
6501
6496
|
}
|
|
6502
6497
|
function buildInitMessage() {
|
|
6503
6498
|
const settings = sdk.getSettings();
|
|
@@ -6723,8 +6718,13 @@ function startServer(featuresDir, port, webviewDir) {
|
|
|
6723
6718
|
const msg = message;
|
|
6724
6719
|
switch (msg.type) {
|
|
6725
6720
|
case "ready":
|
|
6726
|
-
|
|
6727
|
-
|
|
6721
|
+
migrating = true;
|
|
6722
|
+
try {
|
|
6723
|
+
await loadFeatures();
|
|
6724
|
+
ws.send(JSON.stringify(buildInitMessage()));
|
|
6725
|
+
} finally {
|
|
6726
|
+
migrating = false;
|
|
6727
|
+
}
|
|
6728
6728
|
break;
|
|
6729
6729
|
case "createFeature":
|
|
6730
6730
|
await doCreateFeature(msg.data);
|
|
@@ -7311,8 +7311,15 @@ function startServer(featuresDir, port, webviewDir) {
|
|
|
7311
7311
|
if (debounceTimer)
|
|
7312
7312
|
clearTimeout(debounceTimer);
|
|
7313
7313
|
debounceTimer = setTimeout(async () => {
|
|
7314
|
-
|
|
7315
|
-
|
|
7314
|
+
if (migrating)
|
|
7315
|
+
return;
|
|
7316
|
+
migrating = true;
|
|
7317
|
+
try {
|
|
7318
|
+
await loadFeatures();
|
|
7319
|
+
broadcast(buildInitMessage());
|
|
7320
|
+
} finally {
|
|
7321
|
+
migrating = false;
|
|
7322
|
+
}
|
|
7316
7323
|
if (currentEditingFeatureId && changedPath) {
|
|
7317
7324
|
const editingFeature = features.find((f) => f.id === currentEditingFeatureId);
|
|
7318
7325
|
if (editingFeature && editingFeature.filePath === changedPath) {
|