@crowi/api-contract 2.0.0-alpha.6 → 2.0.0-alpha.7

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.
@@ -34,7 +34,7 @@ interface paths {
34
34
  confidential: string | null;
35
35
  version: string;
36
36
  apiVersion: string;
37
- capabilities: string[];
37
+ capabilities: components["schemas"]["Capability"][];
38
38
  canSelfRegister: boolean;
39
39
  };
40
40
  };
@@ -3763,6 +3763,22 @@ interface paths {
3763
3763
  };
3764
3764
  };
3765
3765
  };
3766
+ /** @description Page not found or not granted */
3767
+ 404: {
3768
+ headers: {
3769
+ [name: string]: unknown;
3770
+ };
3771
+ content: {
3772
+ "application/json": {
3773
+ error: {
3774
+ /** @enum {string} */
3775
+ code: "PAGE_NOT_FOUND";
3776
+ /** @enum {string} */
3777
+ message: "Page not found";
3778
+ };
3779
+ };
3780
+ };
3781
+ };
3766
3782
  };
3767
3783
  };
3768
3784
  put?: never;
@@ -4686,6 +4702,22 @@ interface paths {
4686
4702
  };
4687
4703
  };
4688
4704
  };
4705
+ /** @description Internal server error */
4706
+ 500: {
4707
+ headers: {
4708
+ [name: string]: unknown;
4709
+ };
4710
+ content: {
4711
+ "application/json": {
4712
+ error: {
4713
+ /** @enum {string} */
4714
+ code: "INTERNAL_ERROR";
4715
+ /** @enum {string} */
4716
+ message: "Internal server error";
4717
+ };
4718
+ };
4719
+ };
4720
+ };
4689
4721
  };
4690
4722
  };
4691
4723
  /** Update existing page */
@@ -6488,6 +6520,241 @@ interface paths {
6488
6520
  patch?: never;
6489
6521
  trace?: never;
6490
6522
  };
6523
+ "/pages/link-access": {
6524
+ parameters: {
6525
+ query?: never;
6526
+ header?: never;
6527
+ path?: never;
6528
+ cookie?: never;
6529
+ };
6530
+ get?: never;
6531
+ put?: never;
6532
+ /** Resolve a page by id, granting first-time link-share access to GRANT_RESTRICTED pages */
6533
+ post: {
6534
+ parameters: {
6535
+ query?: never;
6536
+ header?: never;
6537
+ path?: never;
6538
+ cookie?: never;
6539
+ };
6540
+ requestBody?: {
6541
+ content: {
6542
+ "application/json": {
6543
+ page_id: string;
6544
+ };
6545
+ };
6546
+ };
6547
+ responses: {
6548
+ /** @description The resolved page, with `granted` telling whether this call just added the caller to grantedUsers */
6549
+ 200: {
6550
+ headers: {
6551
+ [name: string]: unknown;
6552
+ };
6553
+ content: {
6554
+ "application/json": {
6555
+ page: {
6556
+ _id: string;
6557
+ path: string;
6558
+ revision: {
6559
+ _id: string;
6560
+ path: string;
6561
+ body: string;
6562
+ /** @default markdown */
6563
+ format: string;
6564
+ author?: {
6565
+ _id: string;
6566
+ id?: string;
6567
+ username: string;
6568
+ name: string;
6569
+ /** Format: email */
6570
+ email: string;
6571
+ image?: string | null;
6572
+ createdAt: string;
6573
+ } | null;
6574
+ createdAt: string;
6575
+ meta?: {
6576
+ toc?: {
6577
+ level: number;
6578
+ text: string;
6579
+ anchorId: string;
6580
+ }[];
6581
+ wikiLinks?: {
6582
+ raw: string;
6583
+ target: string;
6584
+ displayText?: string;
6585
+ }[];
6586
+ mentions?: {
6587
+ username: string;
6588
+ }[];
6589
+ codeBlockLanguages?: string[];
6590
+ };
6591
+ renderedAst?: unknown;
6592
+ rendererVersion?: string;
6593
+ parentRevisionId?: string | null;
6594
+ /** @enum {string} */
6595
+ type?: "snapshot" | "incremental";
6596
+ savedBy?: string | {
6597
+ _id: string;
6598
+ id?: string;
6599
+ username: string;
6600
+ name: string;
6601
+ /** Format: email */
6602
+ email: string;
6603
+ image?: string | null;
6604
+ createdAt: string;
6605
+ } | null;
6606
+ contributors?: (string | {
6607
+ _id: string;
6608
+ id?: string;
6609
+ username: string;
6610
+ name: string;
6611
+ /** Format: email */
6612
+ email: string;
6613
+ image?: string | null;
6614
+ createdAt: string;
6615
+ })[];
6616
+ message?: string;
6617
+ /** @enum {string} */
6618
+ editVia?: "web" | "oauth" | "pat";
6619
+ };
6620
+ redirectTo?: string | null;
6621
+ /** @enum {string|null} */
6622
+ status?: "wip" | "published" | "deleted" | "deprecated" | "draft" | null;
6623
+ grant?: number;
6624
+ grantedUsers?: string[];
6625
+ creator?: {
6626
+ _id: string;
6627
+ id?: string;
6628
+ username: string;
6629
+ name: string;
6630
+ /** Format: email */
6631
+ email: string;
6632
+ image?: string | null;
6633
+ createdAt: string;
6634
+ } | null;
6635
+ lastUpdateUser?: {
6636
+ _id: string;
6637
+ id?: string;
6638
+ username: string;
6639
+ name: string;
6640
+ /** Format: email */
6641
+ email: string;
6642
+ image?: string | null;
6643
+ createdAt: string;
6644
+ } | null;
6645
+ liker?: string[];
6646
+ /** @default 0 */
6647
+ commentCount: number;
6648
+ extended?: {
6649
+ [key: string]: unknown;
6650
+ };
6651
+ createdAt: string;
6652
+ updatedAt?: string;
6653
+ currentRevision?: string | null;
6654
+ yjsCheckpointAt?: string | null;
6655
+ latestRevision?: string;
6656
+ likerCount?: number;
6657
+ seenUsersCount?: number;
6658
+ };
6659
+ granted: boolean;
6660
+ };
6661
+ };
6662
+ };
6663
+ /** @description Invalid page_id */
6664
+ 400: {
6665
+ headers: {
6666
+ [name: string]: unknown;
6667
+ };
6668
+ content: {
6669
+ "application/json": {
6670
+ error: {
6671
+ /** @enum {string} */
6672
+ code: "INVALID_PAGE_ID";
6673
+ message: string;
6674
+ };
6675
+ };
6676
+ };
6677
+ };
6678
+ /** @description Authentication required */
6679
+ 401: {
6680
+ headers: {
6681
+ [name: string]: unknown;
6682
+ };
6683
+ content: {
6684
+ "application/json": {
6685
+ error: {
6686
+ /** @enum {string} */
6687
+ code: "AUTHENTICATION_REQUIRED";
6688
+ /** @enum {string} */
6689
+ message: "Authentication is required";
6690
+ redirectTo?: string;
6691
+ };
6692
+ };
6693
+ };
6694
+ };
6695
+ /** @description The caller has no access to the page (isGrantedFor is false) or lacks scope / is a non-web session — 403 is about the caller lacking access, never about the page grant type per se */
6696
+ 403: {
6697
+ headers: {
6698
+ [name: string]: unknown;
6699
+ };
6700
+ content: {
6701
+ "application/json": {
6702
+ error: {
6703
+ /** @enum {string} */
6704
+ code: "PAGE_NOT_GRANTED";
6705
+ /** @enum {string} */
6706
+ message: "Page is not granted for the user";
6707
+ };
6708
+ } | {
6709
+ error: {
6710
+ /** @enum {string} */
6711
+ code: "INSUFFICIENT_SCOPE";
6712
+ message: string;
6713
+ details?: {
6714
+ requiredScope: string;
6715
+ };
6716
+ };
6717
+ };
6718
+ };
6719
+ };
6720
+ /** @description Page not found */
6721
+ 404: {
6722
+ headers: {
6723
+ [name: string]: unknown;
6724
+ };
6725
+ content: {
6726
+ "application/json": {
6727
+ error: {
6728
+ /** @enum {string} */
6729
+ code: "PAGE_NOT_FOUND";
6730
+ /** @enum {string} */
6731
+ message: "Page not found";
6732
+ };
6733
+ };
6734
+ };
6735
+ };
6736
+ /** @description Rate limit exceeded for POST /pages/link-access (per-user). Same wire shape as autocomplete rate limiting. */
6737
+ 429: {
6738
+ headers: {
6739
+ [name: string]: unknown;
6740
+ };
6741
+ content: {
6742
+ "application/json": {
6743
+ /** @enum {string} */
6744
+ error: "rate_limited";
6745
+ message: string;
6746
+ retryAfterSeconds: number;
6747
+ };
6748
+ };
6749
+ };
6750
+ };
6751
+ };
6752
+ delete?: never;
6753
+ options?: never;
6754
+ head?: never;
6755
+ patch?: never;
6756
+ trace?: never;
6757
+ };
6491
6758
  "/pages/watch": {
6492
6759
  parameters: {
6493
6760
  query?: never;
@@ -12176,6 +12443,7 @@ interface paths {
12176
12443
  name: string;
12177
12444
  version: string;
12178
12445
  requires?: string[];
12446
+ modelAccess?: string[];
12179
12447
  hasConfig: boolean;
12180
12448
  registers: string[];
12181
12449
  adminPlacement: {
@@ -12185,6 +12453,12 @@ interface paths {
12185
12453
  icon?: string;
12186
12454
  };
12187
12455
  supportsHotReload: boolean;
12456
+ /**
12457
+ * @default active
12458
+ * @enum {string}
12459
+ */
12460
+ status: "active" | "failed";
12461
+ error?: string;
12188
12462
  }[];
12189
12463
  };
12190
12464
  };
@@ -14800,6 +15074,7 @@ interface components {
14800
15074
  name: string;
14801
15075
  version: string;
14802
15076
  requires?: string[];
15077
+ modelAccess?: string[];
14803
15078
  hasConfig: boolean;
14804
15079
  registers: string[];
14805
15080
  adminPlacement: {
@@ -14809,12 +15084,19 @@ interface components {
14809
15084
  icon?: string;
14810
15085
  };
14811
15086
  supportsHotReload: boolean;
15087
+ /**
15088
+ * @default active
15089
+ * @enum {string}
15090
+ */
15091
+ status: "active" | "failed";
15092
+ error?: string;
14812
15093
  };
14813
15094
  ListPluginsResponse: {
14814
15095
  plugins: {
14815
15096
  name: string;
14816
15097
  version: string;
14817
15098
  requires?: string[];
15099
+ modelAccess?: string[];
14818
15100
  hasConfig: boolean;
14819
15101
  registers: string[];
14820
15102
  adminPlacement: {
@@ -14824,6 +15106,12 @@ interface components {
14824
15106
  icon?: string;
14825
15107
  };
14826
15108
  supportsHotReload: boolean;
15109
+ /**
15110
+ * @default active
15111
+ * @enum {string}
15112
+ */
15113
+ status: "active" | "failed";
15114
+ error?: string;
14827
15115
  }[];
14828
15116
  };
14829
15117
  PluginConfigResponse: {
@@ -14876,6 +15164,8 @@ interface components {
14876
15164
  }[];
14877
15165
  };
14878
15166
  };
15167
+ /** @enum {string} */
15168
+ Capability: "oauth" | "oauth:auth-code" | "oauth:device" | "oauth:pkce" | "pat" | "pages" | "comments" | "bookmarks" | "attachments" | "notifications" | "search" | "collab" | "collab:redis";
14879
15169
  };
14880
15170
  responses: never;
14881
15171
  parameters: never;