notefeed 0.6.0 → 0.8.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 +12 -0
- package/dist/cli.js +71 -15
- package/dist/client.d.ts +85 -8
- package/dist/client.js +167 -14
- package/dist/generated/index.d.ts +2 -2
- package/dist/generated/index.js +1 -1
- package/dist/generated/sdk.gen.d.ts +56 -2
- package/dist/generated/sdk.gen.js +106 -2
- package/dist/generated/types.gen.d.ts +590 -21
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -3,17 +3,41 @@ export type ClientOptions = {
|
|
|
3
3
|
};
|
|
4
4
|
export type Note = {
|
|
5
5
|
/**
|
|
6
|
-
* UTC time to the second plus a
|
|
6
|
+
* The note's id: a UTC time to the second plus a random UUID for notes made here; any name without a dot for a file placed by hand
|
|
7
7
|
*/
|
|
8
8
|
id: string;
|
|
9
9
|
/**
|
|
10
|
-
* The
|
|
10
|
+
* The media type of the note's file: `text/markdown`, `image/png`, `image/jpeg`, `image/gif` or `image/webp`
|
|
11
|
+
*/
|
|
12
|
+
type: string;
|
|
13
|
+
/**
|
|
14
|
+
* The note's file name, `<id>.<extension>`
|
|
15
|
+
*/
|
|
16
|
+
file: string;
|
|
17
|
+
/**
|
|
18
|
+
* Where the note's file is served, absolute, under the feed's read id (public like the read link); null while the feed has no read link
|
|
19
|
+
*/
|
|
20
|
+
file_url: string | null;
|
|
21
|
+
/**
|
|
22
|
+
* The size of the note's file in bytes
|
|
23
|
+
*/
|
|
24
|
+
size: number;
|
|
25
|
+
/**
|
|
26
|
+
* The title set for the note, else the first heading or the first non-empty line of a markdown note, else the picture's alt text; may be empty
|
|
11
27
|
*/
|
|
12
28
|
title: string;
|
|
13
29
|
/**
|
|
14
|
-
* The note, byte-for-byte as posted
|
|
30
|
+
* The note's text, byte-for-byte as posted: for a text type (markdown) only; absent for a picture
|
|
31
|
+
*/
|
|
32
|
+
content?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Alternative text of an image note, when it has one
|
|
35
|
+
*/
|
|
36
|
+
alt?: string;
|
|
37
|
+
/**
|
|
38
|
+
* The file name an image was posted with, when it came with one
|
|
15
39
|
*/
|
|
16
|
-
|
|
40
|
+
name?: string;
|
|
17
41
|
/**
|
|
18
42
|
* When the note was posted (UTC)
|
|
19
43
|
*/
|
|
@@ -22,6 +46,14 @@ export type Note = {
|
|
|
22
46
|
* The note's page in the web UI
|
|
23
47
|
*/
|
|
24
48
|
url: string;
|
|
49
|
+
/**
|
|
50
|
+
* Verified sign-in name of the poster; absent when the note was posted without a sign-in
|
|
51
|
+
*/
|
|
52
|
+
sender?: string | null;
|
|
53
|
+
/**
|
|
54
|
+
* Labels the poster gave the note (not verified, and shown to readers like the note itself); empty when none
|
|
55
|
+
*/
|
|
56
|
+
tags: Array<string>;
|
|
25
57
|
};
|
|
26
58
|
export type NoteList = {
|
|
27
59
|
/**
|
|
@@ -44,9 +76,17 @@ export type Created = {
|
|
|
44
76
|
*/
|
|
45
77
|
feed_url: string;
|
|
46
78
|
/**
|
|
47
|
-
* The feed's read-only RSS link, safe to share
|
|
79
|
+
* The feed's read-only RSS link, safe to share; null only if the server can't read the feed's stored read id, or if that id and the derived one both belong to other feeds
|
|
80
|
+
*/
|
|
81
|
+
read_url: string | null;
|
|
82
|
+
/**
|
|
83
|
+
* The note's file name, `<id>.<extension>`. For an image note, pass it as a feed's `image` setting
|
|
48
84
|
*/
|
|
49
|
-
|
|
85
|
+
file: string;
|
|
86
|
+
/**
|
|
87
|
+
* Where the note's file is served, absolute, under the feed's read id (public like the read link); null while the feed has no read link
|
|
88
|
+
*/
|
|
89
|
+
file_url: string | null;
|
|
50
90
|
};
|
|
51
91
|
export type Error = {
|
|
52
92
|
/**
|
|
@@ -56,16 +96,98 @@ export type Error = {
|
|
|
56
96
|
/**
|
|
57
97
|
* Stable machine-readable code; absent only on a 500
|
|
58
98
|
*/
|
|
59
|
-
code?: 'invalid_feed' | 'reserved_feed' | 'auth' | 'rate_limited' | 'too_many_attempts' | 'feed_limit' | 'note_limit' | 'empty_note' | 'too_large' | 'unsupported_type' | 'invalid_body' | 'invalid_request' | 'not_found';
|
|
99
|
+
code?: 'invalid_feed' | 'reserved_feed' | 'auth' | 'rate_limited' | 'too_many_attempts' | 'feed_limit' | 'note_limit' | 'image_limit' | 'empty_note' | 'too_large' | 'unsupported_type' | 'invalid_body' | 'invalid_request' | 'not_found' | 'feed_exists' | 'taken';
|
|
100
|
+
};
|
|
101
|
+
export type NoteMeta = {
|
|
102
|
+
/**
|
|
103
|
+
* The note's title, at most 100 characters, one line; empty or left out means the title is taken from the text (a markdown note) or there is none (an image)
|
|
104
|
+
*/
|
|
105
|
+
title?: string;
|
|
106
|
+
/**
|
|
107
|
+
* Alternative text of an image note, at most 500 characters, one line
|
|
108
|
+
*/
|
|
109
|
+
alt?: string;
|
|
60
110
|
};
|
|
61
|
-
export type
|
|
62
|
-
|
|
111
|
+
export type PasswordJson = {
|
|
112
|
+
/**
|
|
113
|
+
* The new password: 1 to 256 printable ASCII characters, with no space at the start or end
|
|
114
|
+
*/
|
|
115
|
+
password: string;
|
|
63
116
|
};
|
|
64
|
-
export type
|
|
65
|
-
|
|
117
|
+
export type FeedSettings = {
|
|
118
|
+
/**
|
|
119
|
+
* Display title, at most 100 characters, one line; empty means none (the feed's name is shown)
|
|
120
|
+
*/
|
|
121
|
+
title: string;
|
|
122
|
+
/**
|
|
123
|
+
* Description, at most 500 characters, one line; may be empty
|
|
124
|
+
*/
|
|
125
|
+
description: string;
|
|
126
|
+
/**
|
|
127
|
+
* The file name of an image uploaded to this feed (see uploadImage), shown as the feed's title image; empty removes it, omitted leaves it as it is
|
|
128
|
+
*/
|
|
129
|
+
image?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Whether readers (RSS, the read API and pages) see who posted each note; omitted leaves it as it is, a new feed starts with true
|
|
132
|
+
*/
|
|
133
|
+
show_sender?: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* A new read id (3 to 64 characters: a-z, 0-9, - and _), empty for a random one; omitted leaves it as it is. The old read link stops showing this feed, and may later show another one. Notes are not edited: a relative image link (``) follows the new id, a full URL keeps the old one and is yours to change. Reserved feeds keep theirs. 409 when it is taken
|
|
136
|
+
*/
|
|
137
|
+
read_id?: string;
|
|
138
|
+
};
|
|
139
|
+
export type Feed = {
|
|
140
|
+
/**
|
|
141
|
+
* The feed's name
|
|
142
|
+
*/
|
|
143
|
+
name: string;
|
|
144
|
+
/**
|
|
145
|
+
* Display title, at most 100 characters, one line; empty means none (the feed's name is shown)
|
|
146
|
+
*/
|
|
147
|
+
title: string;
|
|
148
|
+
/**
|
|
149
|
+
* Description, at most 500 characters, one line; may be empty
|
|
150
|
+
*/
|
|
151
|
+
description: string;
|
|
152
|
+
/**
|
|
153
|
+
* Whether the feed has its own password
|
|
154
|
+
*/
|
|
155
|
+
protected: boolean;
|
|
156
|
+
/**
|
|
157
|
+
* The feed's read-only RSS link; null while the feed has no notes, or if the server can't read the feed's stored read id
|
|
158
|
+
*/
|
|
159
|
+
read_url: string | null;
|
|
160
|
+
/**
|
|
161
|
+
* The feed's title image (absolute URL, served under the read id), or null
|
|
162
|
+
*/
|
|
163
|
+
image_url: string | null;
|
|
164
|
+
/**
|
|
165
|
+
* Whether readers see who posted each note
|
|
166
|
+
*/
|
|
167
|
+
show_sender: boolean;
|
|
168
|
+
};
|
|
169
|
+
export type ReadFeed = {
|
|
170
|
+
/**
|
|
171
|
+
* Display title, at most 100 characters, one line; empty means none (the feed's name is shown)
|
|
172
|
+
*/
|
|
173
|
+
title: string;
|
|
174
|
+
/**
|
|
175
|
+
* Description, at most 500 characters, one line; may be empty
|
|
176
|
+
*/
|
|
177
|
+
description: string;
|
|
178
|
+
/**
|
|
179
|
+
* The feed's title image (absolute URL, served under the read id), or null
|
|
180
|
+
*/
|
|
181
|
+
image_url: string | null;
|
|
66
182
|
};
|
|
67
183
|
export type ListNotesData = {
|
|
68
184
|
body?: never;
|
|
185
|
+
headers?: {
|
|
186
|
+
/**
|
|
187
|
+
* The feed's own password, when it has one: to post, list or get, and (as the current password) to change or remove it. On the `POST` that creates a feed it sets the feed's password; on a `POST` to an existing feed that has none it answers 409. An empty value is the same as no header, so a `POST` with an empty one creates an open feed.
|
|
188
|
+
*/
|
|
189
|
+
'X-Feed-Password'?: string;
|
|
190
|
+
};
|
|
69
191
|
path: {
|
|
70
192
|
/**
|
|
71
193
|
* The feed's name. It is the write key: anyone who knows it can post.
|
|
@@ -81,6 +203,10 @@ export type ListNotesData = {
|
|
|
81
203
|
* Only notes older than this id: the previous page's `next`
|
|
82
204
|
*/
|
|
83
205
|
before?: string;
|
|
206
|
+
/**
|
|
207
|
+
* Only notes carrying this tag
|
|
208
|
+
*/
|
|
209
|
+
tag?: string;
|
|
84
210
|
};
|
|
85
211
|
url: '/api/v1/feeds/{feed}/notes';
|
|
86
212
|
};
|
|
@@ -90,7 +216,7 @@ export type ListNotesErrors = {
|
|
|
90
216
|
*/
|
|
91
217
|
400: Error;
|
|
92
218
|
/**
|
|
93
|
-
* The instance has a password and it is missing or wrong
|
|
219
|
+
* The instance has a password, or the feed has its own, and it is missing or wrong
|
|
94
220
|
*/
|
|
95
221
|
401: Error;
|
|
96
222
|
/**
|
|
@@ -107,7 +233,36 @@ export type ListNotesResponses = {
|
|
|
107
233
|
};
|
|
108
234
|
export type ListNotesResponse = ListNotesResponses[keyof ListNotesResponses];
|
|
109
235
|
export type PostNoteData = {
|
|
110
|
-
|
|
236
|
+
/**
|
|
237
|
+
* The note, a file: its bytes, of the type `Content-Type` declares
|
|
238
|
+
*/
|
|
239
|
+
body: Blob | File;
|
|
240
|
+
headers?: {
|
|
241
|
+
/**
|
|
242
|
+
* The feed's own password, when it has one: to post, list or get, and (as the current password) to change or remove it. On the `POST` that creates a feed it sets the feed's password; on a `POST` to an existing feed that has none it answers 409. An empty value is the same as no header, so a `POST` with an empty one creates an open feed.
|
|
243
|
+
*/
|
|
244
|
+
'X-Feed-Password'?: string;
|
|
245
|
+
/**
|
|
246
|
+
* The read id the feed gets when this post creates it: 3 to 64 characters (a-z, 0-9, - and _), random when left out or empty, ignored for a feed that exists. A short readable one is guessable: protect the feed with a password if that matters. 409 when it is taken
|
|
247
|
+
*/
|
|
248
|
+
'X-Read-Id'?: string;
|
|
249
|
+
/**
|
|
250
|
+
* The note's title, for a raw body; a JSON or form body's own `title` wins. At most 100 characters, one line.
|
|
251
|
+
*/
|
|
252
|
+
'X-Note-Title'?: string;
|
|
253
|
+
/**
|
|
254
|
+
* Tags for the note, comma-separated (`ci,deploy`): at most 10 tags, each 1 to 32 characters of letters, digits, `-`, `_`, `.` and `:`; case is folded to lowercase, duplicates are removed. For a raw markdown body; a JSON or form body's own `tags` wins. Empty is none.
|
|
255
|
+
*/
|
|
256
|
+
'X-Note-Tags'?: string;
|
|
257
|
+
/**
|
|
258
|
+
* For an image body: its alternative text; a form's own `alt` wins.
|
|
259
|
+
*/
|
|
260
|
+
'X-Note-Alt'?: string;
|
|
261
|
+
/**
|
|
262
|
+
* For an image body: the picture's original file name, kept with the note (at most 200 characters)
|
|
263
|
+
*/
|
|
264
|
+
'X-Note-Name'?: string;
|
|
265
|
+
};
|
|
111
266
|
path: {
|
|
112
267
|
/**
|
|
113
268
|
* The feed's name. It is the write key: anyone who knows it can post.
|
|
@@ -119,19 +274,23 @@ export type PostNoteData = {
|
|
|
119
274
|
};
|
|
120
275
|
export type PostNoteErrors = {
|
|
121
276
|
/**
|
|
122
|
-
* Invalid or reserved feed name;
|
|
277
|
+
* Invalid or reserved feed name; a blank note; a bad title, alt text or tags; a new password that is not printable ASCII
|
|
123
278
|
*/
|
|
124
279
|
400: Error;
|
|
125
280
|
/**
|
|
126
|
-
* The instance has a password and it is missing or wrong
|
|
281
|
+
* The instance has a password, or the feed has its own, and it is missing or wrong
|
|
127
282
|
*/
|
|
128
283
|
401: Error;
|
|
129
284
|
/**
|
|
130
|
-
*
|
|
285
|
+
* A password was sent for a feed that already exists without one: it can't be claimed; or the chosen read id is taken
|
|
286
|
+
*/
|
|
287
|
+
409: Error;
|
|
288
|
+
/**
|
|
289
|
+
* Markdown over 102400 bytes, or an image over NOTEFEED_MAX_IMAGE_BYTES
|
|
131
290
|
*/
|
|
132
291
|
413: Error;
|
|
133
292
|
/**
|
|
134
|
-
*
|
|
293
|
+
* Content-Type missing or not one of the accepted types, or the body is not what it declares
|
|
135
294
|
*/
|
|
136
295
|
415: Error;
|
|
137
296
|
/**
|
|
@@ -139,7 +298,7 @@ export type PostNoteErrors = {
|
|
|
139
298
|
*/
|
|
140
299
|
429: Error;
|
|
141
300
|
/**
|
|
142
|
-
* NOTEFEED_MAX_FEEDS or
|
|
301
|
+
* NOTEFEED_MAX_FEEDS, NOTEFEED_MAX_NOTES_PER_FEED or NOTEFEED_MAX_IMAGES_PER_FEED reached
|
|
143
302
|
*/
|
|
144
303
|
507: Error;
|
|
145
304
|
};
|
|
@@ -151,8 +310,61 @@ export type PostNoteResponses = {
|
|
|
151
310
|
201: Created;
|
|
152
311
|
};
|
|
153
312
|
export type PostNoteResponse = PostNoteResponses[keyof PostNoteResponses];
|
|
313
|
+
export type DeleteNoteData = {
|
|
314
|
+
body?: never;
|
|
315
|
+
headers?: {
|
|
316
|
+
/**
|
|
317
|
+
* The feed's own password, when it has one: to post, list or get, and (as the current password) to change or remove it. On the `POST` that creates a feed it sets the feed's password; on a `POST` to an existing feed that has none it answers 409. An empty value is the same as no header, so a `POST` with an empty one creates an open feed.
|
|
318
|
+
*/
|
|
319
|
+
'X-Feed-Password'?: string;
|
|
320
|
+
};
|
|
321
|
+
path: {
|
|
322
|
+
/**
|
|
323
|
+
* The feed's name. It is the write key: anyone who knows it can post.
|
|
324
|
+
*/
|
|
325
|
+
feed: string;
|
|
326
|
+
/**
|
|
327
|
+
* The note's id
|
|
328
|
+
*/
|
|
329
|
+
id: string;
|
|
330
|
+
};
|
|
331
|
+
query?: never;
|
|
332
|
+
url: '/api/v1/feeds/{feed}/notes/{id}';
|
|
333
|
+
};
|
|
334
|
+
export type DeleteNoteErrors = {
|
|
335
|
+
/**
|
|
336
|
+
* Invalid or reserved feed name
|
|
337
|
+
*/
|
|
338
|
+
400: Error;
|
|
339
|
+
/**
|
|
340
|
+
* The instance has a password, or the feed has its own, and it is missing or wrong
|
|
341
|
+
*/
|
|
342
|
+
401: Error;
|
|
343
|
+
/**
|
|
344
|
+
* No such note
|
|
345
|
+
*/
|
|
346
|
+
404: Error;
|
|
347
|
+
/**
|
|
348
|
+
* Too many posts, edits and deletes, or wrong passwords, from this client
|
|
349
|
+
*/
|
|
350
|
+
429: Error;
|
|
351
|
+
};
|
|
352
|
+
export type DeleteNoteError = DeleteNoteErrors[keyof DeleteNoteErrors];
|
|
353
|
+
export type DeleteNoteResponses = {
|
|
354
|
+
/**
|
|
355
|
+
* Deleted
|
|
356
|
+
*/
|
|
357
|
+
204: void;
|
|
358
|
+
};
|
|
359
|
+
export type DeleteNoteResponse = DeleteNoteResponses[keyof DeleteNoteResponses];
|
|
154
360
|
export type GetNoteData = {
|
|
155
361
|
body?: never;
|
|
362
|
+
headers?: {
|
|
363
|
+
/**
|
|
364
|
+
* The feed's own password, when it has one: to post, list or get, and (as the current password) to change or remove it. On the `POST` that creates a feed it sets the feed's password; on a `POST` to an existing feed that has none it answers 409. An empty value is the same as no header, so a `POST` with an empty one creates an open feed.
|
|
365
|
+
*/
|
|
366
|
+
'X-Feed-Password'?: string;
|
|
367
|
+
};
|
|
156
368
|
path: {
|
|
157
369
|
/**
|
|
158
370
|
* The feed's name. It is the write key: anyone who knows it can post.
|
|
@@ -172,7 +384,7 @@ export type GetNoteErrors = {
|
|
|
172
384
|
*/
|
|
173
385
|
400: Error;
|
|
174
386
|
/**
|
|
175
|
-
* The instance has a password and it is missing or wrong
|
|
387
|
+
* The instance has a password, or the feed has its own, and it is missing or wrong
|
|
176
388
|
*/
|
|
177
389
|
401: Error;
|
|
178
390
|
/**
|
|
@@ -192,11 +404,364 @@ export type GetNoteResponses = {
|
|
|
192
404
|
200: Note;
|
|
193
405
|
};
|
|
194
406
|
export type GetNoteResponse = GetNoteResponses[keyof GetNoteResponses];
|
|
407
|
+
export type PatchNoteData = {
|
|
408
|
+
body: NoteMeta;
|
|
409
|
+
headers?: {
|
|
410
|
+
/**
|
|
411
|
+
* The feed's own password, when it has one: to post, list or get, and (as the current password) to change or remove it. On the `POST` that creates a feed it sets the feed's password; on a `POST` to an existing feed that has none it answers 409. An empty value is the same as no header, so a `POST` with an empty one creates an open feed.
|
|
412
|
+
*/
|
|
413
|
+
'X-Feed-Password'?: string;
|
|
414
|
+
};
|
|
415
|
+
path: {
|
|
416
|
+
/**
|
|
417
|
+
* The feed's name. It is the write key: anyone who knows it can post.
|
|
418
|
+
*/
|
|
419
|
+
feed: string;
|
|
420
|
+
/**
|
|
421
|
+
* The note's id
|
|
422
|
+
*/
|
|
423
|
+
id: string;
|
|
424
|
+
};
|
|
425
|
+
query?: never;
|
|
426
|
+
url: '/api/v1/feeds/{feed}/notes/{id}';
|
|
427
|
+
};
|
|
428
|
+
export type PatchNoteErrors = {
|
|
429
|
+
/**
|
|
430
|
+
* Invalid or reserved feed name; nothing to change; a bad title or alt text; alt for a note that has none; bad JSON
|
|
431
|
+
*/
|
|
432
|
+
400: Error;
|
|
433
|
+
/**
|
|
434
|
+
* The instance has a password, or the feed has its own, and it is missing or wrong
|
|
435
|
+
*/
|
|
436
|
+
401: Error;
|
|
437
|
+
/**
|
|
438
|
+
* No such note
|
|
439
|
+
*/
|
|
440
|
+
404: Error;
|
|
441
|
+
/**
|
|
442
|
+
* Content-Type is not application/json
|
|
443
|
+
*/
|
|
444
|
+
415: Error;
|
|
445
|
+
/**
|
|
446
|
+
* Too many posts, edits and deletes, or wrong passwords, from this client
|
|
447
|
+
*/
|
|
448
|
+
429: Error;
|
|
449
|
+
};
|
|
450
|
+
export type PatchNoteError = PatchNoteErrors[keyof PatchNoteErrors];
|
|
451
|
+
export type PatchNoteResponses = {
|
|
452
|
+
/**
|
|
453
|
+
* The note as it is now
|
|
454
|
+
*/
|
|
455
|
+
200: Note;
|
|
456
|
+
};
|
|
457
|
+
export type PatchNoteResponse = PatchNoteResponses[keyof PatchNoteResponses];
|
|
458
|
+
export type EditNoteData = {
|
|
459
|
+
/**
|
|
460
|
+
* The note, a file: its bytes, of the type `Content-Type` declares
|
|
461
|
+
*/
|
|
462
|
+
body: Blob | File;
|
|
463
|
+
headers?: {
|
|
464
|
+
/**
|
|
465
|
+
* The feed's own password, when it has one: to post, list or get, and (as the current password) to change or remove it. On the `POST` that creates a feed it sets the feed's password; on a `POST` to an existing feed that has none it answers 409. An empty value is the same as no header, so a `POST` with an empty one creates an open feed.
|
|
466
|
+
*/
|
|
467
|
+
'X-Feed-Password'?: string;
|
|
468
|
+
};
|
|
469
|
+
path: {
|
|
470
|
+
/**
|
|
471
|
+
* The feed's name. It is the write key: anyone who knows it can post.
|
|
472
|
+
*/
|
|
473
|
+
feed: string;
|
|
474
|
+
/**
|
|
475
|
+
* The note's id
|
|
476
|
+
*/
|
|
477
|
+
id: string;
|
|
478
|
+
};
|
|
479
|
+
query?: never;
|
|
480
|
+
url: '/api/v1/feeds/{feed}/notes/{id}';
|
|
481
|
+
};
|
|
482
|
+
export type EditNoteErrors = {
|
|
483
|
+
/**
|
|
484
|
+
* Invalid or reserved feed name; a blank note
|
|
485
|
+
*/
|
|
486
|
+
400: Error;
|
|
487
|
+
/**
|
|
488
|
+
* The instance has a password, or the feed has its own, and it is missing or wrong
|
|
489
|
+
*/
|
|
490
|
+
401: Error;
|
|
491
|
+
/**
|
|
492
|
+
* No such note
|
|
493
|
+
*/
|
|
494
|
+
404: Error;
|
|
495
|
+
/**
|
|
496
|
+
* Markdown over 102400 bytes, or an image over NOTEFEED_MAX_IMAGE_BYTES
|
|
497
|
+
*/
|
|
498
|
+
413: Error;
|
|
499
|
+
/**
|
|
500
|
+
* Content-Type missing, not accepted or not the note's own type, or the body is not what it declares
|
|
501
|
+
*/
|
|
502
|
+
415: Error;
|
|
503
|
+
/**
|
|
504
|
+
* Too many posts, edits and deletes, or wrong passwords, from this client
|
|
505
|
+
*/
|
|
506
|
+
429: Error;
|
|
507
|
+
};
|
|
508
|
+
export type EditNoteError = EditNoteErrors[keyof EditNoteErrors];
|
|
509
|
+
export type EditNoteResponses = {
|
|
510
|
+
/**
|
|
511
|
+
* The note as it is now
|
|
512
|
+
*/
|
|
513
|
+
200: Note;
|
|
514
|
+
};
|
|
515
|
+
export type EditNoteResponse = EditNoteResponses[keyof EditNoteResponses];
|
|
516
|
+
export type DeleteFeedData = {
|
|
517
|
+
body?: never;
|
|
518
|
+
headers?: {
|
|
519
|
+
/**
|
|
520
|
+
* The feed's own password, when it has one: to post, list or get, and (as the current password) to change or remove it. On the `POST` that creates a feed it sets the feed's password; on a `POST` to an existing feed that has none it answers 409. An empty value is the same as no header, so a `POST` with an empty one creates an open feed.
|
|
521
|
+
*/
|
|
522
|
+
'X-Feed-Password'?: string;
|
|
523
|
+
};
|
|
524
|
+
path: {
|
|
525
|
+
/**
|
|
526
|
+
* The feed's name. It is the write key: anyone who knows it can post.
|
|
527
|
+
*/
|
|
528
|
+
feed: string;
|
|
529
|
+
};
|
|
530
|
+
query?: never;
|
|
531
|
+
url: '/api/v1/feeds/{feed}';
|
|
532
|
+
};
|
|
533
|
+
export type DeleteFeedErrors = {
|
|
534
|
+
/**
|
|
535
|
+
* Invalid or reserved feed name
|
|
536
|
+
*/
|
|
537
|
+
400: Error;
|
|
538
|
+
/**
|
|
539
|
+
* The instance has a password, or the feed has its own, and it is missing or wrong
|
|
540
|
+
*/
|
|
541
|
+
401: Error;
|
|
542
|
+
/**
|
|
543
|
+
* No such feed
|
|
544
|
+
*/
|
|
545
|
+
404: Error;
|
|
546
|
+
/**
|
|
547
|
+
* Too many posts, edits and deletes, or wrong passwords, from this client
|
|
548
|
+
*/
|
|
549
|
+
429: Error;
|
|
550
|
+
};
|
|
551
|
+
export type DeleteFeedError = DeleteFeedErrors[keyof DeleteFeedErrors];
|
|
552
|
+
export type DeleteFeedResponses = {
|
|
553
|
+
/**
|
|
554
|
+
* Deleted
|
|
555
|
+
*/
|
|
556
|
+
204: void;
|
|
557
|
+
};
|
|
558
|
+
export type DeleteFeedResponse = DeleteFeedResponses[keyof DeleteFeedResponses];
|
|
559
|
+
export type GetFeedData = {
|
|
560
|
+
body?: never;
|
|
561
|
+
headers?: {
|
|
562
|
+
/**
|
|
563
|
+
* The feed's own password, when it has one: to post, list or get, and (as the current password) to change or remove it. On the `POST` that creates a feed it sets the feed's password; on a `POST` to an existing feed that has none it answers 409. An empty value is the same as no header, so a `POST` with an empty one creates an open feed.
|
|
564
|
+
*/
|
|
565
|
+
'X-Feed-Password'?: string;
|
|
566
|
+
};
|
|
567
|
+
path: {
|
|
568
|
+
/**
|
|
569
|
+
* The feed's name. It is the write key: anyone who knows it can post.
|
|
570
|
+
*/
|
|
571
|
+
feed: string;
|
|
572
|
+
};
|
|
573
|
+
query?: never;
|
|
574
|
+
url: '/api/v1/feeds/{feed}';
|
|
575
|
+
};
|
|
576
|
+
export type GetFeedErrors = {
|
|
577
|
+
/**
|
|
578
|
+
* Invalid or reserved feed name
|
|
579
|
+
*/
|
|
580
|
+
400: Error;
|
|
581
|
+
/**
|
|
582
|
+
* The instance has a password, or the feed has its own, and it is missing or wrong
|
|
583
|
+
*/
|
|
584
|
+
401: Error;
|
|
585
|
+
/**
|
|
586
|
+
* No such feed
|
|
587
|
+
*/
|
|
588
|
+
404: Error;
|
|
589
|
+
/**
|
|
590
|
+
* Too many wrong passwords from this client
|
|
591
|
+
*/
|
|
592
|
+
429: Error;
|
|
593
|
+
};
|
|
594
|
+
export type GetFeedError = GetFeedErrors[keyof GetFeedErrors];
|
|
595
|
+
export type GetFeedResponses = {
|
|
596
|
+
/**
|
|
597
|
+
* The feed
|
|
598
|
+
*/
|
|
599
|
+
200: Feed;
|
|
600
|
+
};
|
|
601
|
+
export type GetFeedResponse = GetFeedResponses[keyof GetFeedResponses];
|
|
602
|
+
export type UpdateFeedData = {
|
|
603
|
+
body: FeedSettings;
|
|
604
|
+
headers?: {
|
|
605
|
+
/**
|
|
606
|
+
* The feed's own password, when it has one: to post, list or get, and (as the current password) to change or remove it. On the `POST` that creates a feed it sets the feed's password; on a `POST` to an existing feed that has none it answers 409. An empty value is the same as no header, so a `POST` with an empty one creates an open feed.
|
|
607
|
+
*/
|
|
608
|
+
'X-Feed-Password'?: string;
|
|
609
|
+
};
|
|
610
|
+
path: {
|
|
611
|
+
/**
|
|
612
|
+
* The feed's name. It is the write key: anyone who knows it can post.
|
|
613
|
+
*/
|
|
614
|
+
feed: string;
|
|
615
|
+
};
|
|
616
|
+
query?: never;
|
|
617
|
+
url: '/api/v1/feeds/{feed}';
|
|
618
|
+
};
|
|
619
|
+
export type UpdateFeedErrors = {
|
|
620
|
+
/**
|
|
621
|
+
* Invalid or reserved feed name, bad JSON, a title or description that is too long or has control characters, a malformed read id, a reserved feed's read id, or chosen read ids turned off
|
|
622
|
+
*/
|
|
623
|
+
400: Error;
|
|
624
|
+
/**
|
|
625
|
+
* The instance has a password, or the feed has its own, and it is missing or wrong
|
|
626
|
+
*/
|
|
627
|
+
401: Error;
|
|
628
|
+
/**
|
|
629
|
+
* No such feed
|
|
630
|
+
*/
|
|
631
|
+
404: Error;
|
|
632
|
+
/**
|
|
633
|
+
* The read id belongs to another feed or is held back for a reserved one
|
|
634
|
+
*/
|
|
635
|
+
409: Error;
|
|
636
|
+
/**
|
|
637
|
+
* Too many posts, edits and deletes, or wrong passwords, from this client
|
|
638
|
+
*/
|
|
639
|
+
429: Error;
|
|
640
|
+
};
|
|
641
|
+
export type UpdateFeedError = UpdateFeedErrors[keyof UpdateFeedErrors];
|
|
642
|
+
export type UpdateFeedResponses = {
|
|
643
|
+
/**
|
|
644
|
+
* The feed as it is now
|
|
645
|
+
*/
|
|
646
|
+
200: Feed;
|
|
647
|
+
};
|
|
648
|
+
export type UpdateFeedResponse = UpdateFeedResponses[keyof UpdateFeedResponses];
|
|
649
|
+
export type RemoveFeedPasswordData = {
|
|
650
|
+
body?: never;
|
|
651
|
+
headers?: {
|
|
652
|
+
/**
|
|
653
|
+
* The feed's current password
|
|
654
|
+
*/
|
|
655
|
+
'X-Feed-Password'?: string;
|
|
656
|
+
};
|
|
657
|
+
path: {
|
|
658
|
+
/**
|
|
659
|
+
* The feed's name. It is the write key: anyone who knows it can post.
|
|
660
|
+
*/
|
|
661
|
+
feed: string;
|
|
662
|
+
};
|
|
663
|
+
query?: never;
|
|
664
|
+
url: '/api/v1/feeds/{feed}/password';
|
|
665
|
+
};
|
|
666
|
+
export type RemoveFeedPasswordErrors = {
|
|
667
|
+
/**
|
|
668
|
+
* Invalid or reserved feed name
|
|
669
|
+
*/
|
|
670
|
+
400: Error;
|
|
671
|
+
/**
|
|
672
|
+
* The instance has a password, or the feed has its own, and it is missing or wrong
|
|
673
|
+
*/
|
|
674
|
+
401: Error;
|
|
675
|
+
/**
|
|
676
|
+
* The feed has no password
|
|
677
|
+
*/
|
|
678
|
+
409: Error;
|
|
679
|
+
/**
|
|
680
|
+
* Too many wrong passwords from this client
|
|
681
|
+
*/
|
|
682
|
+
429: Error;
|
|
683
|
+
};
|
|
684
|
+
export type RemoveFeedPasswordError = RemoveFeedPasswordErrors[keyof RemoveFeedPasswordErrors];
|
|
685
|
+
export type RemoveFeedPasswordResponses = {
|
|
686
|
+
/**
|
|
687
|
+
* Removed
|
|
688
|
+
*/
|
|
689
|
+
204: void;
|
|
690
|
+
};
|
|
691
|
+
export type RemoveFeedPasswordResponse = RemoveFeedPasswordResponses[keyof RemoveFeedPasswordResponses];
|
|
692
|
+
export type ChangeFeedPasswordData = {
|
|
693
|
+
body: PasswordJson;
|
|
694
|
+
headers?: {
|
|
695
|
+
/**
|
|
696
|
+
* The feed's current password
|
|
697
|
+
*/
|
|
698
|
+
'X-Feed-Password'?: string;
|
|
699
|
+
};
|
|
700
|
+
path: {
|
|
701
|
+
/**
|
|
702
|
+
* The feed's name. It is the write key: anyone who knows it can post.
|
|
703
|
+
*/
|
|
704
|
+
feed: string;
|
|
705
|
+
};
|
|
706
|
+
query?: never;
|
|
707
|
+
url: '/api/v1/feeds/{feed}/password';
|
|
708
|
+
};
|
|
709
|
+
export type ChangeFeedPasswordErrors = {
|
|
710
|
+
/**
|
|
711
|
+
* Invalid or reserved feed name, bad JSON, or a new password that is not 1 to 256 printable ASCII characters, with no space at the start or end
|
|
712
|
+
*/
|
|
713
|
+
400: Error;
|
|
714
|
+
/**
|
|
715
|
+
* The instance has a password, or the feed has its own, and it is missing or wrong
|
|
716
|
+
*/
|
|
717
|
+
401: Error;
|
|
718
|
+
/**
|
|
719
|
+
* The feed has no password
|
|
720
|
+
*/
|
|
721
|
+
409: Error;
|
|
722
|
+
/**
|
|
723
|
+
* Too many wrong passwords from this client
|
|
724
|
+
*/
|
|
725
|
+
429: Error;
|
|
726
|
+
};
|
|
727
|
+
export type ChangeFeedPasswordError = ChangeFeedPasswordErrors[keyof ChangeFeedPasswordErrors];
|
|
728
|
+
export type ChangeFeedPasswordResponses = {
|
|
729
|
+
/**
|
|
730
|
+
* Changed; the old password and unlock cookies stop working
|
|
731
|
+
*/
|
|
732
|
+
204: void;
|
|
733
|
+
};
|
|
734
|
+
export type ChangeFeedPasswordResponse = ChangeFeedPasswordResponses[keyof ChangeFeedPasswordResponses];
|
|
735
|
+
export type GetReadFeedData = {
|
|
736
|
+
body?: never;
|
|
737
|
+
path: {
|
|
738
|
+
/**
|
|
739
|
+
* The feed's read id, from its read link: 22 random characters, one the feed's owner chose, or the feed's own name for a reserved feed. Read-only; never reveals the name of any other feed.
|
|
740
|
+
*/
|
|
741
|
+
readId: string;
|
|
742
|
+
};
|
|
743
|
+
query?: never;
|
|
744
|
+
url: '/api/v1/read/{readId}';
|
|
745
|
+
};
|
|
746
|
+
export type GetReadFeedErrors = {
|
|
747
|
+
/**
|
|
748
|
+
* Malformed read id
|
|
749
|
+
*/
|
|
750
|
+
404: Error;
|
|
751
|
+
};
|
|
752
|
+
export type GetReadFeedError = GetReadFeedErrors[keyof GetReadFeedErrors];
|
|
753
|
+
export type GetReadFeedResponses = {
|
|
754
|
+
/**
|
|
755
|
+
* The feed's public settings
|
|
756
|
+
*/
|
|
757
|
+
200: ReadFeed;
|
|
758
|
+
};
|
|
759
|
+
export type GetReadFeedResponse = GetReadFeedResponses[keyof GetReadFeedResponses];
|
|
195
760
|
export type ListReadNotesData = {
|
|
196
761
|
body?: never;
|
|
197
762
|
path: {
|
|
198
763
|
/**
|
|
199
|
-
* The feed's read id, from its read link. Read-only; never reveals the name.
|
|
764
|
+
* The feed's read id, from its read link: 22 random characters, one the feed's owner chose, or the feed's own name for a reserved feed. Read-only; never reveals the name of any other feed.
|
|
200
765
|
*/
|
|
201
766
|
readId: string;
|
|
202
767
|
};
|
|
@@ -209,6 +774,10 @@ export type ListReadNotesData = {
|
|
|
209
774
|
* Only notes older than this id: the previous page's `next`
|
|
210
775
|
*/
|
|
211
776
|
before?: string;
|
|
777
|
+
/**
|
|
778
|
+
* Only notes carrying this tag
|
|
779
|
+
*/
|
|
780
|
+
tag?: string;
|
|
212
781
|
};
|
|
213
782
|
url: '/api/v1/read/{readId}/notes';
|
|
214
783
|
};
|
|
@@ -234,7 +803,7 @@ export type GetReadNoteData = {
|
|
|
234
803
|
body?: never;
|
|
235
804
|
path: {
|
|
236
805
|
/**
|
|
237
|
-
* The feed's read id, from its read link. Read-only; never reveals the name.
|
|
806
|
+
* The feed's read id, from its read link: 22 random characters, one the feed's owner chose, or the feed's own name for a reserved feed. Read-only; never reveals the name of any other feed.
|
|
238
807
|
*/
|
|
239
808
|
readId: string;
|
|
240
809
|
/**
|