@runlot/api 0.1.0-rc.53 → 0.1.0-rc.55

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/dist/schema.d.ts CHANGED
@@ -28,6 +28,118 @@ export interface paths {
28
28
  patch?: never;
29
29
  trace?: never;
30
30
  };
31
+ "/v1/auth/password/sign-up": {
32
+ parameters: {
33
+ query?: never;
34
+ header?: never;
35
+ path?: never;
36
+ cookie?: never;
37
+ };
38
+ get?: never;
39
+ put?: never;
40
+ /**
41
+ * Start a dashboard sign-up by email
42
+ * @description For a new email, queues a verification message. This does not create a session:
43
+ * the account becomes usable when the recipient calls `/v1/auth/email/verify`.
44
+ * An existing verified account instead receives an "already registered" message at its
45
+ * own mailbox, pointing at password reset. The public response is deliberately identical
46
+ * in both cases, so it does not disclose account existence — only the mailbox owner can
47
+ * tell the two apart, which is the point.
48
+ *
49
+ * **There is no password here by design.** Whoever sends this request is not yet
50
+ * known to own the mailbox, so a password taken now would be an unproven visitor's
51
+ * credential waiting on someone else's address. The recipient of the link chooses
52
+ * the password at `/v1/auth/email/verify`.
53
+ */
54
+ post: operations["passwordSignUp"];
55
+ delete?: never;
56
+ options?: never;
57
+ head?: never;
58
+ patch?: never;
59
+ trace?: never;
60
+ };
61
+ "/v1/auth/password/sign-in": {
62
+ parameters: {
63
+ query?: never;
64
+ header?: never;
65
+ path?: never;
66
+ cookie?: never;
67
+ };
68
+ get?: never;
69
+ put?: never;
70
+ /** Sign in to the dashboard with email and password */
71
+ post: operations["passwordSignIn"];
72
+ delete?: never;
73
+ options?: never;
74
+ head?: never;
75
+ patch?: never;
76
+ trace?: never;
77
+ };
78
+ "/v1/auth/password/forgot": {
79
+ parameters: {
80
+ query?: never;
81
+ header?: never;
82
+ path?: never;
83
+ cookie?: never;
84
+ };
85
+ get?: never;
86
+ put?: never;
87
+ /**
88
+ * Request a dashboard password reset
89
+ * @description Queues a reset email. The response is deliberately the same whether or not an account
90
+ * exists for the email address.
91
+ */
92
+ post: operations["passwordForgot"];
93
+ delete?: never;
94
+ options?: never;
95
+ head?: never;
96
+ patch?: never;
97
+ trace?: never;
98
+ };
99
+ "/v1/auth/password/reset": {
100
+ parameters: {
101
+ query?: never;
102
+ header?: never;
103
+ path?: never;
104
+ cookie?: never;
105
+ };
106
+ get?: never;
107
+ put?: never;
108
+ /**
109
+ * Reset a dashboard password
110
+ * @description Consumes a one-hour reset token, changes the password, invalidates sessions issued
111
+ * before the change, and returns a new session.
112
+ */
113
+ post: operations["passwordReset"];
114
+ delete?: never;
115
+ options?: never;
116
+ head?: never;
117
+ patch?: never;
118
+ trace?: never;
119
+ };
120
+ "/v1/auth/email/verify": {
121
+ parameters: {
122
+ query?: never;
123
+ header?: never;
124
+ path?: never;
125
+ cookie?: never;
126
+ };
127
+ get?: never;
128
+ put?: never;
129
+ /**
130
+ * Verify a dashboard email address and choose its password
131
+ * @description Consumes a 24-hour verification token, creates the account with the password chosen
132
+ * here, and returns the account's first session. The password arrives with the proof of
133
+ * mailbox access rather than before it, so a sign-up request for someone else's address
134
+ * never leaves a credential behind.
135
+ */
136
+ post: operations["verifyEmail"];
137
+ delete?: never;
138
+ options?: never;
139
+ head?: never;
140
+ patch?: never;
141
+ trace?: never;
142
+ };
31
143
  "/v1/auth/github/start": {
32
144
  parameters: {
33
145
  query?: never;
@@ -77,6 +189,50 @@ export interface paths {
77
189
  patch?: never;
78
190
  trace?: never;
79
191
  };
192
+ "/v1/auth/google/start": {
193
+ parameters: {
194
+ query?: never;
195
+ header?: never;
196
+ path?: never;
197
+ cookie?: never;
198
+ };
199
+ /**
200
+ * Start Google OAuth
201
+ * @description `redirect` is the client callback to return to, with the token carried as a fragment,
202
+ * after login finishes. The redirect must match the server allowlist. This sends a 302
203
+ * to Google and uses PKCE for the authorization-code exchange.
204
+ */
205
+ get: operations["googleStart"];
206
+ put?: never;
207
+ post?: never;
208
+ delete?: never;
209
+ options?: never;
210
+ head?: never;
211
+ patch?: never;
212
+ trace?: never;
213
+ };
214
+ "/v1/auth/google/callback": {
215
+ parameters: {
216
+ query?: never;
217
+ header?: never;
218
+ path?: never;
219
+ cookie?: never;
220
+ };
221
+ /**
222
+ * Google OAuth callback
223
+ * @description This path is the Google OAuth client's callback URL. It exchanges the authorization
224
+ * code and PKCE verifier for a session, then redirects to the client callback with the
225
+ * result in the URL fragment, using the same shape as the GitHub callback.
226
+ */
227
+ get: operations["googleCallback"];
228
+ put?: never;
229
+ post?: never;
230
+ delete?: never;
231
+ options?: never;
232
+ head?: never;
233
+ patch?: never;
234
+ trace?: never;
235
+ };
80
236
  "/v1/hooks/ses": {
81
237
  parameters: {
82
238
  query?: never;
@@ -3022,11 +3178,20 @@ export interface components {
3022
3178
  expiresAt?: string;
3023
3179
  user: components["schemas"]["User"];
3024
3180
  };
3181
+ AuthEmailAccepted: {
3182
+ /** @constant */
3183
+ accepted: true;
3184
+ };
3025
3185
  User: {
3026
3186
  /** Format: uuid */
3027
3187
  userId: string;
3028
- /** @enum {string} */
3029
- provider: "dev" | "github";
3188
+ /**
3189
+ * @description The oldest linked identity; retained as the primary provider contract
3190
+ * @enum {string}
3191
+ */
3192
+ provider: "dev" | "github" | "google" | "password";
3193
+ /** @description All login methods linked to this user, oldest first */
3194
+ providers: ("dev" | "github" | "google" | "password")[];
3030
3195
  subject: string;
3031
3196
  email?: string | null;
3032
3197
  name?: string | null;
@@ -4620,6 +4785,208 @@ export interface operations {
4620
4785
  400: components["responses"]["BadRequest"];
4621
4786
  };
4622
4787
  };
4788
+ passwordSignUp: {
4789
+ parameters: {
4790
+ query?: never;
4791
+ header?: never;
4792
+ path?: never;
4793
+ cookie?: never;
4794
+ };
4795
+ requestBody: {
4796
+ content: {
4797
+ "application/json": {
4798
+ /** Format: email */
4799
+ email: string;
4800
+ name?: string;
4801
+ };
4802
+ };
4803
+ };
4804
+ responses: {
4805
+ /** @description Sign-up request accepted without disclosing whether mail was queued */
4806
+ 202: {
4807
+ headers: {
4808
+ [name: string]: unknown;
4809
+ };
4810
+ content: {
4811
+ "application/json": components["schemas"]["AuthEmailAccepted"];
4812
+ };
4813
+ };
4814
+ 400: components["responses"]["BadRequest"];
4815
+ /** @description Too many attempts; retry after the number of seconds in `Retry-After` */
4816
+ 429: {
4817
+ headers: {
4818
+ [name: string]: unknown;
4819
+ };
4820
+ content?: never;
4821
+ };
4822
+ };
4823
+ };
4824
+ passwordSignIn: {
4825
+ parameters: {
4826
+ query?: never;
4827
+ header?: never;
4828
+ path?: never;
4829
+ cookie?: never;
4830
+ };
4831
+ requestBody: {
4832
+ content: {
4833
+ "application/json": {
4834
+ /** Format: email */
4835
+ email: string;
4836
+ /** Format: password */
4837
+ password: string;
4838
+ };
4839
+ };
4840
+ };
4841
+ responses: {
4842
+ /** @description Session token */
4843
+ 200: {
4844
+ headers: {
4845
+ [name: string]: unknown;
4846
+ };
4847
+ content: {
4848
+ "application/json": components["schemas"]["Session"];
4849
+ };
4850
+ };
4851
+ 400: components["responses"]["BadRequest"];
4852
+ /** @description Email or password is invalid (`invalid_credentials`) */
4853
+ 401: {
4854
+ headers: {
4855
+ [name: string]: unknown;
4856
+ };
4857
+ content: {
4858
+ "application/json": components["schemas"]["Error"];
4859
+ };
4860
+ };
4861
+ /** @description The email address has not been verified (`email_unverified`) */
4862
+ 403: {
4863
+ headers: {
4864
+ [name: string]: unknown;
4865
+ };
4866
+ content: {
4867
+ "application/json": components["schemas"]["Error"];
4868
+ };
4869
+ };
4870
+ /** @description Too many attempts; retry after the number of seconds in `Retry-After` */
4871
+ 429: {
4872
+ headers: {
4873
+ [name: string]: unknown;
4874
+ };
4875
+ content?: never;
4876
+ };
4877
+ };
4878
+ };
4879
+ passwordForgot: {
4880
+ parameters: {
4881
+ query?: never;
4882
+ header?: never;
4883
+ path?: never;
4884
+ cookie?: never;
4885
+ };
4886
+ requestBody: {
4887
+ content: {
4888
+ "application/json": {
4889
+ /** Format: email */
4890
+ email: string;
4891
+ };
4892
+ };
4893
+ };
4894
+ responses: {
4895
+ /** @description Password reset email accepted for delivery */
4896
+ 202: {
4897
+ headers: {
4898
+ [name: string]: unknown;
4899
+ };
4900
+ content: {
4901
+ "application/json": components["schemas"]["AuthEmailAccepted"];
4902
+ };
4903
+ };
4904
+ 400: components["responses"]["BadRequest"];
4905
+ /** @description Too many attempts; retry after the number of seconds in `Retry-After` */
4906
+ 429: {
4907
+ headers: {
4908
+ [name: string]: unknown;
4909
+ };
4910
+ content?: never;
4911
+ };
4912
+ };
4913
+ };
4914
+ passwordReset: {
4915
+ parameters: {
4916
+ query?: never;
4917
+ header?: never;
4918
+ path?: never;
4919
+ cookie?: never;
4920
+ };
4921
+ requestBody: {
4922
+ content: {
4923
+ "application/json": {
4924
+ token: string;
4925
+ /** Format: password */
4926
+ password: string;
4927
+ };
4928
+ };
4929
+ };
4930
+ responses: {
4931
+ /** @description New session token */
4932
+ 200: {
4933
+ headers: {
4934
+ [name: string]: unknown;
4935
+ };
4936
+ content: {
4937
+ "application/json": components["schemas"]["Session"];
4938
+ };
4939
+ };
4940
+ 400: components["responses"]["BadRequest"];
4941
+ 401: components["responses"]["Unauthorized"];
4942
+ /** @description Too many attempts; retry after the number of seconds in `Retry-After` */
4943
+ 429: {
4944
+ headers: {
4945
+ [name: string]: unknown;
4946
+ };
4947
+ content?: never;
4948
+ };
4949
+ };
4950
+ };
4951
+ verifyEmail: {
4952
+ parameters: {
4953
+ query?: never;
4954
+ header?: never;
4955
+ path?: never;
4956
+ cookie?: never;
4957
+ };
4958
+ requestBody: {
4959
+ content: {
4960
+ "application/json": {
4961
+ token: string;
4962
+ /** Format: password */
4963
+ password: string;
4964
+ };
4965
+ };
4966
+ };
4967
+ responses: {
4968
+ /** @description Session token */
4969
+ 200: {
4970
+ headers: {
4971
+ [name: string]: unknown;
4972
+ };
4973
+ content: {
4974
+ "application/json": components["schemas"]["Session"];
4975
+ };
4976
+ };
4977
+ 400: components["responses"]["BadRequest"];
4978
+ 401: components["responses"]["Unauthorized"];
4979
+ /** @description A verified account appeared after sign-up; use password reset (`account_exists`) */
4980
+ 409: {
4981
+ headers: {
4982
+ [name: string]: unknown;
4983
+ };
4984
+ content: {
4985
+ "application/json": components["schemas"]["Error"];
4986
+ };
4987
+ };
4988
+ };
4989
+ };
4623
4990
  githubStart: {
4624
4991
  parameters: {
4625
4992
  query: {
@@ -4664,6 +5031,50 @@ export interface operations {
4664
5031
  400: components["responses"]["BadRequest"];
4665
5032
  };
4666
5033
  };
5034
+ googleStart: {
5035
+ parameters: {
5036
+ query: {
5037
+ redirect: string;
5038
+ };
5039
+ header?: never;
5040
+ path?: never;
5041
+ cookie?: never;
5042
+ };
5043
+ requestBody?: never;
5044
+ responses: {
5045
+ /** @description to Google authorize */
5046
+ 302: {
5047
+ headers: {
5048
+ [name: string]: unknown;
5049
+ };
5050
+ content?: never;
5051
+ };
5052
+ 400: components["responses"]["BadRequest"];
5053
+ };
5054
+ };
5055
+ googleCallback: {
5056
+ parameters: {
5057
+ query: {
5058
+ code?: string;
5059
+ state: string;
5060
+ error?: string;
5061
+ };
5062
+ header?: never;
5063
+ path?: never;
5064
+ cookie?: never;
5065
+ };
5066
+ requestBody?: never;
5067
+ responses: {
5068
+ /** @description to the client callback */
5069
+ 302: {
5070
+ headers: {
5071
+ [name: string]: unknown;
5072
+ };
5073
+ content?: never;
5074
+ };
5075
+ 400: components["responses"]["BadRequest"];
5076
+ };
5077
+ };
4667
5078
  sesHook: {
4668
5079
  parameters: {
4669
5080
  query?: never;
@@ -5733,7 +6144,19 @@ export interface operations {
5733
6144
  };
5734
6145
  };
5735
6146
  403: components["responses"]["Forbidden"];
5736
- 404: components["responses"]["NotFound"];
6147
+ /**
6148
+ * @description `code` is `not_found` when the organization or project does not exist, and
6149
+ * `no_deployment` when the project exists but has never been deployed — there is
6150
+ * nothing to stream until the first deploy.
6151
+ */
6152
+ 404: {
6153
+ headers: {
6154
+ [name: string]: unknown;
6155
+ };
6156
+ content: {
6157
+ "application/json": components["schemas"]["Error"];
6158
+ };
6159
+ };
5737
6160
  /**
5738
6161
  * @description No process is available to stream right now. `code` is either `no_home_node` (cold,
5739
6162
  * or no placement) or `suspended`.