@stackframe/stack-shared 2.8.21 → 2.8.22
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/CHANGELOG.md +6 -0
- package/dist/config/schema.d.mts +67 -15
- package/dist/config/schema.d.ts +67 -15
- package/dist/config/schema.js +8 -4
- package/dist/config/schema.js.map +1 -1
- package/dist/esm/config/schema.js +8 -4
- package/dist/esm/config/schema.js.map +1 -1
- package/dist/esm/helpers/email-themes.js +45 -0
- package/dist/esm/helpers/email-themes.js.map +1 -0
- package/dist/esm/interface/admin-interface.js +71 -2
- package/dist/esm/interface/admin-interface.js.map +1 -1
- package/dist/esm/known-errors.js +13 -8
- package/dist/esm/known-errors.js.map +1 -1
- package/dist/esm/schema-fields.js +9 -1
- package/dist/esm/schema-fields.js.map +1 -1
- package/dist/esm/utils/esbuild.js +54 -45
- package/dist/esm/utils/esbuild.js.map +1 -1
- package/dist/esm/utils/react.js +26 -4
- package/dist/esm/utils/react.js.map +1 -1
- package/dist/helpers/email-themes.d.mts +13 -0
- package/dist/helpers/email-themes.d.ts +13 -0
- package/dist/helpers/email-themes.js +71 -0
- package/dist/helpers/email-themes.js.map +1 -0
- package/dist/interface/admin-interface.d.mts +40 -2
- package/dist/interface/admin-interface.d.ts +40 -2
- package/dist/interface/admin-interface.js +71 -2
- package/dist/interface/admin-interface.js.map +1 -1
- package/dist/interface/crud/projects.d.mts +7 -7
- package/dist/interface/crud/projects.d.ts +7 -7
- package/dist/known-errors.d.mts +2 -2
- package/dist/known-errors.d.ts +2 -2
- package/dist/known-errors.js +13 -8
- package/dist/known-errors.js.map +1 -1
- package/dist/schema-fields.d.mts +6 -2
- package/dist/schema-fields.d.ts +6 -2
- package/dist/schema-fields.js +10 -1
- package/dist/schema-fields.js.map +1 -1
- package/dist/utils/esbuild.js +54 -45
- package/dist/utils/esbuild.js.map +1 -1
- package/dist/utils/react.d.mts +21 -4
- package/dist/utils/react.d.ts +21 -4
- package/dist/utils/react.js +28 -5
- package/dist/utils/react.js.map +1 -1
- package/dist/utils/types.d.mts +3 -2
- package/dist/utils/types.d.ts +3 -2
- package/dist/utils/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -29,6 +29,17 @@ import '../utils/json.mjs';
|
|
|
29
29
|
import '@simplewebauthn/types';
|
|
30
30
|
import './crud/project-api-keys.mjs';
|
|
31
31
|
|
|
32
|
+
type ChatContent = Array<{
|
|
33
|
+
type: "text";
|
|
34
|
+
text: string;
|
|
35
|
+
} | {
|
|
36
|
+
type: "tool-call";
|
|
37
|
+
toolName: string;
|
|
38
|
+
toolCallId: string;
|
|
39
|
+
args: any;
|
|
40
|
+
argsText: string;
|
|
41
|
+
result: any;
|
|
42
|
+
}>;
|
|
32
43
|
type AdminAuthApplicationOptions = ServerAuthApplicationOptions & ({
|
|
33
44
|
superSecretAdminKey: string;
|
|
34
45
|
} | {
|
|
@@ -62,6 +73,10 @@ declare class StackAdminInterface extends StackServerInterface {
|
|
|
62
73
|
revokeInternalApiKeyById(id: string): Promise<void>;
|
|
63
74
|
getInternalApiKey(id: string, session: InternalSession): Promise<InternalApiKeysCrud["Admin"]["Read"]>;
|
|
64
75
|
listEmailTemplates(): Promise<EmailTemplateCrud['Admin']['Read'][]>;
|
|
76
|
+
listEmailThemes(): Promise<{
|
|
77
|
+
id: string;
|
|
78
|
+
display_name: string;
|
|
79
|
+
}[]>;
|
|
65
80
|
updateEmailTemplate(type: EmailTemplateType, data: EmailTemplateCrud['Admin']['Update']): Promise<EmailTemplateCrud['Admin']['Read']>;
|
|
66
81
|
resetEmailTemplate(type: EmailTemplateType): Promise<void>;
|
|
67
82
|
listTeamPermissionDefinitions(): Promise<TeamPermissionDefinitionsCrud['Admin']['Read'][]>;
|
|
@@ -97,9 +112,32 @@ declare class StackAdminInterface extends StackServerInterface {
|
|
|
97
112
|
notification_category_name: string;
|
|
98
113
|
}): Promise<void>;
|
|
99
114
|
sendSignInInvitationEmail(email: string, callbackUrl: string): Promise<void>;
|
|
100
|
-
|
|
115
|
+
sendEmailThemeChatMessage(themeId: string, currentEmailTheme: string, messages: Array<{
|
|
116
|
+
role: string;
|
|
117
|
+
content: string;
|
|
118
|
+
}>, abortSignal?: AbortSignal): Promise<{
|
|
119
|
+
content: ChatContent;
|
|
120
|
+
}>;
|
|
121
|
+
listEmailThemeChatMessages(themeId: string): Promise<{
|
|
122
|
+
messages: Array<{
|
|
123
|
+
role: string;
|
|
124
|
+
content: ChatContent;
|
|
125
|
+
}>;
|
|
126
|
+
}>;
|
|
127
|
+
renderEmailThemePreview(themeId: string, content: string): Promise<{
|
|
101
128
|
html: string;
|
|
102
129
|
}>;
|
|
130
|
+
createEmailTheme(displayName: string): Promise<{
|
|
131
|
+
id: string;
|
|
132
|
+
}>;
|
|
133
|
+
getEmailTheme(id: string): Promise<{
|
|
134
|
+
display_name: string;
|
|
135
|
+
tsx_source: string;
|
|
136
|
+
}>;
|
|
137
|
+
updateEmailTheme(id: string, tsxSource: string, previewHtml: string): Promise<{
|
|
138
|
+
display_name: string;
|
|
139
|
+
rendered_html: string;
|
|
140
|
+
}>;
|
|
103
141
|
}
|
|
104
142
|
|
|
105
|
-
export { type AdminAuthApplicationOptions, type InternalApiKeyCreateCrudRequest, type InternalApiKeyCreateCrudResponse, StackAdminInterface };
|
|
143
|
+
export { type AdminAuthApplicationOptions, type ChatContent, type InternalApiKeyCreateCrudRequest, type InternalApiKeyCreateCrudResponse, StackAdminInterface };
|
|
@@ -29,6 +29,17 @@ import '../utils/json.js';
|
|
|
29
29
|
import '@simplewebauthn/types';
|
|
30
30
|
import './crud/project-api-keys.js';
|
|
31
31
|
|
|
32
|
+
type ChatContent = Array<{
|
|
33
|
+
type: "text";
|
|
34
|
+
text: string;
|
|
35
|
+
} | {
|
|
36
|
+
type: "tool-call";
|
|
37
|
+
toolName: string;
|
|
38
|
+
toolCallId: string;
|
|
39
|
+
args: any;
|
|
40
|
+
argsText: string;
|
|
41
|
+
result: any;
|
|
42
|
+
}>;
|
|
32
43
|
type AdminAuthApplicationOptions = ServerAuthApplicationOptions & ({
|
|
33
44
|
superSecretAdminKey: string;
|
|
34
45
|
} | {
|
|
@@ -62,6 +73,10 @@ declare class StackAdminInterface extends StackServerInterface {
|
|
|
62
73
|
revokeInternalApiKeyById(id: string): Promise<void>;
|
|
63
74
|
getInternalApiKey(id: string, session: InternalSession): Promise<InternalApiKeysCrud["Admin"]["Read"]>;
|
|
64
75
|
listEmailTemplates(): Promise<EmailTemplateCrud['Admin']['Read'][]>;
|
|
76
|
+
listEmailThemes(): Promise<{
|
|
77
|
+
id: string;
|
|
78
|
+
display_name: string;
|
|
79
|
+
}[]>;
|
|
65
80
|
updateEmailTemplate(type: EmailTemplateType, data: EmailTemplateCrud['Admin']['Update']): Promise<EmailTemplateCrud['Admin']['Read']>;
|
|
66
81
|
resetEmailTemplate(type: EmailTemplateType): Promise<void>;
|
|
67
82
|
listTeamPermissionDefinitions(): Promise<TeamPermissionDefinitionsCrud['Admin']['Read'][]>;
|
|
@@ -97,9 +112,32 @@ declare class StackAdminInterface extends StackServerInterface {
|
|
|
97
112
|
notification_category_name: string;
|
|
98
113
|
}): Promise<void>;
|
|
99
114
|
sendSignInInvitationEmail(email: string, callbackUrl: string): Promise<void>;
|
|
100
|
-
|
|
115
|
+
sendEmailThemeChatMessage(themeId: string, currentEmailTheme: string, messages: Array<{
|
|
116
|
+
role: string;
|
|
117
|
+
content: string;
|
|
118
|
+
}>, abortSignal?: AbortSignal): Promise<{
|
|
119
|
+
content: ChatContent;
|
|
120
|
+
}>;
|
|
121
|
+
listEmailThemeChatMessages(themeId: string): Promise<{
|
|
122
|
+
messages: Array<{
|
|
123
|
+
role: string;
|
|
124
|
+
content: ChatContent;
|
|
125
|
+
}>;
|
|
126
|
+
}>;
|
|
127
|
+
renderEmailThemePreview(themeId: string, content: string): Promise<{
|
|
101
128
|
html: string;
|
|
102
129
|
}>;
|
|
130
|
+
createEmailTheme(displayName: string): Promise<{
|
|
131
|
+
id: string;
|
|
132
|
+
}>;
|
|
133
|
+
getEmailTheme(id: string): Promise<{
|
|
134
|
+
display_name: string;
|
|
135
|
+
tsx_source: string;
|
|
136
|
+
}>;
|
|
137
|
+
updateEmailTheme(id: string, tsxSource: string, previewHtml: string): Promise<{
|
|
138
|
+
display_name: string;
|
|
139
|
+
rendered_html: string;
|
|
140
|
+
}>;
|
|
103
141
|
}
|
|
104
142
|
|
|
105
|
-
export { type AdminAuthApplicationOptions, type InternalApiKeyCreateCrudRequest, type InternalApiKeyCreateCrudResponse, StackAdminInterface };
|
|
143
|
+
export { type AdminAuthApplicationOptions, type ChatContent, type InternalApiKeyCreateCrudRequest, type InternalApiKeyCreateCrudResponse, StackAdminInterface };
|
|
@@ -110,6 +110,11 @@ var StackAdminInterface = class extends import_server_interface.StackServerInter
|
|
|
110
110
|
const result = await response.json();
|
|
111
111
|
return result.items;
|
|
112
112
|
}
|
|
113
|
+
async listEmailThemes() {
|
|
114
|
+
const response = await this.sendAdminRequest(`/internal/email-themes`, {}, null);
|
|
115
|
+
const result = await response.json();
|
|
116
|
+
return result.themes;
|
|
117
|
+
}
|
|
113
118
|
async updateEmailTemplate(type, data) {
|
|
114
119
|
const result = await this.sendAdminRequest(
|
|
115
120
|
`/email-templates/${type}`,
|
|
@@ -286,19 +291,83 @@ var StackAdminInterface = class extends import_server_interface.StackServerInter
|
|
|
286
291
|
null
|
|
287
292
|
);
|
|
288
293
|
}
|
|
289
|
-
async
|
|
294
|
+
async sendEmailThemeChatMessage(themeId, currentEmailTheme, messages, abortSignal) {
|
|
295
|
+
const response = await this.sendAdminRequest(
|
|
296
|
+
`/internal/email-themes/chat`,
|
|
297
|
+
{
|
|
298
|
+
method: "POST",
|
|
299
|
+
headers: {
|
|
300
|
+
"content-type": "application/json"
|
|
301
|
+
},
|
|
302
|
+
body: JSON.stringify({ theme_id: themeId, messages, current_email_theme: currentEmailTheme }),
|
|
303
|
+
signal: abortSignal
|
|
304
|
+
},
|
|
305
|
+
null
|
|
306
|
+
);
|
|
307
|
+
return await response.json();
|
|
308
|
+
}
|
|
309
|
+
async listEmailThemeChatMessages(themeId) {
|
|
310
|
+
const response = await this.sendAdminRequest(
|
|
311
|
+
`/internal/email-themes/chat?theme_id=${themeId}`,
|
|
312
|
+
{ method: "GET" },
|
|
313
|
+
null
|
|
314
|
+
);
|
|
315
|
+
return await response.json();
|
|
316
|
+
}
|
|
317
|
+
async renderEmailThemePreview(themeId, content) {
|
|
290
318
|
const response = await this.sendAdminRequest(`/emails/render-email`, {
|
|
291
319
|
method: "POST",
|
|
292
320
|
headers: {
|
|
293
321
|
"content-type": "application/json"
|
|
294
322
|
},
|
|
295
323
|
body: JSON.stringify({
|
|
296
|
-
|
|
324
|
+
theme_id: themeId,
|
|
297
325
|
preview_html: content
|
|
298
326
|
})
|
|
299
327
|
}, null);
|
|
300
328
|
return await response.json();
|
|
301
329
|
}
|
|
330
|
+
async createEmailTheme(displayName) {
|
|
331
|
+
const response = await this.sendAdminRequest(
|
|
332
|
+
`/internal/email-themes`,
|
|
333
|
+
{
|
|
334
|
+
method: "POST",
|
|
335
|
+
headers: {
|
|
336
|
+
"content-type": "application/json"
|
|
337
|
+
},
|
|
338
|
+
body: JSON.stringify({
|
|
339
|
+
display_name: displayName
|
|
340
|
+
})
|
|
341
|
+
},
|
|
342
|
+
null
|
|
343
|
+
);
|
|
344
|
+
return await response.json();
|
|
345
|
+
}
|
|
346
|
+
async getEmailTheme(id) {
|
|
347
|
+
const response = await this.sendAdminRequest(
|
|
348
|
+
`/internal/email-themes/${id}`,
|
|
349
|
+
{ method: "GET" },
|
|
350
|
+
null
|
|
351
|
+
);
|
|
352
|
+
return await response.json();
|
|
353
|
+
}
|
|
354
|
+
async updateEmailTheme(id, tsxSource, previewHtml) {
|
|
355
|
+
const response = await this.sendAdminRequest(
|
|
356
|
+
`/internal/email-themes/${id}`,
|
|
357
|
+
{
|
|
358
|
+
method: "PATCH",
|
|
359
|
+
headers: {
|
|
360
|
+
"content-type": "application/json"
|
|
361
|
+
},
|
|
362
|
+
body: JSON.stringify({
|
|
363
|
+
tsx_source: tsxSource,
|
|
364
|
+
preview_html: previewHtml
|
|
365
|
+
})
|
|
366
|
+
},
|
|
367
|
+
null
|
|
368
|
+
);
|
|
369
|
+
return await response.json();
|
|
370
|
+
}
|
|
302
371
|
};
|
|
303
372
|
// Annotate the CommonJS export names for ESM import in node:
|
|
304
373
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/interface/admin-interface.ts"],"sourcesContent":["import { InternalSession } from \"../sessions\";\nimport { EmailTemplateCrud, EmailTemplateType } from \"./crud/email-templates\";\nimport { InternalEmailsCrud } from \"./crud/emails\";\nimport { InternalApiKeysCrud } from \"./crud/internal-api-keys\";\nimport { ProjectPermissionDefinitionsCrud } from \"./crud/project-permissions\";\nimport { ProjectsCrud } from \"./crud/projects\";\nimport { SvixTokenCrud } from \"./crud/svix-token\";\nimport { TeamPermissionDefinitionsCrud } from \"./crud/team-permissions\";\nimport { ServerAuthApplicationOptions, StackServerInterface } from \"./server-interface\";\n\nexport type AdminAuthApplicationOptions = ServerAuthApplicationOptions &(\n | {\n superSecretAdminKey: string,\n }\n | {\n projectOwnerSession: InternalSession,\n }\n);\n\nexport type InternalApiKeyCreateCrudRequest = {\n has_publishable_client_key: boolean,\n has_secret_server_key: boolean,\n has_super_secret_admin_key: boolean,\n expires_at_millis: number,\n description: string,\n};\n\nexport type InternalApiKeyCreateCrudResponse = InternalApiKeysCrud[\"Admin\"][\"Read\"] & {\n publishable_client_key?: string,\n secret_server_key?: string,\n super_secret_admin_key?: string,\n};\n\nexport class StackAdminInterface extends StackServerInterface {\n constructor(public readonly options: AdminAuthApplicationOptions) {\n super(options);\n }\n\n public async sendAdminRequest(path: string, options: RequestInit, session: InternalSession | null, requestType: \"admin\" = \"admin\") {\n return await this.sendServerRequest(\n path,\n {\n ...options,\n headers: {\n \"x-stack-super-secret-admin-key\": \"superSecretAdminKey\" in this.options ? this.options.superSecretAdminKey : \"\",\n ...options.headers,\n },\n },\n session,\n requestType,\n );\n }\n\n async getProject(): Promise<ProjectsCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"GET\",\n },\n null,\n );\n return await response.json();\n }\n\n async updateProject(update: ProjectsCrud[\"Admin\"][\"Update\"]): Promise<ProjectsCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(update),\n },\n null,\n );\n return await response.json();\n }\n\n async createInternalApiKey(\n options: InternalApiKeyCreateCrudRequest,\n ): Promise<InternalApiKeyCreateCrudResponse> {\n const response = await this.sendAdminRequest(\n \"/internal/api-keys\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(options),\n },\n null,\n );\n return await response.json();\n }\n\n async listInternalApiKeys(): Promise<InternalApiKeysCrud[\"Admin\"][\"Read\"][]> {\n const response = await this.sendAdminRequest(\"/internal/api-keys\", {}, null);\n const result = await response.json() as InternalApiKeysCrud[\"Admin\"][\"List\"];\n return result.items;\n }\n\n async revokeInternalApiKeyById(id: string) {\n await this.sendAdminRequest(\n `/internal/api-keys/${id}`, {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n revoked: true,\n }),\n },\n null,\n );\n }\n\n async getInternalApiKey(id: string, session: InternalSession): Promise<InternalApiKeysCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(`/internal/api-keys/${id}`, {}, session);\n return await response.json();\n }\n\n async listEmailTemplates(): Promise<EmailTemplateCrud['Admin']['Read'][]> {\n const response = await this.sendAdminRequest(`/email-templates`, {}, null);\n const result = await response.json() as EmailTemplateCrud['Admin']['List'];\n return result.items;\n }\n\n async updateEmailTemplate(type: EmailTemplateType, data: EmailTemplateCrud['Admin']['Update']): Promise<EmailTemplateCrud['Admin']['Read']> {\n const result = await this.sendAdminRequest(\n `/email-templates/${type}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await result.json();\n }\n\n async resetEmailTemplate(type: EmailTemplateType): Promise<void> {\n await this.sendAdminRequest(\n `/email-templates/${type}`,\n { method: \"DELETE\" },\n null\n );\n }\n\n // Team permission definitions methods\n async listTeamPermissionDefinitions(): Promise<TeamPermissionDefinitionsCrud['Admin']['Read'][]> {\n const response = await this.sendAdminRequest(`/team-permission-definitions`, {}, null);\n const result = await response.json() as TeamPermissionDefinitionsCrud['Admin']['List'];\n return result.items;\n }\n\n async createTeamPermissionDefinition(data: TeamPermissionDefinitionsCrud['Admin']['Create']): Promise<TeamPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n \"/team-permission-definitions\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async updateTeamPermissionDefinition(permissionId: string, data: TeamPermissionDefinitionsCrud['Admin']['Update']): Promise<TeamPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n `/team-permission-definitions/${permissionId}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteTeamPermissionDefinition(permissionId: string): Promise<void> {\n await this.sendAdminRequest(\n `/team-permission-definitions/${permissionId}`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n async listProjectPermissionDefinitions(): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read'][]> {\n const response = await this.sendAdminRequest(`/project-permission-definitions`, {}, null);\n const result = await response.json() as ProjectPermissionDefinitionsCrud['Admin']['List'];\n return result.items;\n }\n\n async createProjectPermissionDefinition(data: ProjectPermissionDefinitionsCrud['Admin']['Create']): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n \"/project-permission-definitions\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async updateProjectPermissionDefinition(permissionId: string, data: ProjectPermissionDefinitionsCrud['Admin']['Update']): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n `/project-permission-definitions/${permissionId}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteProjectPermissionDefinition(permissionId: string): Promise<void> {\n await this.sendAdminRequest(\n `/project-permission-definitions/${permissionId}`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n async getSvixToken(): Promise<SvixTokenCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/webhooks/svix-token\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({}),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteProject(): Promise<void> {\n await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"DELETE\",\n },\n null,\n );\n }\n\n async getMetrics(): Promise<any> {\n const response = await this.sendAdminRequest(\n \"/internal/metrics\",\n {\n method: \"GET\",\n },\n null,\n );\n return await response.json();\n }\n\n async sendTestEmail(data: {\n recipient_email: string,\n email_config: {\n host: string,\n port: number,\n username: string,\n password: string,\n sender_email: string,\n sender_name: string,\n },\n }): Promise<{ success: boolean, error_message?: string }> {\n const response = await this.sendAdminRequest(`/internal/send-test-email`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async listSentEmails(): Promise<InternalEmailsCrud[\"Admin\"][\"List\"]> {\n const response = await this.sendAdminRequest(\"/internal/emails\", {\n method: \"GET\",\n }, null);\n return await response.json();\n }\n\n async sendEmail(options: {\n user_ids: string[],\n subject: string,\n html: string,\n notification_category_name: string,\n }): Promise<void> {\n await this.sendAdminRequest(\"/emails/send-email\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(options),\n }, null);\n }\n\n async sendSignInInvitationEmail(\n email: string,\n callbackUrl: string,\n ): Promise<void> {\n await this.sendAdminRequest(\n \"/internal/send-sign-in-invitation\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n email,\n callback_url: callbackUrl,\n }),\n },\n null,\n );\n }\n\n async renderEmailThemePreview(theme: string, content: string): Promise<{ html: string }> {\n const response = await this.sendAdminRequest(`/emails/render-email`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n theme,\n preview_html: content,\n }),\n }, null);\n return await response.json();\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/interface/admin-interface.ts"],"sourcesContent":["import { InternalSession } from \"../sessions\";\nimport { EmailTemplateCrud, EmailTemplateType } from \"./crud/email-templates\";\nimport { InternalEmailsCrud } from \"./crud/emails\";\nimport { InternalApiKeysCrud } from \"./crud/internal-api-keys\";\nimport { ProjectPermissionDefinitionsCrud } from \"./crud/project-permissions\";\nimport { ProjectsCrud } from \"./crud/projects\";\nimport { SvixTokenCrud } from \"./crud/svix-token\";\nimport { TeamPermissionDefinitionsCrud } from \"./crud/team-permissions\";\nimport { ServerAuthApplicationOptions, StackServerInterface } from \"./server-interface\";\n\nexport type ChatContent = Array<\n | { type: \"text\", text: string }\n | { type: \"tool-call\", toolName: string, toolCallId: string, args: any, argsText: string, result: any }\n>;\n\nexport type AdminAuthApplicationOptions = ServerAuthApplicationOptions &(\n | {\n superSecretAdminKey: string,\n }\n | {\n projectOwnerSession: InternalSession,\n }\n);\n\nexport type InternalApiKeyCreateCrudRequest = {\n has_publishable_client_key: boolean,\n has_secret_server_key: boolean,\n has_super_secret_admin_key: boolean,\n expires_at_millis: number,\n description: string,\n};\n\nexport type InternalApiKeyCreateCrudResponse = InternalApiKeysCrud[\"Admin\"][\"Read\"] & {\n publishable_client_key?: string,\n secret_server_key?: string,\n super_secret_admin_key?: string,\n};\n\nexport class StackAdminInterface extends StackServerInterface {\n constructor(public readonly options: AdminAuthApplicationOptions) {\n super(options);\n }\n\n public async sendAdminRequest(path: string, options: RequestInit, session: InternalSession | null, requestType: \"admin\" = \"admin\") {\n return await this.sendServerRequest(\n path,\n {\n ...options,\n headers: {\n \"x-stack-super-secret-admin-key\": \"superSecretAdminKey\" in this.options ? this.options.superSecretAdminKey : \"\",\n ...options.headers,\n },\n },\n session,\n requestType,\n );\n }\n\n async getProject(): Promise<ProjectsCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"GET\",\n },\n null,\n );\n return await response.json();\n }\n\n async updateProject(update: ProjectsCrud[\"Admin\"][\"Update\"]): Promise<ProjectsCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(update),\n },\n null,\n );\n return await response.json();\n }\n\n async createInternalApiKey(\n options: InternalApiKeyCreateCrudRequest,\n ): Promise<InternalApiKeyCreateCrudResponse> {\n const response = await this.sendAdminRequest(\n \"/internal/api-keys\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(options),\n },\n null,\n );\n return await response.json();\n }\n\n async listInternalApiKeys(): Promise<InternalApiKeysCrud[\"Admin\"][\"Read\"][]> {\n const response = await this.sendAdminRequest(\"/internal/api-keys\", {}, null);\n const result = await response.json() as InternalApiKeysCrud[\"Admin\"][\"List\"];\n return result.items;\n }\n\n async revokeInternalApiKeyById(id: string) {\n await this.sendAdminRequest(\n `/internal/api-keys/${id}`, {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n revoked: true,\n }),\n },\n null,\n );\n }\n\n async getInternalApiKey(id: string, session: InternalSession): Promise<InternalApiKeysCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(`/internal/api-keys/${id}`, {}, session);\n return await response.json();\n }\n\n async listEmailTemplates(): Promise<EmailTemplateCrud['Admin']['Read'][]> {\n const response = await this.sendAdminRequest(`/email-templates`, {}, null);\n const result = await response.json() as EmailTemplateCrud['Admin']['List'];\n return result.items;\n }\n\n async listEmailThemes(): Promise<{ id: string, display_name: string }[]> {\n const response = await this.sendAdminRequest(`/internal/email-themes`, {}, null);\n const result = await response.json() as { themes: { id: string, display_name: string }[] };\n return result.themes;\n }\n\n async updateEmailTemplate(type: EmailTemplateType, data: EmailTemplateCrud['Admin']['Update']): Promise<EmailTemplateCrud['Admin']['Read']> {\n const result = await this.sendAdminRequest(\n `/email-templates/${type}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await result.json();\n }\n\n async resetEmailTemplate(type: EmailTemplateType): Promise<void> {\n await this.sendAdminRequest(\n `/email-templates/${type}`,\n { method: \"DELETE\" },\n null\n );\n }\n\n // Team permission definitions methods\n async listTeamPermissionDefinitions(): Promise<TeamPermissionDefinitionsCrud['Admin']['Read'][]> {\n const response = await this.sendAdminRequest(`/team-permission-definitions`, {}, null);\n const result = await response.json() as TeamPermissionDefinitionsCrud['Admin']['List'];\n return result.items;\n }\n\n async createTeamPermissionDefinition(data: TeamPermissionDefinitionsCrud['Admin']['Create']): Promise<TeamPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n \"/team-permission-definitions\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async updateTeamPermissionDefinition(permissionId: string, data: TeamPermissionDefinitionsCrud['Admin']['Update']): Promise<TeamPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n `/team-permission-definitions/${permissionId}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteTeamPermissionDefinition(permissionId: string): Promise<void> {\n await this.sendAdminRequest(\n `/team-permission-definitions/${permissionId}`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n async listProjectPermissionDefinitions(): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read'][]> {\n const response = await this.sendAdminRequest(`/project-permission-definitions`, {}, null);\n const result = await response.json() as ProjectPermissionDefinitionsCrud['Admin']['List'];\n return result.items;\n }\n\n async createProjectPermissionDefinition(data: ProjectPermissionDefinitionsCrud['Admin']['Create']): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n \"/project-permission-definitions\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async updateProjectPermissionDefinition(permissionId: string, data: ProjectPermissionDefinitionsCrud['Admin']['Update']): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n `/project-permission-definitions/${permissionId}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteProjectPermissionDefinition(permissionId: string): Promise<void> {\n await this.sendAdminRequest(\n `/project-permission-definitions/${permissionId}`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n async getSvixToken(): Promise<SvixTokenCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/webhooks/svix-token\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({}),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteProject(): Promise<void> {\n await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"DELETE\",\n },\n null,\n );\n }\n\n async getMetrics(): Promise<any> {\n const response = await this.sendAdminRequest(\n \"/internal/metrics\",\n {\n method: \"GET\",\n },\n null,\n );\n return await response.json();\n }\n\n async sendTestEmail(data: {\n recipient_email: string,\n email_config: {\n host: string,\n port: number,\n username: string,\n password: string,\n sender_email: string,\n sender_name: string,\n },\n }): Promise<{ success: boolean, error_message?: string }> {\n const response = await this.sendAdminRequest(`/internal/send-test-email`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async listSentEmails(): Promise<InternalEmailsCrud[\"Admin\"][\"List\"]> {\n const response = await this.sendAdminRequest(\"/internal/emails\", {\n method: \"GET\",\n }, null);\n return await response.json();\n }\n\n async sendEmail(options: {\n user_ids: string[],\n subject: string,\n html: string,\n notification_category_name: string,\n }): Promise<void> {\n await this.sendAdminRequest(\"/emails/send-email\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(options),\n }, null);\n }\n\n async sendSignInInvitationEmail(\n email: string,\n callbackUrl: string,\n ): Promise<void> {\n await this.sendAdminRequest(\n \"/internal/send-sign-in-invitation\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n email,\n callback_url: callbackUrl,\n }),\n },\n null,\n );\n }\n\n\n async sendEmailThemeChatMessage(\n themeId: string,\n currentEmailTheme: string,\n messages: Array<{ role: string, content: string }>,\n abortSignal?: AbortSignal,\n ): Promise<{ content: ChatContent }> {\n const response = await this.sendAdminRequest(\n `/internal/email-themes/chat`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ theme_id: themeId, messages, current_email_theme: currentEmailTheme }),\n signal: abortSignal,\n },\n null,\n );\n return await response.json();\n }\n\n async listEmailThemeChatMessages(themeId: string): Promise<{ messages: Array<{ role: string, content: ChatContent }> }> {\n const response = await this.sendAdminRequest(\n `/internal/email-themes/chat?theme_id=${themeId}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async renderEmailThemePreview(themeId: string, content: string): Promise<{ html: string }> {\n const response = await this.sendAdminRequest(`/emails/render-email`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n theme_id: themeId,\n preview_html: content,\n }),\n }, null);\n return await response.json();\n }\n\n async createEmailTheme(displayName: string): Promise<{ id: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-themes`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n display_name: displayName,\n }),\n },\n null,\n );\n return await response.json();\n }\n\n async getEmailTheme(id: string): Promise<{ display_name: string, tsx_source: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-themes/${id}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async updateEmailTheme(id: string, tsxSource: string, previewHtml: string): Promise<{ display_name: string, rendered_html: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-themes/${id}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n tsx_source: tsxSource,\n preview_html: previewHtml,\n }),\n },\n null,\n );\n return await response.json();\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -75,7 +75,7 @@ declare const projectsCrudAdminReadSchema: yup.ObjectSchema<{
|
|
|
75
75
|
sender_email?: string | undefined;
|
|
76
76
|
type: "shared" | "standard";
|
|
77
77
|
};
|
|
78
|
-
email_theme:
|
|
78
|
+
email_theme: string;
|
|
79
79
|
create_team_on_sign_up: boolean;
|
|
80
80
|
team_creator_default_permissions: {
|
|
81
81
|
id: string;
|
|
@@ -190,7 +190,7 @@ declare const projectsCrudAdminUpdateSchema: yup.ObjectSchema<{
|
|
|
190
190
|
sender_email?: string | undefined;
|
|
191
191
|
type: "shared" | "standard";
|
|
192
192
|
} | undefined;
|
|
193
|
-
email_theme?:
|
|
193
|
+
email_theme?: string | undefined;
|
|
194
194
|
create_team_on_sign_up?: boolean | undefined;
|
|
195
195
|
team_creator_default_permissions?: {
|
|
196
196
|
id: string;
|
|
@@ -244,7 +244,7 @@ declare const projectsCrudAdminCreateSchema: yup.ObjectSchema<{
|
|
|
244
244
|
sender_email?: string | undefined;
|
|
245
245
|
type: "shared" | "standard";
|
|
246
246
|
} | undefined;
|
|
247
|
-
email_theme?:
|
|
247
|
+
email_theme?: string | undefined;
|
|
248
248
|
create_team_on_sign_up?: boolean | undefined;
|
|
249
249
|
team_creator_default_permissions?: {
|
|
250
250
|
id: string;
|
|
@@ -348,7 +348,7 @@ declare const projectsCrud: CrudSchemaFromOptions<{
|
|
|
348
348
|
sender_email?: string | undefined;
|
|
349
349
|
type: "shared" | "standard";
|
|
350
350
|
};
|
|
351
|
-
email_theme:
|
|
351
|
+
email_theme: string;
|
|
352
352
|
create_team_on_sign_up: boolean;
|
|
353
353
|
team_creator_default_permissions: {
|
|
354
354
|
id: string;
|
|
@@ -432,7 +432,7 @@ declare const projectsCrud: CrudSchemaFromOptions<{
|
|
|
432
432
|
sender_email?: string | undefined;
|
|
433
433
|
type: "shared" | "standard";
|
|
434
434
|
} | undefined;
|
|
435
|
-
email_theme?:
|
|
435
|
+
email_theme?: string | undefined;
|
|
436
436
|
create_team_on_sign_up?: boolean | undefined;
|
|
437
437
|
team_creator_default_permissions?: {
|
|
438
438
|
id: string;
|
|
@@ -512,7 +512,7 @@ declare const adminUserProjectsCrud: CrudSchemaFromOptions<{
|
|
|
512
512
|
sender_email?: string | undefined;
|
|
513
513
|
type: "shared" | "standard";
|
|
514
514
|
};
|
|
515
|
-
email_theme:
|
|
515
|
+
email_theme: string;
|
|
516
516
|
create_team_on_sign_up: boolean;
|
|
517
517
|
team_creator_default_permissions: {
|
|
518
518
|
id: string;
|
|
@@ -596,7 +596,7 @@ declare const adminUserProjectsCrud: CrudSchemaFromOptions<{
|
|
|
596
596
|
sender_email?: string | undefined;
|
|
597
597
|
type: "shared" | "standard";
|
|
598
598
|
} | undefined;
|
|
599
|
-
email_theme?:
|
|
599
|
+
email_theme?: string | undefined;
|
|
600
600
|
create_team_on_sign_up?: boolean | undefined;
|
|
601
601
|
team_creator_default_permissions?: {
|
|
602
602
|
id: string;
|
|
@@ -75,7 +75,7 @@ declare const projectsCrudAdminReadSchema: yup.ObjectSchema<{
|
|
|
75
75
|
sender_email?: string | undefined;
|
|
76
76
|
type: "shared" | "standard";
|
|
77
77
|
};
|
|
78
|
-
email_theme:
|
|
78
|
+
email_theme: string;
|
|
79
79
|
create_team_on_sign_up: boolean;
|
|
80
80
|
team_creator_default_permissions: {
|
|
81
81
|
id: string;
|
|
@@ -190,7 +190,7 @@ declare const projectsCrudAdminUpdateSchema: yup.ObjectSchema<{
|
|
|
190
190
|
sender_email?: string | undefined;
|
|
191
191
|
type: "shared" | "standard";
|
|
192
192
|
} | undefined;
|
|
193
|
-
email_theme?:
|
|
193
|
+
email_theme?: string | undefined;
|
|
194
194
|
create_team_on_sign_up?: boolean | undefined;
|
|
195
195
|
team_creator_default_permissions?: {
|
|
196
196
|
id: string;
|
|
@@ -244,7 +244,7 @@ declare const projectsCrudAdminCreateSchema: yup.ObjectSchema<{
|
|
|
244
244
|
sender_email?: string | undefined;
|
|
245
245
|
type: "shared" | "standard";
|
|
246
246
|
} | undefined;
|
|
247
|
-
email_theme?:
|
|
247
|
+
email_theme?: string | undefined;
|
|
248
248
|
create_team_on_sign_up?: boolean | undefined;
|
|
249
249
|
team_creator_default_permissions?: {
|
|
250
250
|
id: string;
|
|
@@ -348,7 +348,7 @@ declare const projectsCrud: CrudSchemaFromOptions<{
|
|
|
348
348
|
sender_email?: string | undefined;
|
|
349
349
|
type: "shared" | "standard";
|
|
350
350
|
};
|
|
351
|
-
email_theme:
|
|
351
|
+
email_theme: string;
|
|
352
352
|
create_team_on_sign_up: boolean;
|
|
353
353
|
team_creator_default_permissions: {
|
|
354
354
|
id: string;
|
|
@@ -432,7 +432,7 @@ declare const projectsCrud: CrudSchemaFromOptions<{
|
|
|
432
432
|
sender_email?: string | undefined;
|
|
433
433
|
type: "shared" | "standard";
|
|
434
434
|
} | undefined;
|
|
435
|
-
email_theme?:
|
|
435
|
+
email_theme?: string | undefined;
|
|
436
436
|
create_team_on_sign_up?: boolean | undefined;
|
|
437
437
|
team_creator_default_permissions?: {
|
|
438
438
|
id: string;
|
|
@@ -512,7 +512,7 @@ declare const adminUserProjectsCrud: CrudSchemaFromOptions<{
|
|
|
512
512
|
sender_email?: string | undefined;
|
|
513
513
|
type: "shared" | "standard";
|
|
514
514
|
};
|
|
515
|
-
email_theme:
|
|
515
|
+
email_theme: string;
|
|
516
516
|
create_team_on_sign_up: boolean;
|
|
517
517
|
team_creator_default_permissions: {
|
|
518
518
|
id: string;
|
|
@@ -596,7 +596,7 @@ declare const adminUserProjectsCrud: CrudSchemaFromOptions<{
|
|
|
596
596
|
sender_email?: string | undefined;
|
|
597
597
|
type: "shared" | "standard";
|
|
598
598
|
} | undefined;
|
|
599
|
-
email_theme?:
|
|
599
|
+
email_theme?: string | undefined;
|
|
600
600
|
create_team_on_sign_up?: boolean | undefined;
|
|
601
601
|
team_creator_default_permissions?: {
|
|
602
602
|
id: string;
|
package/dist/known-errors.d.mts
CHANGED
|
@@ -239,7 +239,7 @@ declare const KnownErrors: {
|
|
|
239
239
|
} & KnownErrorBrand<"REFRESH_TOKEN_NOT_FOUND_OR_EXPIRED">, []> & {
|
|
240
240
|
errorCode: "REFRESH_TOKEN_NOT_FOUND_OR_EXPIRED";
|
|
241
241
|
};
|
|
242
|
-
UserWithEmailAlreadyExists: KnownErrorConstructor<KnownError & KnownErrorBrand<"USER_EMAIL_ALREADY_EXISTS">, [email: string]> & {
|
|
242
|
+
UserWithEmailAlreadyExists: KnownErrorConstructor<KnownError & KnownErrorBrand<"USER_EMAIL_ALREADY_EXISTS">, [email: string, wouldWorkIfEmailWasVerified?: boolean | undefined]> & {
|
|
243
243
|
errorCode: "USER_EMAIL_ALREADY_EXISTS";
|
|
244
244
|
};
|
|
245
245
|
EmailNotVerified: KnownErrorConstructor<KnownError & KnownErrorBrand<"EMAIL_NOT_VERIFIED">, []> & {
|
|
@@ -426,7 +426,7 @@ declare const KnownErrors: {
|
|
|
426
426
|
OAuthProviderAccessDenied: KnownErrorConstructor<KnownError & KnownErrorBrand<"OAUTH_PROVIDER_ACCESS_DENIED">, []> & {
|
|
427
427
|
errorCode: "OAUTH_PROVIDER_ACCESS_DENIED";
|
|
428
428
|
};
|
|
429
|
-
ContactChannelAlreadyUsedForAuthBySomeoneElse: KnownErrorConstructor<KnownError & KnownErrorBrand<"CONTACT_CHANNEL_ALREADY_USED_FOR_AUTH_BY_SOMEONE_ELSE">, [type: "email", contactChannelValue?: string | undefined]> & {
|
|
429
|
+
ContactChannelAlreadyUsedForAuthBySomeoneElse: KnownErrorConstructor<KnownError & KnownErrorBrand<"CONTACT_CHANNEL_ALREADY_USED_FOR_AUTH_BY_SOMEONE_ELSE">, [type: "email", contactChannelValue?: string | undefined, wouldWorkIfEmailWasVerified?: boolean | undefined]> & {
|
|
430
430
|
errorCode: "CONTACT_CHANNEL_ALREADY_USED_FOR_AUTH_BY_SOMEONE_ELSE";
|
|
431
431
|
};
|
|
432
432
|
InvalidPollingCodeError: KnownErrorConstructor<KnownError & KnownErrorBrand<"INVALID_POLLING_CODE">, [details?: Json | undefined]> & {
|
package/dist/known-errors.d.ts
CHANGED
|
@@ -239,7 +239,7 @@ declare const KnownErrors: {
|
|
|
239
239
|
} & KnownErrorBrand<"REFRESH_TOKEN_NOT_FOUND_OR_EXPIRED">, []> & {
|
|
240
240
|
errorCode: "REFRESH_TOKEN_NOT_FOUND_OR_EXPIRED";
|
|
241
241
|
};
|
|
242
|
-
UserWithEmailAlreadyExists: KnownErrorConstructor<KnownError & KnownErrorBrand<"USER_EMAIL_ALREADY_EXISTS">, [email: string]> & {
|
|
242
|
+
UserWithEmailAlreadyExists: KnownErrorConstructor<KnownError & KnownErrorBrand<"USER_EMAIL_ALREADY_EXISTS">, [email: string, wouldWorkIfEmailWasVerified?: boolean | undefined]> & {
|
|
243
243
|
errorCode: "USER_EMAIL_ALREADY_EXISTS";
|
|
244
244
|
};
|
|
245
245
|
EmailNotVerified: KnownErrorConstructor<KnownError & KnownErrorBrand<"EMAIL_NOT_VERIFIED">, []> & {
|
|
@@ -426,7 +426,7 @@ declare const KnownErrors: {
|
|
|
426
426
|
OAuthProviderAccessDenied: KnownErrorConstructor<KnownError & KnownErrorBrand<"OAUTH_PROVIDER_ACCESS_DENIED">, []> & {
|
|
427
427
|
errorCode: "OAUTH_PROVIDER_ACCESS_DENIED";
|
|
428
428
|
};
|
|
429
|
-
ContactChannelAlreadyUsedForAuthBySomeoneElse: KnownErrorConstructor<KnownError & KnownErrorBrand<"CONTACT_CHANNEL_ALREADY_USED_FOR_AUTH_BY_SOMEONE_ELSE">, [type: "email", contactChannelValue?: string | undefined]> & {
|
|
429
|
+
ContactChannelAlreadyUsedForAuthBySomeoneElse: KnownErrorConstructor<KnownError & KnownErrorBrand<"CONTACT_CHANNEL_ALREADY_USED_FOR_AUTH_BY_SOMEONE_ELSE">, [type: "email", contactChannelValue?: string | undefined, wouldWorkIfEmailWasVerified?: boolean | undefined]> & {
|
|
430
430
|
errorCode: "CONTACT_CHANNEL_ALREADY_USED_FOR_AUTH_BY_SOMEONE_ELSE";
|
|
431
431
|
};
|
|
432
432
|
InvalidPollingCodeError: KnownErrorConstructor<KnownError & KnownErrorBrand<"INVALID_POLLING_CODE">, [details?: Json | undefined]> & {
|
package/dist/known-errors.js
CHANGED
|
@@ -474,14 +474,15 @@ var ProviderRejected = createKnownErrorConstructor(
|
|
|
474
474
|
var UserWithEmailAlreadyExists = createKnownErrorConstructor(
|
|
475
475
|
KnownError,
|
|
476
476
|
"USER_EMAIL_ALREADY_EXISTS",
|
|
477
|
-
(email) => [
|
|
477
|
+
(email, wouldWorkIfEmailWasVerified = false) => [
|
|
478
478
|
409,
|
|
479
|
-
`A user with email ${JSON.stringify(email)} already exists
|
|
479
|
+
`A user with email ${JSON.stringify(email)} already exists${wouldWorkIfEmailWasVerified ? " but the email is not verified. Please login to your existing account with the method you used to sign up, and then verify your email to sign in with this login method." : "."}`,
|
|
480
480
|
{
|
|
481
|
-
email
|
|
481
|
+
email,
|
|
482
|
+
would_work_if_email_was_verified: wouldWorkIfEmailWasVerified
|
|
482
483
|
}
|
|
483
484
|
],
|
|
484
|
-
(json) => [json.email]
|
|
485
|
+
(json) => [json.email, json.would_work_if_email_was_verified ?? false]
|
|
485
486
|
);
|
|
486
487
|
var EmailNotVerified = createKnownErrorConstructor(
|
|
487
488
|
KnownError,
|
|
@@ -1061,12 +1062,16 @@ var OAuthProviderAccessDenied = createKnownErrorConstructor(
|
|
|
1061
1062
|
var ContactChannelAlreadyUsedForAuthBySomeoneElse = createKnownErrorConstructor(
|
|
1062
1063
|
KnownError,
|
|
1063
1064
|
"CONTACT_CHANNEL_ALREADY_USED_FOR_AUTH_BY_SOMEONE_ELSE",
|
|
1064
|
-
(type, contactChannelValue) => [
|
|
1065
|
+
(type, contactChannelValue, wouldWorkIfEmailWasVerified = false) => [
|
|
1065
1066
|
409,
|
|
1066
|
-
|
|
1067
|
-
{
|
|
1067
|
+
`This ${type} ${contactChannelValue ? `"(${contactChannelValue})"` : ""} is already used for authentication by another account${wouldWorkIfEmailWasVerified ? " but the email is not verified. Please login to your existing account with the method you used to sign up, and then verify your email to sign in with this login method." : "."}`,
|
|
1068
|
+
{
|
|
1069
|
+
type,
|
|
1070
|
+
contact_channel_value: contactChannelValue ?? null,
|
|
1071
|
+
would_work_if_email_was_verified: wouldWorkIfEmailWasVerified
|
|
1072
|
+
}
|
|
1068
1073
|
],
|
|
1069
|
-
(json) => [json.type, json.contact_channel_value]
|
|
1074
|
+
(json) => [json.type, json.contact_channel_value, json.would_work_if_email_was_verified ?? false]
|
|
1070
1075
|
);
|
|
1071
1076
|
var InvalidPollingCodeError = createKnownErrorConstructor(
|
|
1072
1077
|
KnownError,
|