@@ -12,18 +12,33 @@ import { Commit } from "./commit.ts";
1212/** user information */
1313export interface User {
1414 id : UserId ;
15- /** user name */ name : string ;
16- /** user display name */ displayName : string ;
17- /** profile image URL */ photo : string ;
15+
16+ /** user name */
17+ name : string ;
18+
19+ /** user display name */
20+ displayName : string ;
21+
22+ /** profile image URL */
23+ photo : string ;
1824}
1925
2026/** user detailed information */
2127export interface UserInfo extends User {
22- /** user e-mail */ email : string ;
23- /** whether the user is a pro user or not */ pro : boolean ;
24- /** login provider */ provider : "google" | "microsoft" | "email" ;
25- /** accountの作成日時 */ created : UnixTime ;
26- /** accountの更新日時 */ updated : UnixTime ;
28+ /** user e-mail */
29+ email : string ;
30+
31+ /** whether the user is a pro user or not */
32+ pro : boolean ;
33+
34+ /** login provider */
35+ provider : "google" | "microsoft" | "email" ;
36+
37+ /** creation time of the account */
38+ created : UnixTime ;
39+
40+ /** update time of the account */
41+ updated : UnixTime ;
2742}
2843
2944/** page information */
@@ -52,7 +67,7 @@ export interface Page extends BasePage {
5267 /** ページ内のアイコン */
5368 icons : string [ ] ;
5469
55- /** ページ内に含まれる、scrapbox.ioにアップロードしたファイルへのリンク */
70+ /** ページ内に含まれる、scrapbox.ioにアップロードしたファイルのfile id */
5671 files : string [ ] ;
5772
5873 /** 関連ページリスト */
@@ -129,22 +144,33 @@ export interface PageList {
129144/** project information */
130145export interface Project {
131146 id : ProjectId ;
147+
132148 name : string ;
149+
133150 displayName : string ;
151+
134152 publicVisible : boolean ;
153+
135154 loginStrategies : string [ ] ;
155+
136156 theme : string ;
157+
137158 gyazoTeamsName : string | null ;
159+
138160 googleAnalyticsCode : string | null ;
161+
139162 /** planの種類
140163 *
141164 * public projectの場合は`null`になる
142165 *
143166 * 古いprojectだとpropertyが生えていない
144167 */
145168 plan ?: string | null ;
169+
146170 created : UnixTime ;
171+
147172 updated : UnixTime ;
173+
148174 isMember : boolean ;
149175}
150176
@@ -156,35 +182,51 @@ export interface ProjectResponse {
156182/** project information which isn't joined */
157183export interface NotMemberProject extends Omit < Project , "isMember" > {
158184 image ?: string ;
185+
159186 isMember : false ;
160187}
161188
162189/** project information which is joined */
163190export interface MemberProject extends Omit < NotMemberProject , "isMember" > {
164191 isMember : true ;
192+
165193 plan ?: string | null ;
194+
166195 users : UserInfo [ ] ;
196+
167197 admins : UserId [ ] ;
198+
168199 owner : UserId ;
200+
169201 trialing : boolean ;
202+
170203 trialMaxPages : number ;
204+
171205 skipPayment : boolean ;
206+
172207 uploadFileTo : "gcs" ;
208+
173209 uploadImaegTo : "gyazo" | "gcs" ;
210+
174211 emailAddressPatterns : string [ ] ;
212+
175213 backuped : UnixTime | null ;
176214}
177215
178216export interface GuestUser {
179217 isGuest : true ;
218+
180219 csrfToken : string ;
181220}
182221
183222export interface MemberUser extends UserInfo {
184223 isGuest : false ;
224+
185225 csrfToken : string ;
226+
186227 config : {
187228 userScript : boolean ;
229+
188230 emacsBinding : boolean ;
189231 } ;
190232}
@@ -334,27 +376,30 @@ export interface SearchResult {
334376 backend : string ;
335377
336378 /** 見つかったページ */
337- pages : {
338- id : PageId ;
339-
340- /** page title */
341- title : string ;
342-
343- /** page thumbnail
344- *
345- * 無いときは空文字が入る
346- */
347- image : string ;
348-
349- /** 検索語句の中で、このページに含まれている語句 */
350- words : string [ ] ;
351-
352- /** 検索語句に一致した行
353- *
354- * タイトル行のみが一致した場合は、検索語句の有無にかかわらずその次の行のみが入る
355- */
356- lines : string [ ] ;
357- } [ ] ;
379+ pages : FoundPage [ ] ;
380+ }
381+
382+ /** /api/pages/:projectname/search/titles で見つかったページ */
383+ export interface FoundPage {
384+ id : PageId ;
385+
386+ /** page title */
387+ title : string ;
388+
389+ /** page thumbnail
390+ *
391+ * 無いときは空文字が入る
392+ */
393+ image : string ;
394+
395+ /** 検索語句の中で、このページに含まれている語句 */
396+ words : string [ ] ;
397+
398+ /** 検索語句に一致した行
399+ *
400+ * タイトル行のみが一致した場合は、検索語句の有無にかかわらずその次の行のみが入る
401+ */
402+ lines : string [ ] ;
358403}
359404
360405/** the response type of /api/projects/search/query and /api/projects/search/watch-list */
@@ -366,21 +411,24 @@ export interface ProjectSearchResult {
366411 query : SearchQuery ;
367412
368413 /** 見つかったprojects */
369- projects : {
370- _id : ProjectId ;
414+ projects : FoundProject [ ] ;
415+ }
371416
372- /** project name */
373- name : string ;
417+ /** /api/projects/search/query や /api/projects/search/watch-list で見つかったproject */
418+ export interface FoundProject {
419+ _id : ProjectId ;
374420
375- /** projectの表示名 */
376- displayName : string ;
421+ /** project name */
422+ name : string ;
377423
378- /** project favicon
379- *
380- * 無いときは`null`が入るかproperty自体が存在しない
381- */
382- image ?: string | null ;
383- } [ ] ;
424+ /** projectの表示名 */
425+ displayName : string ;
426+
427+ /** project favicon
428+ *
429+ * 無いときは`null`が入るかproperty自体が存在しない
430+ */
431+ image ?: string | null ;
384432}
385433
386434/** 検索クエリ */
0 commit comments