skyboard-cli 0.1.2 → 0.1.3
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/dist/__tests__/pds.test.js +1 -93
- package/dist/__tests__/pds.test.js.map +1 -1
- package/dist/commands/add.js +2 -2
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/use.js +3 -3
- package/dist/commands/use.js.map +1 -1
- package/dist/lib/pds.d.ts +4 -26
- package/dist/lib/pds.js +97 -265
- package/dist/lib/pds.js.map +1 -1
- package/package.json +4 -1
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
2
|
-
import { OWNER_DID, USER_DID,
|
|
3
|
-
// We need to reset the pdsCache between tests since it's a module-level Map.
|
|
4
|
-
// The simplest approach: re-import fresh each time via dynamic import + vi.resetModules.
|
|
5
|
-
let resolvePDS;
|
|
6
|
-
let fetchBoard;
|
|
2
|
+
import { OWNER_DID, USER_DID, } from "./helpers.js";
|
|
7
3
|
let resolveHandle;
|
|
8
4
|
beforeEach(async () => {
|
|
9
5
|
vi.resetModules();
|
|
10
6
|
vi.restoreAllMocks();
|
|
11
7
|
const mod = await import("../lib/pds.js");
|
|
12
|
-
resolvePDS = mod.resolvePDS;
|
|
13
|
-
fetchBoard = mod.fetchBoard;
|
|
14
8
|
resolveHandle = mod.resolveHandle;
|
|
15
9
|
});
|
|
16
10
|
function stubFetch(handler) {
|
|
@@ -30,92 +24,6 @@ function jsonResponse(data, status = 200) {
|
|
|
30
24
|
function textResponse(text, status = 200) {
|
|
31
25
|
return new Response(text, { status });
|
|
32
26
|
}
|
|
33
|
-
describe("resolvePDS", () => {
|
|
34
|
-
it("resolves a did:plc via plc.directory", async () => {
|
|
35
|
-
stubFetch((url) => {
|
|
36
|
-
if (url.includes("plc.directory")) {
|
|
37
|
-
return jsonResponse(makePLCResponse(OWNER_DID, PDS_ENDPOINT));
|
|
38
|
-
}
|
|
39
|
-
return new Response("", { status: 404 });
|
|
40
|
-
});
|
|
41
|
-
const result = await resolvePDS(OWNER_DID);
|
|
42
|
-
expect(result).toBe(PDS_ENDPOINT);
|
|
43
|
-
});
|
|
44
|
-
it("resolves a did:web via .well-known/did.json", async () => {
|
|
45
|
-
const webDid = "did:web:example.com";
|
|
46
|
-
stubFetch((url) => {
|
|
47
|
-
if (url.includes("example.com/.well-known/did.json")) {
|
|
48
|
-
return jsonResponse(makePLCResponse(webDid, PDS_ENDPOINT));
|
|
49
|
-
}
|
|
50
|
-
return new Response("", { status: 404 });
|
|
51
|
-
});
|
|
52
|
-
const result = await resolvePDS(webDid);
|
|
53
|
-
expect(result).toBe(PDS_ENDPOINT);
|
|
54
|
-
});
|
|
55
|
-
it("returns null for unknown DID method", async () => {
|
|
56
|
-
stubFetch(() => new Response("", { status: 404 }));
|
|
57
|
-
const result = await resolvePDS("did:key:z12345");
|
|
58
|
-
expect(result).toBeNull();
|
|
59
|
-
});
|
|
60
|
-
it("returns null on fetch failure", async () => {
|
|
61
|
-
stubFetch(() => new Response("", { status: 500 }));
|
|
62
|
-
const result = await resolvePDS(OWNER_DID);
|
|
63
|
-
expect(result).toBeNull();
|
|
64
|
-
});
|
|
65
|
-
it("caches resolved PDS endpoints", async () => {
|
|
66
|
-
const mockFetch = stubFetch((url) => {
|
|
67
|
-
if (url.includes("plc.directory")) {
|
|
68
|
-
return jsonResponse(makePLCResponse(OWNER_DID, PDS_ENDPOINT));
|
|
69
|
-
}
|
|
70
|
-
return new Response("", { status: 404 });
|
|
71
|
-
});
|
|
72
|
-
await resolvePDS(OWNER_DID);
|
|
73
|
-
await resolvePDS(OWNER_DID);
|
|
74
|
-
// Should only call fetch once (second call uses cache)
|
|
75
|
-
expect(mockFetch).toHaveBeenCalledTimes(1);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
describe("fetchBoard", () => {
|
|
79
|
-
it("fetches and parses a board record", async () => {
|
|
80
|
-
const boardRecord = {
|
|
81
|
-
$type: "dev.skyboard.board",
|
|
82
|
-
name: "Test Board",
|
|
83
|
-
description: "A test board",
|
|
84
|
-
columns: COLUMNS,
|
|
85
|
-
createdAt: "2025-01-01T00:00:00.000Z",
|
|
86
|
-
};
|
|
87
|
-
stubFetch((url) => {
|
|
88
|
-
if (url.includes("plc.directory")) {
|
|
89
|
-
return jsonResponse(makePLCResponse(OWNER_DID, PDS_ENDPOINT));
|
|
90
|
-
}
|
|
91
|
-
if (url.includes("getRecord")) {
|
|
92
|
-
return jsonResponse({ uri: `at://${OWNER_DID}/dev.skyboard.board/${BOARD_RKEY}`, value: boardRecord });
|
|
93
|
-
}
|
|
94
|
-
return new Response("", { status: 404 });
|
|
95
|
-
});
|
|
96
|
-
const board = await fetchBoard(OWNER_DID, BOARD_RKEY);
|
|
97
|
-
expect(board).not.toBeNull();
|
|
98
|
-
expect(board.name).toBe("Test Board");
|
|
99
|
-
expect(board.columns).toEqual(COLUMNS);
|
|
100
|
-
expect(board.did).toBe(OWNER_DID);
|
|
101
|
-
expect(board.rkey).toBe(BOARD_RKEY);
|
|
102
|
-
});
|
|
103
|
-
it("returns null when board not found", async () => {
|
|
104
|
-
stubFetch((url) => {
|
|
105
|
-
if (url.includes("plc.directory")) {
|
|
106
|
-
return jsonResponse(makePLCResponse(OWNER_DID, PDS_ENDPOINT));
|
|
107
|
-
}
|
|
108
|
-
return new Response("", { status: 404 });
|
|
109
|
-
});
|
|
110
|
-
const board = await fetchBoard(OWNER_DID, "nonexistent");
|
|
111
|
-
expect(board).toBeNull();
|
|
112
|
-
});
|
|
113
|
-
it("returns null when PDS cannot be resolved", async () => {
|
|
114
|
-
stubFetch(() => new Response("", { status: 500 }));
|
|
115
|
-
const board = await fetchBoard(OWNER_DID, BOARD_RKEY);
|
|
116
|
-
expect(board).toBeNull();
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
27
|
describe("resolveHandle", () => {
|
|
120
28
|
it("resolves via .well-known/atproto-did", async () => {
|
|
121
29
|
stubFetch((url) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pds.test.js","sourceRoot":"","sources":["../../src/__tests__/pds.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EACL,SAAS,EACT,QAAQ,
|
|
1
|
+
{"version":3,"file":"pds.test.js","sourceRoot":"","sources":["../../src/__tests__/pds.test.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/add.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { requireAgent } from "../lib/auth.js";
|
|
2
|
-
import {
|
|
2
|
+
import { fetchBoardFromAppview } from "../lib/pds.js";
|
|
3
3
|
import { addKnownBoard } from "../lib/config.js";
|
|
4
4
|
import { BOARD_COLLECTION } from "../lib/tid.js";
|
|
5
5
|
import chalk from "chalk";
|
|
@@ -30,7 +30,7 @@ export async function addCommand(link) {
|
|
|
30
30
|
console.error(chalk.dim(" URL: https://skyboard.dev/board/did:plc:xxx/rkey"));
|
|
31
31
|
process.exit(1);
|
|
32
32
|
}
|
|
33
|
-
const board = await
|
|
33
|
+
const board = await fetchBoardFromAppview(boardDid, boardRkey);
|
|
34
34
|
if (!board) {
|
|
35
35
|
console.error(chalk.red("Board not found."));
|
|
36
36
|
process.exit(1);
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,MAAM,YAAY,EAAE,CAAC;IAErB,IAAI,QAA4B,CAAC;IACjC,IAAI,SAA6B,CAAC;IAElC,eAAe;IACf,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC;YACvD,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YACtD,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACxB,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,aAAa,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC"}
|
package/dist/commands/use.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { requireAgent } from "../lib/auth.js";
|
|
2
|
-
import {
|
|
2
|
+
import { fetchBoardFromAppview } from "../lib/pds.js";
|
|
3
3
|
import { setDefaultBoard, loadConfig } from "../lib/config.js";
|
|
4
4
|
import { BOARD_COLLECTION } from "../lib/tid.js";
|
|
5
5
|
import chalk from "chalk";
|
|
@@ -37,7 +37,7 @@ async function parseBoardRef(ref, currentDid) {
|
|
|
37
37
|
if (nameMatch)
|
|
38
38
|
return { did: nameMatch.did, rkey: nameMatch.rkey };
|
|
39
39
|
// Try as rkey for own board
|
|
40
|
-
const board = await
|
|
40
|
+
const board = await fetchBoardFromAppview(currentDid, ref);
|
|
41
41
|
if (board)
|
|
42
42
|
return { did: currentDid, rkey: ref };
|
|
43
43
|
return null;
|
|
@@ -50,7 +50,7 @@ export async function useCommand(boardRef) {
|
|
|
50
50
|
console.error("Try a board name, rkey, AT URI, or web URL.");
|
|
51
51
|
process.exit(1);
|
|
52
52
|
}
|
|
53
|
-
const board = await
|
|
53
|
+
const board = await fetchBoardFromAppview(parsed.did, parsed.rkey);
|
|
54
54
|
if (!board) {
|
|
55
55
|
console.error(chalk.red(`Board not found at ${parsed.did}/${parsed.rkey}`));
|
|
56
56
|
process.exit(1);
|
package/dist/commands/use.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../src/commands/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAiB,
|
|
1
|
+
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../src/commands/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAiB,qBAAqB,EAAiB,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;GAGG;AACH,KAAK,UAAU,aAAa,CAC1B,GAAW,EACX,UAAkB;IAElB,mDAAmD;IACnD,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC;YACvD,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAuD;IACvD,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1D,0BAA0B;QAC1B,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YACtD,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,CAAC;QACD,0BAA0B;QAC1B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YACvD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qCAAqC;IACrC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC/C,CAAC;IACF,IAAI,SAAS;QAAE,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;IAEnE,4BAA4B;IAC5B,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC3D,IAAI,KAAK;QAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAEjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IAErC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,eAAe,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9E,CAAC"}
|
package/dist/lib/pds.d.ts
CHANGED
|
@@ -1,35 +1,14 @@
|
|
|
1
1
|
import type { Agent } from "@atproto/api";
|
|
2
|
-
import type { Board,
|
|
2
|
+
import type { Board, Trust, Comment } from "./types.js";
|
|
3
3
|
import type { MaterializedTask } from "./types.js";
|
|
4
|
-
export declare function resolvePDS(did: string): Promise<string | null>;
|
|
5
4
|
/**
|
|
6
|
-
* Fetch a single board record from the
|
|
5
|
+
* Fetch a single board record from the appview.
|
|
7
6
|
*/
|
|
8
|
-
export declare function
|
|
9
|
-
/**
|
|
10
|
-
* Fetch all boards owned by a DID.
|
|
11
|
-
*/
|
|
12
|
-
export declare function fetchBoards(ownerDid: string): Promise<Board[]>;
|
|
7
|
+
export declare function fetchBoardFromAppview(ownerDid: string, rkey: string): Promise<Board | null>;
|
|
13
8
|
/**
|
|
14
9
|
* Fetch all boards from the authenticated user's PDS (using Agent).
|
|
15
10
|
*/
|
|
16
11
|
export declare function fetchMyBoards(agent: Agent, did: string): Promise<Board[]>;
|
|
17
|
-
/**
|
|
18
|
-
* Fetch tasks from a participant's repo for a specific board.
|
|
19
|
-
*/
|
|
20
|
-
export declare function fetchTasks(participantDid: string, boardUri: string): Promise<Task[]>;
|
|
21
|
-
/**
|
|
22
|
-
* Fetch ops from a participant's repo for a specific board.
|
|
23
|
-
*/
|
|
24
|
-
export declare function fetchOps(participantDid: string, boardUri: string): Promise<Op[]>;
|
|
25
|
-
/**
|
|
26
|
-
* Fetch trusts from the board owner's repo for a specific board.
|
|
27
|
-
*/
|
|
28
|
-
export declare function fetchTrusts(ownerDid: string, boardUri: string): Promise<Trust[]>;
|
|
29
|
-
/**
|
|
30
|
-
* Fetch comments from a participant's repo for a specific board.
|
|
31
|
-
*/
|
|
32
|
-
export declare function fetchComments(participantDid: string, boardUri: string): Promise<Comment[]>;
|
|
33
12
|
export interface BoardData {
|
|
34
13
|
board: Board;
|
|
35
14
|
tasks: MaterializedTask[];
|
|
@@ -38,8 +17,7 @@ export interface BoardData {
|
|
|
38
17
|
allParticipants: string[];
|
|
39
18
|
}
|
|
40
19
|
/**
|
|
41
|
-
* Fetch all data for a board
|
|
42
|
-
* participants, materialize tasks. This is the main "load board" function.
|
|
20
|
+
* Fetch all data for a board from the appview (single HTTP request).
|
|
43
21
|
*/
|
|
44
22
|
export declare function fetchBoardData(boardDid: string, boardRkey: string, currentUserDid: string): Promise<BoardData | null>;
|
|
45
23
|
/**
|
package/dist/lib/pds.js
CHANGED
|
@@ -1,66 +1,35 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
import { BOARD_COLLECTION,
|
|
4
|
-
import { safeParse, BoardRecordSchema,
|
|
1
|
+
// Board data fetching — uses the appview for board data,
|
|
2
|
+
// PDS only for listing the user's own boards.
|
|
3
|
+
import { BOARD_COLLECTION, buildAtUri, } from "./tid.js";
|
|
4
|
+
import { safeParse, BoardRecordSchema, } from "./schemas.js";
|
|
5
5
|
import { materializeTasks } from "./materialize.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return cached;
|
|
6
|
+
const APPVIEW_URL = "https://appview.skyboard.dev";
|
|
7
|
+
/**
|
|
8
|
+
* Fetch a single board record from the appview.
|
|
9
|
+
*/
|
|
10
|
+
export async function fetchBoardFromAppview(ownerDid, rkey) {
|
|
12
11
|
try {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return null;
|
|
18
|
-
didDoc = await res.json();
|
|
19
|
-
}
|
|
20
|
-
else if (did.startsWith("did:web:")) {
|
|
21
|
-
const host = did.slice("did:web:".length).replaceAll(":", "/");
|
|
22
|
-
const res = await fetch(`https://${host}/.well-known/did.json`);
|
|
23
|
-
if (!res.ok)
|
|
24
|
-
return null;
|
|
25
|
-
didDoc = await res.json();
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
const services = didDoc.service;
|
|
31
|
-
const pds = services?.find((s) => s.id === "#atproto_pds" || s.type === "AtprotoPersonalDataServer");
|
|
32
|
-
if (!pds?.serviceEndpoint)
|
|
12
|
+
const res = await fetch(`${APPVIEW_URL}/board/${ownerDid}/${rkey}`, {
|
|
13
|
+
signal: AbortSignal.timeout(10_000),
|
|
14
|
+
});
|
|
15
|
+
if (!res.ok)
|
|
33
16
|
return null;
|
|
34
|
-
|
|
35
|
-
return
|
|
17
|
+
const data = (await res.json());
|
|
18
|
+
return {
|
|
19
|
+
rkey: data.board.rkey,
|
|
20
|
+
did: data.board.did,
|
|
21
|
+
name: data.board.name,
|
|
22
|
+
description: data.board.description ?? undefined,
|
|
23
|
+
columns: data.board.columns,
|
|
24
|
+
labels: data.board.labels,
|
|
25
|
+
open: data.board.open || undefined,
|
|
26
|
+
createdAt: data.board.createdAt,
|
|
27
|
+
};
|
|
36
28
|
}
|
|
37
29
|
catch {
|
|
38
30
|
return null;
|
|
39
31
|
}
|
|
40
32
|
}
|
|
41
|
-
async function fetchRecordsFromRepo(repoDid, collection) {
|
|
42
|
-
const pds = await resolvePDS(repoDid);
|
|
43
|
-
if (!pds)
|
|
44
|
-
return [];
|
|
45
|
-
const records = [];
|
|
46
|
-
let cursor;
|
|
47
|
-
do {
|
|
48
|
-
const params = new URLSearchParams({
|
|
49
|
-
repo: repoDid,
|
|
50
|
-
collection,
|
|
51
|
-
limit: "100",
|
|
52
|
-
});
|
|
53
|
-
if (cursor)
|
|
54
|
-
params.set("cursor", cursor);
|
|
55
|
-
const res = await fetch(`${pds}/xrpc/com.atproto.repo.listRecords?${params.toString()}`);
|
|
56
|
-
if (!res.ok)
|
|
57
|
-
break;
|
|
58
|
-
const data = await res.json();
|
|
59
|
-
records.push(...(data.records ?? []));
|
|
60
|
-
cursor = data.cursor;
|
|
61
|
-
} while (cursor);
|
|
62
|
-
return records;
|
|
63
|
-
}
|
|
64
33
|
function inferOpenFromRecord(value) {
|
|
65
34
|
if (value.open !== undefined)
|
|
66
35
|
return value.open || undefined;
|
|
@@ -69,66 +38,6 @@ function inferOpenFromRecord(value) {
|
|
|
69
38
|
return true;
|
|
70
39
|
return undefined;
|
|
71
40
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Fetch a single board record from the owner's PDS.
|
|
74
|
-
*/
|
|
75
|
-
export async function fetchBoard(ownerDid, rkey) {
|
|
76
|
-
try {
|
|
77
|
-
const pds = await resolvePDS(ownerDid);
|
|
78
|
-
if (!pds)
|
|
79
|
-
return null;
|
|
80
|
-
const params = new URLSearchParams({
|
|
81
|
-
repo: ownerDid,
|
|
82
|
-
collection: BOARD_COLLECTION,
|
|
83
|
-
rkey,
|
|
84
|
-
});
|
|
85
|
-
const res = await fetch(`${pds}/xrpc/com.atproto.repo.getRecord?${params.toString()}`);
|
|
86
|
-
if (!res.ok)
|
|
87
|
-
return null;
|
|
88
|
-
const data = await res.json();
|
|
89
|
-
const value = data.value;
|
|
90
|
-
const validated = safeParse(BoardRecordSchema, value, "BoardRecord");
|
|
91
|
-
if (!validated)
|
|
92
|
-
return null;
|
|
93
|
-
return {
|
|
94
|
-
rkey,
|
|
95
|
-
did: ownerDid,
|
|
96
|
-
name: validated.name,
|
|
97
|
-
description: validated.description,
|
|
98
|
-
columns: validated.columns,
|
|
99
|
-
labels: validated.labels,
|
|
100
|
-
open: inferOpenFromRecord(value),
|
|
101
|
-
createdAt: validated.createdAt,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Fetch all boards owned by a DID.
|
|
110
|
-
*/
|
|
111
|
-
export async function fetchBoards(ownerDid) {
|
|
112
|
-
const records = await fetchRecordsFromRepo(ownerDid, BOARD_COLLECTION);
|
|
113
|
-
const boards = [];
|
|
114
|
-
for (const record of records) {
|
|
115
|
-
const validated = safeParse(BoardRecordSchema, record.value, "BoardRecord");
|
|
116
|
-
if (!validated)
|
|
117
|
-
continue;
|
|
118
|
-
const rkey = record.uri.split("/").pop();
|
|
119
|
-
boards.push({
|
|
120
|
-
rkey,
|
|
121
|
-
did: ownerDid,
|
|
122
|
-
name: validated.name,
|
|
123
|
-
description: validated.description,
|
|
124
|
-
columns: validated.columns,
|
|
125
|
-
labels: validated.labels,
|
|
126
|
-
open: inferOpenFromRecord(record.value),
|
|
127
|
-
createdAt: validated.createdAt,
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
return boards;
|
|
131
|
-
}
|
|
132
41
|
/**
|
|
133
42
|
* Fetch all boards from the authenticated user's PDS (using Agent).
|
|
134
43
|
*/
|
|
@@ -164,163 +73,86 @@ export async function fetchMyBoards(agent, did) {
|
|
|
164
73
|
return boards;
|
|
165
74
|
}
|
|
166
75
|
/**
|
|
167
|
-
* Fetch
|
|
168
|
-
*/
|
|
169
|
-
export async function fetchTasks(participantDid, boardUri) {
|
|
170
|
-
const records = await fetchRecordsFromRepo(participantDid, TASK_COLLECTION);
|
|
171
|
-
const tasks = [];
|
|
172
|
-
for (const record of records) {
|
|
173
|
-
if (record.value.boardUri !== boardUri)
|
|
174
|
-
continue;
|
|
175
|
-
const validated = safeParse(TaskRecordSchema, record.value, "TaskRecord");
|
|
176
|
-
if (!validated)
|
|
177
|
-
continue;
|
|
178
|
-
const rkey = record.uri.split("/").pop();
|
|
179
|
-
tasks.push({
|
|
180
|
-
rkey,
|
|
181
|
-
did: participantDid,
|
|
182
|
-
title: validated.title,
|
|
183
|
-
description: validated.description,
|
|
184
|
-
columnId: validated.columnId,
|
|
185
|
-
boardUri,
|
|
186
|
-
position: validated.position,
|
|
187
|
-
labelIds: validated.labelIds,
|
|
188
|
-
order: validated.order,
|
|
189
|
-
createdAt: validated.createdAt,
|
|
190
|
-
updatedAt: validated.updatedAt,
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
return tasks;
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Fetch ops from a participant's repo for a specific board.
|
|
76
|
+
* Fetch all data for a board from the appview (single HTTP request).
|
|
197
77
|
*/
|
|
198
|
-
export async function
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
if (record.value.boardUri !== boardUri)
|
|
203
|
-
continue;
|
|
204
|
-
const validated = safeParse(OpRecordSchema, record.value, "OpRecord");
|
|
205
|
-
if (!validated)
|
|
206
|
-
continue;
|
|
207
|
-
const rkey = record.uri.split("/").pop();
|
|
208
|
-
ops.push({
|
|
209
|
-
rkey,
|
|
210
|
-
did: participantDid,
|
|
211
|
-
targetTaskUri: validated.targetTaskUri,
|
|
212
|
-
boardUri,
|
|
213
|
-
fields: validated.fields,
|
|
214
|
-
createdAt: validated.createdAt,
|
|
78
|
+
export async function fetchBoardData(boardDid, boardRkey, currentUserDid) {
|
|
79
|
+
try {
|
|
80
|
+
const res = await fetch(`${APPVIEW_URL}/board/${boardDid}/${boardRkey}`, {
|
|
81
|
+
signal: AbortSignal.timeout(10_000),
|
|
215
82
|
});
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
83
|
+
if (!res.ok)
|
|
84
|
+
return null;
|
|
85
|
+
const data = (await res.json());
|
|
86
|
+
const boardUri = buildAtUri(boardDid, BOARD_COLLECTION, boardRkey);
|
|
87
|
+
const board = {
|
|
88
|
+
rkey: data.board.rkey,
|
|
89
|
+
did: data.board.did,
|
|
90
|
+
name: data.board.name,
|
|
91
|
+
description: data.board.description ?? undefined,
|
|
92
|
+
columns: data.board.columns,
|
|
93
|
+
labels: data.board.labels,
|
|
94
|
+
open: data.board.open || undefined,
|
|
95
|
+
createdAt: data.board.createdAt,
|
|
96
|
+
};
|
|
97
|
+
const tasks = (data.rawTasks ?? []).map((t) => ({
|
|
98
|
+
rkey: t.rkey,
|
|
99
|
+
did: t.did,
|
|
100
|
+
title: t.title,
|
|
101
|
+
description: t.description ?? undefined,
|
|
102
|
+
columnId: t.columnId,
|
|
103
|
+
boardUri: t.boardUri,
|
|
104
|
+
position: t.position ?? undefined,
|
|
105
|
+
labelIds: t.labelIds ?? undefined,
|
|
106
|
+
order: t.order ?? undefined,
|
|
107
|
+
createdAt: t.createdAt,
|
|
108
|
+
updatedAt: t.updatedAt ?? undefined,
|
|
109
|
+
}));
|
|
110
|
+
const ops = (data.rawOps ?? []).map((o) => ({
|
|
111
|
+
rkey: o.rkey,
|
|
112
|
+
did: o.did,
|
|
113
|
+
targetTaskUri: o.targetTaskUri,
|
|
114
|
+
boardUri: o.boardUri,
|
|
115
|
+
fields: o.fields,
|
|
116
|
+
createdAt: o.createdAt,
|
|
117
|
+
}));
|
|
118
|
+
const trusts = (data.trusts ?? []).map((t) => ({
|
|
119
|
+
rkey: t.rkey,
|
|
120
|
+
did: t.did,
|
|
121
|
+
trustedDid: t.trustedDid,
|
|
236
122
|
boardUri,
|
|
237
|
-
createdAt:
|
|
238
|
-
});
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
* Fetch comments from a participant's repo for a specific board.
|
|
244
|
-
*/
|
|
245
|
-
export async function fetchComments(participantDid, boardUri) {
|
|
246
|
-
const records = await fetchRecordsFromRepo(participantDid, COMMENT_COLLECTION);
|
|
247
|
-
const comments = [];
|
|
248
|
-
for (const record of records) {
|
|
249
|
-
if (record.value.boardUri !== boardUri)
|
|
250
|
-
continue;
|
|
251
|
-
const validated = safeParse(CommentRecordSchema, record.value, "CommentRecord");
|
|
252
|
-
if (!validated)
|
|
253
|
-
continue;
|
|
254
|
-
const rkey = record.uri.split("/").pop();
|
|
255
|
-
comments.push({
|
|
256
|
-
rkey,
|
|
257
|
-
did: participantDid,
|
|
258
|
-
targetTaskUri: validated.targetTaskUri,
|
|
123
|
+
createdAt: t.createdAt,
|
|
124
|
+
}));
|
|
125
|
+
const comments = (data.comments ?? []).map((c) => ({
|
|
126
|
+
rkey: c.rkey,
|
|
127
|
+
did: c.did,
|
|
128
|
+
targetTaskUri: c.targetTaskUri,
|
|
259
129
|
boardUri,
|
|
260
|
-
text:
|
|
261
|
-
createdAt:
|
|
262
|
-
});
|
|
130
|
+
text: c.text,
|
|
131
|
+
createdAt: c.createdAt,
|
|
132
|
+
}));
|
|
133
|
+
const trustedDids = new Set(trusts.map((t) => t.trustedDid));
|
|
134
|
+
const allParticipants = new Set();
|
|
135
|
+
allParticipants.add(boardDid);
|
|
136
|
+
for (const d of trustedDids)
|
|
137
|
+
allParticipants.add(d);
|
|
138
|
+
for (const t of tasks)
|
|
139
|
+
allParticipants.add(t.did);
|
|
140
|
+
for (const o of ops)
|
|
141
|
+
allParticipants.add(o.did);
|
|
142
|
+
if (currentUserDid)
|
|
143
|
+
allParticipants.add(currentUserDid);
|
|
144
|
+
const materialized = materializeTasks(tasks, ops, trustedDids, currentUserDid, boardDid);
|
|
145
|
+
return {
|
|
146
|
+
board,
|
|
147
|
+
tasks: materialized,
|
|
148
|
+
trusts,
|
|
149
|
+
comments,
|
|
150
|
+
allParticipants: [...allParticipants],
|
|
151
|
+
};
|
|
263
152
|
}
|
|
264
|
-
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Fetch all data for a board: board record, trusts, tasks, ops from all
|
|
268
|
-
* participants, materialize tasks. This is the main "load board" function.
|
|
269
|
-
*/
|
|
270
|
-
export async function fetchBoardData(boardDid, boardRkey, currentUserDid) {
|
|
271
|
-
const boardUri = buildAtUri(boardDid, BOARD_COLLECTION, boardRkey);
|
|
272
|
-
// Fetch board
|
|
273
|
-
const board = await fetchBoard(boardDid, boardRkey);
|
|
274
|
-
if (!board)
|
|
153
|
+
catch {
|
|
275
154
|
return null;
|
|
276
|
-
// Fetch trusts to discover all participants
|
|
277
|
-
const trusts = await fetchTrusts(boardDid, boardUri);
|
|
278
|
-
const trustedDids = new Set(trusts.map((t) => t.trustedDid));
|
|
279
|
-
// All participants: owner + trusted DIDs + current user
|
|
280
|
-
const allParticipants = new Set();
|
|
281
|
-
allParticipants.add(boardDid);
|
|
282
|
-
for (const did of trustedDids)
|
|
283
|
-
allParticipants.add(did);
|
|
284
|
-
if (currentUserDid)
|
|
285
|
-
allParticipants.add(currentUserDid);
|
|
286
|
-
// Fetch tasks + ops from all participants in parallel (batches of 3)
|
|
287
|
-
const participantList = [...allParticipants];
|
|
288
|
-
let allTasks = [];
|
|
289
|
-
let allOps = [];
|
|
290
|
-
let allComments = [];
|
|
291
|
-
const concurrency = 3;
|
|
292
|
-
for (let i = 0; i < participantList.length; i += concurrency) {
|
|
293
|
-
const batch = participantList.slice(i, i + concurrency);
|
|
294
|
-
const taskPromises = batch.map((did) => fetchTasks(did, boardUri));
|
|
295
|
-
const opPromises = batch.map((did) => fetchOps(did, boardUri));
|
|
296
|
-
const commentPromises = batch.map((did) => fetchComments(did, boardUri));
|
|
297
|
-
const [taskResults, opResults, commentResults] = await Promise.all([
|
|
298
|
-
Promise.allSettled(taskPromises),
|
|
299
|
-
Promise.allSettled(opPromises),
|
|
300
|
-
Promise.allSettled(commentPromises),
|
|
301
|
-
]);
|
|
302
|
-
for (const r of taskResults) {
|
|
303
|
-
if (r.status === "fulfilled")
|
|
304
|
-
allTasks.push(...r.value);
|
|
305
|
-
}
|
|
306
|
-
for (const r of opResults) {
|
|
307
|
-
if (r.status === "fulfilled")
|
|
308
|
-
allOps.push(...r.value);
|
|
309
|
-
}
|
|
310
|
-
for (const r of commentResults) {
|
|
311
|
-
if (r.status === "fulfilled")
|
|
312
|
-
allComments.push(...r.value);
|
|
313
|
-
}
|
|
314
155
|
}
|
|
315
|
-
// Materialize tasks
|
|
316
|
-
const materialized = materializeTasks(allTasks, allOps, trustedDids, currentUserDid, boardDid);
|
|
317
|
-
return {
|
|
318
|
-
board,
|
|
319
|
-
tasks: materialized,
|
|
320
|
-
trusts,
|
|
321
|
-
comments: allComments,
|
|
322
|
-
allParticipants: participantList,
|
|
323
|
-
};
|
|
324
156
|
}
|
|
325
157
|
/**
|
|
326
158
|
* Resolve a handle to a DID.
|
package/dist/lib/pds.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pds.js","sourceRoot":"","sources":["../../src/lib/pds.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pds.js","sourceRoot":"","sources":["../../src/lib/pds.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,8CAA8C;AAG9C,OAAO,EACL,gBAAgB,EAChB,UAAU,GACX,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,SAAS,EACT,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAiDnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgB,EAChB,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,UAAU,QAAQ,IAAI,IAAI,EAAE,EAAE;YAClE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAExD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,SAAS;YAChD,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS;YAClC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;SAChC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAA8B;IAE9B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAQ,KAAK,CAAC,IAAgB,IAAI,SAAS,CAAC;IAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,WAEP,CAAC;IACd,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAY,EAAE,GAAW;IAC3D,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,MAA0B,CAAC;IAE/B,GAAG,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YACnD,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,gBAAgB;YAC5B,KAAK,EAAE,GAAG;YACV,MAAM;SACP,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAgC,CAAC;YACtD,MAAM,SAAS,GAAG,SAAS,CAAC,iBAAiB,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;YACrE,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,GAAG;gBACH,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC;gBAChC,SAAS,EAAE,SAAS,CAAC,SAAS;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3B,CAAC,QAAQ,MAAM,EAAE;IAEjB,OAAO,MAAM,CAAC;AAChB,CAAC;AAUD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,SAAiB,EACjB,cAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,UAAU,QAAQ,IAAI,SAAS,EAAE,EAAE;YACvE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAExD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAU;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,SAAS;YAChD,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS;YAClC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;SAChC,CAAC;QAEF,MAAM,KAAK,GAAW,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;YACvC,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,SAAS;YACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,SAAS;YACjC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS;YAC3B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS;SACpC,CAAC,CAAC,CAAC;QAEJ,MAAM,GAAG,GAAS,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAY,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,QAAQ;YACR,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAc,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,QAAQ;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC,CAAC,CAAC;QAEJ,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAE7D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,WAAW;YAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,cAAc;YAAE,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAExD,MAAM,YAAY,GAAG,gBAAgB,CACnC,KAAK,EACL,GAAG,EACH,WAAW,EACX,cAAc,EACd,QAAQ,CACT,CAAC;QAEF,OAAO;YACL,KAAK;YACL,KAAK,EAAE,YAAY;YACnB,MAAM;YACN,QAAQ;YACR,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;SACtC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,wBAAwB;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,MAAM,0BAA0B,CAAC,CAAC;QACrE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,+DAA+D,MAAM,CAAC,QAAQ,EAAE,EAAE,CACnF,CAAC;QACF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAqB,CAAC;YACjD,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skyboard-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "CLI for Skyboard – a collaborative kanban board on AT Protocol",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Tim Disney"
|
|
7
7
|
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"url": "https://github.com/disnet/skyboard"
|
|
10
|
+
},
|
|
8
11
|
"type": "module",
|
|
9
12
|
"files": [
|
|
10
13
|
"dist",
|