@lifestreamdynamics/vault-sdk 1.0.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 (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1121 -0
  3. package/dist/client.d.ts +143 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +286 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/errors.d.ts +28 -0
  8. package/dist/errors.d.ts.map +1 -0
  9. package/dist/errors.js +49 -0
  10. package/dist/errors.js.map +1 -0
  11. package/dist/handle-error.d.ts +8 -0
  12. package/dist/handle-error.d.ts.map +1 -0
  13. package/dist/handle-error.js +35 -0
  14. package/dist/handle-error.js.map +1 -0
  15. package/dist/index.d.ts +32 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +26 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/lib/audit-logger.d.ts +29 -0
  20. package/dist/lib/audit-logger.d.ts.map +1 -0
  21. package/dist/lib/audit-logger.js +99 -0
  22. package/dist/lib/audit-logger.js.map +1 -0
  23. package/dist/lib/encryption.d.ts +34 -0
  24. package/dist/lib/encryption.d.ts.map +1 -0
  25. package/dist/lib/encryption.js +87 -0
  26. package/dist/lib/encryption.js.map +1 -0
  27. package/dist/lib/signature.d.ts +47 -0
  28. package/dist/lib/signature.d.ts.map +1 -0
  29. package/dist/lib/signature.js +71 -0
  30. package/dist/lib/signature.js.map +1 -0
  31. package/dist/lib/token-manager.d.ts +80 -0
  32. package/dist/lib/token-manager.d.ts.map +1 -0
  33. package/dist/lib/token-manager.js +116 -0
  34. package/dist/lib/token-manager.js.map +1 -0
  35. package/dist/resources/admin.d.ts +280 -0
  36. package/dist/resources/admin.d.ts.map +1 -0
  37. package/dist/resources/admin.js +236 -0
  38. package/dist/resources/admin.js.map +1 -0
  39. package/dist/resources/ai.d.ts +184 -0
  40. package/dist/resources/ai.d.ts.map +1 -0
  41. package/dist/resources/ai.js +179 -0
  42. package/dist/resources/ai.js.map +1 -0
  43. package/dist/resources/api-keys.d.ts +172 -0
  44. package/dist/resources/api-keys.d.ts.map +1 -0
  45. package/dist/resources/api-keys.js +166 -0
  46. package/dist/resources/api-keys.js.map +1 -0
  47. package/dist/resources/connectors.d.ts +263 -0
  48. package/dist/resources/connectors.d.ts.map +1 -0
  49. package/dist/resources/connectors.js +226 -0
  50. package/dist/resources/connectors.js.map +1 -0
  51. package/dist/resources/documents.d.ts +334 -0
  52. package/dist/resources/documents.d.ts.map +1 -0
  53. package/dist/resources/documents.js +377 -0
  54. package/dist/resources/documents.js.map +1 -0
  55. package/dist/resources/hooks.d.ts +195 -0
  56. package/dist/resources/hooks.d.ts.map +1 -0
  57. package/dist/resources/hooks.js +166 -0
  58. package/dist/resources/hooks.js.map +1 -0
  59. package/dist/resources/publish.d.ts +165 -0
  60. package/dist/resources/publish.d.ts.map +1 -0
  61. package/dist/resources/publish.js +150 -0
  62. package/dist/resources/publish.js.map +1 -0
  63. package/dist/resources/search.d.ts +94 -0
  64. package/dist/resources/search.d.ts.map +1 -0
  65. package/dist/resources/search.js +76 -0
  66. package/dist/resources/search.js.map +1 -0
  67. package/dist/resources/shares.d.ts +130 -0
  68. package/dist/resources/shares.d.ts.map +1 -0
  69. package/dist/resources/shares.js +115 -0
  70. package/dist/resources/shares.js.map +1 -0
  71. package/dist/resources/subscription.d.ts +172 -0
  72. package/dist/resources/subscription.d.ts.map +1 -0
  73. package/dist/resources/subscription.js +166 -0
  74. package/dist/resources/subscription.js.map +1 -0
  75. package/dist/resources/teams.d.ts +356 -0
  76. package/dist/resources/teams.d.ts.map +1 -0
  77. package/dist/resources/teams.js +395 -0
  78. package/dist/resources/teams.js.map +1 -0
  79. package/dist/resources/user.d.ts +92 -0
  80. package/dist/resources/user.d.ts.map +1 -0
  81. package/dist/resources/user.js +64 -0
  82. package/dist/resources/user.js.map +1 -0
  83. package/dist/resources/vaults.d.ts +144 -0
  84. package/dist/resources/vaults.d.ts.map +1 -0
  85. package/dist/resources/vaults.js +158 -0
  86. package/dist/resources/vaults.js.map +1 -0
  87. package/dist/resources/webhooks.d.ts +187 -0
  88. package/dist/resources/webhooks.d.ts.map +1 -0
  89. package/dist/resources/webhooks.js +171 -0
  90. package/dist/resources/webhooks.js.map +1 -0
  91. package/dist/types/api.d.ts +17 -0
  92. package/dist/types/api.d.ts.map +1 -0
  93. package/dist/types/api.js +2 -0
  94. package/dist/types/api.js.map +1 -0
  95. package/dist/types/index.d.ts +3 -0
  96. package/dist/types/index.d.ts.map +1 -0
  97. package/dist/types/index.js +2 -0
  98. package/dist/types/index.js.map +1 -0
  99. package/dist/types/resources.d.ts +5 -0
  100. package/dist/types/resources.d.ts.map +1 -0
  101. package/dist/types/resources.js +2 -0
  102. package/dist/types/resources.js.map +1 -0
  103. package/package.json +58 -0
@@ -0,0 +1,334 @@
1
+ import type { KyInstance } from 'ky';
2
+ /** Metadata for a document stored in a vault. */
3
+ export interface Document {
4
+ /** Unique document identifier. */
5
+ id: string;
6
+ /** ID of the vault containing this document. */
7
+ vaultId: string;
8
+ /** File path relative to the vault root (e.g., `'notes/todo.md'`). */
9
+ path: string;
10
+ /** Document title extracted from frontmatter or first heading, if available. */
11
+ title: string | null;
12
+ /** SHA-256 hash of the document content. */
13
+ contentHash: string;
14
+ /** Document size in bytes. */
15
+ sizeBytes: number;
16
+ /** Tags extracted from frontmatter and inline hashtags. */
17
+ tags: string[];
18
+ /** Whether the document content is encrypted client-side. */
19
+ encrypted: boolean;
20
+ /** The encryption algorithm used, if encrypted. */
21
+ encryptionAlgorithm: string | null;
22
+ /** ISO 8601 timestamp of the last file modification. */
23
+ fileModifiedAt: string;
24
+ /** ISO 8601 creation timestamp. */
25
+ createdAt: string;
26
+ /** ISO 8601 last-updated timestamp. */
27
+ updatedAt: string;
28
+ }
29
+ /** A document with its full Markdown content. */
30
+ export interface DocumentWithContent {
31
+ /** Document metadata. */
32
+ document: Document;
33
+ /** Raw Markdown content of the document. */
34
+ content: string;
35
+ }
36
+ /** Version metadata for a document. */
37
+ export interface DocumentVersion {
38
+ id: string;
39
+ documentId: string;
40
+ versionNum: number;
41
+ contentHash: string;
42
+ sizeBytes: number;
43
+ changeSource: 'web' | 'api' | 'webdav';
44
+ changedBy: string | null;
45
+ isPinned: boolean;
46
+ expiresAt: string | null;
47
+ createdAt: string;
48
+ }
49
+ /** Version with its content. */
50
+ export interface DocumentVersionWithContent extends DocumentVersion {
51
+ content: string | null;
52
+ }
53
+ /** Diff response between two versions. */
54
+ export interface VersionDiffResponse {
55
+ fromVersion: number;
56
+ toVersion: number;
57
+ changes: Array<{
58
+ added?: boolean;
59
+ removed?: boolean;
60
+ value: string;
61
+ }>;
62
+ }
63
+ /** Summary information for a document in a listing. */
64
+ export interface DocumentListItem {
65
+ /** File path relative to the vault root. */
66
+ path: string;
67
+ /** Document title, if available. */
68
+ title: string | null;
69
+ /** Tags extracted from the document. */
70
+ tags: string[];
71
+ /** Document size in bytes. */
72
+ sizeBytes: number;
73
+ /** ISO 8601 timestamp of the last file modification. */
74
+ fileModifiedAt: string;
75
+ }
76
+ /**
77
+ * Resource for managing documents within vaults.
78
+ *
79
+ * Documents are Markdown files stored in vaults. Each document has a file
80
+ * path relative to the vault root and must end with `.md`. The API supports
81
+ * CRUD operations as well as move and copy.
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * const docs = await client.documents.list('vault-uuid');
86
+ * const doc = await client.documents.get('vault-uuid', 'notes/todo.md');
87
+ * console.log(doc.content);
88
+ * ```
89
+ */
90
+ export declare class DocumentsResource {
91
+ private http;
92
+ constructor(http: KyInstance);
93
+ /**
94
+ * Lists documents in a vault, optionally filtered by directory.
95
+ *
96
+ * @param vaultId - The vault ID to list documents from
97
+ * @param dirPath - Optional directory path to filter results (e.g., `'notes/'`)
98
+ * @returns Array of document summary objects
99
+ * @throws {NotFoundError} If the vault does not exist
100
+ * @throws {AuthenticationError} If the request is not authenticated
101
+ * @throws {NetworkError} If the request fails due to network issues
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * // List all documents
106
+ * const docs = await client.documents.list('vault-uuid');
107
+ *
108
+ * // List documents in a subdirectory
109
+ * const notes = await client.documents.list('vault-uuid', 'notes/');
110
+ * ```
111
+ */
112
+ list(vaultId: string, dirPath?: string): Promise<DocumentListItem[]>;
113
+ /**
114
+ * Retrieves a document's metadata and full Markdown content.
115
+ *
116
+ * @param vaultId - The vault ID containing the document
117
+ * @param docPath - File path relative to vault root (e.g., `'notes/todo.md'`)
118
+ * @returns The document metadata and raw Markdown content
119
+ * @throws {NotFoundError} If the vault or document does not exist
120
+ * @throws {AuthenticationError} If the request is not authenticated
121
+ * @throws {NetworkError} If the request fails due to network issues
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * const { document, content } = await client.documents.get(
126
+ * 'vault-uuid',
127
+ * 'notes/todo.md'
128
+ * );
129
+ * console.log(document.title, content);
130
+ * ```
131
+ */
132
+ get(vaultId: string, docPath: string): Promise<DocumentWithContent>;
133
+ /**
134
+ * Creates or updates a document (upsert).
135
+ *
136
+ * If a document already exists at the given path, it is updated only when
137
+ * the content has changed (compared by SHA-256 hash). Intermediate folders
138
+ * are created automatically.
139
+ *
140
+ * @param vaultId - The vault ID to write the document into
141
+ * @param docPath - File path relative to vault root (must end with `.md`)
142
+ * @param content - Raw Markdown content to write
143
+ * @returns The created or updated document metadata
144
+ * @throws {NotFoundError} If the vault does not exist
145
+ * @throws {ValidationError} If the path is invalid or content exceeds size limits
146
+ * @throws {AuthenticationError} If the request is not authenticated
147
+ * @throws {NetworkError} If the request fails due to network issues
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * // Create a new document
152
+ * const doc = await client.documents.put(
153
+ * 'vault-uuid',
154
+ * 'notes/hello.md',
155
+ * '# Hello World\n\nThis is my first note.'
156
+ * );
157
+ * ```
158
+ *
159
+ * @example
160
+ * ```typescript
161
+ * // Update an existing document
162
+ * const { content } = await client.documents.get('vault-uuid', 'notes/hello.md');
163
+ * await client.documents.put(
164
+ * 'vault-uuid',
165
+ * 'notes/hello.md',
166
+ * content + '\n\nAppended text.'
167
+ * );
168
+ * ```
169
+ */
170
+ put(vaultId: string, docPath: string, content: string): Promise<Document>;
171
+ /**
172
+ * Permanently deletes a document from a vault.
173
+ *
174
+ * Removes the document from both the filesystem and the database.
175
+ * This action is irreversible.
176
+ *
177
+ * @param vaultId - The vault ID containing the document
178
+ * @param docPath - File path of the document to delete
179
+ * @throws {NotFoundError} If the vault or document does not exist
180
+ * @throws {AuthenticationError} If the request is not authenticated
181
+ * @throws {NetworkError} If the request fails due to network issues
182
+ *
183
+ * @example
184
+ * ```typescript
185
+ * await client.documents.delete('vault-uuid', 'notes/old-note.md');
186
+ * ```
187
+ */
188
+ delete(vaultId: string, docPath: string): Promise<void>;
189
+ /**
190
+ * Moves (renames) a document to a new path within the same vault.
191
+ *
192
+ * @param vaultId - The vault ID containing the document
193
+ * @param sourcePath - Current file path of the document
194
+ * @param destination - New file path for the document (must end with `.md`)
195
+ * @param overwrite - If `true`, overwrite any existing document at the destination. Defaults to `false`.
196
+ * @returns Object with a confirmation message and the source/destination paths
197
+ * @throws {NotFoundError} If the vault or source document does not exist
198
+ * @throws {ConflictError} If a document exists at the destination and `overwrite` is `false`
199
+ * @throws {ValidationError} If the destination path is invalid
200
+ * @throws {AuthenticationError} If the request is not authenticated
201
+ * @throws {NetworkError} If the request fails due to network issues
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * const result = await client.documents.move(
206
+ * 'vault-uuid',
207
+ * 'drafts/note.md',
208
+ * 'published/note.md'
209
+ * );
210
+ * console.log(result.destination); // 'published/note.md'
211
+ * ```
212
+ *
213
+ * @see {@link DocumentsResource.copy} to duplicate a document instead
214
+ */
215
+ move(vaultId: string, sourcePath: string, destination: string, overwrite?: boolean): Promise<{
216
+ message: string;
217
+ source: string;
218
+ destination: string;
219
+ }>;
220
+ /**
221
+ * Copies a document to a new path within the same vault.
222
+ *
223
+ * The original document is preserved. A new document is created at the
224
+ * destination path with the same content.
225
+ *
226
+ * @param vaultId - The vault ID containing the document
227
+ * @param sourcePath - File path of the document to copy
228
+ * @param destination - File path for the new copy (must end with `.md`)
229
+ * @param overwrite - If `true`, overwrite any existing document at the destination. Defaults to `false`.
230
+ * @returns Object with a confirmation message and the source/destination paths
231
+ * @throws {NotFoundError} If the vault or source document does not exist
232
+ * @throws {ConflictError} If a document exists at the destination and `overwrite` is `false`
233
+ * @throws {ValidationError} If the destination path is invalid
234
+ * @throws {AuthenticationError} If the request is not authenticated
235
+ * @throws {NetworkError} If the request fails due to network issues
236
+ *
237
+ * @example
238
+ * ```typescript
239
+ * const result = await client.documents.copy(
240
+ * 'vault-uuid',
241
+ * 'templates/meeting.md',
242
+ * 'notes/2024-01-15-meeting.md'
243
+ * );
244
+ * ```
245
+ *
246
+ * @see {@link DocumentsResource.move} to relocate a document instead
247
+ */
248
+ copy(vaultId: string, sourcePath: string, destination: string, overwrite?: boolean): Promise<{
249
+ message: string;
250
+ source: string;
251
+ destination: string;
252
+ }>;
253
+ /**
254
+ * Creates or updates a document with client-side encryption.
255
+ *
256
+ * The content is encrypted locally using AES-256-GCM before being sent to
257
+ * the server. The server stores only the ciphertext and cannot read the
258
+ * plaintext content. Search indexing, AI features, and hooks are disabled
259
+ * for encrypted documents.
260
+ *
261
+ * @param vaultId - The vault ID to write the document into
262
+ * @param docPath - File path relative to vault root (must end with `.md`)
263
+ * @param content - Raw Markdown content to encrypt and write
264
+ * @param keyHex - The 256-bit vault encryption key as a hex string
265
+ * @returns The created or updated document metadata
266
+ * @throws {Error} If the key is invalid
267
+ */
268
+ putEncrypted(vaultId: string, docPath: string, content: string, keyHex: string): Promise<Document>;
269
+ /**
270
+ * Retrieves an encrypted document and decrypts it client-side.
271
+ *
272
+ * @param vaultId - The vault ID containing the document
273
+ * @param docPath - File path relative to vault root
274
+ * @param keyHex - The 256-bit vault encryption key as a hex string
275
+ * @returns The document metadata and decrypted plaintext content
276
+ * @throws {Error} If the key is invalid or decryption fails
277
+ */
278
+ getEncrypted(vaultId: string, docPath: string, keyHex: string): Promise<DocumentWithContent>;
279
+ /**
280
+ * Lists version history for a document.
281
+ *
282
+ * @param vaultId - The vault ID containing the document
283
+ * @param docPath - File path relative to vault root
284
+ * @returns Array of version metadata objects (newest first)
285
+ */
286
+ listVersions(vaultId: string, docPath: string): Promise<DocumentVersion[]>;
287
+ /**
288
+ * Retrieves a specific version's content.
289
+ *
290
+ * @param vaultId - The vault ID containing the document
291
+ * @param docPath - File path relative to vault root
292
+ * @param versionNum - The version number to retrieve
293
+ * @returns The version metadata and content
294
+ */
295
+ getVersion(vaultId: string, docPath: string, versionNum: number): Promise<DocumentVersionWithContent>;
296
+ /**
297
+ * Computes a diff between two versions of a document.
298
+ *
299
+ * @param vaultId - The vault ID containing the document
300
+ * @param docPath - File path relative to vault root
301
+ * @param from - Source version number
302
+ * @param to - Target version number
303
+ * @returns The diff with line-level changes
304
+ */
305
+ diffVersions(vaultId: string, docPath: string, from: number, to: number): Promise<VersionDiffResponse>;
306
+ /**
307
+ * Restores a document to a previous version.
308
+ *
309
+ * @param vaultId - The vault ID containing the document
310
+ * @param docPath - File path relative to vault root
311
+ * @param versionNum - The version number to restore
312
+ * @returns The updated document metadata
313
+ */
314
+ restoreVersion(vaultId: string, docPath: string, versionNum: number): Promise<Document>;
315
+ /**
316
+ * Pins a version to prevent it from being pruned.
317
+ *
318
+ * @param vaultId - The vault ID containing the document
319
+ * @param docPath - File path relative to vault root
320
+ * @param versionNum - The version number to pin
321
+ * @returns The updated version metadata
322
+ */
323
+ pinVersion(vaultId: string, docPath: string, versionNum: number): Promise<DocumentVersion>;
324
+ /**
325
+ * Unpins a version, allowing it to be pruned.
326
+ *
327
+ * @param vaultId - The vault ID containing the document
328
+ * @param docPath - File path relative to vault root
329
+ * @param versionNum - The version number to unpin
330
+ * @returns The updated version metadata
331
+ */
332
+ unpinVersion(vaultId: string, docPath: string, versionNum: number): Promise<DocumentVersion>;
333
+ }
334
+ //# sourceMappingURL=documents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/resources/documents.ts"],"names":[],"mappings":"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"}