@book.dev/sdk 1.60.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 (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +23 -0
  3. package/dist/account.d.ts +57 -0
  4. package/dist/account.js +104 -0
  5. package/dist/account.js.map +1 -0
  6. package/dist/ai.d.ts +264 -0
  7. package/dist/ai.js +36 -0
  8. package/dist/ai.js.map +1 -0
  9. package/dist/backup.d.ts +52 -0
  10. package/dist/backup.js +35 -0
  11. package/dist/backup.js.map +1 -0
  12. package/dist/bookFolder.d.ts +44 -0
  13. package/dist/bookFolder.js +98 -0
  14. package/dist/bookFolder.js.map +1 -0
  15. package/dist/bookfile.d.ts +42 -0
  16. package/dist/bookfile.js +159 -0
  17. package/dist/bookfile.js.map +1 -0
  18. package/dist/client.d.ts +279 -0
  19. package/dist/client.js +502 -0
  20. package/dist/client.js.map +1 -0
  21. package/dist/connection.d.ts +20 -0
  22. package/dist/connection.js +77 -0
  23. package/dist/connection.js.map +1 -0
  24. package/dist/content.d.ts +38 -0
  25. package/dist/content.js +107 -0
  26. package/dist/content.js.map +1 -0
  27. package/dist/database.d.ts +687 -0
  28. package/dist/database.js +1082 -0
  29. package/dist/database.js.map +1 -0
  30. package/dist/formula.d.ts +41 -0
  31. package/dist/formula.js +469 -0
  32. package/dist/formula.js.map +1 -0
  33. package/dist/forwarding/challenge.d.ts +35 -0
  34. package/dist/forwarding/challenge.js +45 -0
  35. package/dist/forwarding/challenge.js.map +1 -0
  36. package/dist/forwarding/encoding.d.ts +14 -0
  37. package/dist/forwarding/encoding.js +54 -0
  38. package/dist/forwarding/encoding.js.map +1 -0
  39. package/dist/forwarding/forwardingClient.d.ts +76 -0
  40. package/dist/forwarding/forwardingClient.js +128 -0
  41. package/dist/forwarding/forwardingClient.js.map +1 -0
  42. package/dist/forwarding/index.d.ts +5 -0
  43. package/dist/forwarding/index.js +14 -0
  44. package/dist/forwarding/index.js.map +1 -0
  45. package/dist/forwarding/siteKey.d.ts +12 -0
  46. package/dist/forwarding/siteKey.js +36 -0
  47. package/dist/forwarding/siteKey.js.map +1 -0
  48. package/dist/forwarding/tunnelClient.d.ts +56 -0
  49. package/dist/forwarding/tunnelClient.js +206 -0
  50. package/dist/forwarding/tunnelClient.js.map +1 -0
  51. package/dist/forwarding/tunnelProtocol.d.ts +45 -0
  52. package/dist/forwarding/tunnelProtocol.js +29 -0
  53. package/dist/forwarding/tunnelProtocol.js.map +1 -0
  54. package/dist/index.d.ts +23 -0
  55. package/dist/index.js +19 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/mtime.d.ts +51 -0
  58. package/dist/mtime.js +84 -0
  59. package/dist/mtime.js.map +1 -0
  60. package/dist/pageProperties.d.ts +80 -0
  61. package/dist/pageProperties.js +97 -0
  62. package/dist/pageProperties.js.map +1 -0
  63. package/dist/plugins.d.ts +110 -0
  64. package/dist/plugins.js +113 -0
  65. package/dist/plugins.js.map +1 -0
  66. package/dist/routes.d.ts +89 -0
  67. package/dist/routes.js +89 -0
  68. package/dist/routes.js.map +1 -0
  69. package/dist/sampleDocument.d.ts +25 -0
  70. package/dist/sampleDocument.js +67 -0
  71. package/dist/sampleDocument.js.map +1 -0
  72. package/dist/suggestions.d.ts +126 -0
  73. package/dist/suggestions.js +21 -0
  74. package/dist/suggestions.js.map +1 -0
  75. package/dist/templates.d.ts +35 -0
  76. package/dist/templates.js +555 -0
  77. package/dist/templates.js.map +1 -0
  78. package/dist/types.d.ts +146 -0
  79. package/dist/types.js +16 -0
  80. package/dist/types.js.map +1 -0
  81. package/package.json +33 -0
@@ -0,0 +1,38 @@
1
+ import type { PageSnapshot } from './types';
2
+ /** Flatten a page snapshot (EditorJS or block-editor) into plain text. */
3
+ export declare function snapshotText(data: PageSnapshot | null | undefined): string;
4
+ /** Turn plain text into EditorJS paragraph blocks (one per non-empty line). */
5
+ export declare function paragraphBlocks(content: string, idPrefix?: string): Array<{
6
+ id: string;
7
+ type: 'paragraph';
8
+ data: {
9
+ text: string;
10
+ };
11
+ }>;
12
+ /** Build a fresh page snapshot whose document is the given plain text. */
13
+ export declare function textSnapshot(content?: string, idPrefix?: string): PageSnapshot;
14
+ /**
15
+ * Append plain text to a page snapshot as paragraph blocks, returning the new
16
+ * snapshot — or `null` when the page can't be appended to this way (the
17
+ * collaborative block editor owns those documents). Used by the agent and the
18
+ * MCP server so both apply the same guard.
19
+ */
20
+ export declare function appendTextToSnapshot(data: PageSnapshot, content: string, idPrefix?: string): PageSnapshot | null;
21
+ /** A block to append to a block-editor page (the agent / MCP write path). */
22
+ export interface AppendBlock {
23
+ type: string;
24
+ /** Plain text (text-carrying blocks). */
25
+ text?: string;
26
+ props?: Record<string, unknown>;
27
+ }
28
+ /**
29
+ * Append blocks to a **block-editor** page's JSON projection, returning the new
30
+ * snapshot — or `null` for legacy EditorJS pages (use {@link appendTextToSnapshot}
31
+ * there). This mutates only the JSON projection (`blockdoc.blocks`), NOT the
32
+ * CRDT `update` — so a *live* editor on that page should apply the change
33
+ * through the editor bridge instead (one CRDT transaction, undoable). This
34
+ * server-side path exists for the MCP server, which has no live editor; a live
35
+ * client merges the JSON projection on next load. Used by the agent's confirm
36
+ * gate only as a fallback when no editor bridge is present.
37
+ */
38
+ export declare function appendBlocksToSnapshot(data: PageSnapshot, blocks: AppendBlock[], idPrefix?: string): PageSnapshot | null;
@@ -0,0 +1,107 @@
1
+ const stripHtml = (s) => s.replace(/<[^>]+>/g, ' ').replace(/\s+/g, ' ').trim();
2
+ /** Flatten a page snapshot (EditorJS or block-editor) into plain text. */
3
+ export function snapshotText(data) {
4
+ if (!data)
5
+ return '';
6
+ const parts = [];
7
+ // Block-editor pages: read the JSON projection.
8
+ const blockdoc = data.blockdoc;
9
+ if (data.editor === 'blocks' && blockdoc?.blocks) {
10
+ const walk = (blocks) => {
11
+ for (const b of blocks) {
12
+ if (Array.isArray(b.text))
13
+ parts.push(b.text.map((r) => r.t).join(''));
14
+ if (typeof b.props?.source === 'string')
15
+ parts.push(String(b.props.source));
16
+ if (b.children)
17
+ walk(b.children);
18
+ }
19
+ };
20
+ walk(blockdoc.blocks);
21
+ return parts.join('\n').trim();
22
+ }
23
+ // EditorJS pages: pull the text-ish fields out of each block.
24
+ const blocks = data.editorjs?.blocks ?? [];
25
+ for (const b of blocks) {
26
+ const d = b.data ?? {};
27
+ if (typeof d.text === 'string')
28
+ parts.push(stripHtml(d.text));
29
+ if (typeof d.code === 'string')
30
+ parts.push(String(d.code));
31
+ if (typeof d.title === 'string')
32
+ parts.push(stripHtml(String(d.title)));
33
+ if (typeof d.content === 'string')
34
+ parts.push(stripHtml(String(d.content)));
35
+ if (Array.isArray(d.items)) {
36
+ for (const item of d.items) {
37
+ const t = typeof item === 'string' ? item : (item.text ?? item.content ?? '');
38
+ if (t)
39
+ parts.push(stripHtml(String(t)));
40
+ }
41
+ }
42
+ if (Array.isArray(d.content)) {
43
+ for (const row of d.content) {
44
+ if (Array.isArray(row))
45
+ parts.push(row.map((c) => stripHtml(String(c))).join(' '));
46
+ }
47
+ }
48
+ }
49
+ return parts.join('\n').trim();
50
+ }
51
+ /** Turn plain text into EditorJS paragraph blocks (one per non-empty line). */
52
+ export function paragraphBlocks(content, idPrefix = 'gen') {
53
+ return content
54
+ .split('\n')
55
+ .map((l) => l.trim())
56
+ .filter(Boolean)
57
+ .map((text, i) => ({ id: `${idPrefix}-${i}`, type: 'paragraph', data: { text } }));
58
+ }
59
+ /** Build a fresh page snapshot whose document is the given plain text. */
60
+ export function textSnapshot(content = '', idPrefix = 'gen') {
61
+ return { editorjs: { blocks: paragraphBlocks(content, idPrefix) }, values: [], names: [] };
62
+ }
63
+ /**
64
+ * Append plain text to a page snapshot as paragraph blocks, returning the new
65
+ * snapshot — or `null` when the page can't be appended to this way (the
66
+ * collaborative block editor owns those documents). Used by the agent and the
67
+ * MCP server so both apply the same guard.
68
+ */
69
+ export function appendTextToSnapshot(data, content, idPrefix = 'gen') {
70
+ if (data.editor === 'blocks')
71
+ return null;
72
+ const added = paragraphBlocks(content, idPrefix);
73
+ if (added.length === 0)
74
+ return data;
75
+ const editorjs = data.editorjs ?? { blocks: [] };
76
+ return { ...data, editorjs: { ...editorjs, blocks: [...(editorjs.blocks ?? []), ...added] } };
77
+ }
78
+ /**
79
+ * Append blocks to a **block-editor** page's JSON projection, returning the new
80
+ * snapshot — or `null` for legacy EditorJS pages (use {@link appendTextToSnapshot}
81
+ * there). This mutates only the JSON projection (`blockdoc.blocks`), NOT the
82
+ * CRDT `update` — so a *live* editor on that page should apply the change
83
+ * through the editor bridge instead (one CRDT transaction, undoable). This
84
+ * server-side path exists for the MCP server, which has no live editor; a live
85
+ * client merges the JSON projection on next load. Used by the agent's confirm
86
+ * gate only as a fallback when no editor bridge is present.
87
+ */
88
+ export function appendBlocksToSnapshot(data, blocks, idPrefix = 'gen') {
89
+ if (data.editor !== 'blocks')
90
+ return null;
91
+ if (blocks.length === 0)
92
+ return data;
93
+ const blockdoc = data.blockdoc ?? { blocks: [] };
94
+ const projected = blocks.map((b, i) => ({
95
+ id: `${idPrefix}-${i}`,
96
+ type: b.type,
97
+ ...(b.text !== undefined ? { text: [{ t: b.text }] } : {}),
98
+ ...(b.props ? { props: b.props } : {}),
99
+ }));
100
+ return {
101
+ ...data,
102
+ // Drop the stale CRDT `update` so the page rebuilds from the JSON projection
103
+ // (decodeSnapshot prefers `update`; clearing it forces the merged blocks in).
104
+ blockdoc: { ...blockdoc, update: undefined, blocks: [...(blockdoc.blocks ?? []), ...projected] },
105
+ };
106
+ }
107
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}